Projets:Lab:2011:Softrock

From Electrolab
Revision as of 11:05, 18 May 2013 by Marc (Talk | contribs)

Jump to: navigation, search

Softrock Cékoidon

du kit pour débutant au tranceiver SDR couverture générale hautes performances


Cette présentation est destinée aux débutants absolus qui souhaiteraient y comprendre quelque chose dans cette forêt jargonnante qu’est le monde des SDR de la famille Softrock en général, et dans celui des extensions matérielles et logicielles réalisées par l’équipe d’Alex 9V1AL. L’écriture de cet article d’initiation a été déclenchée par la demande d’un SWL mystérieux qui avait formulé une telle demande sur la liste Yahoo Softrock40

A partir de cette page Wiki qui constituera un « tronc commun », il sera possible de retomber sur les pages de différents projets tels que celui de la carte SDR-Widget, du firmware DG8SAQ/PE0FKO ou du howto consacré à l’installation du serveur de Web SDR GHPSDR3-Alex.

Ce projet intéressera autant le radioamateur que le hacker « soft » qui s’intéresse au SDR et qui aura vite compris les limitations des outils grand public de réception (clef USB DVB-T, large bande mais sujette à la transmodulation) ou de hacking généraliste (USRP, Jawbreaker) parfaits pour de l’analyse « en chambre » mais incapables de spoofer correctement un signal « in the wild » à forte puissance ou d’écouter des signaux numériques « longue distance ». Hacks des NFC/RFID

   Note importante à l’attention des chercheurs travaillant dans le domaine des NFC et RFID

