Need help with LA104?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

296 Stars 45 Forks MIT License 457 Commits 21 Opened issues


LA104 logic analyser alternative firmware and experiments

Services available


Need anything else?

Contributors list

Docker Cloud Build Status

LA104 pocket logic analyser operating system

LA104 is another nice piece of handheld hardware coming from e-design / miniware company similar to their previous product - pocket digital storage oscillosope DS203.

This time they designed wholly digital device without analog circuitry featuring 4 general purpose IO signals and 4 digital inputs processed by AG1K FPGA chip, the processor used is the same as in DS203 - STM32F103VCT6. Device is battery powered, charged through USB micro connector, its display (ILI9341) offers resolution of 320x240 pixels and the storage EEPROM has this time capacity of 8MB. Check the schematics for supported devices: * LA104 - Scheme here * DS213 - Scheme here * DS203 - Scheme here

Product brief

When I was developing alternative firmware for DS203, I was trying to design some simple operating system that would allow me to upload easily new programs to the devie with ability to switch between them without flashing it again. Something similar that jpa did before with his PAWN interpreter on DS203 with a little difference that the application will be native C/C++ compiled code offering full computational power of the device. Unfortunately the GCC toolchain I was using had some bug which produced ARM32 instructions in PLT section which are not supported by STM32F103 and I was not able to force the compiler to use Thumb instruction set. So the dynamic relocation of imported symbols was an impossible task to implement. Now after few years, this problem was fixed and finally I could continue developing this operating system I have started before.


Go to release section of this page, find latest version for your device (there are releases for LA104, DS203 and DS213) and download system.hex. Power on the LA104 while holding first button. Connect the device using USB cable with your computer. New disk drive should appear, copy the system.hex file there. The disk should disconnect and reconnect shortly after the upload was finished. If you are lucky, you will see system.rdy on the disk. Turn the unit off and on and copy remaining files from zip archive to your device. After power cycle a gui should appear. For Linux/OSX systems use tools/dfuload script to copy the firmware, if the file system does not appear stable, you can format it using tools/dfuload/ script.


Refer to this tutorial

Review video

LA104 OS Review video

Online demo

WASM build

Repository structure

  • resources - old projects, screenshots used in this document and tutorials
  • tools
    • dfuload - copies the firmware to the device, works for DS203, DS213 and LA104 on linux/osx
    • elfstrip - reduces the size of ELF images, used by all application building scripts
    • fpga - FPGA images and scripts for downloading images using openocd
    • midiconv - converts multichannel midi files into single channel (single data stream), so it can be played without seeking
    • openocd - notes on how to flash DS213 over SWD interface and how to debug the apps in Microsoft Visual Code
    • rtl433 - rtl433 clone modified to be used as WASM binary in web browser/javascript
    • shellicons - icons used in LA104 visual shell
    • stm32flash - recovery tool for DS203
  • system
    • apps - working applications mainly for LA104
    • apps_ds213 - applications for DS213/DS203
    • apps_experiments - arduino sample code interfacing some sensors and experimental applications. Use this as reference code for your projects. Mostly just simple console applications
    • apps_featured - advanced applications with full visual interface
    • apps_shell - file lister and graphical application switcher
    • apps_usb - apps simulating various USB peripherals
    • os_host - system source code, actually an application which loads ELF files from filesystem, matches the imported symbols and loads them
    • os_library - dummy library exposing all functions of the system. Necessary for building all applications
    • os_platform - support files for building for other platforms than Arm (Win32, OSX XCode or WASM)
    • scripts - building scripts

Applications in LA104 package

