Projets:Lab:2011:SDR Widget

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

SDR Widget
La réalisation de la carte SDR-Widget est un projet de "mini groupe" réunissant 5 personnes liées à l'Electrolab et d'autres Radioamateurs situés un peu de partout en France (Antilles y comprises)

La "Widget" est une sorte de "super carte son" externe 24-bit 48k/96k/192k reliée à un ordinateur via un port USB 2.0. Sa principale caractéristique est d'offrir une dynamique exceptionnelle de 135 dB, bien supérieure à celles de cartes semi-professionnelles (M-Audio, Roland Edirol et semblables) que l'on trouve sur le marché.

Le principal usage de la SDR Widget est de traiter les signaux I/Q provenant ou à destination d'un tranceiver logiciel (SDR, Software Define Radio). La Widget, pour sa part, a initialement été conçue par Georges Boudreau de Yoyodyne Consulting, avec l'aide et le talent de Loftur Jonasson TF3LJet de l'infatigable et non moins talentueux Alex Lee 9V1AL, lui-même père d'une carte d'extension pour le SDR Softrock, la Mobo 4.3. C'est d'ailleurs pour cette fameuse Mobo que la SDR Widget a été initialement conçue.

Mais compte tenu de l'importance que revêt un bon étage de traitement de signal dans un SDR, ces trois concepteurs n'ont pas souhaité dédier cette carte. Elle peut être utilisée par n'importe quel utilisateur de SDR, du Softrock à l'UHFSDR en passant par n'importe quel autre système de réception ou d'émission-réception capable de sortir des signaux I/Q avec une bande passante de 200 kHz.

Audio-Widget


Une version spécifique de la Widget -baptisée Audio Widget- ainsi qu'un firmware spécial sont d'ailleurs disponible à destination des audiophiles.

- Les firmwares sont téléchargeables sur les mêmes dépots Github que ceux de la SDR-Widget

- Cette Audio-Widget n'est destinée qu'à la restitution, et non à l'enregistrement (tandis que la version SDR fonctionne dans les deux sens : conversion N/A et A/N)

- En outre, cette Audio-Widget possède un oscillateur local paramétrable 48/44,1 kHz lui permettant notamment de décoder directement les informations provenant d'un lecteur de CD (la version SDR est pilotée par un oscillateur mono-fréquence à 48kHz).

Il existe deux sources d'approvisionnement pour cette Audio-Widget.

- Le "canal historique" tout d'abord, Yoyodyne Consulting, qui propose deux modèles, la YC-USB5102et la plus récente YC-USB8741. Toutes deux sont fournies "pcb nu", en mode "kit à monter soi-même". Le premier modèle est commercialisé aux environs de 100$ Canadiens (moins cher qu'une version SDR). Le prix du second modèle n'est pas encore déterminé

- la carte AB-1.2 (et bientôt la 1.3), proche cousine de l'Audio Widget, mais commercialisé par Borge, un Norvégien très actif sur le forum diy Audio. La carte est commercialisée 120$ US (970 Couronnes) montée et enfermée dans un boîtier.

