From Initial Infrared Prototype to a 64-Square Magnetic Board.
5 hardware iterations — prototype, failure mode, engineering fix.
The Goal: Playing chess is one of my hobbies, but I like playing on a real physical board better than online. Therefore I built a board that connects to Lichess (a popular chess website) and allows me to play games on my board against online opponents. The piece detection happens magnetically with sensors underneath the board, and an LED array allows to showcase legal moves and—most importantly—what the opponent played.
01. Infrared Prototype
4×4 plywood test bench, 3D-printed grid, addressable LEDs, centered IR sensors.
IR emitter + receiver per square — bottom reflection, unmodified pieces.
100% daylight IR saturation — constant false positives on empty squares.
2000 Hz pulsed IR + Fourier transform — 0 Hz sunlight rejection.
4×4 IR test bench: 3D-printed grid, LED strips, upright IR pair per square.
2000 Hz Pulse + FFT vs. Sunlight
2000 Hz IsolatedIndoor light: Elevated 0 Hz baseline — clean 2000 Hz FFT peak.
02. 2000 Hz Pulse & Fourier
Pulsed IR emission + real-time FFT spectrum filtering.
0 Hz steady sunlight vs. 2000 Hz pulsed IR — isolated 2000 Hz FFT bin.
3.3V phototransistor clipping in direct sun — flat 2000 Hz waveform.
Pivot to magnetic Hall-effect sensors + neodymium piece magnets.
03. V1: 4×4 Miniature & First PCB
Modular 1×4 EasyEDA PCB strips (JLCPCB) + 3D-printed magnetic piece bases.
4×4 miniature board with four 1×4 digital Hall PCBs — total light immunity.
Suboptimal PCB header layout + binary 0/1 output — no threshold tuning or polarity.
Revised PCB layout, analog Hall sensors, and SolidWorks 3D-printed grid.
V1 4×4 miniature: First functional magnetic prototype with custom 1×4 PCBs.
EasyEDA 1×4 PCB: 16 modular strips per 8×8 board.
3D-printed base: Press-fit adapter + centered magnet.
Lit 8×8 matrix: 32 magnetic pieces across four 4×4 grids before wood veneer.
04. V2: 8×8 Analog Matrix & 3D Grid
64 analog Hall sensors, custom SolidWorks LED diffuser grid, dual 16-channel multiplexers on ESP32.
Continuous field strength + polarity — piece color (N/S pole) and type (magnet strength).
Center circular hole for direct magnetic flux + 4 corner LED cutouts.
64 analog sensors via two 16-channel multiplexers + 152 LEDs (< 50 ms scan).
05. Finished Board, Webapp & Gestures
Wood veneer chessboard + Raspberry Pi (Lichess API, Stockfish engine, local web UI).
Live Lichess online play on physical board, Stockfish review, puzzles, 8×8 ADC heatmap.
100% standalone mode — piece-lift sequences (e.g. e4 + d4 pawns) for on-board LED Stockfish review.
Finished wooden board: 64 analog Hall sensors + 152 LEDs under wood veneer, live Lichess sync.
Next Project → Automated Cocktail Dispenser
3D CAD • Laser Cutting & 3D Printing • Stepper Kinematics • Embedded C