| Icon | Group | App name | App project / video | |------|-------|----------|---------------------| | 17analys.elf | | Logic analyser | apps/test17_official | | 61devin.elf | | Device info | appsfeatured/61devinfo | | 29fileman_la104.elf | | File manager | appsshell/test29fileman | | 118basic.elf | devel | Basic | appsfeatured/118basic | | 113cirpy.elf | devel | Circuit python | appsfeatured/113circuitpython | | 123fpga.elf | devel | FPGA Loader | apps/123_fpga | | 117rt.elf | devel | Gabuino | appsfeatured/117gabuino/examples | | 14apds1.elf | devices | APDS9960 color gesture sensor | appsexperiments/test14apds9960 | | 11i2c.elf | devices | BMP085 Barometric sensor | appsexperiments/test11i2c_api | | 92bmp180.elf | devices | BMP180/BMP085 barometer | appsexperiments/92bmp180 | | 9dht.elf | devices | DHT11/DHT22 temperature humidity | appsexperiments/test9dht_app | | 56ds1307.elf | devices | DS1307 real time clock | appsexperiments/test56ds1307 | | 57ds3231.elf | devices | DS3231 real time clock | appsexperiments/test57ds3231 | | 36espwww.elf | devices | ESP8266 uart wifi server | apps/test36espserver | | 84maxdis.elf | devices | MAX7219 display driver | appsexperiments/84max7219 | | 110co2.elf | devices | MH-Z19B | apps/110_mhz19b | | 87mlx906.elf | devices | MLX90614 non cotact thermo | appsexperiments/87mlx90614 | | 106mpr12.elf | devices | MPR121 12 channel toch sensor | appsexperiments/106mpr121 | | 34scope.elf | devices | PCF8591t I2C ADC | apps/test34_scope | | 120keyb.elf | devices | PS2 Keyboard | apps/120_ps2keyboard | | 109radse.elf | devices | Radsens dosimeter | apps/109_radsense | | 95sht20.elf | devices | SHT20 temperature humidity | appsexperiments/95sht20 | | 45simcom.elf | devices | SIMCOM gprs modem | apps/test45_simcom | | 96tm1637.elf | devices | TM1637 7-segment display | appsexperiments/96tm1637 | | 13mp3.elf | devices | YX5300 MP3 player | apps/test13_mp3 | | 90eink.elf | display | eInk display image loader | appsfeatured/90epd_image | | 81image.elf | display | Image viewer | apps/81_image | | 102oled.elf | display | SSD1306 oled test | appsexperiments/102ssd1306 | | 99cube04.elf | fun | Rotating cube | apps/99_3d | | 39lcd.elf | fun | Scroll test | appsexperiments/test39lcd | | 4snake.elf | fun | Snake game | apps/test4_snake | | 2import.elf | fun | Sierpinski triangle | appsexperiments/test2import | | 85eetest.elf | i2c | I2C EEPROM memory viewer | appsfeatured/85i2ceeprom | | 37icscan.elf | i2c | I2C bus scanner | appsfeatured/test37i2cscan | | 80rftool.elf | rftools | RF analyser synthesizer | appsfeatured/80rftool/test | | 82sanal.elf | rftools | Spectrum analyser | apps/82_specan | | 79ccosc.elf | rftools | WebUSB rf analyser | apps/79_cc1101osc | | 105avrfl.elf | tools | Atmel firmware flasher | apps/105_avrprogrammer | | 15charla.elf | tools | Character map | apps/test15_charmap | | 30dcf77.elf | tools | DCF77 decoder | apps/test30_dcf77 | | 33temper.elf | tools | DS1820 temperature grapher | appsfeatured/test33temper | | 49gpio.elf | tools | GPIO and PWM controller | appsfeatured/test49gpio | | 115huntr.elf | tools | Hunter X-core controller | apps/115_hunter | | 21mplayl.elf | tools | MIDI player | appsfeatured/test21midiplay | | 121pastr.elf | tools | Pasteurisation calculator | appsfeatured/121pasteur | | 22seqen.elf | tools | Sequencer and analyser | apps/test22_sequencer | | 103servo.elf | tools | Servo controller PCA9685 | appsfeatured/103servo | | 72uartm.elf | tools | UART monitor | appsfeatured/72uartmon | | 74invt.elf | tools | Invt VFD RS485 visualizer | appsfeatured/74invtvisual | | 63ws_104.elf | tools | WS2812 addressable led tester | appsfeatured/test63ws2812 | | 104avris.elf | usb | Atmel ISP programmer | appsusb/104avrisp | | 24ncdc.elf | usb | Serial link | appsusb/test24usbcdc | | 25hid.elf | usb | Human interface device | appsusb/test25hid | | 26midi.elf | usb | Midi to uart | appsusb/test26midi |


