The Nova Mini project suite consists of two main components that work together to create an interactive memory game experience:
- Nova Mini (Receiver)
- Nova Mini Remote (Sender)
These devices communicate wirelessly using ESP-NOW protocol to create an engaging, interactive game experience based on the classic Simon memory game.
The main game controller that:
- Handles core game logic and state management
- Controls LED patterns and audio feedback
- Processes player inputs
- Manages game progression through levels and rounds
- Provides hardware-level control and feedback
The user interface controller that:
- Initiates game commands and controls
- Sends instructions to the Nova Mini receiver
- Provides real-time game state updates
- Offers enhanced game mode features
- Enables remote gameplay control
Both devices are built on the ESP32 platform, featuring:
- ESP32 microcontroller
- LED indicators for visual feedback
- Push buttons for user input
- Buzzer for audio feedback
- Custom PCB design
Built using modern embedded development tools and frameworks:
- PlatformIO development environment
- Arduino framework for ESP32
- ESP-NOW protocol for wireless communication
- Custom libraries:
- ESPUI for web interface
- AsyncWebServer for configuration
- MIDI Library for audio control
- ArduinoJson for data serialization
- OneButton for enhanced button control
The devices use ESP-NOW, a connectionless wireless communication protocol that enables:
- Low-latency communication
- Peer-to-peer data exchange
- Efficient power usage
- Reliable message delivery
- Multiple difficulty levels and progressive rounds
- Real-time LED and audio feedback
- Enhanced state management with stages:
- Sequence Generation
- Input Collection
- Verification
- Round Transition
- Game Win/Loss states
- Remote control capabilities
- Cheat mode for testing
The system includes a web-based configuration interface that allows:
- ESP-NOW pairing between devices
- MAC address management
- Game mode settings
- System preferences
This project is built using PlatformIO, offering:
- Cross-platform development
- Integrated dependency management
- Automated builds
- Extensive debugging capabilities
- Serial monitoring at 921600 baud
nova-mini/
├── nova-mini (receiver)/ # Main game controller
│ ├── src/ # Source files
│ ├── hardware/ # PCB and schematic files
│ └── platformio.ini # Project configuration
└── nova-mini-remote (sender)/ # Remote controller
├── src/ # Source files
├── docs/ # Documentation
├── hardware/ # PCB and schematic files
└── platformio.ini # Project configuration
- Clone the repository
- Open the project in PlatformIO
- Install required dependencies
- Configure the ESP-NOW settings through the web interface
- Upload to respective devices
- Access the web interface for additional configuration
Both projects use PlatformIO for building and deployment. Key build flags include:
- Thread name support
- ESP32 exception decoding
- Web server integration
- MIDI capabilities
- Custom debugging options
Detailed documentation is available in the docs/ directory, including:
- ESP-NOW configuration guide
- Relationship between devices
- Hardware schematics
- PCB design files
[Insert License Information]
[Insert Contribution Guidelines]