Il est possible d'utiliser le firmware de l'Audio-Widget sur une SDR-Widget, mais cette dernière ne sera pas capable de gérer le canal "entrée micro" (conversion A/N) et ne sera pas compatible avec les sources échantillonnées en 44,1 kHz (mais le sera tout de même avec tous les sons d'origine "informatique").

Les cartes Audio-Widget fonctionnent indifféremment sous Linux et Windows. Le mode USB Audio 2 sous Windows nécessite l'installation d'un driver ASIO (une version open source est téléchargeable sur le Github consacré aux Widget)

Description Technique, Ressources
Une description technique sommaire est disponible sur le site de Georges.

De manière très schématique, la Widget est à la fois un processeur audio émission et réception (CAN CNA 24 bits), et un microcontroleur destiné à piloter les éléments vitaux d'un transceiver SDR. Elle assure les fonctions suivantes :

- carte son haute qualité 48/96/192khz 24 bit sous Windows (pilote ASIO), Linux et OSX

- controle émission-réception (PTT)

- contrôle de la fréquence méthode DG8SAQ (pour VCXO Si570) - contrôle de l'étage final (PA) en fonction des informations provenant d'un réflectomètre (SWR)

- contrôle de la température du PA

- contrôle et commutation des filtres de bande (cross-over paramétrable)

- gestion d'un afficheur 4 lignes

- prise en charge d'un encodeur optique de commande

Les différents firmwares peuvent être téléchargés sur le dépot google-code SDR-Widget

Plusieurs groupes de discussion anglophones réunissent des utilisateurs de la Widget. Notamment les google groups Mobokits, sdr-Widget,sans oublier le groupe francophone SDR Software

Un site Web est dédié aux Mobo 4.3 (extension du Softrock), à la version CMS du Softrock baptisé SR63NG (softrock 6.3 New Generation, encore une production Yoyodyne) et bien entendu à la Widget. On y trouve notamment les assignations de brochage des différents connecteurs

Rob, M0ZRF, a écrit des choses très intéressantes sur les possibles améliorations d'un SDR de type I/Q architecture QSE/QSD et carte de sortie audio -dont notamment la Widget qu'il utilise-.

Réalisation
La réalisation ne devrait poser aucun problème pour une personne habituée à souder des composants CMS. Une certaine attention et une bonne loupe ou une binoculaire sont cependant nécessaire pour au moins un composant en particulier : le processeur 32 bits Atmel en boitier LQFP144

Les outils nécessaires :

- Un fer à souder avec une panne fine

- Une loupe ou une binoculaire

- du flux (à la résine ou au camphre)

- une bonne pince précelle

- Un flacon d'alcool isopropylique pour nettoyer le surplus de flux (seul solvant qui ne laisse pas de trace)



Prépositionnez le composant après avoir passé une légère couche de flux sur les réserves de soudure. La consistance du flux légèrement pâteux va aide à maintenir le composant en place. Faite attention à la position du détrompeur... ce n'est pas une fois la 144eme broche soudée qu'il faudra s'inquiéter du fait que le composant est ou non soudé dans la bonne position



Placez un très légère goutte de soudure sur la pointe de votre fer, puis soudez une broche située dans l'un des coins du CI. Vérifiez ensuite l'alignement des pattes et des pistes du coté opposé, le centrage du composant sur son empreinte, corrigez de quelques centièmes si nécessaire. Une fois le boitier parfaitement aligné, soudez une ou deux pattes sur le coin opposé du circuit intégré.

- Repassez une légère couche de flux sur le dessus des pattes du circuit

- Re-mouillez la panne de votre fer avec une infime quantité d'étain, puis glissez délicatement la pointe de la panne sur chacune des broches. Le métal en fusion doit, par capilarité, remonter sans problème sur la broche et joindre la couche d'étain "épargnée" du circuit imprimé. Si le circuit a été centré correctement, cette opération ne devrait pas durer plus de deux minutes au total pour les 144 broches. En cas d'excès de soudure, éliminez les "ponts" avec un morceau de tresse à dessouder, puis remouillez le contact ainsi nettoyé.

- Vérifiez les soudures une à une en lumière rasante pour détecter d'éventuels mauvais contacts ou court-circuits.



Il ne reste plus qu'à passer au composant suivant en respectant un ordre de montage simple : les composants situés au centre de la carte en premier, les composants périphériques ensuite, les composants les plus "hauts" en dernier (condensateurs chimiques, connecteurs) car ils sont susceptibles de gêner la brasure de composants plus petits ou de rendre délicate la soudure de composants situés sur l'autre face de la carte.

Le reste du montage n'appelle aucun commentaire particulier. Il suffit de suivre la liste des composants, vérifier la ou les valeurs avec celles portées sur le plan pour enfin souder le composant en place.

A noter :

- Deux points légèrement délicats sur la carte Microcontroleur : ne pas oublier de souder les deux composants ESD1 et ESD2 avant le connecteur mini-USB. Si l'on utilise des connecteurs avec détrompeur, il est nécessaire d'échancrer la base de l'embase de sortie I2C de façon à ce qu'elle n'appuie pas sur R607

- C806 et C807 sont des condensateurs prévus pour le "debouncing" du bouton reset. Ils ne sont pas nécessaires.



Les deux photos ci-après sont des images haute définition des deux cartes de la sdr-Widget,destinées à faciliter le repérage des orientations de composants (condensateurs polarisés, diodes et C.I.). Cliquez deux fois de suite sur chaque document pour obtenir le plus haut niveau de détail.



Micrologiciel
L’injection du firmware de la carte Widget est une procédure simple mais truffée de chausse-trappes, il est recommandé de suivre l’opération pas à pas.

Procédure sous Windows

Une fois les deux cartes achevées et la présence des principales tensions mesurées, il ne reste qu’à associer les deux cartes l’un sur l’autre (via les connecteurs), éventuellement visser une entretoise sur le coté opposé audit connecteur (ce qui aura pour effet de diminuer les contraintes mécaniques), et enfin brancher un câble usb entre la Widget et l’ordinateur.

Aucune des diodes de la carte ne doit s’allumer, le LCD doit afficher deux lignes noires sur les lignes 2 et 4 (ne pas oublier de pousser le contraste à l’aide du potentiomètre situé sur la carte µC).

- Téléchargez et installez la suite de développement Atmel baptisée FLIP

A l’heure où nous rédigeons ces lignes, la dernière version en date porte l’immatriculation 3.4.7.

- Si vous utilisez un Windows 64 bits (Vista, Seven, Windows 8..) Téléchargez le driver signé destiné au processeur Atmel

- Lancer le gestionnaire de périphérique, Il doit afficher un « unknown device » en tête de liste. Double-cliquez sur cette icone, pointez votre souris sur l’onglet « Pilote », et activez le bouton « Mettre à jour le pilote » en spécifiant que le pilote se trouve sur votre ordinateur (celui qui a été téléchargé sur le site AVRFreaks).

Désormais, votre carte Widget est reconnue par le gestionnaire de périphérique et se déclare comme un Atmega 32UC3A.

- Téléchargez la dernière version du firmware destiné à votre matériel sur le dépôt Google Code consacré à la Widget. A l’heure où nous rédigeons ces lignes, ce fichier a pour nom « sdr-widget-2012-10-22.elf ». Enregistrez ce fichiers dans le répertoire « bin » de votre installation de la suite logiciel FLIP (par exemple C:\Program Files (x86)\Atmel\Flip 3.4.7\bin )

- Vérifiez que votre Widget est bien branchée à votre ordinateur via son cordon usb

- Passez en mode « programmation ». Pour ce faire, appuyez et maintenez le bouton « Prog » de la Widget, puis effectuez une brève pression sur le bouton « Reset ». Relachez ensuite le bouton « Prog ».

- Sous Windows, ouvrez une fenêtre de commande (mode caractère), et orientez-vous vers le répertoire « bin » de la suite logicielle FLIP

- Vérifiez que le fichier .elf précédemment téléchargé s’y trouve bien

- Lancez l’ordre suivant en mode commande (attention, l’ordre tient en une ligne)

batchisp -device at32uc3a3256 -hardware usb -operation erase f memory flash blankcheck loadbuffer sdr-widget-2012-10-22.elf program verify start reset 0

a noter que le nom du fichier elf (sdr-widget-2012-10-22.elf dans le cas présent) doit être remplacé par celui que l’on vient de télécharger

L’exécutable Batchisp doit alors afficher l’écran ci-après



Après un reset, la carte Widget doit afficher une séquence de boot puis se stabiliser comme le montre la photo ci-dessous.



Le branchement de la carte elle-même doit être reconnu comme une extension Softrock/PE0FKO



Il ne reste plus qu’à télécharger l’outil de configuration de la carte WidgetControlSetup20110417.exe ou WidgetControl Windows EXE.zip depuis le dépôt Google Code habituel Cet outil permet de configurer la carte en fonction du mode souhaité (UAC1 ou 2, type d'afficheur utilisé, configuration matérielle des CAN et CNA etc)



Un pilote ASIO est également disponible à cette adresse afin de pouvoir utiliser la carte en mode UAC2 192 kHz sous Windows.

Configuration
La configuration peut s'effectuer soit en utilisant le bouton poussoir et la roue codeuse de la carte (menu de configuration), soit par l'intermédiaire du logiciel mentionné ci-dessus. Le menu de configuration ne s'affiche sur l'écran que lorsque la carte Widget est branchée sur le bus I2C qui le relie à un oscillateur Si570. Sont alors disponibles les différents modes de fonctionnement :

- USB Audio Class 1 ou 2,

- mémorisation des limites de "plages" de fréquence,

- réglage des points de commutation des filtres de bande,

- taille du cahier d'évènements (log),

- adresse I2C de l'oscillateur principal

- étalonnage de la fréquence initiale du Si570

- éventuels périphériques propres à la Mobo 4.3 (filtres passe-bas externe, Rosmètre, réglage de polarisation du PA, température du PA etc).

'Nota Bene : si vous utilisez le logiciel Widget control tool, évitez absolument de sélectionner l'image FlashyBlinky''. Ce vieux code a pour effet de désactiver la majorité des I/O de la widget, affichage et bouton Reset y compris. Le logiciel FLIP d'Atmel n'effaçant pas totalement les données stockées en NVRAM, il est impossible de rétablir la configuration fonctionnelle précédente. Le seul moyen de débricker la Widget est alors de flasher le processeur avec le firmware sdr-widget-2011-05-06.elf, d'effectuer un Reset, puis de flasher ensuite avec un firmware plus récent.'''

Réglage de la fréquence de sortie

Ceci est une recette développée par Sid Boyce G3VBV, Linuxien émérite.

Si la Widget est utilisée conjointement avec un SDR "UHFSDR", le facteur de division du Si570 est de 2, et non plus de 4 comme c'est le cas avec les mélangeurs de Tayloe utilisés sur les SDR Softrock ou Flex-1000. Pour configurer ce mode de fonctionnement, il est nécessaire de brancher la Widget sur une station de travail sous Linux et d'installer l'exécutable USBSoftrock (à télécharger sur Google Code ), puis de rédiger le script suivant :

#!/bin/sh usbsoftrock set si570_multiplier 0 0.5 usbsoftrock set si570_multiplier 1 0.5 usbsoftrock set si570_multiplier 2 0.5 usbsoftrock set si570_multiplier 3 0.5 usbsoftrock set si570_multiplier 4 0.5 usbsoftrock set si570_multiplier 5 0.5 usbsoftrock set si570_multiplier 6 0.5 usbsoftrock set si570_multiplier 7 0.5 usbsoftrock set si570_multiplier 8 0.5

... et ainsi de suite, pour chaque "plage" de réception (les 8 premières bandes étant celles délimitant les fréquences amateurs des bandes décamétriques... le 50 MHz pouvant être alors ajouté avec la commande "usbsoftrock set si570_multiplier 9 0.5" par exemple

Cette opération stocke l'information en NVRAM et ne doit être exécutée qu'une seule fois. Les utilisateurs qui ne possèdent pas de machine sous Linux peuvent en installer une dans une machine virtuelle (si la VM gère les ports USB) ou booter à partir d'une clef USB contenant un noyau Linux. Le site Ubuntu.com explique très clairement comment générer une distribution Linux bootable sur clef USB.