Add custom FX2 firmware and RAM loader for open-source development

Custom firmware (SDCC + fx2lib) implements all stock vendor commands
(0x80-0x94) plus new commands for spectrum sweep (0xB0), raw BCM4500
register access (0xB1/0xB2), and blind scan (0xB3). Compiles to 6.3KB
of code with healthy RAM margins.

RAM loader (fw_load.py) uses the FX2 0xA0 vendor request to load
firmware into RAM without touching EEPROM -- power cycle restores
factory firmware. Supports Intel HEX and raw binary formats.
This commit is contained in:
Ryan Malloy 2026-02-11 19:46:50 -07:00
parent c7b5932cc0
commit 5710584267
5 changed files with 1729 additions and 0 deletions

12
firmware/Makefile Normal file
View file

@ -0,0 +1,12 @@
FX2LIBDIR=fx2lib/
BASENAME=skywalker1
SOURCES=skywalker1.c
A51_SOURCES=dscr.a51
VID=0x09C0
PID=0x0203
CODE_SIZE=--code-size 0x3c00
include $(FX2LIBDIR)lib/fx2.mk
load: $(BUILDDIR)/$(BASENAME).bix
../tools/fw_load.py $(BUILDDIR)/$(BASENAME).bix