KIDBOY 0.1 for the FM-1
A toddler toy firmware for the M-VAVE FM-1: a few big, obvious things to do, every press makes a sound, nothing can break. Four cards on the PRESETS wheel:
- SONGS — each of the 27 keys plays a public-domain nursery song.
- LETTERS — a key shows a giant letter A–Z, says it and plays a note; the rightmost key sings the ABC song.
- NUMBERS — a key shows a number and counts dots up to it (every number spoken); the rightmost key counts to ten.
- PIANO — the keys play their real pitches and show the note name.
The twelve buttons are drums on every card (each card has its own kit), SELECT picks one of seventeen sounds, MASTER is the volume and OCT− / OCT+ stop everything. There are no menus, pages or settings. The firmware remembers the last card, sound and song speed.
Kidboy is its own firmware with its own codebase, forked from chordboy-firmware on 2026-10-17 (see CLAUDE.md); it is not a mode of ChordBoy. Both are built on Felucca 1.6.1 by Leo Kuroshita / Hügelton Instruments. The FM-1 holds one firmware at a time; flashing Kidboy leaves ChordBoy's saved keys untouched in flash (PERSISTENCE.md).
- Parents: the parent guide.
- The firmware's spec: KID-MODE.md (controls, screens,
persistence, interfaces) and its module notes
docs/KID-*.md. - Installing (only after Will's explicit OK): INSTALL.md.
- Sizes and gates: BUDGETS.md.
Build on the Lenovo
git submodule update --init
./tools/remote_build.sh
The runner copies the tree to an isolated cache on will@100.125.224.61, builds
in Docker fm1-build with the Linux-only JieLi compiler, checks every Felucca
gate (app slot, RAM/pool headroom, RAM-call and MMIO audits) and downloads
build/: kidboy.fwsc (identity FM-1_938), chordboy.bin/.elf/.dis (the
inherited app-slot name) and loader/ota.bin. It never opens MIDI. Identity and
version come from firmware/chordboy/identity.h. See BUILDING.md.
Test and simulate
./tools/remote_build.sh --app felucca # baseline artifacts for the inherited Felucca suite
AC79_SDK="$HOME/.cache/chordboy-firmware-sdk" ./tools/host_tests.sh
./tools/remote_build.sh # back to the Kidboy package
sh tools/chordboy_tests.sh # Kidboy checks alone (no device build needed)
tools/chordboy_host.sh out.png # the real firmware screen, natively
sh web/emu/build.sh --app chordboy && node tools/chordboy_capture.mjs out.png tests/kid_emu_scenario.json
python3 -m http.server 8790 --directory build/chordboy-emu
tools/chordboy_tests.sh runs the app test (tests/kid_app_test.c: every card,
key, button and knob, PANIC, persistence, backup protocol), the song, drum,
speech and screen suites, installer identity checks and, with Emscripten, the
headless WASM scenario (card picker → song → drums → letter Q → number 7 →
piano) that writes PNGs and scenario.wav to build/kid/scenario/. Use
/usr/bin/cc; macOS 27 swaps ASan for UBSan. The emulator page at
http://localhost:8790/ loads the same speech store as the device.
GPL-3.0-only as a whole: LICENSE, LICENSING.md, CREDITS.md, LICENSES/. The kid voices are ElevenLabs free-plan clips for non-commercial family use, credited on the boot screen (PROVENANCE.md). Kidboy is independent of M-VAVE and Hügelton Instruments.
