A comprehensive ESP32-based system for controlling LED matrix displays in fursuit heads, featuring dual 64x32 HUB75 LED panels, OLED status display, wireless control, and interactive sensors.
- ✅ Dual LED Matrix Control - Two 64x32 HUB75 panels with mirrored display
- ✅ Button Face Switching - Manual control via GPIO21 button
- ✅ OLED Status Display - Real-time face and system information
- ✅ 7 Face Expressions - Pre-loaded animated face bitmap collection
- ✅ Optimized Performance - Efficient rendering with 50ms refresh cycles
- ✅ Dual-Core Processing - Dedicated display task on Core 0
- ✅ Memory Efficient - Only 7.2% RAM usage on ESP32
- 🔄 ESP-NOW Wireless Control - Remote ProtoPaw controller (temporarily disabled)
- 📱 Interactive Sensors - Boop detection and speech animation
- 🎵 Audio Reactive - Microphone-based face animations
- 🌐 Web Interface - Browser-based configuration (planned)
- 📡 NRF Integration - Low-power wireless communication (planned)
- ESP32 or ESP32-S3 development board
- 2x 64x32 HUB75 LED Matrices (P3 or P4 pitch recommended)
- 128x64 OLED Display (I2C interface)
- 5V Power Supply (minimum 4A for full brightness)
- Push Button (for face switching)
- MAX4466 Microphone (for speech animation)
- VL53L0X ToF Sensor (for boop detection)
- ProtoPaw Controller (wireless remote)
R1: GPIO42 | G1: GPIO41 | B1: GPIO40
R2: GPIO14 | G2: GPIO12 | B2: GPIO13
A: GPIO19 | B: GPIO16 | C: GPIO5
D: GPIO17 | CLK: GPIO18 | LAT: GPIO4
OE: GPIO15 | E: Not used (32px height)
Button: GPIO21 (with internal pullup)
I2C SDA: GPIO21 (OLED)
I2C SCL: GPIO22 (OLED)
Microphone: GPIO34 (when enabled)
ToF Sensor: GPIO25 (when enabled)
- Visual Studio Code
- PlatformIO Extension
- USB cable for ESP32 programming
-
Clone the repository:
git clone https://github.com/Protogenboris/Protogen--opensource.git cd Protogen--opensource -
Open in VS Code:
code . -
Install dependencies: PlatformIO will automatically install required libraries on first build.
-
Build and upload:
pio run --target upload
- Connect power supply (5V, 4A+)
- Watch serial monitor for boot messages
- Press button on GPIO21 to cycle through faces
- Check OLED display for current face status
- 📋 WARP.md - Complete development guide and project overview
- 📝 IMPROVEMENTS.md - Detailed changelog and technical improvements
- 🔧 Hardware Wiring Guide - Pin configurations and connections
Protogen--opensource/
├── src/
│ ├── main.cpp # Main application logic
│ ├── faces.cpp/.h # Face bitmap management
│ ├── oled_menu.cpp/.h # OLED display control
│ ├── scaling.cpp/.h # Image scaling utilities
│ ├── boop.cpp/.h # Boop sensor (disabled)
│ ├── speech.cpp/.h # Speech animation (disabled)
│ └── espnowcom.disabled # ESP-NOW communication (disabled)
├── lib/
│ └── ESP32-HUB75-MatrixPanel-I2S-DMA/ # LED matrix library
├── WARP.md # Development guide
├── IMPROVEMENTS.md # Changelog
└── platformio.ini # PlatformIO configuration
- Power On: Connect 5V power supply
- Face Switching: Press button on GPIO21
- Status Check: View OLED display for current face info
- Serial Monitor: Connect at 115200 baud for debugging
- Default Face (index 0)
- Calm Face (index 1)
- Happy Face (index 2)
- Sad Face (index 3)
- Angry Face (index 4)
- Surprised Face (index 5)
- Love Face (index 6)
# Clean build
pio run -t clean
# Build only
pio run
# Build and upload
pio run -t upload
# Monitor serial output
pio device monitor- ESP32: 7.2% RAM (23,664 bytes), 26.2% Flash (342,861 bytes)
- ESP32-S3: 6.4% RAM (21,096 bytes), 10.5% Flash (350,437 bytes)
To re-enable ESP-NOW or sensors, rename the disabled files and uncomment the relevant includes in main.cpp.
We welcome contributions! Please read our contributing guidelines before submitting PRs:
- Fork the repository
- Create a feature branch
- Test your changes thoroughly
- Submit a pull request with clear description
- ESP-NOW communication temporarily disabled for stability
- Sensor modules require initialization fixes before re-enabling
- Web interface not yet implemented
- v1.1.0 - Re-enable ESP-NOW with improved stability
- v1.2.0 - Sensor integration and interactive features
- v2.0.0 - Web configuration interface
- v2.1.0 - NRF-based low-power ProtoPaw controller
- v3.0.0 - WS2812B and MAX7219 panel support
Need help? We're here for you!
- 📧 Email: tankst445@gmail.com
- 💬 Telegram: @Fulldayfullnight
- 🐙 GitHub Issues: Create an Issue
This project is open source and available under the MIT License.
- ESP32-HUB75-MatrixPanel-I2S-DMA library for LED matrix control
- U8g2 library for OLED display support
- PlatformIO for excellent development experience
- Furry community for inspiration and support
⭐ Star this repo if you found it helpful!