In ui/menu.c, add:
const char* menu_tools[] = "Logic Analyzer", "I2C EEPROM Prog", "Signal Gen", NULL;
The stock LA104 supports basic UART, I2C, and SPI. Through firmware work, you can add:
How it’s done: You modify decoders/decoder_table.c and add a new state machine in decoders/decoder_xxxx.c. The decoder processes raw sample buffers and extracts bits/bytes. la104 firmware work
You will need the following hardware and software:
Cause: Improper PLL configuration, or missing external clock.
Solution: In system_stm32f4xx.c, set PLL_M and PLL_N for 168MHz operation. Also ensure proper decoupling on VDD. In ui/menu
Symptom: Black screen, no USB detection.
Fix: Use ST-Link to erase and reflash known-good backup:
st-flash erase
st-flash write la104_stock_backup.bin 0x08000000
Many developers have turned the LA104 into a Swiss Army knife. Their firmware versions include: The stock LA104 supports basic UART, I2C, and SPI
To enable these, you modify main.c to check a button combination at boot (e.g., hold UP + SELECT) to enter “tool mode.”
With custom firmware leveraging the PIC32’s GPIO bit-banging, you can implement a simple CMSIS-DAP v1 adapter. This allows you to debug ARM Cortex-M microcontrollers using OpenOCD.
The stock triggers (rising, falling, edge) are fine, but I wanted to catch pulses shorter than 10ns. I added a simple "width trigger" to the RLE decoder. If a pulse was narrower than a user-defined threshold, the capture stopped and highlighted it. This alone made debugging a flaky SPI CS line trivial.