À propos du projet

fynescope est une interface graphique prototype et une application de contrôle pour les oscilloscopes PC des séries PicoScope 2000B et 2000B MSO. Il est écrit en Go et construit sur la boîte à outils de widgets Fyne ainsi que sur le SDK de la série PicoScope 2000A. Les plateformes prises en charge sont Linux et Windows 11 (x64, ARM64 / Raspberry Pi 4 et plus récent). Capacités principales - Oscilloscope temporel f(t) : capture de formes d'onde multicanaux, divisions verticales et temporelles, interpolation linéaire et sin(x)/x, persistance, et une fenêtre Time Zoom indépendante pour l'inspection simultanée à grande échelle et en détail. - Prise en charge des signaux mixtes (MSO) : visualisation des canaux numériques (D0-D15) pour les modèles MSO tels que le 2206B MSO, déclenchements numériques sur front/motif, seuils logiques configurables (TTL, CMOS, ECL ou personnalisés), et empilement flexible des canaux. - Déclenchement : Simple Edge, Advanced Edge, Window, Interval, Pulse Width, Window Pulse Width, Runt, Dropout, Window Dropout, Logic, et déclenchements complexes multicanaux. - Décodage de protocole : décodage UART et SPI intégré sur les canaux analogiques avec superpositions de jetons de trame en ligne et indicateurs d'erreur. - Analyseur de spectre FFT : analyse en temps réel dans le domaine fréquentiel avec axes de fréquence linéaires ou logarithmiques. - Analyse de réponse en fréquence f(f) / diagrammes de Bode : balayages de fréquence automatisés avec tracés d'amplitude et de phase, intégrés au générateur AWG intégré ou à des générateurs de signaux SCPI externes. - Mode X-Y f(v) : tracer un canal par rapport à un autre pour analyser les relations de phase et les figures de Lissajous. - Canaux virtuels/mathématiques : canaux calculés en temps réel à partir d'entrées physiques à l'aide d'expressions arbitraires (par exemple chA + chB, chA * chB, décalages et mise à l'échelle) via le moteur expr. - Filtres numériques et analogiques : filtres FIR/IIR passe-bas, passe-haut, passe-bande et coupe-bande en temps réel avec capacité à phase nulle (FiltFilt), plus des filtres RLC simulés en mode démo. - Corrélation : corrélation scalaire de Pearson en temps réel et corrélation croisée entre canaux. - Générateur de signaux / AWG : contrôle des générateurs de formes d'onde arbitraires intégrés (sinus, carré, triangle, rampe, DC, bruit, balayages). - Prise en charge SCPI : contrôle de générateurs de signaux SCPI externes via USB pour les tests automatisés et la génération de diagrammes de Bode. - Mode démo sans matériel : simulateur de signaux intégré produisant des formes d'onde analogiques multicanaux, des motifs numériques, des balayages et du bruit, afin que l'interface complète puisse être explorée sans matériel. - Serveur web distant et contrôle vocal : diffusion MJPEG en direct vers un navigateur web avec commandes vocales mains libres via la Web Speech API (-webport), protégée par authentification de base. - API REST HTTPS distante : interroger l'état de l'oscilloscope et configurer les paramètres par programmation (-apiport, -apiauth). Compilation et utilisation Le mode démo fonctionne sans PicoSDK ni chaîne d'outils C : go run -tags=demo . -demo. La compilation avec prise en charge du matériel réel nécessite Go 1.27, un compilateur C et le SDK PicoScope officiel (libps2000a). Les balises de compilation incluent demo (simulateur pur Go), sim (simulateur matériel simulant l'interface du pilote C PicoScope), scpi (contrôle de générateur SCPI externe pour les balayages de Bode) et web (diffusion MJPEG et serveur de contrôle vocal). Les options CLI courantes couvrent le mode démo, la mise à l'échelle de la taille d'écran, le port web, le port API, l'export GIF, le niveau de journalisation et la sortie version/à propos. Documentation et limitations Le dépôt inclut un répertoire github-wiki et un GitHub Wiki en ligne couvrant la prise en main, les fonctionnalités et contrôles, le mode démo, le contrôle du générateur, les canaux virtuels, les modes de déclenchement, le décodage de protocole, l'augmentation de résolution, le serveur web et le contrôle vocal, les tests et le débogage, la structure du programme et les limitations. Le projet indique que certaines fonctionnalités du logiciel officiel PicoScope 7 ne sont pas implémentées, telles que les mesures statistiques approfondies, le test de limite de masque et des protocoles supplémentaires. Les outils de développement mentionnés incluent LiteIDE et l'assistance au codage par IA. Le projet est sous licence BSD 3-Clause et intègre du code et des structures d'API provenant d'autres projets open source et de fournisseurs de matériel.