The inordinate amount of hype around data analytics and IoT devices inspired us to create a cheap and universal game controller, that runs over 2.4GHz wifi.
What it does
Our project provides a universally programmable microcontroller attached to hardware buttons, with which you can use either interrupt or poll based feedback for a game. Simply put, a fully programmable and affordable game controller.
How we built it
We used several microcontrollers and frameworks in the development of this project. Hardware used includes: Arduino Nano V3, NodeMCU, ESP8266 and various supporting components. Our software stack consists of a configurable API in Lua on the microcontroller side of the game controller, the Java Processing libraries, TooTallNate's Client/Server web socket library, Serial over TTL and the Gradle build system.
Challenges we ran into
We accidentally bricked all of our Arduinos right from the start by overwriting all their bootloaders with infinite loops in C... This set us back several hours, and ultimately forced us to make some last minute decisions that, in hindsight, could've been avoided.
We also experienced a vast number of networking issues including both RF and copper based networks; our hacker room had a particurlarly large amount of EMI making it nearly impossible for the ESP8266s to reliably communicate with eachother. The copper issues arose when we tried to deploy services over the local network, only to learn the school's firewall was so restrictive that even masked traffic rerouted through port 443 was blocked.
Accomplishments that I'm proud of
Through the scientific method, we have concluded that tying an unrestricted 5V rail, capible of over 2A continuous, into multiple 3.3V digital GPIO pins on a NodeMCU, reliably destroys the TTL digital frequency synthesis previously available.
What I learned
We learned the importance of boost converting and voltage dividers, to prevent magic smoke.
What's next for Space Bodge
World conquest. But I mean, why stop there.