New applications
Avrisp programmer
  • Can be used for flashing Atmel MCUs - either for flashing HEX files directly over ICSP connector 105_avrprogrammer, or use LA104 as AVRISP USB programmer compatible with Arduino IDE 104_avrisp

AVRISP programmer

Docker integration
EInk display image loader
  • Application 90epdimage loads BMP images and transfers them into the eink display
RF Toolkit

Ultimate toolkit for hacking OOK/ASK wireless devices (weather stations, wireless keys...) using CC1101 transceiver

LA104 RF Toolkit

(LA104) Variable frequency drive visualizer

This app uses RS485 adapter to talk to Invt Good drive inverters. Read more here, besides the visualization tool, there is also application which emulates GD100 VFD (as seen on the picture)... Watch video:

VFD talking to LA104 over RS485


WASM experimental evironment

LA104 OS running in your browser using WASM technology

WASM build

(DS203) Web USB Oscilloscope

Proud to announce the first oscilloscope in the world using the WebUsb technology (correct me if I am wrong)! Read more here

Watch video here:

WebUsb Oscilloscope video

Addressable RGB led strip tester

Addressable LED tester with advanced functions. Supports up to 32x WS2812/WS2812/SK6812 and other compatible addressable LED modules. More than 15 static and dynamic color presets, speed control, 8 different filter post-process options... Possible to build for OSX as desktop application, or LA104 native app or as WASM based HTML application. Try it online here! Watch video below:

Addressable LED tester video

Addressable LED tester screenshot

Temperature grapher

Shows temperature of up to 8 DS1820 sensors in form of graph. Automatic export of measured values into html, source code.

temperature measure tool 1 temperature measure tool 2

One firmware to rule them all

Operating system developed as a part of this project was ported to other handheld devices from miniware (DS203 rev. 2.60, DS213, LA104). Still in early development stage, but looks very promising. one system to rule them all

Dream SAM2695

LA104 playing midi on SAM2695 wavetable synthesizer through UART:

Logic sequencer video

Simcom driver

Simcom 800L driver with nice interface, sends 6 HTTP (get/post/json) requests in one minute. test45_simcom


Allows to monitor logic level on all 8 pins, the P1-P4 pins can be used as outputs. In PWM tab it is possible to set the PWM frequency and PWM levels for P1-P4 pins, including exponential compensation curve or automatic quasi-periodic animation of all outputs.

GPIO tool - logic

GPIO tool - pwm

Wave alchemy

Currently in development stage. App sniffs for wireless transmission using CC1101 transceiver, automatically decodes the protocol (wireless weather station, KEELOQ keyfob packets, fixed code remote controls, rolling code remote controls). To aid the decoding process, app displays the sniffed signal in form of histogram for easy identification of protocol (manchester encoding, pause length encoding) and its timing. Recorded signal can be stored in flash or transferred to PC for further analysis. Stored signals can be replayed to perform replay attack in case of fixed code sequence. Besides support of CC1101 chip, this app can be used in conjunction with infrared receiver and infrared diode to record and replay IR control codes for TV set or another consumer electronics.

Wave alchemy settings

Wave alchemy record

Wave alchemy export

I2C Scanner application

I2C Scanner including database of 245 I2C devices, automatically shows description of identified device.

I2C scanner

Pulseview compatibility

Added USB application which emulates sigrok SUMP protocol. By choosing "Openbench logic sniffer (ols)" in Pulse view configuration, LA104 can transfer measured signals to pulse view for deep analysis. Pulseview support wide range of protocols and offers intuitive user interface. Currently only 50kHz sampling is supported on P1..P4 pins, samplerate is sufficient for decoding of 9600 baud serial link.

Pulse view

Graphical application chooser



Stock logic analyser integration

Logic analyser

Logic sequencer app

16 channel logic analyser and sequencer. Generator of 4 bit pattern attached to CD4543 BCD to seven segment decoder. PCF8574 used as 16 bit expander

Logic sequencer video

Logic sequencer 1

Logic sequencer 2

Midi player - midi parser and player

Connect your midi keyboard with two wires (3V and P1 through 100-330 ohm resistor).

Midi player video

Logic sequencer 1

Logic sequencer 2

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.