My Darts Machine Project Journey
So, I got this idea buzzing around in my head for a while: building my own electronic darts machine. You know, the ones that score for you. I was tired of scribbling scores down, especially after a couple of beers when math gets fuzzy. Plus, it sounded like a fun project to tinker with.
First things first, I had to figure out how I was gonna do it. I looked around online, saw some crazy complicated setups. I wanted something simpler, something I could actually finish. I decided to grab an old electronic dartboard, one of those cheap plastic ones, as the base. The kind where the segments push in when a dart hits. My thinking was, I could tap into those existing buttons or switches underneath.
So, I went hunting. Found a used one online for next to nothing. Perfect. Then I needed a brain for this thing. I had an old Raspberry Pi gathering dust, so that was the obvious choice. Way more power than I probably needed, but hey, I had it already.

Getting Hands Dirty: The Build
Taking the old dartboard apart was the first real step. Lots of screws. Inside, it was basically a grid of wires connected to all the little plastic segments. When a dart hits, it pushes a segment, closing a circuit. Simple enough, right? Well, kind of.
My plan was to connect these grid wires directly to the Raspberry Pi’s GPIO pins. That meant figuring out the wiring matrix – which wire combo corresponded to which segment (like triple 20, single 1, etc.). This took ages, honestly. I used a multimeter, poking around, writing down connections. It was tedious stuff.
- Pulled the board apart.
- Mapped out the wiring matrix (ugh).
- Soldered wires from the board’s connector to jumper wires for the Pi.
- Hooked everything up to the Raspberry Pi GPIOs.
Then came the software part. I decided to use Python because I’m comfortable with it, and there are decent libraries for GPIO stuff. The basic idea was: detect which pins go high (or low, depending on how I wired it) when a segment is hit, look up that combination in my mapping, figure out the score, and keep track of the game.
Getting the Pi to reliably read the quick press of a dart hitting wasn’t straightforward. There was bounce, sometimes multiple signals for one hit. Had to write some code to handle that, basically ignoring signals that happened too close together. Lots of trial and error, throwing darts, checking the output, tweaking the code, repeat.
Making it Usable
Just having the Pi know the score wasn’t enough. I needed a display. I dug out an old small LCD monitor I had lying around. Hooked that up to the Pi’s HDMI port. Then I worked on making a simple display using Pygame, just showing the current player’s score, what they need, stuff like that. Nothing fancy, just functional.

I also added some basic game logic for 301. Player turns, subtracting scores, checking for busts, detecting the winner. It got a bit messy, my code isn’t exactly professional grade, but it started working.
Challenges faced:
- Wiring matrix mapping was a pain.
- Debouncing the signals from the board took time to get right.
- Making the display clear and updating correctly.
- Sometimes darts wouldn’t register if they didn’t hit hard enough. Still an issue, honestly.
- Finding space for all the wires and the Pi inside or near the board. I ended up just mounting the Pi in a small box next to it.
The Result (So Far)
So, now I have this… thing. A dartboard hooked up to a Raspberry Pi that mostly scores correctly for a game of 301. It looks a bit rough, wires here and there, but it works! It’s definitely more fun than manual scoring.
It’s not perfect. Sometimes it misses a score, or gets confused if you pull darts out too fast. And I only programmed 301. But it was a cool project, learned a lot messing with the hardware and software interface. Maybe I’ll add Cricket scoring later, or build a proper case for it. Or maybe I’ll just play darts.