Personal build / Physical computing
10×10 LED matrix + Pong.
A hundred LEDs, a lot of solder, a multiplexing problem, and two physical controls: everything needed to turn a rough experiment into a playable display.
- Format
- 10 × 10 LED matrix
- Control
- Layer and column multiplexing
- Input
- Two variable resistors
- Output
- Patterns and playable Pong
01 / The ideaMake a display from first principles.
The project began as a three-dimensional LED cube and changed direction during the build. A 10×10 matrix made each LED easier to read and created a better surface for patterns, motion, and eventually a simple game.
The cathodes are connected across rows while the anodes form columns. That wiring keeps the number of controller connections manageable, but creates a constraint: arbitrary LEDs cannot simply remain on together without lighting unintended intersections.
02 / The constraintUse time to create the image.
Multiplexing solves the intersection problem by illuminating the required LEDs in rapid sequence. Each point is on for only a short time, but the cycle repeats quickly enough for persistence of vision to turn those moments into one stable image.
That changed the software from a list of switches into a small display engine. Patterns had to be represented, scanned, and redrawn continuously while still leaving enough time to read inputs and update the game state.
- Electrical architecture defines the shape of the software that follows.
- Timing is part of the interface when the display only exists through persistence of vision.
- Test every row while it is still accessible; later repairs become dramatically harder.
03 / FabricationSolder, test, reinforce, repeat.
The matrix was assembled as separate LED rows before being joined into the complete grid. Heat can destroy an LED, and every added connection makes a failed component harder to reach, so testing became part of the assembly rhythm rather than a final step.
The wiring is honest rather than elegant. Colour-coded leads helped preserve the column mapping, crimped connections reduced movement at the LED legs, and stripboard made the controller side much more predictable than free-form soldering.
04 / InteractionPatterns became a game.
Once the matrix could draw repeatable shapes, the next challenge was interaction. Variable resistors became paddle controls. The program mapped each input to a vertical position, advanced the ball through a set of paths, detected paddle contact, and redrew the frame fast enough to keep the display convincing.
Pong demonstration / video loads only when you press play
05 / LessonsThe messy build taught the useful parts.
If I rebuilt it, I would design the support, resistor network, cable routing, and diffusion layer before soldering the first row. But that is also why the project was valuable: every awkward decision made the relationship between physical layout, electronics, timing, and code impossible to ignore.