AeroSports
Shared room-level device and communication infrastructure for displays, audio, wristband scanning, restart controls, door locks, and controller connectivity across interactive game rooms.
Scope
Shared room device layer
Connectivity
USB + COM + Ethernet
Recovery
Automatic COM reassignment
Resilience
Watchdog-assisted recovery
Ownership
Software + hardware integration
Grouped by the primary systems, languages, and infrastructure used in this build.
Frameworks
.NET 8 Shared Library, Arduino
Languages
C++, C#, PowerShell
Hardware
2 monitors with HDMI splitter, Sound system, Handscanner, Restart button, NO/NC doorlock, SRD chip
AeroSports
Shared room-level device and communication infrastructure for displays, audio, wristband scanning, restart controls, door locks, and controller connectivity across interactive game rooms.
Scope
Shared room device layer
Connectivity
USB + COM + Ethernet
Recovery
Automatic COM reassignment
Resilience
Watchdog-assisted recovery
Ownership
Software + hardware integration
Tech Stack Overview
Grouped by the systems, languages, and supporting layers used in this project.
Provides room-level power, display, access, and peripheral device control.
Except for the kiosk PC, game sensors, and game controllers, each room also depends on a set of shared operational devices required for the room to function properly.
These room-level devices include:
These devices are present in all rooms and are connected to the room's kiosk PC.
This project had both:
The result was a reusable room infrastructure layer that allowed different rooms to share a common runtime pattern while still supporting very different game mechanics.
Shared room devices connect into the kiosk PC through a reusable communication layer that is used by the kiosk host, game engine, simulators, watchdog tools, and other runtime utilities.
Each room used a common base hardware setup on top of the room-specific controllers and game sensors.
Architecture-wise, these devices connect into the kiosk PC and are then accessed by multiple software systems such as:
To avoid duplicating device communication logic, we created a shared .NET communication library for room devices.
This library was used by multiple applications to communicate with the hardware consistently.
The SRD chip was preprogrammed and came with:
The shared software layer sent the required serial commands to control the NO/NC lock behavior.
The hand scanner used an Arduino-based board we programmed to:
The restart button used the same communication philosophy:
This shared library approach made it easier to integrate the same devices into multiple parts of the system without reimplementing the protocols every time.
The room infrastructure evolved significantly as the facility expanded.
Initially we only had:
Initially we only had:
In the new facility, the device layer became much richer. We added: Examples: We also added automatic smoke control in the Laser room using a smart...
One of the first major problems was handling all the USB/COMconnected room devices. Initially, we hardcoded COM port numbers. That worked only temp...
One of the first major problems was handling all the USB/COM-connected room devices.
Initially, we hard-coded COM port numbers.
That worked only temporarily, because after restarts or device changes:
To solve this, we introduced an acknowledgement-based identification system.
All Arduino-controlled devices (such as:
were programmed with an acknowledgement command.
When queried, they would return their device name.
Then the kiosk application would:
This made the room far more resilient to port reassignments after restarts.
Another large challenge was on the hardware side: This was not just a software problem it required practical device and infrastructure decisions fo...
Another major issue was device disconnection during active sessions or during the day. Problems included: To improve reliability, we added a watchd...
I was involved in both the software and hardware sides of this system.
I was responsible for helping decide:
I prepared those layouts and diagrams for the:
On the software side, I made sure the devices were integrated cleanly into the room software stack.
This included:
I also worked with the team to add the watchdog system that helped verify whether the room was healthy and functioning correctly.
Core technologies
Supporting technologies