Le Softrock (aka SR) est une radio logicielle émission-réception vendue « en kit » à moins de 90 dollars. Que l’on utilise une plateforme SR 6.3NG ou SR Ensemble, il existe une version capable d’écouter et émettre sur la fréquence de 13 MHz (de 7 à 14 MHz, ou de 1,8 à 30 MHz selon modèle, fenêtre de spectre glissante d'une largeur de 48 à 192 kHz). Comparativement à un USRP ou un Jawbreaker, un Softrock vous offrira une sensibilité (réception de signaux faibles) considérablement meilleure. La puissance d’émission (1W PEP) surpasse celle d’un Jawbreaker, ses performances en échantillonnage ne peuvent même être comparées. Certes, le Softrock n’est pas un outil à large spectre, mais ce qu’il fait, il le fait mieux que ses concurrents. Il est, en matière de hack radio, ce qu’un microscope est à un objectif Fisheye : il perçoit d’infimes détails dans le cadre d’un champ d’écoute réduit que le « grand angle » ne peut soupçonner.

D’un point de vue performances de réception, ces Softrock sont capables d’égaler –voir surpasser- des émetteurs-récepteurs du commerce tels que les Flex 1500 ou Elecraft KX3 qui coûtent 7 à 8 fois plus cher… les étages principaux qui caractérisent le fonctionnement de ces appareils sont strictement identiques, leurs performances également. Libre à vous de penser que l’ajout d’un afficheur flashy ou de boutons « design » mérite un delta de 700 dollars. A l’Electrolab, nous pensons que ça fait cher au gramme de plastique, et que cet argent économisé peut être reporté sur d’autres budgets de recherche.

Ne perdez pas de vue qu'en utilisant un outil plus sensible, vous risquez d'être perturbés par des signaux dont vous ignoriez l'existence jusqu'à présent avec des récepteurs plus "bas de gamme". Sur ces fréquences, un signal de 1 Watt (donc inférieur à l'énergie rayonnée par une lampe de poche à ampoule tungstène) peut fort bien faire le tour de la terre... et votre Softrock, si tant est que vous possédiez une antenne digne de ce nom, est capable de "sortir du bruit" un tel signal émis du Japon ou d'Amérique du Sud. Le hacking radio est un monde de compromis délicats et de connaissance physiques un peu spéciales.

Le processeur de signal

De la Soundblaster de base aux cartes USB/FireWire externes

Si, dans un premier temps, l’on fait donc abstraction des étages purement radio, à savoir le mélangeur, les filtres d’entrée ou de sortie et l’oscillateur local, le seul étage qu’il vous sera possible d’améliorer facilement sera celui chargé du traitement de signal (aka : la carte son de votre ordinateur). En effet, le Softrock ne fait que convertir un spectre de fréquence en deux composantes vectorielles I et Q (signal en phase et en quadrature de phase). C’est à partir de ces composantes que le processeur de signal pourra traiter et extraire un spectre de fréquence exploitable par le logiciel chargé de la démodulation. Comme le Softrock ne possède pas de coûteux étage de décimation, de FPGA capable de travailler sur plusieurs millions d’échantillons par seconde, il vous faudra utiliser le DAC (et ADC en émission) de votre carte son.

Une carte son d’entrée de gamme ou intégrée à un ordinateur portable ne vous offrira généralement qu’un spectre de 48 kHz (disons 48 kilo-samples/seconde pour simplifier, bien que la réalité soit un peu plus complexe) avec une précision de 8 ou 16 bits, ainsi qu’une dynamique (écart entre le signal le plus fort et le niveau de bruit) de 80 ou 90 dB.

Une carte son « semi pro » genre Edirol FA-66 Roland peut traiter un spectre de 192kHz sur 24 bits/120 à 125 dB de dynamique, mais présente l’inconvénient de toujours être une « carte son »… avec d’éventuels correcteurs physiologiques et un certaine carence en fonction de contrôle et souplesse coté firmware.

Une carte spécifiquement orientée traitement de signal, 192kHz/24 bits avec des DAC/ADC de qualité peut et une dynamique exceptionnelle de 140 à 145 dB, parfaitement linéaire et neutre vis-à-vis du signal (pour un peu moins de 150$), a été conçue spécialement pour le Softrock. C’est la SDR-Widget ). Parfois, un petit effort de fer à souder peut faire une énorme différence en termes de performances.

Le Softrock aujourd'hui

Lorsque l’on parle de Softrock RXTX, on entend en général « la dernière version en date d’émetteur-récepteur conçue par Tony Parks ». Et la dernière en date, c’est celle-ci

autrement dit l’Ensemble Tranceiver Kit à 89$ pièce.

Il s’agit d’un émetteur-récepteur SDR (radio logicielle), sans sa partie traitement de signal (en général la carte son de votre ordinateur), et capable de couvrir trois bandes des fréquences amateur selon le choix suivant :

• 160m

• 80/40m

• 40m/30m/20m (celui qui intéressera les hackers NFC/RFID)

• 30m/20m/17m

• 15m/12m/10m

« Physiologiquement » parlant, tous les Softrocks à partir de la version 6.3 possèdent un oscillateur variable (Silicon Lab Si570 piloté par bus I2C) capable de leur faire couvrir en gros de 1 à 30 MHz. Mais pour bien recevoir une bande de fréquence –et ne pas être perturbé par les rayonnements harmoniques provenant d’autres fréquences-, il est nécessaire de faire précéder tout émetteur-récepteur de filtres dont l’étroitesse est garante de cette qualité de réception et d'émission. Il serait possible d’inventer un mécanisme capable de commuter ces filtres automatiquement, et couvrir de 160 mètres à 10 mètres. Mais un tel mécanisme est complexe et nécessairement plus coûteux. C’est la raison pour laquelle le concepteur des Softrock Ensemble a préféré commercialiser des modules « par bande », peu chers, mais limités en fréquences couvertes. Donc, pour couvrir toutes les bandes décamétriques amateur, il faudrait en théorie vous acheter 5 « ensemble TX-RX », un par groupe de bande.

Pour réaliser un émetteur-récepteur à couverture général à partir de ce genre d’appareil, il existe deux solutions.

- La première consiste à effectuer un véritable travail de chirurgien et insérer un groupe de 10 filtres (5 en émission, 5 en réception, un par « groupe de bande ») à grand renfort de relais, interrupteurs, fils, logique de commande, puis de pondre un firmware qui permettra à un microcontroleur genre Arduino de piloter la commutation de ces différentes séries de filtres en fonction de la fréquence choisie. Un tel projet représente plus d’un an de travail pour un groupe de 5 personnes déterminées.

- La seconde solution est plus simple : relier 4 Softrock Ensemble sur 4 ports USB d’un ordinateur, y installer un serveur WebSDR GHPSDR3-Alex (capable de supporter 4 émetteurs différents) et piloter le tout depuis un logiciels client QtRadio sur une plateforme Windows/Linux/Macintosh ou Glsdr sur une machines sous Android. Notons au passage que cette solution, peu élégante et qui nécessite l’usage d’autant de cartes son qu’il ne faut d’émetteur-récepteur, coûte plus de 1300 dollars cartes son spécialisées comprises, soit le prix d’un appareil du commerce. L’opération est difficilement qualifiable de « rentable », d’autant plus que le Softrock Ensemble n’est pas un prodige de propreté en termes de pureté spectrale à l’émission, et qu’il ne brille pas non plus par sa résistance à la transmodulation à la réception.

Si l’on fait abstraction des problèmes d’énumération USB, il devrait être possible de créer des grappes de 5 ou 6 Softrocks (et 5 ou 6 cartes son externes) alimentant sous Windows 5 ou 6 instances de logiciel genre HDSDR ou PowerSDR-IQ. Mais même avec un processeur Core i7, il est presque certain que les exigences en ressources (vidéo, I/O, processeur) seraient telles que la machine s’écroulerait. Ceci étant précisé, ne croyez pas que Linux soit capable de résoudre tous les problèmes. Un serveur GHPSDR3-Alex avec un seul émetteur-récepteur ne tourne pas sur un Raspberry Pi. Il faut au moins un Odroid-X2. Pour associer deux tranceiver, (ou un seul dans des conditions confortables ne nécessitant pas une recompil du noyau), le choix doit se porter au moins sur une carte ITX avec un Intel Atom haut de gamme.

Vieux Softrock, idées nouvelles et couverture générale (enfin !)

Il existe cependant une « voie royale », celle tracée par un ancien modèle de Softrock, le 6.3. Cet appareil n’est plus vendu par Tony Parks, mais continue à être commercialisé 70 $ Canadiens en version « SMT de partout » par [Georges Boudreau]

Pourquoi ce modèle ? A l’origine, le SR6.3 était un tranceiver à filtres commutable « à la main ». Pour passer de 3,5 MHz à 28 MHz, il fallait régler l’oscillateur sur la fréquence souhaitée (via le logiciel SDR utilisé, HDSDR, PowerSDR etc), ôter à la main les modules-filtres de réception et d’émission 80 mètres, et les remplacer par ceux conçus pour la bande 10 mètres.

Cette approche est astucieuse, elle était d’ailleurs utilisée par quelques constructeurs d’équipements commerciaux, ainsi le TenTec Scout 555. Mais, à moins d’être un dieu de la fraiseuse et du tour mécanique ou un Attila de la Plieuse, cette technique oblige l’opérateur à laisser ouvert le capot de son appareil pour accéder aux filtres. En outre, à la longue, les connecteurs utilisés (des barrettes HE10) ont tendance à se fatiguer et à créer des faux contacts.

Mais la base du Softrock 6.3 est l’un des plus saines de sa génération. Et surtout l’une des plus économiques et des plus éprouvées. Grâce à son oscillateur VCXO programmable, elle couvre sans le moindre trou de de 1,5 MHz à 40 MHz, son mélangeur donne de très bons résultats sur l’ensemble des ondes courtes, et le coût de fabrication demeure très faible, surtout comparé aux prix des nouvelles générations de SDR de type « digital down/up-converter » (DDC-DUC) et aux étages de traitement de signal à base de fpga.

En partant de ce constat, un groupe d’amateurs, 9V1AL Alex Lee, Loftur Jonason TF3LJ, KF4BQ Mike Collins, KY1K Art Allen et F6ITU votre serviteur ont décidé de détourner ce Softrock 6.3 et d’utiliser les connecteurs « filtre » pour y insérer une énorme carte-fille associée à une électronique de commutation de bande. C’est ainsi que sont nées successivement les « Mobo 3.6 » et « Mobo 4.3 ». Nous ne retiendrons que la Mobo 4.3, dernière en date et de loin la plus achevée.

  • L’un des principaux défauts des Softrock conçus par Tony est le manque de pureté spectrale de ses émissions (le fameux IMD). On oublie trop souvent que le mélange des SDR, à la réception et à l’émission, est issu de deux signaux carrés (ou rendus carrés par des portes logiques), donc riches en harmoniques impaires. Des harmoniques que l’on trouve tant au-dessus qu’en dessous de la fréquence fondamentale. Ce défaut affecte tous les SDR de ceux qui ont copié le design de Tony ou ont péniblement essayé d’associer des transistors genre IRF510 sur la partie amplificatrice en croyant qu’un filtre passe-bas corrigerait le défaut. En vain.
  • Alex a donc décidé de supprimer la partie amplificatrice d’origine et de la remplacer par un P.A. sérieux, utilisant des transistors spécialisés (Mitsubishi RD16HHF1), lui-même piloté par un 2N3553 ou proche cousin.
  • Comme il fallait nécessairement un microcontroleur pour commander la commutation des filtres en fonction de la fréquence, et « qu’il restait encore pas mal de place en mémoire », Loftur TF2LJ a intégré toute la partie « pilotage de l’oscillateur », en respectant scrupuleusement une norme de fait : le pilotage sauce DG8SAQ Thomas/PE0FKO Fred. De cette manière, il est possible de piloter la fréquence de travail façon Old School, avec un bouton VFO et un afficheur LDC, mais également de gérer l’oscillateur par le biais des commandes du logiciel principal de réception.
  • Et comme l’espace mémoire n’était pas totalement consommé, Loftur et Alex ont ajouté une section spécialisée dans la commutation d’un filtre externe (passe-bande ou passe-bas), d’un ROS-mètre, d’un éventuel préampli commutable automatiquement, d’un afficheur 2 ou 4 lignes indiquant fréquence, puissance réelle de sortie, ROS, niveau de réception, température du PA… ainsi qu’une multitude de paramètres de réglages divers, allant de la polarisation du transistor final en passant par la finesse du pas de l’encodeur optique du vernier de fréquence. Il va de soi que le tout est truffé de mémoires et autres outils facilitant le trafic radio.
  • Ce firmware unifié est « partiellement exécutable » sur microcontroleur Microchip PIC 18F2550 (version spécifique originelle, UBW), et totalement fonctionnel sur processeur Atmel AT90USB162, ATMEGA32U2, AT32UC3A3256 et, pour les plus courageux et amateurs d’AVRDude, ATMega168/Arduino (moyennant une petit modification physique du port USB). On est loin des capacités très limités de produits commerciaux fermés vendus dans le commerce.

Ajoutons enfin que l’intégration matérielle prévoit la sortie d’une multitude de ports I2C destinés à supporter le dialogue entre processeur et périphériques (oscillateur, filtres, ROSmètre, préampli, sonde de température, capteur de courant de réglage de Bias etc).

Difficulté de montage

La réalisation d’un tranceiver à couverture générale de type Softrock 6.3/Mobo n’appelle aucun commentaire. Bien que n’utilisant que des composants à montage de surface format 1206 (énôôôôrmes) et 0805 (grooooos) et quelques circuits intégrés au format SOIC, il peut être réalisé par n’importe quelle personne un peu soigneuse, possédant un fer à souder à pointe fine, de la tresse à dessouder et une bonne réserve de flux à soudure. Les débutants ou nouveaux-venus aux composants à montage de surface peuvent commencer par la carte Softrock 6.3 NG, assez facile à réaliser, puis passer à la Mobo 4.3, un peu plus dure à souder et comptant considérablement plus de composants. TOUT se monte au fer à souder « pointe fine », il n’est absolument pas besoin d’investir dans un four à refusion, une station à air chaud ou autre procédé diabolique. Une bonne loupe binoculaire est un investissement bien plus intelligent.

Certaines cartes périphériques (dont l’usage est optionnel) sont assez difficiles à réaliser, ainsi la SDR-Widget qui comporte notamment un boitier QFN de 144 broches délicat à souder. Son montage n’est pas impossible, mais il est déconseillé aux débutants. Là encore, la communauté Electrolab et/ou SDR_Software_FR est là pour donner un coup de main et sous-traiter (gratuitement) le montage des composants les plus délicats.

L’accent doit être mis sur certains détails qui peuvent passer de prime abord comme secondaires :

- Chaque étage (widget, mobo, rosmètre, P.A. de puissance, afficheur LCD, filtres d’entrée ou sortie etc) doit être blindé, isolé dans son propre boitier en tôle étamée, le tout relié à une masse commune dépourvue de boucle. Dans l’absolu, il est souhaitable que la carte mère de l’ordinateur pilotant le SDR puisse être également intégré dans le même boitier et utiliser le même plan de masse. Le GND HF doit être si possible isolé galvaniquement du GND général et du GND numérique. Un couple de transformateurs d’isolation est parfois souhaitable entre la Mobo4.3 et l’entrée de la carte son de traitement de signal. L'intégration d'une carte d'ordinateur DANS le boitier abritant le SDR est une solution idéale pour éviter les boucles de masse créées par les câbles de liaison.

- Le câblage inter-étages doit être propre, et utiliser, selon l’usage, soit des traversées chokées par des perles ferrites, des by-pass (condensateurs de cloison traversants, également appelés « feed thru ») ou des passages de câble coaxiaux aboutissant sur de la prise genre SMA. Ce sont là des détails purement mécaniques qui peuvent, s’ils ne sont pas respectés, ruiner totalement le projet final. Ils sont généralement inconnus des réalisateurs venant du monde « coding/software »… les mailing-list sont là pour les aider et leur prodiguer les conseils nécessaires.

L’écosystème Softrock

Plusieurs éléments se sont développés autour du Softrock 6.3. Cet arbre généalogique a été dressé par Robert M0RZF sur la page « Unity SDR » (http://www.m0rzf.co.uk/softrock7) puis complété.

Pour la partie matérielle

- La Mobo 4.3 (open hard)

- Le SR6.3ng ,version CMS du Softrock originel (sous licence)

- La carte son/traitement de signal SDR-Widget (open hard)

- Le ROSmètre de Loftur TF3LJ (open hard)

- Un filtre passe-bande de puissante (en refonte, F6ITU) (open hard)

- Un préamplificateur faible bruit pour la Mobo (M0RZF) (indéterminé)

- USB2SDR, une interface comparable à la SDR-Widget par Christos SV1EIA (produit commercial)

- SDR2GO, une interface/DSP/démodulateur SSB/CW autonome , par K5BCQ (produit commercial)

- SDRCube, comparable au SDR2GO, avec affichage du spectre sur lcd (produit commercial)

- UHFSDR, un SDR 1,5 MHz/800 MHz par Dave WB6DHW compatible SDR-Widget/firmware unifié et GHPSDR3 (indéterminé, probablement open hard)


Pour la partie logicielle

- Le firmware unifié sdr-Widget/Mobo 4.3 de Loftur et Alex (open source)

- CFGSDR, outil de configuration du firmware par PE0FKO (open source)

- Drivers Windows et Certificats signés PE0FKO reconnaissant l’interface USB/I2C de pilotage de l’oscillateur Si570/SDR-Widget/Mobo4.3/Softrock Ensemble et autres uC compatibles DG8SAQ(open source)

- Mobocontrol, programme de configuration firmware mobo par Alex Lee 9V2AL (Linux/Windows) (open source)

- WidgetControl, programme de configuration firmware SDR-Widget par Alex Lee 9V2AL(Linux/Windows) (open source)

- GHPSDR3-Alex, serveur de Web-SDR sous Linux(open source)

- QtRadio, logiciels SDR sous Windows, client GHPSDR3-Alex (open source)

- QtRadio, logiciels SDR sous Linux, client GHPSDR3-Alex(open source)

- Glsdr, logiciels SDR sous Android, client GHPSDR3-Alex(open source)

- PowerSDR-IQ, logiciels SDR sous Windows compatible USB2SDR/SDR-Widget par Christos SV1EIA (gratuity, sous licence)

- HDSDR logiciel SDR sous Windows, désinence sous Linux (gratuit, closed source, DLL code ouvert mais pas licence open)

Il n’existe à ce jour aucun projet aussi diversifié d’un point de vue matériel et aussi riche de développements. Il n’est en aucun cas un ramassis constitué de bric et de broc associant des « morceaux de poste » copiées ici et là, mais une véritable architecture régie par une ligne directrice précise et des développements coordonnés.

Les liens pratiques et techniques

...consacrés à l’écosystème SR6.3

Le principal problème auquel se heurte le débutant lorsqu’il prend une Mobo à bras le corps, c’est celui qui consiste à dénicher les sources d’information (fiables si possible). Et des sources, il en existe un nombre important. Voici une typologie de ce que l’on peut trouver, en fonction du thème de recherche et de la langue dans laquelle le site a été rédigé

Le manuel de montage de la Mobo 6.3 par WB5RVZ, un véritable « guide Heathkit » (en anglais)

http://www.wb5rvz.com/sdr/mobo43/

Une description technique des fonctions de la Mobo 4.3 (en anglais)

https://sites.google.com/site/lofturj/mobo4_3

La page décrivant les différentes versions que l’on peut télécharger en fonction des contraintes techniques. Les différents firmware de la mobo peuvent être téléchargés en bas de page (Assembleur, C, anglais).

https://sites.google.com/site/lofturj/mobo4_3_firmware

Le logiciel de configuration du firmware (params de l’adresse de l’oscillateur, réglages des points de « croisement » des filtres passe-bande de réception et d’émission, étalonnage du courant de repos du P.A., étalonnage en fréquence, lecture du SWR etc). Sur cette page se trouve également les différentes pilotes Windows nécessaires au fonctionnement du SDR (en anglais)

http://pe0fko.nl/SR-V9-Si570/

Une rapide description de l’architecture Mobo en général (en français)

http://f6itu.wordpress.com/2009/08/30/commnt-gonfler-un-softrock/

Un préamplificateur faible bruit pour les bandes 10 à 28 MHz par M0RZF (en anglais)

http://www.m0rzf.co.uk/preamp/

La SDR Widget, carte de traitement du signal I/Q issu de l’ensemble Mobo/Softrock. Cette carte regroupe les fonctions de microcontroleur chargé de l’interface de pilotage de la Mobo (commutation filtres, pilotage oscillateur, commutation émission/réception) et le rôle de carte son ou carte de traitement de signal hautes performances (-140 dB de dynamique, échantillonnage192kHz/24 bits) (en anglais)

http://www.yoyodyneconsulting.ca/pages/SDR-Widget.html

La page consacrée au montage et à la programmation de la SDR-Widget (en français)

http://wiki.electrolab.fr/Projets:Lab:2011:SDR_Widget

La page GoogleCode servant de dépôt aux différents firmwares et logiciels de configuration destinés à la Widget (C, Python, anglais)

http://code.google.com/p/sdr-widget/downloads/list

Un serveur Web-SDR, (manuel d’installation en Français) capable de piloter jusqu’à 4 Softrock/Mobo 4.3/SDR-Widget (en français)

http://wiki.electrolab.fr/Projets:Lab:2011:GHPSDR3-Alex

Le site original consacré au logiciel serveur GHPSDR3-Alex (en anglais)

http://napan.ca/ghpsdr3/index.php/Main_Page

Le dépôt logiciel concentrant les codes sources de GHPSDR3-Alex (en langage C et anglais)

https://github.com/alexlee188/ghpsdr3-alex

Une mailing list consacrée aux aspects logiciels du SDR (en français). Animée par F1APY

Il vous y sera répondu à toutes les questions dans la mesure de nos compétences respectives. Les radioamateurs qui s’y trouvent travaillent autour du RXTX6.3 (ng ou non) ainsi que de l’UHFSDR de Dave Brainerd

https://groups.google.com/forum/?hl=fr&fromgroups#!forum/sdr_software_fr

MoboKit, une mailing-list réunissant les utilisateurs et développeurs du projet Mobo 4.3 (en anglais)

https://groups.google.com/forum/?hl=fr&fromgroups#!forum/mobokits

SDR-Widget, une mailing-list réunissant les utilisateurs et développeurs du projet SDR-Widget (en anglais)

https://groups.google.com/forum/?hl=fr&fromgroups#!forum/sdr-widget

l’UHFSDR de Dave WB6DHW, un SDR qui couvre de 1,8 MHz à 800 MHz sans trou, en émission comme en réception, compatible avec les pilotes DG8SAQ/PE0FKO ainsi qu’avec la carte SDR-Widget.

http://wb6dhw.com/For_Sale.html#UHFSDR

HDSDR, un logiciel client sous Windows associé à une DLL compatible DG8SAQ/PE0FKO

http://www.hdsdr.de/index.html