The Jokeinator™
The Jokeinator™ is a on-your-hip reminder of your joke-telling responsibilities. This schnazzy device is designed to send you alerts that will make you and others howl at any time — be ready. Don't be caught off guard without a joke to tell.
-
Dec 23, 2025
Disable random joke on timer wake
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude
-
Dec 5, 2025
Show joke after exiting game
-
Dec 5, 2025
Fix game entering so that the left arrow is not executed
-
Dec 5, 2025
Fix NVS persistence, improve wake behavior, add flash erase on reset
- Fix NVS writes failing by using fresh key names after corruption - Factory reset now erases entire NVS partition and reboots - Timer wake shows new random joke instead of saved position - Always restore to setup page (page 0), never punchline - Add…
-
Dec 5, 2025
Generate 500 jokes with proper English grammar
Updated prompt to emphasize grammatically correct sentences over character limits. Script now generates batches until 500 valid jokes are collected rather than a fixed number of batches. 🤖 Generated with [Claude Code](https://claude.com/claude-code)…
-
Dec 5, 2025
Keep device awake during joke reload
Set resetActivity while reloading to prevent idle sleep mid-download. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude
-
Dec 5, 2025
Only load high score from Preferences once per boot
Keep high score in memory during session to prevent it resetting when exiting and re-entering the game. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude
-
Dec 5, 2025
Generate 477 jokes with 32-char limit (excl. spaces)
Update generator to create 500 jokes in batches of 100, with deduplication and length validation excluding spaces. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude
-
Dec 5, 2025
Add resetActivity to Actions, allow idle sleep during game
Move activity reset logic to Actions struct so subsystems can explicitly signal user activity. Game now only resets idle timer on button presses, allowing the device to sleep if left unattended during gameplay. 🤖 Generated with [Claude…
-
Dec 4, 2025
Clear all namespaces on factory reset and improve reload message
Factory reset now clears jokes and pakupaku namespaces in addition to settings. Changed LCD message from "Connecting" to "Reloading" for clarity during joke reload. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude
-
Dec 4, 2025
Require all 3 buttons for factory reset
Changed from Go+Right to Go+Left+Right to prevent accidental resets. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude
-
Dec 4, 2025
Improve WPS instructions and simplify score display format
Show clearer WPS instructions ("Press WPS button" / "and wait 30 secs") during WiFi setup and use simpler score format in PakuPaku game. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude
-
Dec 4, 2025
Add PakuPaku game tests and use pts for score display
Tests cover game entry, exit, player movement, and direction changes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude
-
Dec 4, 2025
Show current level in game HUD
Display format: L1 HI:0 S:0 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude
-
Dec 4, 2025
Fix custom character creation by setting IS=0 before CGRAM access
ST7032 LCD requires normal instruction set mode (IS=0) for CGRAM operations. Added command(0x38) before and after writing custom character data. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude
-
Dec 4, 2025
Add PakuPaku game with custom sprites and persisted high score
- Secret Pac-Man game accessible via Left+Go hold - Custom LCD characters for player and ghost sprites - High score persisted to flash storage - Ghost speeds up minimally per level, player speed constant 🤖 Generated with [Claude…
-
Dec 4, 2025
Add non-blocking download animation and improve navigation
- Download jokes in background FreeRTOS task to keep animation smooth - Skip empty joke pages when navigating left/right - Turn off screen immediately on hold detection (not on release) - Add lcdOff action for immediate screen control 🤖 Generated with [Claude…
-
Dec 4, 2025
Fix sleep triggering immediately on long hold
- Sleep now triggers on button release, not during hold - Prevents ESP32 waking immediately when button still pressed Tests added (16 total): - GoButton sleep-on-release behavior (3 tests) - Idle timeout auto-sleep (2 tests) - Joke position persistence (3…
-
Dec 4, 2025
Add idle timeout, joke persistence, and validate joke length
Firmware: - Auto-sleep after 60s of inactivity - Save/restore joke position across sleep cycles - Add jokeIndex/pageIndex to ISettings for persistence Jokes: - Regenerate with strict 40 char validation - Filter out oversized jokes (81 valid from 100…
-
Dec 4, 2025
Add JokesReloader with persistence and factory reset
- JokesReloader: fetch jokes from jokeinator.com/jokes.json - Hold Left+Right 1.5s to trigger reload (WPS if no creds) - Hold Go+Right 1.5s to factory reset settings - Jokes persist to NVS via Preferences, loaded on boot - WiFi only connects inside…
-
Dec 4, 2025
Limit jokes to 40 chars per line, generate 100
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude
-
Dec 4, 2025
Disconnect WiFi before entering sleep
- Add disconnect() to IWiFi interface - WiFi explicitly disconnects before deep sleep Co-Authored-By: Claude
-
Dec 4, 2025
Update README and trigger sleep immediately on hold
- Merge root README into _business/README.md - Update firmware features and pin assignments - Sleep triggers at 1.5s hold, not on release Co-Authored-By: Claude
-
Dec 4, 2025
Add jokes.json endpoint with Anthropic API regeneration
- Jekyll page at /jokes.json serving array of [setup, punchline] arrays - npm run generate-jokes to regenerate via Anthropic API - Uses .env for ANTHROPIC_API_KEY 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude
-
Dec 4, 2025
Add Jokes feature and refactor GoButton to release-trigger
- Jokes class with 10 jokes, random selection on boot - Multi-page jokes with left/right navigation - GoButton triggers sleep on release after 1.5s hold - Actions pattern extended with sleep field - Separate tests for hold vibration and sleep actions…