The Story Behind the Project
This was a nice bonding project to do some woodworking with my grandpa, but to make it electrically feasible became too expensive and tedious for a project that already has many similar (and better) products on the market anyway.
Each piece will have a magnet in the bottom and magnetic sensors under each square. In order to prevent accidental moves or knocked-over pieces being interpreted as moves, the software will determine moves based on a built in chess clock that users press at the beginning and end of each turn.
For captured pieces to be interpreted correctly, the microcontroller must be able to distinguish between a black and white piece, so white and black pieces are mounted with opposite magnetic poles facing down. To read this, we require two sensors per square: a reed switch to detect the presence of a piece, and a magnetic sensor to determine if it is white or black.
In order to connect 128 sensors to a single microcontroller with limited pins, daisy-chained shift registers are used for the reed switches. This will allow all 64 sensors to be read using only 3 microcontroller pins.
Frustratingly, the magnetic sensors' "high" state is only 0.5 V which still registers as a digital low. In order to avoid including 64 op-amps, a series of analog MUXes will be used to allow the microcontroller to use around 10 pins to select which square to take a reading from, and only a single op-amp is necessary on the single input pin.