I got my parts that I ordered from AdaFruit. Parts included a Raspberry PI Zero W that has wifi built in, quad alphanumeric displays, blue 3mm LED's, which are way cooler, and a lot brighter, then I was expecting. I2C I/O port expanders, and some resisters and diodes. The LEDs will be one LED per board square. The buttons and segmented displays are for the clock, one button and display per player.
The segmented display was easy enough to solder up and program. I ended up using the Adafruit Python library to test the display. It is an alphanumeric display with an i2c interface, so I could support up to 8 displays if I wanted to. But 2 displays for a chess clock is plenty. The default address for the display is 0x70, but you can change it to anything from 0x70-0x77.
The i/o port expanders are to enable me to read from 64 reed switches, and output to 64 LEDs. That's a total of 128 i/o ports, and that can all be done via i2c, and 8 i/o expanders.
I'm still testing the idea of using special wiring I mentioned in my proof of concept post, but it may be easier and more accurate to just use the i/o expanders, which also support interrupts. Which would mean I wouldn't have to poll for state changes; instead the program would be interrupted automatically when a piece is moved.
Complete parts list:
|3x||Through-Hole Resistors - 220 ohm 5% 1/4W Pack of 25 PID: 2780|
|1x||Raspberry Pi Zero W|
|1x||Break-away 0.1" 2x20-pin Strip Dual Male Header|
|2x||1N4001 Diode - 10 pack 1N4001 Diode - 10 pack|
|10x||MCP23017 - i2c 16 input/output port expander|
|1x||5V 2A (2000mA) switching power supply - UL Listed|
|2x||Quad Alphanumeric Display - Blue 0.54" Digits w/ I2C Backpack|
|3x||Diffused Blue 3mm LED (25 pack)|
|2x||16mm Illuminated Pushbutton - Blue Momentary|
Here is a little animation of the display at work:
Copyright © 2020, Lee Patterson