feat: googly desk pet — face engine, mood, touch reactions, EEPROM persistence

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Mortdecai
2026-07-11 23:21:21 -04:00
commit 416bca9168
6 changed files with 475 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
# googly — Decisions
- 2026-07-11: Big procedural face over pixel-art sprite creature — reads as alive
from desk distance, needs zero art assets, and partial-region redraw sidesteps
the 8-bit bus being too slow for full-screen animation.
- 2026-07-11: Light mood state (b) over pure toy (a) or full Tamagotchi (c) —
(a) goes stale, (c)'s neglect mechanic fights weekends (always-dying pet =
guilt, not cute).
- 2026-07-11: Mega 2560 as target — 256KB flash / 8KB RAM vs UNO's 32K/2K which
graphictest already fills to 98%. Firmware backed up before overwrite
(`../backups/mega-*-flash.hex`).
- 2026-07-11: No SD dependency — SD on this shield needs soft-SPI on the Mega
(pins 10-13 aren't Mega hardware SPI) and the face doesn't need assets anyway.
- 2026-07-11: Touch used only as tap/hold/pressure, not calibrated x/y — poke and
pet don't need position, which makes per-shield resistive calibration
unnecessary. Ghost-touch guard: pressure window + 2 consecutive samples.
## Deferred / Rejected
- Serial-dashboard generic firmware — separate idea, better fit for the
Leonardo/UNO (native USB on Leonardo). Not part of googly.
- RTC / real day-night cycle — no RTC on board; sleep is inactivity-based.
Revisit only if a DS3231 module shows up.
- Sound (piezo chirps) — no free pin budget to fight the shield over; also a
desk toy at work that beeps is a desk toy that gets unplugged.