Skip to content

BangRocket/toddlersmash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ToddlerSmash

A Raspberry Pi 2 appliance image that boots directly into a toddler-proof pygame smasher. Press a key → get a big colored letter + a sound. Hold Ctrl+Shift+Alt for 2 seconds to open the parent menu.

Design goals: toddler-proof, power-yank resilient (overlay FS), audio-first, boots in under 20 seconds, no post-flash setup.

Quickstart (dev host)

python3.11 -m venv .venv && source .venv/bin/activate
pip install -r requirements-dev.txt
pytest                          # unit tests (headless)
python app/main.py              # run the app locally (SDL dummy/x11/cocoa)

Build an image

Requires Debian Bookworm host + Docker (the pi-gen build uses sudo + loop devices). Dev + tests run on macOS; the image build runs on the Debian VM mypalclarissa.

just build          # → pi-gen/deploy/image_*-ToddlerSmash.img (.zip)
just qemu           # optional: boot in QEMU raspi2b (Linux only)
just flash /dev/sdX # WARNING: flashes the SD at /dev/sdX

Flash to SD card

lsblk                                                 # find SD card device
sudo umount /dev/sdX*                                 # unmount if automounted
sudo dd if=pi-gen/deploy/image_*-ToddlerSmash.img \
        of=/dev/sdX bs=4M status=progress conv=fsync

Or use Raspberry Pi Imager's "Use Custom Image" option.

Parent hotkey

Hold Ctrl + Shift + Alt for 2 full seconds to open the parent menu. Up/Down to move, Enter to pick a mode or Quit, Esc to resume.

Docs

  • docs/toddlersmash-spec.md — full build specification
  • docs/plans/ — implementation plans

Repo layout

.
├── README.md
├── build.sh             # top-level build driver
├── config               # pi-gen top-level config
├── justfile             # common targets
├── app/                 # Python app source
│   ├── main.py
│   ├── engine/          # synth, asset_bank, mode_manager, parent_hotkey
│   ├── modes/           # base + keyboard + stubs
│   └── assets/
├── stage-toddlersmash/  # custom pi-gen stage
├── tests/               # pytest suite
└── infra/
    ├── apt-cache/       # optional apt-cacher-ng compose
    └── qemu/            # no-hardware boot testing

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors