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!