The precursor of Gambit, Bishop, used a complex system of wiring that involved a Raspberry Pi acting as the main source of computing power, and a Arduino Mega controlling the hardware. As time passed, this implementation caused more and more problems to the point where it started to be unfeasible. Those problems are listed below:
- Serial connection – This setup required a serial connection to be established between the Pi and the Arduino. Not only was it a complex and very bug-prone piece of software, it also introduced additional delays. It was in fact the main reason why we had to wait a second or two for a state in the FSM to change.
- Expensive – Raspberry Pis ain’t cheap and like to fry themselves every once in a while
- Severed codebase – The codebase had to be split between the Arduino and the Pi which introduced unnecessary complexity
- Overkill – Upon further consideration we realised that we don’t actually need all this computing power
- Bulky – One of our main goals with Gambit was to make it more compact, and the raspberry Pi introduced some difficulties with that simbly by bying too big.
As such we switched to an Arduino Nano ESP32. Not only does it meet all our hardware requirements, it is also small and compact – mush smaller than a Mega. This made it easier to prototype with on a breadboard. One drawback is that we are missing out on enough computing power to run an advanced chess engine, however an ESP32 is able to connect to WiFi and as such can offload heavier computations to outside sources. Moreover it is able to handle simpler chess engines and thus will still allow users to play against it without internet connection. Best of all, we could finally leave serial connection hell behind.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.