TDSO152 - Una GUI para el DSO152 de FNIRSI
TDSO152 permite controlar el osciloscopio FNIRSI DSO152 desde el PC, visualizar señales en una pantalla más grande, exportar capturas, integrar Sigrok y ampliar las funcionalidades del dispositivo mediante software libre.
Características actuales
- Control del DSO152 desde PC
- Visualización en pantalla completa
- Exportación CSV
- Captura de señales
- Código abierto
Características previstas
- Integración con Sigrok
- Decodificación UART
- Decodificación AM230x
- Cualquier otra soportada por Sigrok que utilice un solo canal…
Hace un tiempo que estoy buscando osciloscopios económicos a los que pueda controlar mediante mi GUI y expandir sus funcionalidades para ampliar su rango de uso.
Inicialmente todo empezó con el DSO112A. Compré ese pequeño osciloscopio hace un montón de años, cuando cualquier osciloscopio de gama baja costaba no menos de 300-400€. Este vídeo de Marco Reps me convenció para realizar la compra. Para mí era perfecto porque era económico, cumplía su función y era portátil. Años más tarde comprobé que me podía comunicar con él y ya había habido algún que otro intento para crear una GUI y así poder usarlo como osciloscopio de escritorio. Fue entonces cuando escribí TDSO112a y amplié poco a poco su funcionalidad hasta integrarlo con Sigrok, ofreciendo funcionalidades que solo están disponibles en osciloscopios mucho más costosos.
Evidentemente, no se pueden superar las limitaciones hardware de BW y frecuencia de muestreo, pero ampliar las funcionalidades como añadir espectrograma, exportación a ficheros CSV o tener la posibilidad de leer diferentes protocolos como UART y sensores de humedad/temperatura, hacen a este tipo de osciloscopios una opción más que razonable para presupuestos ajustados. Además, como es código abierto, se pueden añadir las funcionalidades que se deseen.
El éxito del TDSO112a me llevó a experimentar con otros osciloscopios más económicos, como el DSO138 y DSO183 y siguiendo la búsqueda llegué al DSO152, donde ya demostraban que se podía jugar con él, Hacking a Fnirsi DSO152 mini oscilloscope to play Breakout.
Aunque existen modelos con mejores especificaciones sobre el papel, el DSO152 se ha popularizado enormemente gracias a su diseño compacto, facilidad de uso y amplia disponibilidad.
Me puse en contacto con FNIRSI para ver si me podían decir si había posibilidad de comunicarme con el DSO152 como sí podía hacer con el DSO112A de JYETech, pero me dijeron que no (la verdad que me sorprendió que me respondieran…). No tener que modificar el hardware ni el firmware original del osciloscopio habría hecho el proyecto mucho más accesible para cualquier usuario.
Por casualidades de la vida, unos meses antes compré un kit de WCH con una plaquita de desarrollo con el CH32V003 y un programador. Apliqué también aquí la GUI de osciloscopio y nació Techo que demostraba que se podía usar este micro de menos de 0.5€ para tener algo parecido a un osciloscopio, con frecuencias de muestreo de aproximadamente 1Msps… Por tanto, ya tenía algo de experiencia con el IDE de WCH y la programación de los CH32.
¡Pues resulta que el DSO152 utiliza un CH32F103! Aunque en esta ocasión la arquitectura no era RISC-V sino ARM, la programación fue bastante sencilla. Al poco tiempo ya tenía comunicación serie por el pin de calibración (muy básica y mediante algo así como software serial). Pero mira tú por donde, revisando las imágenes de la PCB de David Given la USART1 estaba directamente conectada a las teclas K4 y K5
Utilizando la misma imagen y un polímetro conseguí relacionar los pines del MUX y del relé:
Conexiones
74HC4051D
- PA4 <-> A 11
- PA5 <-> B 10
- PA6 <-> C 9
Calibración
- PA0 <-> calibración
USART
- PA9 <-> K4 USART1_TX
- PA10 <-> K5 USART1_RX
Estado actual
Actualmente TDSO152 ya permite controlar el DSO152 desde el PC y visualizar las señales capturadas. La comunicación con el osciloscopio se realiza mediante la USART1 del CH32F103, accesible desde las teclas K4 y K5 FNIRSI DSO152 controlado por PC.
La siguiente fase será integrar Sigrok para poder usar el DSO152 como analizador lógico básico de un canal y decodificar protocolos sencillos como UART o AM230x.
Proyectos relacionados
Una vez tenga una versión con la que esté contento, me embarcaré en hacer lo mismo con el DSO510 que cuesta un poco más que el DSO152 pero que dispone de unas características hardware mucho mayores, como un BW de 10MHz.