La104 Firmware Work Review

Honest LA104 firmware work acknowledges the hardware limits:

| Feature | Stock | Optimized Custom | Limit | |---------|-------|------------------|-------| | Sample rate | 100Msps | 100Msps (hard limit due to comparator) | 120Msps (unstable) | | Buffer depth | 8KB (approx 6.5k samples) | 8KB + RLE (effectively infinite for idle buses) | RAM constraint | | Decoder speed | 1Mbit/sec UART | 4Mbit/sec UART (optimized C) | CPU bound | | USB transfer | 1.1 Full-speed | 1.1 Full-speed (no HS on PIC32MX) | 12Mbps |

Instead of real signals, generate test vectors in code:

for(int i=0; i<BUFFER_SIZE; i++) 
    test_pattern[i] = (i & (1 << (i%8))) ? 0xFF : 0x00;

Run acquisition on this internal buffer to verify decoding. la104 firmware work


By flashing a compatible firmware (like the DSLogic firmware or the open-source la104-fw project), you can use the LA104 with PulseView on your PC. This gives you:

The LA104 Firmware Work represents a growing trend in electronics: Open Hardware Empowerment.

By documenting the internal workings and releasing open-source firmware, developers have extended the lifecycle of the LA104. A device that might have been discarded due to software bugs or lack of features is now a viable learning tool for students and a portable diagnostic tool for engineers. Honest LA104 firmware work acknowledges the hardware limits:

This work transforms the LA104 from a "toy" into a testament to what community-driven engineering can achieve.


make clean
make all

The output is la104_firmware.bin.

In ui/menu.c, add:

const char* menu_tools[] = "Logic Analyzer", "I2C EEPROM Prog", "Signal Gen", NULL;

Likely cause: Wrong linker script or vector table offset.
Check: Ensure FLASH_APP_OFFSET is 0x08000000 (unless using bootloader).
Fix: Compare with stock firmware hex dump:

arm-none-eabi-objdump -D la104_firmware.elf | less

The LA104 is a popular, inexpensive 4-channel logic analyzer capable of 100MHz sampling. While the stock firmware is functional, the device is famous in the maker community because it supports custom firmware that significantly expands its capabilities.

Here is how to make the firmware work for you. Run acquisition on this internal buffer to verify decoding