p3a is a Wi-Fi pixel art player that connects to Makapix Club, a pixel art social network. Built on the ESP32-P4, it's a 4-inch smart art frame you can control from anywhere—via touchscreen, web browser, REST API, or securely through Makapix Club's MQTTS backend. Register your p3a at dev.makapix.club and play artworks and channels from the website directly on the device.
- Get the hardware: Waveshare ESP32-P4-WIFI6-Touch-LCD-4B + microSD card
- Insert the microSD card: This requires unscrewing the back plate
- Flash the firmware: Download and run
p3a-flasher.exefrom the releases folder, or see the flashing guide for other options - Connect to Wi-Fi: On first boot, connect to the
p3a-setupnetwork and visit http://p3a.local/ to configure your Wi-Fi - Register it at Makapix Club: Long press on the screen and follow the instructions
- Send art to it: Browse https://dev.makapix.club/ and securely send artworks to your p3a
Note: The initial flash requires USB. After that, all updates are wireless via the web UI.
For detailed usage instructions, see HOW-TO-USE.md.
- Play artworks and channels: Play individual artworks or entire channels (e.g., "Promoted Artworks", "Recent Artworks") directly from Makapix Club to your p3a
- 4 ways to control: Touchscreen, local web UI at
http://p3a.local/, REST API, or remotely via Makapix Club's secure MQTTS (MQTT over TLS) backend - Cloud connectivity: Register your device at dev.makapix.club to unlock remote control from anywhere
- Coming soon: Send a "like" to the artwork by touching the screen, swipe up to view artwork comments from the Makapix community
- Freeze-free, gapless playback: Robust multi-buffer rendering handles animations smoothly, even with corrupt or problematic files
- Full format support: Animated WebP and GIF, and still PNG all with transparency and alpha channel support, plus full JPEG support
- Aspect ratio preservation: Non-square artworks display without distortion, properly centered with configurable background color
- Touch controls: Tap to change artwork, swipe to adjust brightness, rotate with two fingers
- Screen rotation: Rotate the display 0°, 90°, 180°, or 270° via touch gesture or web API
- Web interface: Full device control from any browser at
http://p3a.local/ - Over-the-Air updates: After initial USB flash, update firmware wirelessly via the web UI with automatic rollback protection
- USB access: Connect via USB-C to access the microSD card as a storage device. Copy you own private, offline files to p3a
- Auto co-processor updates: p3a automatically flashes the ESP32-C6 Wi-Fi 6 co-processor firmware when needed
- PICO-8 Monitor (optional): Stream PICO-8 games to the display—disabled by default to reduce firmware size, can be enabled at compile time
After the initial firmware flash via USB-C cable, all subsequent updates can be installed wirelessly. p3a automatically checks for firmware updates from GitHub Releases, and you can install them directly from the web interface.
Update features:
- Wireless updates — no need to reconnect USB after the first flash
- Automatic checks every 2 hours (or check manually via web UI)
- One-click install from the web interface at
http://p3a.local/ota - Progress display on both the device screen and web interface
- Automatic rollback if the new firmware fails to boot 3 times
- Manual rollback to previous version via web UI
- SHA256 verification ensures firmware integrity
- ESP32-C6 auto-update — the Wi-Fi co-processor firmware is updated automatically when needed
OTA update page (click image to watch video)
| Component | Details |
|---|---|
| Board | Waveshare ESP32-P4-WIFI6-Touch-LCD-4B |
| MCU | Dual-core ESP32-P4 + ESP32-C6 for Wi-Fi 6/BLE |
| Display | 4" square 720×720 IPS, 24-bit color, dimmable backlight |
| Touch | 5-point capacitive touchscreen |
| Memory | 32MB PSRAM, 32MB flash |
| Storage | microSD card slot |
| Power | USB-C (no battery) |
p3a is in active development. The following features are implemented:
- Display pipeline with multi-buffer rendering for freeze-free playback
- Animation playback with prefetching and robust error handling
- Transparency & alpha channel support for WebP, GIF, and PNG with configurable background color
- Aspect ratio preservation for non-square artworks
- Touch gestures (tap, swipe, long-press, two-finger rotation)
- Screen rotation (0°, 90°, 180°, 270°) with persistence
- Wi-Fi provisioning with captive portal and mDNS (http://p3a.local/)
- Local web UI and REST API, also with mDNS
- Makapix Club integration — play individual artworks and entire channels from dev.makapix.club
- Secure mTLS MQTT client for device registration and remote control
- Over-the-Air (OTA) updates — install firmware updates wirelessly via web UI with integrity verification and full rollback support
- Automatic ESP32-C6 firmware updates for the Wi-Fi co-processor
- USB composite device (serial console + mass storage)
Coming soon:
- Send "likes" to artworks with long-press gesture
- Swipe up to view artwork comments from the Makapix community
See ROADMAP.md for the full development plan.
| Document | Description |
|---|---|
| HOW-TO-USE.md | Detailed usage instructions |
| flash-p3a.md | How to flash the firmware |
| OTA_IMPLEMENTATION_PLAN.md | Over-the-Air update system design |
| INFRASTRUCTURE.md | Technical architecture for developers |
| ROADMAP.md | Development roadmap and milestones |
main/— Application entry point, display/touch drivers, animation player, format decoderscomponents/— Custom components: app state, config store, HTTP API, Makapix integration, OTA manager, decodersmanaged_components/— ESP-IDF Component Registry dependencieswebui/— Web interface files (compiled into SPIFFS)docs/— Documentation
Makapix Club is a pixel-art social network where artists share their creations. Register your p3a at dev.makapix.club to:
- Play artworks and channels: Stream individual artworks or entire channels (like "Promoted Artworks" or "Recent Artworks") directly to your p3a
- Remote control: Control your device from anywhere via secure MQTTS (MQTT over TLS) connection
- Real-time updates: Receive artwork notifications instantly
- Coming soon: Send "likes" to artworks with a long-press, swipe up to view community comments
Contributions are welcome! See the INFRASTRUCTURE.md for technical details about the codebase.




