Projets:Lab:2020:PiHPSDR

From Electrolab
Revision as of 09:11, 30 June 2020 by Marc (Talk | contribs)

Jump to: navigation, search

Page référencée dans Passion : Radio Radios logicielles, transmissions numériques, expérimentations HF

Section "HermesLite v.2.0 et ses satellites"

PiHPSDR est une console informatique minimaliste qui se connecte par un câble réseau à toute radio logicielle conforme au standard OpenHPSDR (Hermes Lite, Red Pitaya, Odyssey, Anan, HiQSDR...)

Une console de pilotage de SDR pour la famille OpenHPSDR

A base de Raspberry Pi, cette console servira de terminal d'appoint (IHM) en opération mobile ou portable, et permet aux nouveaux venus dans le monde des radios logicielles de se faire à un mode opératoire "encore avec quelques boutons".


Par qui ?

L'idée est née des cerveaux de John Melton G0ORX pour la partie logicielle et du tandem Kjell Karlsen LA2NI/Laurence Baker G8NJJ pour ce qui concerne l'aspect "hardware". Projet dévoilé à l'occasion de la SDR Academy de Friedrichshafen en 2016 , puis mis à jour en 2018

Le circuit imprimé utilisé par l'équipe radio de l'Electrolab a été dessiné par Mathis Schmieder, DB9MAT, transposition issue des schémas open source fournis par les membres du groupe OpenHPSDR mentionnés plus avant.


