Sobre o projeto

fynescope é um protótipo de interface gráfica de usuário e aplicativo de controle para osciloscópios de PC das séries PicoScope 2000B e 2000B MSO. É escrito em Go e construído sobre o kit de ferramentas de widgets Fyne juntamente com o SDK da série PicoScope 2000A. As plataformas suportadas são Linux e Windows 11 (x64, ARM64 / Raspberry Pi 4 e mais recentes). Capacidades principais - Osciloscópio no domínio do tempo f(t): captura de formas de onda multicanal, divisões verticais e de tempo, interpolação linear e sin(x)/x, persistência e uma janela independente de Zoom Temporal para inspeção simultânea em larga escala e em detalhe. - Suporte a sinais mistos (MSO): visualização de canais digitais (D0-D15) para modelos MSO como o 2206B MSO, disparos digitais por borda/padrão, limiares lógicos configuráveis (TTL, CMOS, ECL ou personalizado) e empilhamento flexível de canais. - Disparo: Borda Simples, Borda Avançada, Janela, Intervalo, Largura de Pulso, Largura de Pulso em Janela, Runt, Dropout, Dropout em Janela, Lógica e disparos Complexos multicanal. - Decodificação de protocolo: decodificação UART e SPI integrada em canais analógicos com sobreposições de tokens de quadro em linha e sinalizadores de erro. - Analisador de espectro FFT: análise em tempo real no domínio da frequência com eixos de frequência lineares ou logarítmicos. - Análise de resposta em frequência f(f) / diagramas de Bode: varreduras de frequência automatizadas com gráficos de magnitude e fase, integradas com o AWG integrado ou geradores de sinal SCPI externos. - Modo X-Y f(v): plote um canal em relação a outro para analisar relações de fase e padrões de Lissajous. - Canais virtuais/matemáticos: canais calculados em tempo real a partir de entradas físicas usando expressões arbitrárias (por exemplo chA + chB, chA * chB, deslocamentos e escalonamento) através do motor expr. - Filtros digitais e analógicos: filtros FIR/IIR passa-baixa, passa-alta, passa-banda e rejeita-banda em tempo real com capacidade de fase zero (FiltFilt), além de filtros RLC simulados no modo demo. - Correlação: correlação escalar de Pearson em tempo real e correlação cruzada entre canais. - Gerador de sinal / AWG: controle de geradores de forma de onda arbitrária integrados (senoide, quadrada, triangular, rampa, DC, ruído, varreduras). - Suporte SCPI: controle de geradores de sinal SCPI externos via USB para testes automatizados e geração de diagramas de Bode. - Modo demo sem hardware: simulador de sinal integrado que produz formas de onda analógicas multicanal, padrões digitais, varreduras e ruído, para que toda a interface possa ser explorada sem hardware. - Servidor web remoto e controle por voz: streaming MJPEG ao vivo para um navegador web com comandos de voz mãos-livres via Web Speech API (-webport), protegido por autenticação básica. - API REST HTTPS remota: consulte o status do osciloscópio e configure parâmetros programaticamente (-apiport, -apiauth). Compilação e uso O modo demo é executado sem PicoSDK ou uma cadeia de ferramentas C: go run -tags=demo . -demo. A compilação com suporte a hardware real requer Go 1.27, um compilador C e o SDK oficial do PicoScope (libps2000a). As tags de compilação incluem demo (simulador em Go puro), sim (simulador de hardware que simula a interface do driver C do PicoScope), scpi (controle de gerador SCPI externo para varreduras de Bode) e web (streaming MJPEG e servidor de controle por voz). As opções comuns de CLI abrangem modo demo, escalonamento do tamanho da tela, porta web, porta da API, exportação de GIF, nível de log e saída de versão/sobre. Documentação e limitações O repositório inclui um diretório github-wiki e uma GitHub Wiki online cobrindo primeiros passos, recursos e controles, modo demo, controle de gerador, canais virtuais, modos de disparo, decodificação de protocolo, aumento de resolução, servidor web e controle por voz, testes e depuração, estrutura do programa e limitações. O projeto afirma que alguns recursos do software oficial PicoScope 7 não estão implementados, como medições estatísticas profundas, teste de limite de máscara e protocolos adicionais. As ferramentas de desenvolvimento mencionadas incluem LiteIDE e assistência de codificação por IA. O projeto é licenciado sob BSD 3-Clause e incorpora código e estruturas de API de outros projetos de código aberto e fornecedores de hardware.