- À 18 $ chez Elecrow, cette carte réunit un oscilloscope 18 Msps, un analyseur logique à signaux mixtes et un générateur de formes d’onde intégré, pour servir d’instrumentation low cost de labo et d’enseignement
- Le pilotage se fait sans application dédiée, depuis un navigateur basé sur Chromium via WebUSB/Web Serial, avec des tests validés sur Windows, macOS, Linux, ChromeOS et Android
- L’entrée analogique utilise un ADC 12 bits offrant jusqu’à 18 Msps et une bande passante exploitable d’environ 4 MHz, tandis que 9 entrées numériques sont échantillonnées en même temps que l’entrée analogique
- L’interface web gère le déclenchement, la capture différée, les mesures et l’étalonnage, et la sortie de forme d’onde basée sur DAC monte à 40 kHz, tandis que le signal carré peut atteindre 4 MHz
- Pour maintenir un prix bas, le design s’appuie sur des composants non précis et sur l’étalonnage, ce qui impose des limites en précision de tension, bruit, AC coupling, masse USB et compatibilité avec certains navigateurs mobiles
Configuration de base d’une carte d’instrumentation USB à 18 $
- Flea-Scope est une carte low cost combinant oscilloscope USB, analyseur logique à signaux mixtes et générateur de formes d’onde intégré
- Le prix annoncé est de 18 $ chez Elecrow
- Le contrôle s’effectue via une page web, sans installation d’application dédiée
- Elle utilise l’API WebUSB ou l’API Web Serial dans un navigateur basé sur Chromium
- La connexion depuis un ordinateur, une tablette ou un téléphone est prise en charge
- L’utilisateur connecte l’appareil avec un câble de données micro-USB, ouvre
flea-scope.html, puis sélectionne le périphérique USB ou le port série dansStart Connect - Sous Ubuntu Linux, il faut exécuter
sudo adduser user dialout,sudo adduser root dialout, puis se déconnecter
Spécifications matérielles de mesure
- L’entrée analogique est de 1 canal et prend en charge un échantillonnage jusqu’à 18 Msps via un ADC 12 bits
- La bande passante analogique exploitable est d’environ 4 MHz
- Un connecteur BNC pleine taille est fourni
- L’impédance d’entrée est de 1 Mohm, 14 pF
- Avec une sonde x1 : -6V à +6V, résolution de 10 mV
- Avec une sonde x10 : -60V à +60V, résolution de 100 mV
- Prise en charge du DC coupling ou du digital AC coupling
- L’analyseur logique dispose de 9 entrées numériques, échantillonnées simultanément avec l’entrée analogique
- Compatible avec des niveaux logiques 3,3 V ou 5 V
- Les modes de déclenchement pris en charge sont auto, level, rise, fall
- La plage de déclenchement/capture différée va de 0us à 1s
- La broche
trigger outpermet de faire fonctionner plusieurs Flea-Scope ensemble pour obtenir davantage de canaux
- La précision visée est d’environ 2 % pour la tension comme pour le timing
- La carte mesure 1" x 3" ou 2,54 cm x 7,62 cm
Génération de formes d’onde et mesures dans l’interface web
- La sortie de signal de test fonctionne de deux façons
- La forme d’onde arbitraire basée sur DAC génère des signaux sine, triangle et ekg jusqu’à 40 kHz
- Le signal carré peut monter jusqu’à 4 MHz
- Les formes d’onde basées sur DAC répètent 100 points par période
- À 40 kHz en forme d’onde arbitraire, le DAC génère les points à 4 Msps
- Par défaut, la broche
wave outproduit un signal sinusoïdal de 1 kHz - L’interface web fournit une zone d’affichage analogique et une zone d’affichage numérique
- Elle affiche la tension moyenne, peak-to-peak et RMS
- La fonction
measurepermet de mesurer le temps et la tension d’un point, ou l’écart de temps, l’écart de tension et la fréquence entre deux points
- Les boutons
pause,resume,singlepermettent d’arrêter les captures répétées ou d’effectuer une capture sur déclenchement unique
Déclenchement et échelles de temps/tension
- L’échelle horizontale se règle de 0.5us/div à 100ms/div
- Toute la zone d’affichage est composée de 10 divisions
- Environ 1000 échantillons sont capturés de la gauche à la droite de l’écran, avec environ 1000 échantillons supplémentaires capturés au-delà de la partie droite et consultables par défilement
- Dans la plage la plus rapide, 2.5us/div et moins, les échantillons capturés sont affichés avec un zoom horizontal
- Dans ce cas, le nombre d’échantillons visibles par division peut être d’environ 50, 20 ou 10 au lieu d’environ 100
- Le déclenchement analogique fonctionne avec une ligne de tension définie et les modes
auto,level,rise,fall- En mode
auto, si aucun déclenchement n’a lieu dans les 100 ms, un déclenchement automatique est lancé pour éviter un écran vide - Les modes
riseetfallse basent sur les transitions de tension après un filtrage numérique sur 3 échantillons
- En mode
- Le déclenchement numérique s’utilise en réglant les bits
b0àb8sur0,1ou don't care- Le bouton
clearremet tous les bits du déclenchement numérique sur don't care et revient au déclenchement analogique
- Le bouton
- La capture différée attend le temps défini après le déclenchement avant de capturer les échantillons
- Le suffixe
mindique les millisecondes etules microsecondes - Le délai maximal est de 1 seconde
- Le suffixe
Étalonnage et plage d’entrée
- Avant utilisation, il faut étalonner le Flea-Scope et la sonde
- Les modes de sonde x1 et x10 ont chacun leurs propres valeurs d’étalonnage
- Les valeurs d’étalonnage sont stockées de façon permanente dans la flash du MCU
- Les commandes
newouclear flasheffacent les valeurs d’étalonnage
- L’étalonnage consiste à connecter successivement 0 V puis 3,3 V et à appuyer sur
cal_zero,cal_3v3- Il faut répéter l’opération en mode x1 et en mode x10
- La compensation de la sonde x10 peut être ajustée à l’aide de la sortie signal carré 1 kHz du Flea-Scope
- Les modes de signal disponibles sont unipolar, bipolar et digital AC coupling
- La valeur par défaut est unipolar, avec affichage des tensions positives par rapport à la masse USB
acaffiche le signal par rapport à la tension moyenne numérique
- L’échelle verticale est par défaut de 0V à 3.3V, et l’interface permet de choisir une pleine échelle de 0,5 V à 6,6 V
- Réduire la plage d’affichage verticale n’augmente pas la résolution de capture analogique
- En dessous de 0.33V de plage affichée, les échantillons capturés sont affichés avec un zoom vertical
Limites et précautions d’un design low cost
- Flea-Scope vise un appareil peu coûteux et « suffisamment bon », en s’appuyant sur des composants non précis et sur l’étalonnage
- L’ADC fonctionne en mode 12 bits et ne dispose que d’une seule plage de tension d’entrée
- La résolution verticale théorique est d’environ 4 mV
- Le plancher de bruit est d’environ +/-10 à 15 mV
- Si un vrai AC coupling est nécessaire ou si l’offset DC dépasse la plage d’entrée de l’ADC, il peut être mis en œuvre avec un condensateur externe de 0.1uF
- Le retard de déclenchement est inférieur à 1us
- En cas d’usage avec un vieux PC à fiche 3 broches ou si une boucle de masse est à craindre, il est recommandé d’utiliser un isolateur USB full-speed pour isoler le fil de masse de la sonde d’oscilloscope de la masse du PC
- Le générateur de forme d’onde arbitraire basé sur DAC peut produire du bruit, surtout à haute fréquence, en raison d’une vitesse de conversion de 1 Msps et de l’absence de double buffer
Bande passante et compatibilité des plateformes
- Lors d’un test sur signal carré à 1 MHz, l’appareil montre une fidélité de signal conforme à ce qu’on attend d’un oscilloscope échantillonnant à 18 Msps
- Lors d’un test à 4 MHz, le niveau reste au-dessus de la coupure de bande passante analogique typique d’un oscilloscope à -3 dB, 70.7 %, mais la limite de Nyquist restreint la fidélité du signal
- Tests effectués sous Windows, macOS, Linux, ChromeOS et Android
- Les navigateurs testés sont Google Chrome et Microsoft Edge
- Sous macOS, choisir Web Serial plutôt que WebUSB sur la page
manualpeut offrir de meilleures performances
- Des informations sur WebUSB et Web Serial sont disponibles ici : WebUSB et Web Serial
- Les iPhone et iPad ne fonctionnent pas encore avec Flea-Scope, car le JavaScript du navigateur n’expose pas les périphériques USB à WebUSB ni à Web Serial
- Certains téléphones Samsung capturent le périphérique USB via leur pilote série sans ensuite l’exposer au navigateur par Web Serial, ce qui le rend inaccessible au JavaScript
- Avec le firmware v2.27j, il est possible de forcer l’exposition d’un endpoint USB non CDC/ACM en reliant la broche
a0à la masse lors de la mise sous tension - On peut ensuite utiliser une méthode de contournement en cliquant sur
USBau lieu deCommdans la pagemanual
- Avec le firmware v2.27j, il est possible de forcer l’exposition d’un endpoint USB non CDC/ACM en reliant la broche
Deep Dive Interactive Mode et reprogrammation
- En ouvrant
stickos-basic.htmlau lieu deflea-scope.html, on accède directement via terminal à l’environnement StickOS BASIC exécuté sur le MCU- Une seule page web peut ouvrir Flea-Scope à la fois, il faut donc fermer la fenêtre
flea-scope.htmlexistante
- Une seule page web peut ouvrir Flea-Scope à la fois, il faut donc fermer la fenêtre
- StickOS BASIC est un environnement de programmation interactif embarqué dans le MCU
- Il inclut un éditeur de programmes, un compilateur ligne par ligne, un débogueur interactif, l’edit-and-continue, un profileur de performances et un système de fichiers flash
- Le MCU est un PIC32MK0512GPK064 à 120 MHz
- Les performances en BASIC atteignent environ 150 000 lignes par seconde
- En deep-dive interactive mode, les 18 broches d’E/S multifonctions peuvent être configurées de manière interactive
- digital input/output
- analog input/output PWM
- frequency output
- servo output PWM
- I2C master
- SPI master
- UART input/output
- La commande
hostname hostnamepermet de définir un nom pour distinguer plusieurs Flea-Scope via l’USB et l’interface web- Après changement du hostname, il faut réinitialiser avec le bouton MCLR
- Le connecteur ICSP à 6 broches permet de reprogrammer directement la carte en C avec Microchip Pickit 3, Pickit 4, Snap programmer et MPLAB X
- On peut commencer avec le dépôt GitHub
hello - Après les travaux, on peut revenir au firmware Flea-Scope avec
board/pic32.X.27*.production.hexdu dépôt StickOS2
- On peut commencer avec le dépôt GitHub
1 commentaires
Avis sur Hacker News
Vu le prix, ce petit appareil est vraiment excellent.
Le titre du post gagnerait à être corrigé pour faire apparaître aussi la fonction générateur de fonctions/de formes d’onde, plutôt que simplement « More ».
C’est peut-être pour cela que la plupart des commentaires semblent se concentrer uniquement sur la partie oscilloscope.
Quiconque a un peu fait d’électronique sait qu’un établi typique se compose d’un oscilloscope, d’un analyseur logique, d’un générateur de formes d’onde, d’un multimètre numérique et, en général, d’une alimentation 12 V DC.
Cet oscilloscope/générateur hybride pour signaux à 18 dollars semble pouvoir assurer la plupart de ces fonctions, et le fait qu’elles soient intégrées dans un seul appareil, sans avoir à synchroniser séparément les instruments, est aussi un gros avantage.
Avec une configuration à l’ancienne de type établi électronique HP/Agilent/Keysight, composée d’appareils séparés, on arrive facilement à des dizaines de milliers de dollars.
En version moderne, il y a les séries Digilent Discovery Pro 3000/4000/5000, décrites comme « All-In-One High-Speed Mixed Signal Oscilloscope, Function Generator, Power Supply, and DMM », et elles se situent dans les milliers de dollars.
Les séries Digilent Discovery 1/2/3, moins chères, coûtent aussi environ 400 dollars, mais leur bande passante et leurs ressources sont assez limitées, ce qui les rend plus comparables au Flea-Scope.
[1] Digilent Analog Discovery 3 vs. Digilent Pro ADP2230 [video] :
https://youtu.be/yr9SGxiBAnI
Cet appareil a tellement de fonctions originales, intéressantes et utiles qu’il y a trop d’éléments à mettre dans le titre.
Modification : dommage, on dirait qu’il n’est plus possible de changer le titre du post.
Je débarque ici.
Un commentaire plus bas est un peu trompeur : ce n’est pas 100 Msps, mais 18 Msps, donc il faut plutôt le voir comme adapté, avec une fidélité raisonnable, à des signaux d’environ 1 MHz ou moins.
Il n’utilise pas un STM32 mais un PIC32, et l’ADC est en 12 bits, mais à cause du plancher de bruit, on est en pratique plus proche de 10 à 11 bits.
Cela dit, la possibilité de faire à la fois de la capture numérique et de la génération de formes d’onde est sympa, mais dans l’ensemble c’est un appareil assez simple.
L’objectif était d’en mettre un à chaque place dans les salles de classe qui disposent déjà d’un ordinateur, d’une tablette ou d’un Chromebook, et de faire en sorte que « ça marche, tout simplement ».
Ce que je préfère, c’est l’accès via JavaScript. Une simple page web suffit pour l’interface graphique, sans installation de logiciel ni app store.
Pour approfondir les expériences en classe, on peut utiliser une page web séparée de type « deep dive » avec une interface en ligne de commande pour se connecter de manière interactive, et contrôler programmatiquement toutes les broches en BASIC.
On peut aussi configurer la carte pour qu’un programme BASIC se lance automatiquement à la mise sous tension.
Avec 4 interrupteurs, 4 LED, un buzzer et environ 100 lignes de code, on peut faire un jeu « Simon » ; avec un thermocouple, un amplificateur opérationnel et un relais statique, on peut aussi fabriquer un contrôleur de température pour four grille-pain de refusion. C’est d’ailleurs ainsi que le prototype a été réalisé.
Ce qui est bien, c’est que l’accès JavaScript côté hôte est toujours fourni gratuitement, et que le BASIC peut communiquer directement avec l’ordinateur hôte. Par exemple, il peut lancer Python ou PowerShell.
Les exemples sont ici : https://rtestardi.github.io/pages/
Les applications automobiles étaient aussi intéressantes. Avec le Flea-Scope, il est facile de sortir seulement un téléphone ou une tablette pour mesurer un capteur de vilebrequin. Sans ça, on se retrouve à suivre un arbre de diagnostic en devinant et à remplacer des pièces au hasard.
Les licences sont entièrement open source, tout le monde peut le refaire et même le vendre.
Le BASIC interne est breveté, mais les builds logiciels que j’ai créés, testés et publiés disposent d’une licence perpétuelle.
En théorie, on pourrait aussi fabriquer l’oscilloscope sans BASIC. Il n’est pas nécessaire sauf lorsqu’on utilise la carte en mode « deep dive » pour programmer en BASIC.
Si cela intéresse quelqu’un, j’ai aussi réfléchi à un Mosquito-Scope : un appareil basé sur le dsPIC33A, encore tout récent, avec 2 canaux et un gain d’entrée sélectionnable pour traiter des signaux submillivolt ; le dsPIC33A est en fait moins cher et plus rapide que le PIC32MK.
-- Rich
À condition toutefois que l’interface soit un peu améliorée pour pouvoir gérer plusieurs oscilloscopes simultanément.
Cela permettrait de garder un petit format tout en évitant des compromis de conception.
Il est clair que vous avez beaucoup réfléchi aux éléments nécessaires pour réussir.
Rien ne remplace vraiment le fait que chaque étudiant ait son propre environnement d’expérimentation.
Quand j’ai découvert les oscilloscopes, toute la classe partageait un énorme Tek série 7k, qui était alors du très haut de gamme ; j’ai appris les bases, mais je n’ai vraiment appris à m’en servir utilement que lorsque j’ai eu mon propre oscilloscope, pourtant bien moins fonctionnel.
Au passage, si vous êtes nouveau ici, sachez que lorsqu’une personne publie quelque chose en disant « je l’ai fait moi-même », il est courant que des commentaires relèvent de petits problèmes comme s’il s’agissait de grosses erreurs, disent qu’ils auraient fait bien mieux, ou demandent pourquoi l’avoir fabriqué puisqu’ils ont acheté moins cher sur Alibaba.
Bien sûr, il y aura aussi quelqu’un pour dire qu’il aurait fallu l’écrire en Rust. Il suffit d’ignorer tout ça.
Je suis satisfait de cet analyseur logique acheté sur Amazon pour un prix similaire, autour de 13 dollars
J’ai dépensé plus pour les sondes que pour l’analyseur. Les sondes coûtaient 24 dollars ;-)
Pour le faire fonctionner, j’utilise SigRock/PulseView, et il est reconnu comme un clone compatible
C’est étonnant de pouvoir voir des signaux d’une largeur de quelques dizaines de nanosecondes pour si peu cher
[1] https://www.amazon.com/dp/B077LSG5P2
[2] https://www.amazon.com/dp/B0CLB63GL3
[3] https://sigrok.org/wiki/PulseView
Il se déconnecte sans arrêt et pose aussi des problèmes d’énumération du périphérique. Je n’ai pas encore essayé sigrok
En faisant monter et descendre plusieurs broches GPIO avant et après les sections importantes du code, on peut voir le résultat dans SigRock
Quand on utilise un oscilloscope USB, il faut faire attention aux boucles de masse
La plupart des oscilloscopes USB bon marché partagent la masse avec le PC via le port USB
Si l’on mesure des circuits haute tension, par exemple le secteur ou une alimentation à découpage, cela peut créer une différence de potentiel dangereuse, endommager l’ordinateur ou entraîner des risques encore plus graves
Certains oscilloscopes proposent des entrées isolées, mais sinon il faut utiliser une sonde différentielle ou un transformateur d’isolement
À défaut, on risque de se retrouver à déboguer non pas le circuit, mais le contrôleur USB grillé de son ordinateur portable
J’ai même vu de la fumée sortir d’une aération, mais le reste de l’ordinateur a survécu
Ça donne une impression de magie
Pour comparaison, voici à quoi ressemble un oscilloscope USB à 2 dollars. Il est à 800 ksps et propose 2 plages de tension : https://files.catbox.moe/0t0dq3.jpg
Ce genre de projet aurait été une bénédiction il y a 20 ou 30 ans, à l’époque où même un oscilloscope de base coûtait aussi cher qu’une voiture d’occasion
Aujourd’hui, on trouve pour 300 dollars des oscilloscopes plutôt bons, avec une bande passante de 200 MHz, une bonne interface utilisateur et un affichage réactif. Je parle de modèles comme ceux de Siglent, Rigol ou UNI-T
Du coup, l’intérêt de fabriquer soi-même quelque chose de nettement inférieur n’est plus aussi grand qu’avant
Un oscilloscope est un appareil qu’on utilise pour dépanner toutes ses autres conceptions, donc mieux vaut qu’il soit fiable, facile à utiliser et précis
Bien sûr, il y a de la valeur à le réaliser et à le publier comme projet amusant et geek. Mais plutôt une fois qu’on possède déjà un vrai oscilloscope
Si l’on est tout juste en train de s’équiper, il vaut mieux, pour son propre bien, dépenser un peu plus. Le reste du matériel est moins critique
300 dollars se situent assez haut par rapport aux salaires minimums dans le monde[1], et dans un pays comme le mien, le prix peut facilement doubler
En plus, les personnes qui pourraient vraiment tirer parti de ce genre d’appareil, par exemple des lycéens, ont généralement beaucoup moins d’argent disponible
C’est encore plus vrai si l’on tient compte de l’effet secondaire consistant à le fabriquer soi-même et à en apprendre le fonctionnement
[1] https://en.wikipedia.org/wiki/List_of_countries_by_minimum_wage
Si je ne sais pas exactement à quoi cela va me servir, je ne dépenserai pas 300 dollars, mais 20 dollars, c’est facile, et 2 dollars, ça devient un achat impulsif
Elle offre un front-end ADC 12 bits, une saisie tactile réellement utilisable et un contrôle à distance très simple via la connexion réseau. Cela dit, vérifier l’adresse IP uniquement avec l’écran tactile est un peu pénible
L’alimentation se fait en USB-C, donc on peut aussi l’utiliser avec une batterie externe si on le souhaite
Tous les décodeurs indispensables comme I2C, SPI et UART sont intégrés gratuitement
Elle est compatible avec les supports VESA, ce qui m’a permis de la monter sur un bras d’écran et de récupérer de la place sur le bureau, et j’apprécie vraiment cette fonction
Il est aussi très facile de hacker un modèle d’entrée de gamme pour le transformer en modèle 250 MHz :D
À mon avis, une faible barrière à l’entrée dans presque toutes les dimensions est un élément central de cet objectif
[0]: https://www.youtube.com/watch?v=sbRXDkHS_V0
Pour un professionnel col blanc aux États-Unis, c’est peut-être vrai
Mais pour la majeure partie de la population mondiale, la différence entre 300 dollars et 18 dollars est énorme
Correction : la licence se compose d’ARR, de domaine public et de MIT
https://github.com/rtestardi/StickOS2/blob/main/license.txt
https://github.com/rtestardi/usbte/blob/master/LICENSE
Appeler cela FOSS est tout à fait inexact
Certaines parties sont tous droits réservés, d’autres dans le domaine public, et d’autres réservées à un usage non commercial
Le domaine public n’est pas de l’open source, et ce n’est surtout pas libre au sens de free
Une restriction d’usage commercial n’est pas non plus du logiciel libre
Au mieux, on peut dire que ce projet est partiellement à source disponible (source-available)
Je peux recommander cet appareil à quelqu’un qui commence tout juste à apprendre l’électronique
J’en ai reçu un avec la Hackerbox 102[1], et je l’ai trouvé d’un bon rapport qualité-prix compte tenu de la bande passante
En en parlant avec des amis ingénieurs, j’ai eu, comme prévu, des réactions du type « ce n’est qu’un jouet », et il a clairement beaucoup de limites
Mais même dans ces limites, il offre de nombreuses occasions d’enseigner des sujets comme l’électronique analogique, où la meilleure façon d’apprendre est de voir les signaux directement
Les débutants ne savent souvent même pas pourquoi ils ont besoin d’un oscilloscope ; c’est donc une assez bonne façon d’introduire l’outil sans leur imposer une grosse courbe d’apprentissage liée à des fonctions qu’ils n’utiliseront pas pendant leur première année d’apprentissage :-)
Plus tard, lorsqu’ils choisiront l’un des excellents appareils de labo, ils ne seront pas totalement dans le flou sur ce que font les fonctions d’un oscilloscope
Donc, à 20 dollars, je trouve que c’est une bonne affaire, et je l’ai recommandé à des personnes qui commencent à apprendre ce genre de choses
[1] https://hackerboxes.com/collections/past-hackerboxes/products/hackerbox-0102-flea-scope et le guide d’expérimentation https://www.instructables.com/HackerBox-0102-Flea-Scope/
Cela me fait penser à l’EspoTek Labrador, dans une gamme de prix similaire
https://espotek.com/labrador/
L’architecture hybride FPGA/MCU du Flea-Scope pour le streaming USB est astucieuse. Le fait de gérer la capture à 100 MS/s via le pipelining FPGA et de confier la conversion de protocole à un STM32 semble intéressant côté coût
Mais la résolution ADC 8 bits et l’absence de réseau de protection en entrée sont risquées avec des signaux non atténués, par rapport au frontal 1 MΩ//20 pF de Rigol et à son écrêtage des surtensions
L’outil d’analyse en Python, qui utilise NumPy/SciPy pour la FFT au lieu d’un DSP intégré, répartit joliment les ressources, et on pourrait bientôt voir du Jupyter
Ce n’est pas non plus proche de 100 Msps, mais seulement 18 Msps, et les spécifications indiquent 12 bits
Je me demande si ce commentaire a été écrit avec l’aide d’une IA, ou si vous parlez d’un autre appareil