Pour qui ?

  • - Ce montage est abordable aux débutants possédant un bon fer à souder et quelques accessoires pour composants à montage de surface (flux, loupe ou binoculaire, pinces précelle, fil de brasure de 0,3mm, une panne de fer "aiguille" et une panne de fer "mahousse costaud", de la tresse à dessouder et... c'est à peu près tout.
  • - Pour les opérateurs de stations mobiles ou portables en premier chef, eux qui ne veulent pas faire courir de risque à leur ordinateur portable coûteux et fragile
  • - Pour les "vieux" radioamateurs qui ont encore besoin de tourner une molette et presser des boutons durant une période d'adaptation
  • - Pour les groupes de contesteurs souhaitant travailler en "multi" -avec un transceiver home made, cela va sans dire.
  • - Pour les radioclubs qui disposent de plusieurs SDR répartis sur un réseau local -généralement rangés en baie 19'- et souhaitant offrir accès à ces appareils sans nécessiter de présence physique dans la salle radio.
  • - Pour toux ceux, de manière plus générale, qui doivent administrer un cluster de SDR
  • - Pour toute personne cherchant à encastrer une "visu" dans un panneau de contrôle façon "centrale nucléaire"... c'est badass en diable
  • - Pour ceux, enfin, qui considèrent le PiHPSDR comme un périphérique totalement inutile, donc absolument indispensable
  • - Toute personne qui estime que le prix d'un raspi, de son écran, de quelques encodeurs et boutons et d'un logiciel open source je justifie pas une facture de 700 dollarsport non compris

Les ressources

L'Electrolab tient à disposition des personnes intéressées un pcb de 140x260 mm destinée à supporter un écran tactile "officiel", un Raspberry Pi (3, 3B, 3B+, 4), quelques boutons et encodeur et l'alimentation multitension du système (entrée générique 12V)

Un second pcb est à l'étude qui servira de "façade" à la console et n'aura strictement aucune fonction électronique spécifique. C'est une extension purement cosmétique, qui peut être remplacée par une plaque d'aluminium usinée/fraisée avec l'une des CNC Charly Robot ou travaillé à la lime et à la perceuse.

Le dépôt github héberge les schémas et routage pcb de la carte principale

La BOM interactive facilite la collecte des composants et guide pas à pas au montage de la carte

Le manuel utilisateur du contrôleur, édité par Apache Labs, facilite la prise en main du logiciel principal.


PiHPSDR, le logiciel de prise de contrôle à distance du SDR à l'origine de la conception de cette console. Le source du logiciel est disponible sur le dépot Github de John Melton

Ce n'est pas le seul client OpenHPSDR capable de tourner sur Raspberry Pi. Citons également

Quisk de James Alstrom N2ADR qui fonctionne merveilleusement bien avec le Hermes Lite V1 et V2. Les instructions d'installation ne nécessitent pas une connaissance approfondie de Linux

Le source Python est ouvert, et peut être récupéré sur le dépot Pypi.org

Sparks SDR est "closed source" mais non payant. C'est un programme développé pour l'environnement Windows et porté sous Linux. Le lobiciel est particulièrement bien adapté aux modes numériques multibandes, et intègre directement les décodeurs wspr, JT9-65 et FT8, et pourrait bien se voir adjoindre Codec2/FreeDV et l'émission-réception SSTV.

GNU Radio pour les plus courageux. Nécessite une cross-compilation. Ne pas perdre de vue que GRC est assez gourmand en ressources, le Raspberry n'est donc qu'une machine d'appoint, il ne faut pas s'attendre à des performances exceptionnelles.

GQRX devrait a priori également fonctionner, puisqu'il a été prouvé que ce client Linux léger tournait également en liaison avec une carte Red Pitaya et gateware Pavel Denim

Pourquoi

PiHPSDR est une console de "compromis". Petite puissance de traitement, taille réduite, interface de commande plus développée que ce que l'on peut espérer d'un écran tactile, coût d'usage très réduit minimisant les risque de banqueroute personnelle en cas d'accident matériel, la console PiHPSDR est conçue pour

  • - Les amateurs de station mobile "avec des boutons"
  • - Les personnes qui recherchent une commande radio "pour le salon" plus pratique qu'un ordinateur portable
  • - Les bricoleurs qui n'ont pas la place d'un écran-clavier sur leur atelier et qui veulent monitorer une ou plusieurs bandes durant une session de bricolage


Comment

Plumez énergiquement un Raspberry pi 3 ou de préférence 4.

Ajoutez délicatement un écran tactile "officiel". Son prix est un peu élevé, mais son système de fixation n'existe nulle part ailleurs

Incorporez progressivement une alimentation multitensions qui fournira au Pi un 5V idéal à partir de n'importe quelle source située entre 7 et 16V

Saupoudrez une bonne poignée de contacts fugitifs connectés au bus I2C du Raspberry. Il simplifieront certaines actions telles que la mise en marche/arrêt, le basculement émission/réception, la sélection des filtres, des bandes, des modes.

Disposez agréablement quelques encodeurs pour les réglages habituels : volume, fréquence etc. Le réglage de fréquence peut s’accommoder d'un 600 ou d'un 400 points par révolution

Soudez et vissez le tout sur un pcb unique qui servira de support mécanique et de liant au ingrédients ci-avant détaillés

Ajoutez une façade lisible

Burinez vivement le noyau et le logiciel selon les instructions qui suivront, servez chaud.


Guide de montage rapide

Principe de fonctionnement

Les transceivers de la famille OpenHPSDR utilisent une liaison Ethernet qui encapsule à la fois les paquets I/Q de chaque récepteur virtuel émis par le coeur du SDR, et un certain nombre de signaux de service destinés à commander des extensions matérielles, tantôt des commutations d'antennes, tantôt des filtres passe-bas ou passe-haut, tantôt un atténuateur ou un préampli...

C'est également par le biais de cette liaison ethernet que l'opérateur radio peut piloter les fonctions purement "signal" de la radio logiciel : nombre de récepteurs actifs, filtres numériques, type de démodulation locale, sélection de bande de fréquence, réglage de la fréquence, passage en émission, redirection logicielle avec des modulateurs/démodulateurs tiers -freeDV, télex, SSTV, ft9 etc.

Le Hermes Lite V2 est en grande partie compatible avec la première version de cet ensemble de protocoles (nommé, par le plus grand des hasards, "protocole 1").

A la mise sous tension du SDR, une négociation d'établit entre la radio et le terminal de contrôle et relie les deux appareils via une liaison tcp/ip. Le terminal en question est constitué d'un ordinateur monocarte (SBC, single board computer) de type Raspberry Pi (modèle 3 ou 4) et de son écran tactile 7 pouces.

Sur cet ordinateur s'exécute un logiciel client (conçu pour le noyau Linux du Raspberry) qui remplit à la fois toutes les fonctions de traitement radio (gestion des filtres logiciels et matériel, des fréquences, de la démodulation du signal etc) et la supervision d'une interface homme-machine simplifiée limitée à une vingtaine de boutons et 4 encodeurs rotatifs, dont un encodeur optique à haute résolution.

Les encodeurs rotatifs sont directement connectés sur les gpio du rapsberry. Les boutons, en revanche, sont chaînés sur un bus I2C, lequel dialogue avec le "master" qu'est le raspberry lui-même.

L'alimentation

Alim 2.png



Ce schéma est également disponible, en bien meilleure définition, sur le dépôt Github et au format pdf

La totalité de l'alimentation repose sur un circuit LMZ22005. C'est un circuit unique d'alimentation à découpage, qui accepte n'importe quelle tension en dessous de 20 V et qui délivre.... ce que l'on souhaite. Dans notre cas, le 5V destiné à alimenter le Raspberry Pi, l'écran et le circuit d'interface boutons/I2C.

Le démarrage du terminal PiHPSDR s'effectue par simple appui sur le bouton de mise sous tension SW1 qui met à la masse la gate de Q2, lequel transistor débloque à son tour le FET de puissance FDD6685 et ouvre le circuit vers le régulateur à découpage

La qualité des résistances utilisées dans le pont de réglage de tension (R9, R10, R11) est importante. Si possible, il faut employer des composants à 1%.

Le montage ne pose pas de problème majeur :

  • Soudez en premier lieux le régulateur principal, le fet de puissance, puis les passifs (condensateurs, résistance, diode de protection... )
La véritable difficulté de ce montage réside dans la monté en température de la semelle du régulateur à découpage. Pré-étamez la semelle de ce composant et le pad du circuit imprimé avec une très légère couche de brasure. Soudez ensuite les pattes du circuit intégré sans tenter de souder la semelle. Une fois le composant parfaitement aligné et maintenu, glissez une panne "tournevis" de grande taille (très forte inertie thermique)entre la semelle et le pcb, en ajoutant préalablement du flux. Appuyez sur le corps du circuit intégré avec un outil -attention, le corps du composant peut être très chaud- pour assurer le contact thermique, tout en ajoutant de la brasure. Lorsque le métal est bien liquide, retirez le fer, plaquez la semelle sur le support et maintenez là ainsi quelques seconde le temps que la soudure refroidisse. Le surplus de soudure doit déborder, le corps du circuit intégré doit être parfaitement plaqué sur le circuit imprimé (cliquez sur la photo pour agrandir)


  • Soudez les composants passifs périphériques.
  • Branchez une alimentation 12 V sur le connecteur J1, mettez la carte sous tension en créant un court-circuit momentané sur les pastilles de l'emplacement SW1 -coté face du pcb, en haut, à droite. La diode D3 doit s’allumer.
Le test de l'alimentation doit être effectué avant de souder le moindre autre composant (Raspberry, interface I2C... (cliquez sur la photo pour agrandir)


  • Avec un voltmètre, vérifiez que la tension sur J5 1 & 3 et J6 1 soit bien de 5V +/-2% quelle que soit la tension d'entrée, de 10 à 18V.
  • Débranchez l'alimentation.

Le contrôleur I2C

Ce circuit sert d'interface entre les boutons-poussoir et le bus I2C du Raspberry Pi. Son schéma est disponible au format Kicad sur Github ainsi que sous forme de fichier pdf.

(cliquez sur la photo pour agrandir)
(cliquez sur la photo pour agrandir)


Il est vivement conseillé de souder les réseaux résistifs avant le circuit SOIC.

Une erreur de routage lors de la conception du pcb -qui sera corrigée dans la version 2.0- exige que l'on gratouille un plan de masse sur le coté du circuit intégré, et que l'on y soude une queue de composant qui court-circuite les trois broches d'adressage.

L'étape suivante se limite à installer les multiples condensateurs de filtrage et découplage, sans ordre particulier.

Les boutons et encodeurs et du SoC

La série de poussoirs est ensuite installée en prenant garde à bien respecter l'alignement des axes des boutons.

Dans un second temps, il faut souder les encodeurs mécaniques, puis, en dernier lieu, l'encodeur optique "VFO"

Sur la photo de droite, un Raspberry Pi 3B+ surmonté d'une carte son gigogne. La fixation sur le circuit imprimé PiHPSDR est assuré par des entretoises au pas M 2,5 ISO.

(cliquez sur la photo pour agrandir)
(cliquez sur la photo pour agrandir)


Le codeur optique ci-dessus est un 600 point par révolution, paradoxalement moins coûteux qu'un 400 ppt de fabrication US ou Européenne. En revanche, ce 400 ppt est nettement moins encombrant et conviendra bien mieux à un boitier plus "slim line"

(cliquez sur la photo pour agrandir)


le connecteur de liaison des gpio ne sera pas soudé tant que l'assemblage mécanique du Raspberry Pi ne sera pas parfaitement vissé. C'est le seul moyen de régler correctement la profondeur d'assise de ce connecteur de liaison, laquelle est dépendante de la longueur des entretoises utilisées. Dans les deux exemples ci-dessous, on remarque aisément que l'épaisseur du dissipateur de chaleur du Raspberry Pi 4 contraint à sur-élever le SoC par rapport au circuit principal. Cette élévation modifie également la découpe latérale du boitier donnant accès aux connecteurs USB et Ethernet.

(cliquez sur la photo pour agrandir)
(cliquez sur la photo pour agrandir)


Si l'on souhaite installer un Raspberry Pi 4 avec un dissipateur de chaleur, la visserie doit être au standard M 3 ISO. Le dissipateur de chaleur doit être modifié (alésé de part en part) pour faire en sorte que les vis puissent traverser toute la masse métallique et s'ancrer dans les trous prévus à cet effet sur le circuit imprimé principal.

(cliquez sur la photo pour agrandir)


Etape finale

Désinstallez le Raspberry Pi, nettoyez énergiquement la carte à l'alcool isopropyl pour éliminer toute trace de flux, puis lessivez le circuit au liquide vaisselle... pour éliminer les traces laissées par l'alcool. Rincez abondamment, prenez garde à ne pas noyer les poussoirs et les encodeurs

Cette étape achevée, il ne reste plus qu'à remonter le Raspberry Pi, et fixer l'écran après avoir délicatement démonté sa carte contrôleur pour faciliter l'insertion de l'ensemble.

  Note importante : les 4 vis de fixation de l'écran ne doivent en aucun cas dépasser 3mm. Dans le cas contraire, l'extrémité
  de la vis viendrait briser l'écran au moment du serrage
(cliquez sur la photo pour agrandir)


Tirez deux fils de couleur du connecteur J6 (+5V/GND) et pour alimenter la carte contrôleur vidéo via son connecteur I2C

(cliquez sur la photo pour agrandir)


Ce n'est qu'une fois les vis de fixation de l'écran serrés et bloqués que l'on peut remettre les entretoises de fixation de la carte contrôleur vidéo, puis insérer le câble en nappe provenant du Raspberry.

(cliquez sur la photo pour agrandir)


Configuration rapide

Le noyau et client Pihpsdr

Les instructions d'installation et liens de téléchargement du noyau "Raspberry Pi Desktop" (anciennement Raspbian) sont disponibles sur les serveurs de Raspberry Pi . org

Configuration logicielle des E/S

  • Mettez le Hermes Lite sous tension
  • Reliez le Hermes Lite et la console PiHSDR avec un câble Ethernet, soit directement, soit via un routeur ou commutateur réseau.
  • Lancer le logiciel PiHPSDR, sélectionnez le SDR souhaité (plusieurs SDR peuvent partager un même réseau local)
  • Dans les options de configuration, sélectionnez la case de configuration des gpio
  • Configurez le tableau des gpio en respectant strictement les deux captures suivantes
(cliquez sur la photo pour agrandir)
(cliquez sur la photo pour agrandir)