Flea-Scope: osciloscópio USB e analisador lógico open source de US$ 18 [PDF]
(rtestardi.github.io)- Por US$ 18 na Elecrow, reúne em uma única placa um osciloscópio de 18 Msps, um analisador lógico de sinais mistos e um gerador de formas de onda embutido, podendo ser usado como instrumento de medição de baixo custo para experimentos e ensino
- É controlado por WebUSB/Web Serial em um navegador baseado em Chromium, sem aplicativo separado, e foi testado em Windows, macOS, Linux, ChromeOS e Android
- A entrada analógica usa um ADC de 12 bits e oferece até 18 Msps e cerca de 4 MHz de largura de banda utilizável, enquanto 9 entradas digitais são amostradas simultaneamente junto com a entrada analógica
- A interface web lida com trigger, captura com atraso, medições e calibração, e a forma de onda baseada em DAC sai em até 40 kHz, enquanto a square wave vai até 4 MHz
- Para manter o preço baixo, depende de componentes não precisos e de calibração, então há limitações em precisão de tensão, ruído, AC coupling, aterramento USB e compatibilidade com alguns navegadores móveis
Configuração básica da placa de instrumentação USB de US$ 18
- O Flea-Scope é uma placa de baixo custo que combina osciloscópio USB, analisador lógico de sinais mistos e gerador de formas de onda embutido
- O preço indicado é de US$ 18 na Elecrow
- O controle é feito por uma página web, sem instalar aplicativo separado
- Usa a WebUSB API ou a Web Serial API em navegadores baseados em Chromium
- Suporta conexão com computador, tablet e celular
- O usuário conecta o dispositivo com um cabo de dados micro-USB, abre
flea-scope.htmle, emStart Connect, seleciona o dispositivo USB ou a porta serial - No Ubuntu Linux, é necessário executar
sudo adduser user dialout,sudo adduser root dialoute depois fazer logout
Especificações do hardware de medição
- A entrada analógica tem 1 canal e suporta amostragem de até 18 Msps com ADC de 12 bits
- A largura de banda analógica utilizável é de cerca de 4 MHz
- Fornece conector BNC de tamanho padrão
- A impedância de entrada é 1 Mohm, 14 pF
- Com sonda x1: -6V~+6V, resolução de 10 mV
- Com sonda x10: -60V~+60V, resolução de 100 mV
- Suporta DC coupling ou digital AC coupling
- O analisador lógico digital tem 9 entradas, amostradas simultaneamente junto com a entrada analógica
- Compatível com níveis lógicos de 3,3 V ou 5 V
- Os modos de trigger suportam auto, level, rise, fall
- O intervalo de trigger/captura com atraso é de 0us~1s
- O pino
trigger outpermite operar vários Flea-Scope juntos para lidar com mais canais
- A precisão-alvo é de cerca de 2% tanto em tensão quanto em temporização
- O tamanho da placa é 1" x 3" ou 2,54 cm x 7,62 cm
Geração de formas de onda e medições na interface web
- A saída de forma de onda de teste funciona de duas maneiras
- A forma de onda arbitrária baseada em DAC gera senoide, triângulo e ekg em até 40 kHz
- A square wave vai até 4 MHz
- A forma de onda baseada em DAC repete 100 pontos por período
- Em uma forma de onda arbitrária de 40 kHz, o DAC gera pontos a 4 Msps
- No estado padrão, o pino
wave outfornece uma senoide de 1 kHz - A interface web oferece área de exibição analógica e área de exibição digital
- Exibe tensão média, peak-to-peak e RMS
- O recurso
measurepermite medir tempo e tensão de um ponto, ou diferença de tempo, diferença de tensão e frequência entre dois pontos
- Os botões
pause,resume,singlepermitem interromper a captura repetida ou realizar uma captura com trigger único
Trigger e escalas de tempo e tensão
- A escala horizontal pode ser ajustada no intervalo de 0.5us/div~100ms/div
- A área de exibição inteira é composta por 10 divisões
- Da esquerda para a direita da tela, captura cerca de 1000 amostras e, além da borda direita, captura mais cerca de 1000 amostras que podem ser vistas com rolagem
- Na faixa de escala horizontal mais rápida, de 2.5us/div ou menos, as amostras capturadas são exibidas com ampliação horizontal
- Nesse caso, o número de amostras visíveis por divisão pode cair de cerca de 100 para 50, 20 ou 10
- O trigger analógico funciona com a combinação da linha de tensão especificada e dos modos
auto,level,rise,fallautoaciona automaticamente se não houver trigger em 100 ms, para que a tela não fique vaziariseefalloperam com base na transição de tensão após filtragem digital de 3 amostras
- O trigger digital é usado configurando os bits
b0~b8como0,1ou don't care- O botão
clearredefine todos os bits do trigger digital para don't care e volta ao trigger analógico
- O botão
- A captura com atraso espera o tempo especificado após o trigger antes de capturar as amostras
- O tempo usa o sufixo
mpara milissegundos e o sufixoupara microssegundos - O atraso máximo é de 1 segundo
- O tempo usa o sufixo
Calibração e faixa de entrada
- Antes do uso, é necessário calibrar o Flea-Scope e a sonda
- Os modos de sonda x1 e x10 têm valores de calibração separados
- Os valores de calibração são armazenados permanentemente na flash do MCU
- Se o comando
newouclear flashfor usado, os valores de calibração serão apagados
- A calibração é feita conectando 0 V e 3,3 V separadamente e clicando em
cal_zeroecal_3v3- Isso deve ser repetido nos modos x1 e x10
- A compensação da sonda x10 pode ser ajustada usando a saída de square wave de 1 kHz do Flea-Scope
- O modo de sinal pode ser escolhido entre unipolar, bipolar e digital AC coupling
- O padrão é unipolar, exibindo tensão positiva em relação ao USB ground
acexibe o sinal com base na tensão média digital
- A escala vertical padrão é 0V~3.3V, e na interface é possível escolher faixas full scale de 0,5 V a 6,6 V
- Reduzir a faixa vertical exibida não aumenta a resolução da captura analógica
- Em faixas de exibição de 0,33 V ou menos, as amostras capturadas são exibidas com ampliação vertical
Limitações e cuidados do projeto de baixo custo
- O Flea-Scope busca ser um dispositivo barato e “bom o suficiente”, dependendo de componentes não precisos e calibração
- O ADC opera em modo de 12 bits e há apenas uma faixa de tensão de entrada
- A resolução vertical teórica é de cerca de 4 mV
- O piso de ruído é de cerca de +/-10~15 mV
- Quando é necessário AC coupling real ou quando o offset DC ultrapassa a faixa de entrada do ADC, isso pode ser implementado com um capacitor externo de 0.1uF
- O atraso de trigger é menor que 1us
- Se estiver usando um PC antigo com plugue de 3 pinos ou houver preocupação com ground loop, recomenda-se usar um isolador USB full-speed para separar o fio ground da sonda do osciloscópio do ground do PC
- O gerador de formas de onda arbitrárias baseado em DAC pode gerar ruído, especialmente em frequências altas, devido à velocidade de conversão de 1 Msps e à ausência de double-buffer
Largura de banda e compatibilidade de plataforma
- No teste com square wave de 1 MHz, mostrou fidelidade de sinal no nível esperado para um osciloscópio de 18 Msps
- No teste de 4 MHz, ainda ficou acima do cutoff de largura de banda analógica de -3 dB, 70.7% típico de osciloscópios comuns, mas o limite de Nyquist restringe a fidelidade do sinal
- Foi testado em Windows, macOS, Linux, ChromeOS e Android
- Os navegadores testados foram Google Chrome e Microsoft Edge
- No macOS, selecionar Web Serial em vez de WebUSB na página
manualpode oferecer melhor desempenho
- As informações sobre WebUSB e Web Serial podem ser consultadas em WebUSB e Web Serial
- iPhone e iPad ainda não funcionam com o Flea-Scope porque o JavaScript do navegador não expõe dispositivos USB a WebUSB ou Web Serial
- Alguns celulares Samsung ocupam o dispositivo USB com o driver serial, mas depois não o expõem ao navegador por Web Serial, impedindo o acesso por JavaScript
- No firmware v2.27j, é possível forçar a exposição de um endpoint USB non-CDC/ACM conectando o pino
a0ao ground ao ligar a alimentação - Depois disso, pode-se usar a alternativa de clicar em
USBem vez deCommna páginamanual
- No firmware v2.27j, é possível forçar a exposição de um endpoint USB non-CDC/ACM conectando o pino
Deep Dive Interactive Mode e reprogramação
- Ao abrir
stickos-basic.htmlem vez deflea-scope.html, é possível acessar diretamente por terminal o ambiente StickOS BASIC executado no MCU- Como apenas uma página web pode abrir o Flea-Scope ao mesmo tempo, é preciso fechar a janela existente de
flea-scope.html
- Como apenas uma página web pode abrir o Flea-Scope ao mesmo tempo, é preciso fechar a janela existente de
- O StickOS BASIC é um ambiente de programação interativo dentro do MCU
- Inclui editor de programas, compilador line-by-line, depurador interativo, edit-and-continue, profiler de desempenho e sistema de arquivos em flash
- O MCU é um PIC32MK0512GPK064 de 120 MHz
- O desempenho em BASIC é de cerca de 150.000 linhas por segundo
- No deep-dive interactive mode, é possível configurar interativamente 18 pinos de I/O multifunção
- digital input/output
- analog input/output PWM
- frequency output
- servo output PWM
- I2C master
- SPI master
- UART input/output
- O comando
hostname hostnamepermite definir um nome para distinguir vários Flea-Scope na USB e na interface web- Após alterar o hostname, é preciso resetar com o botão MCLR
- Usando o conector ICSP de 6 pinos, é possível reprogramar diretamente a placa em C com Microchip Pickit 3, Pickit 4, Snap programmer e MPLAB X
- É possível começar pelo repositório GitHub
hello - Depois do trabalho, é possível voltar ao firmware do Flea-Scope com
board/pic32.X.27*.production.hexdo repositório StickOS2
- É possível começar pelo repositório GitHub
1 comentários
Opiniões no Hacker News
Considerando o preço, esse aparelhinho é realmente excelente.
Seria melhor ajustar o título do post para deixar claro que ele também tem função de gerador de função/forma de onda, em vez de simplesmente “More”.
Talvez por isso a maioria dos comentários pareça se concentrar apenas na parte de osciloscópio.
Quem já mexeu um pouco com eletrônica sabe que uma bancada típica é composta por osciloscópio, analisador lógico, gerador de formas de onda, multímetro digital e, normalmente, uma fonte de alimentação DC de 12 V.
Este osciloscópio/gerador de sinais híbrido de US$ 18 parece conseguir cumprir a maior parte dessas funções, e o fato de estar tudo integrado em um único dispositivo, sem precisar sincronizar equipamentos separados, também é uma grande vantagem.
Montar isso com equipamentos separados, como em uma bancada de eletrônica HP/Agilent/Keysight à moda antiga, facilmente custa dezenas de milhares de dólares.
Numa versão moderna, há as séries Digilent Discovery Pro 3000/4000/5000, descritas como “All-In-One High-Speed Mixed Signal Oscilloscope, Function Generator, Power Supply, and DMM”, na faixa de milhares de dólares.
As séries Digilent Discovery 1/2/3, mais baratas, também custam cerca de US$ 400, mas têm largura de banda e recursos bem limitados, então são mais comparáveis ao Flea-Scope.
[1] Digilent Analog Discovery 3 vs. Digilent Pro ADP2230 [vídeo]:
https://youtu.be/yr9SGxiBAnI
Este dispositivo tem tantas funções únicas, interessantes e úteis que há elementos demais que mereceriam entrar no título.
Atualização: agora parece que não consigo mais mudar o título do post, uma pena.
Primeira vez aqui.
Um comentário abaixo é um pouco enganoso. Não são 100 Msps, mas 18 Msps, então dá para considerar que ele é bom, com fidelidade razoável, para sinais de aproximadamente 1 MHz ou menos.
Ele usa um PIC32, não um STM32, e o ADC é de 12 bits, mas por causa do piso de ruído, na prática fica mais perto de 10 a 11 bits.
Ainda assim, é legal poder fazer captura digital e geração de forma de onda ao mesmo tempo, embora, no geral, seja um dispositivo bastante simples.
O objetivo era colocar um desses em cada lugar de uma sala de aula que já tivesse computador, tablet ou Chromebook, e fazer com que “simplesmente funcionasse”.
O que mais me agrada é o acesso via JavaScript. Uma única página web basta para a GUI, sem instalação de software nem loja de apps.
Para aprofundar os experimentos em sala, dá para usar uma página web separada de “deep dive” com UI de linha de comando, fazer login de forma interativa e controlar todos os pinos programaticamente em BASIC.
Também é possível configurar a placa para executar automaticamente um programa BASIC ao ligar.
Com 4 chaves, 4 LEDs, um buzzer e cerca de 100 linhas de código, dá para fazer um jogo “Simon”; e, com um termopar, um amplificador operacional e um relé de estado sólido, dá para fazer um controlador de temperatura de forno torradeira para solda por refusão. Foi assim que fiz o protótipo, inclusive.
O bom é que o acesso via JavaScript no lado do host continua vindo de graça, e o BASIC consegue se comunicar diretamente com o computador host. Por exemplo, pode executar Python ou PowerShell.
Os exemplos estão aqui: https://rtestardi.github.io/pages/
As aplicações automotivas também foram interessantes. Com o Flea-Scope, é fácil pegar só o celular ou tablet e medir o sensor do virabrequim. Sem isso, você acaba seguindo o fluxograma de diagnóstico no chute e trocando peças por tentativa.
As licenças são todas open source, qualquer pessoa pode refazer e também vender.
O BASIC interno tem patente, mas as builds de software que eu criei, testei e lancei têm licença perpétua.
Em teoria, também seria possível fazer o osciloscópio sem BASIC. Ele não é necessário, exceto ao usar a placa no modo “deep dive” para programação em BASIC.
Se houver interesse, também já pensei em um Mosquito-Scope: um dispositivo ainda baseado no novíssimo dsPIC33A, com 2 canais e amplificação de entrada selecionável para lidar com sinais submilivolt; o dsPIC33A é, na verdade, mais barato e mais rápido que o PIC32MK.
-- Rich
Desde que a interface seja um pouco melhorada para lidar com vários osciloscópios ao mesmo tempo.
Assim daria para manter o formato pequeno e evitar compromissos de projeto.
Está claro que você pensou muito nos elementos necessários para o sucesso.
Não há substituto melhor do que cada aluno ter seu próprio ambiente de experimentação.
Quando tive meu primeiro contato com um osciloscópio, a turma inteira compartilhava um enorme Tek série 7k, topo de linha na época; aprendi o básico, mas só passei a aprender de forma realmente útil quando tive meu próprio osciloscópio, com muito menos recursos.
A propósito, se você é novo por aqui, vale avisar: quando alguém posta algo dizendo “eu fiz isso”, é comum aparecerem comentários apontando problemas pequenos como se fossem grandes erros, dizendo que a pessoa teria feito muito melhor, ou perguntando por que você fez isso se dava para comprar algo mais barato no Alibaba.
Claro, também vão dizer que deveria ter sido escrito em Rust. É só ignorar esse tipo de coisa.
Estou satisfeito com este analisador lógico que comprei na Amazon por um preço parecido, cerca de US$ 13
Gastei mais nas pontas de prova do que no analisador. As pontas custaram US$ 24 ;-)
Para operá-lo, uso SigRock/PulseView, e ele é reconhecido como um clone compatível
É surpreendente poder ver sinais com largura de dezenas de nanossegundos por um preço tão baixo
[1] https://www.amazon.com/dp/B077LSG5P2
[2] https://www.amazon.com/dp/B0CLB63GL3
[3] https://sigrok.org/wiki/PulseView
Ele fica desconectando o tempo todo e também dá problemas na enumeração do dispositivo. Ainda não testei o sigrok
Se você sobe e desce vários pinos GPIO antes e depois de trechos importantes do código, dá para ver o resultado no SigRock
Ao usar um osciloscópio USB, é preciso tomar cuidado com loops de terra
A maioria dos osciloscópios USB baratos compartilha o terra com o PC pela porta USB
Medir circuitos de alta tensão, por exemplo a rede elétrica ou fontes chaveadas, pode criar diferenças de potencial perigosas e levar a danos no computador ou a riscos ainda mais graves
Alguns osciloscópios oferecem entradas isoladas, mas, se não for o caso, é preciso usar uma ponta diferencial ou um transformador de isolamento
Caso contrário, você pode acabar depurando não o circuito, mas o controlador USB queimado do notebook
Cheguei a ver fumaça saindo por uma das saídas de ventilação, mas o restante do computador sobreviveu
Parece mágica
Para comparação, um osciloscópio USB de US$ 2 é assim. Faz 800 ksps e tem duas faixas de tensão: https://files.catbox.moe/0t0dq3.jpg
Um projeto desses teria sido uma salvação 20 ou 30 anos atrás, quando até um osciloscópio básico custava o mesmo que um carro usado
Hoje em dia, dá para comprar por US$ 300 um osciloscópio bastante bom, com largura de banda de 200 MHz, uma boa interface de usuário e uma tela responsiva. Estou falando de produtos como Siglent, Rigol e UNI-T
Por isso, a vantagem de construir você mesmo algo muito inferior não é tão grande quanto antes
Um osciloscópio é o equipamento usado para solucionar problemas em todos os outros projetos, então é melhor que seja confiável, fácil de usar e preciso
Claro, há valor em criar e publicar isso como um projeto divertido e geek. Mas só depois de já ter um osciloscópio de verdade
Se você está começando a montar sua bancada, é melhor gastar um pouco mais consigo mesmo. O restante dos equipamentos não é tão crítico
US$ 300 é um valor bem alto em relação aos salários mínimos do mundo[1], e em lugares como o meu país é bem possível que o preço dobre
Além disso, as pessoas que poderiam realmente aproveitar bem esse dispositivo, como estudantes do ensino médio, normalmente têm muito menos dinheiro disponível
Ainda mais se considerarmos o benefício colateral de construir por conta própria e aprender como ele funciona
[1] https://en.wikipedia.org/wiki/List_of_countries_by_minimum_wage
Se eu não souber exatamente para que vou usar, não gastaria US$ 300, mas US$ 20 é fácil, e US$ 2 vira uma compra por impulso
Ela oferece front-end ADC de 12 bits, entrada por touchscreen que é realmente usável e controle remoto muito fácil via conexão de rede. Só é um pouco complicado verificar o endereço IP usando apenas o touchscreen
Como a entrada de energia é USB-C, dá até para alimentá-la com um power bank, se quiser
Todos os decodificadores essenciais, como I2C, SPI e UART, vêm integrados gratuitamente
Ela aceita montagem VESA, então pude prendê-la a um braço de monitor e recuperar espaço na mesa, e esse recurso é realmente ótimo
Também é muito fácil hackear um modelo mais barato e atualizá-lo para o modelo de 250 MHz :D
Em praticamente todos os sentidos, uma baixa barreira de entrada é um elemento central desse objetivo
[0]: https://www.youtube.com/watch?v=sbRXDkHS_V0
Para um profissional white-collar nos EUA, pode ser assim
Mas, para a maior parte da população mundial, a diferença entre US$ 300 e US$ 18 é enorme
Correção: a licença é composta por ARR, domínio público e MIT
https://github.com/rtestardi/StickOS2/blob/main/license.txt
https://github.com/rtestardi/usbte/blob/master/LICENSE
Chamar isso de FOSS é completamente incorreto
Algumas partes têm todos os direitos reservados, algumas estão em domínio público e algumas permitem apenas uso não comercial
Domínio público não é open source e, especialmente, também não é free no sentido de liberdade
A restrição de uso comercial também não é software livre
Na melhor das hipóteses, este projeto pode ser chamado de parcialmente source-available
Dá para recomendar este dispositivo a quem está começando a aprender eletrônica
Recebi um no Hackerbox 102[1] e achei que ele oferece um bom valor pelo preço em relação à largura de banda
Conversando com amigos engenheiros, ouvi reações previsíveis como “é só um brinquedo”, e ele claramente tem muitas limitações
Mas, mesmo dentro dessas limitações, há muitas oportunidades para ensinar temas como eletrônica analógica, em que o melhor é aprender vendo os sinais diretamente
Quem está começando muitas vezes nem sabe por que precisa de um osciloscópio, então é uma forma bem boa de apresentar a ferramenta sem enfrentar uma grande curva de aprendizado por causa de recursos que não serão usados no primeiro ano de estudo :-)
Mais tarde, ao escolher um dos bons equipamentos de bancada, a pessoa também não estará completamente perdida sobre o que as funções de um osciloscópio fazem
Por isso, por 20 dólares, considero um bom custo-benefício e tenho recomendado a quem está começando a aprender esse tipo de coisa
[1] https://hackerboxes.com/collections/past-hackerboxes/products/hackerbox-0102-flea-scope e o guia de experimentos https://www.instructables.com/HackerBox-0102-Flea-Scope/
Lembra o EspoTek Labrador, que fica numa faixa de preço parecida
https://espotek.com/labrador/
A arquitetura híbrida FPGA/MCU do Flea-Scope para streaming USB é inteligente. Processar a captura de 100 MS/s com pipelining no FPGA e deixar a conversão de protocolo para o STM32 parece bom em termos de custo
Mas a resolução de 8 bits do ADC e a ausência de rede de proteção de entrada são arriscadas em sinais não atenuados, em comparação com o front-end 1 MΩ//20 pF da Rigol e o clamp de sobretensão
A ferramenta de análise em Python que usa NumPy/SciPy para FFT em vez de DSP embutido é uma divisão de recursos interessante, e parece que em breve também veremos Jupyter
Além disso, não chega nem perto de 100 Msps; são apenas 18 Msps, e a especificação é de 12 bits
Fico me perguntando se o comentário foi escrito com ajuda de IA ou se está falando de outro dispositivo