Software and Protocols
This project is powered by quite a few microcontrollers and applications which communicate via different protocols.
Devices and Software
There are several different devices that run their own program.
- PlayerController ESP32 which controls all player specific functionality
- BaseServer NodeJS based Basestation running either on raspberry or on an online server which controls the game setup and execution
- Mobile application which display live game information
- The Weapon Attiny IC which controls the weapons functionality
- The Detector Attiny IC which handles the IR signal detection and processing
- The GenericSender Attiny IC on the GenericSender PCB providing a configurable beacon functionality
Connections and Protocols
These programs communicate with each other via individual connections and dedicated connections:
- Weapon Control (C header): I2C between PMD and Weapon IC
- Master/Slave - Communication only initiated by PMD
- Detector Control (C header): I2C between PMD and Detector IC
- Master/Slave - Communication only initiated by PMD
- Additional GPIO) line to allow the detector to indicate available data
- Game Control/Game WS: TCP websocket via cellular network or 433MHz between Basestation and PMD during game phase
- "Connectionless" - Single messages broadcast (websocket messages are broadcast to other websockets serverside)
- Low bandwith, collisions possible (on 433MHz)
- Setup Control/ESP API: HTTP(s) based communication over WiFi or cellular between Basestation and player controller during setup phase
- App WS: TCP websocket over WiFi or cellular between web/mobile application and baseserver during game phase
- IR Transmission (C header): Modulated IR signal "shooting" from weapon to detector
- 940nm - toggled with 38kHz and modulated with low frequency on/off keying
- Low bandwith, collisions possible