Firmware

kidboy-firmware

Rising73/100

KIDBOY 0.1 — toddler toy firmware for the M-VAVE FM-1 (built on Felucca, GPL-3.0)

kidboy-firmware is custom firmware for the M-VAVE FM-1, by @WillCMcC. Open source under GPL-3.0, latest release v0.1 (October 2026), 1 star on GitHub.

forM-VAVE FM-1·by@WillCMcC

Unclaimed. Is this yours? Sign in with GitHub as @WillCMcC to claim it.

Downloads
0
Star
1
Fork
1
Commits
92
Last commit
Download v0.1

kidboy-2e400c2.fwsc· 596 KB

GPL-3.0· WillCMcC/kidboy-firmware·downloads come from the creator’s GitHub releases

91
Commits
1
Releases
91 commits and 1 release in the last year
Activity · last 12 months

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.