A remote whiteboard system for couples using two GeekMagic SmallTV Pro devices. Draw on a web-based whiteboard and see it appear on your partner's SmallTV Pro display in real-time.
This project allows you to share drawings and messages with your partner through a shared digital whiteboard. Draw on a web interface, and the image appears on both SmallTV Pro displays every 60 seconds.
System components:
- Web Interface: Drawing canvas hosted on Cloudflare Workers
- ESP32 Firmware: Arduino code that downloads and displays JPEG images
- GeekMagic SmallTV Pro: 240x240px ST7789V display devices
Deploy the drawing interface to Cloudflare Workers. See web/README.md for instructions.
Install USB programmer drivers and wire the SmallTV Pro. See hardware/README.md for wiring diagrams.
Use Arduino IDE to upload the code to your ESP32 devices. See firmware/README.md for detailed steps.
Initially tried using ESPHome with the online_image component, but encountered memory errors (Guru Meditation Error: StoreProhibited). ESPHome's abstraction layer consumed too much RAM for JPEG processing on ESP32.
See esphome-attempts/ for the failed configurations and detailed error analysis.
Switched to Arduino IDE with direct libraries (Arduino_GFX, TJpg_Decoder, WiFiClientSecure) for better memory control. This approach successfully handles JPEG download and display.
Attempted to add brightness control using the capacitive touch button on GPIO32, but WiFi interference caused the touch readings to drop to 0. See experiments/ for the pin scanning tests and detailed explanation.
├── firmware/ # ✅ Working Arduino firmware
├── esphome-attempts/ # ❌ Failed ESPHome configs (memory issues)
├── experiments/ # 🔬 Hardware tests (touch button)
├── web/ # 🌐 Cloudflare Workers app
├── hardware/ # 🔌 Wiring diagrams
└── photos/ # 📸 Documentation images
- checkup21/smalltv_pro_esphome - Initial inspiration
- Arduino_GFX_Library - Display driver
- TJpg_Decoder - JPEG decoding

