This guide will help you set up and configure the ESP-NOW Signal Hunt system for your event.
- Software Setup
- Configuration
- ESP-NOW Configuration
- Event Setup
- Workshop Setup
- Troubleshooting
- Support
- Download from arduino.cc
- Install version 2.0.0 or newer (recommended)
- Open Arduino IDE
- Go to File → Preferences
- Add the following URL to Additional Boards Manager URLs:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json - Go to Tools → Board → Boards Manager
- Search for "ESP32" and install the latest version
- Go to Tools → Manage Libraries
- Search and install:
ArduinoJson(by Benoit Blanchon) - for JSON handling
- Open
transmitter/espnow_signal_transmitter.ino - Set unique ID for each transmitter:
// Change for each transmitter
#define TRANSMITTER_ID 1001 // 1001-1006 for Alpha-Omega
#define TRANSMITTER_NAME "Alpha"
#define TRANSMITTER_POINTS 10 // Change based on difficulty- Optional: Adjust transmission settings for range vs battery life:
#define TRANSMIT_INTERVAL 3000 // Milliseconds between transmissions- Upload to ESP32
- Open
receiver/espnow_signal_hunt_receiver.ino - Modify WiFi settings if needed:
const char* ssid = "RF-SIGNAL-HUNT";
const char* password = "ieee2024";- Customize transmitter database for your event:
const struct {
unsigned long id;
const char* name;
int points;
} transmitterList[] = {
{1001, "Alpha", 10}, // Modify IDs, names, points
// Add more transmitters as needed
};- Upload to ESP32
ESP-NOW is a connectionless communication protocol that enables direct device-to-device communication without establishing a traditional WiFi connection.
- Transmitters are configured to broadcast to all devices
- No pairing required - any receiver can pick up signals
In transmitter code, you can adjust power level:
// For lower power consumption but shorter range:
esp_wifi_set_max_tx_power(52); // 8dBm (lower)
// For maximum range:
esp_wifi_set_max_tx_power(84); // 20dBm (maximum)If experiencing interference, change the WiFi channel:
peerInfo.channel = 1; // Try channels 1, 6, or 11 for least interference- Install fresh batteries
- Verify each transmitter is working with correct ID
- Place in waterproof containers if outdoor event
- Verify WiFi access point creation
- Test signal detection from all transmitters
- Ensure scoring system works properly
- Create a map with planned transmitter locations
- Ensure good distribution across campus
- Consider difficulty levels and terrain
- Hide transmitters at varying difficulty levels
- Ensure antenna area remains unobstructed
- Place higher-value transmitters in more challenging locations
- Position transmitters elevated from ground level
- Avoid placing near large metal objects
- Consider line-of-sight limitations
- Record exact placement for future reference
- Consider taking photos of hidden locations
- Test signal detection range before finalizing
| Problem | Solution |
|---|---|
| ESP32 won't connect | Check power supply |
| Transmitter not detected | Verify transmitter ID matches in database |
| Limited WiFi range | Reposition receiver for better AP coverage |
| Weak detection range | Ensure transmitters aren't blocked by obstacles |
| Game progress not saved | Verify EEPROM functions properly |
| ESP-NOW not working | Try different WiFi channel (1, 6, or 11) |
- Serial Monitoring: Both transmitters and receivers output detailed debug information via Serial (115200 baud)
- Flash Issues: If unable to flash, hold BOOT button while connecting power
- Range Testing: Use serial output to monitor actual RSSI values for range calibration
For technical support or questions, please file an issue on the GitHub repository.
Last Updated: 2025-06-01
Prepared by: Deratheone