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

results matching ""

    No results matching ""