Build Log

Project Vulcano

#001

The idea

Most of my projects started with something that already existed. I redesigned it, upgraded it or made it work better.

I wanted one project for my portfolio that I could build completely from scratch and call my own. The idea, the decisions, the software, electronics and hardware.

I've been playing electronic darts since 2008. I had a Löwen FM90 at home for years. Played it, fixed it, maintained it and had it apart more times than I can count. Somewhere along the way, playing darts and messing with the machine became the same hobby.

I've played on plenty of other machines, but the FM90 is still my favourite. That thing is a tank.

So when I decided to build my own, I knew what I wanted. Better electronics, better diagnostics, modern software and easy to work on when something eventually breaks.

That's how Vulcano started.

#002

First test

I didn't want to buy a professional dartboard just to test the idea.

So I bought a cheap kids' dartboard, took it apart and connected the target matrix to the controller. I mapped the segments and uploaded the firmware to the controller.

#003

Proof of concept

I put together a basic dartR game app on the PC, connected everything and threw the first darts.

It responded exactly as I'd imagined.

Three hours later, I had my proof.

GO.

#004

Starting the build log

The project has been moving for a while, so I'm starting a build log.

I'll post when there's something worth showing. Cabinet work, wiring, firmware, depends what's on the bench that week.

The photos are just from the garage. I don't set anything up, so it usually looks messy.

#005

3-month update

It's been three months since the proof of concept. Most of that time I've been staring at code and drawings. Not much of it is worth a photo.

The firmware's finished now, and I've got one wiring plan instead of twenty bits of paper lying around the bench. Everything's backed up before I start testing.

The next job is to get everything working on the bench. I want to test the relay, proximity sensor, target matrix, buttons, piezo, coin acceptor and lighting one by one before any of it goes into a cabinet. The cabinet is still at the sketch stage.

#006

The cabinet takes shape

First proper 3D sketch of the cabinet. You can see roughly where it's going, though a lot of it will still change.

#007

Technical review complete

Spent most of today going through the wiring plan again. Checked every sensor, relay and pin against it. Found a couple of things I wasn't happy with and fixed them now instead of later.

The next job is working out how the wiring will actually run through the cabinet. Once that's sketched out properly, I can stop looking at the 3D model and start building it in the garage.

#008

Cabinet material arrives

The garage belongs to dartR now. Honda is out.

#009

Fixing the small things

I didn't spend much time in the garage this time. Most of it was on the computer.

I went through the firmware, the calibration software and the documentation and fixed the small things I found. Easier to sort them out now than with the whole thing screwed together.

The workbench is in the garage now.

#010

Shirts

Hurt my hand a bit, so I'm out of the garage for a while.

I can still type.

Prepared the logo for shirt printing and made a few mockups.

#011

Prototype finalized

Almost finished.

Then came another redesign.

Two additional panels.

The new panels are now in one place.

#012

Prototype visualization

The current 3D design, translated into a more realistic view.

Same direction.
Now easier to see.

#013

The first panels come together

Started with the dartboard section.

#014

The base takes shape

Started assembling the base section.

#015

Base details

Built the base support, fitted the adjustable feet and installed the coin door.

#016

Starting to look like it

The base and dartboard sections are together. Just the top section left.

#017

More clamps than screws

Top section coming together.

#018

Starting to feel real

Top section mounted.

Base cabinet doors milled to 22.5°, biscuit joined and glued.

#019

Closing up the base

Base cabinet doors mounted.

Hinges fitted and adjusted.

#020

dartR TestBench PoC

I made the first TestBench to check communication between the PC, controller and hardware.

While using a car diagnostic scanner, I got another idea. Why not turn it into something similar for Vulcano?

So I built a proof of concept.

I could test the hardware manually, run an automatic test and watch the controller traffic while tracing a fault.

It worked. Now it needed some real testing.

#021

Router day

Started with the hinges and mounted the bare door on the cabinet to see how it sits.

I marked the bullseye at the official 173 cm height.

Made a template for the router and cut the dartboard opening.

Then did the button holes the same way.

#022

Nice to meet you

Mounted the dartboard.

Printed the button graphics and fitted the arcade buttons.

#023

Jumper wire in my hand

Spent the day with the controller PCB on the desk, going through it pin by pin.

Each input was triggered by hand on the controller and checked all the way through to the PC TestBench. Buttons, keys, coin input, dartboard matrix and relay all passed.

#024

TestBench redesign

The first TestBench did its job. It proved the idea and passed the tests.

After using it for a while, I started looking at it more like the diagnostic tools I know from cars. That changed quite a few things.

So I went back and redesigned it. Different layout, different colours and a different way of working. The tests are faster now, duplicate tests are gone, and the old Auto Test has been replaced by Global Test and Manual testing.

It still does the same basic job: tell me what works and what doesn't. It just does it a lot better now.

#025

Different rules

Today I made the final changes to the controller software.

The controller used to have a few jobs to do before the game app boots. It worked, but having two masters meant more rules between the controller and the PC.

I didn't need that. The PC is the master now. The controller just passes information back and forth.

It boots with all outputs off, reports SYS:BOOT_COMPLETE and waits for commands.

#026

Piezo board

Spent some time reading electronics forums and figuring out the best way to handle the piezo circuit.

Worked out the circuit, then drew the schematic in KiCad and designed the PCB from it.

#027

Power switch

Marked out the opening on masking tape and rough-cut it with a jigsaw, then cleaned up the edges with a small router until the module dropped in.

Spent more time working out where to mount the power switch module than doing the actual job. Had to think about where the mains cable would enter the cabinet and how the wiring would run from there.

#028

Measure twice

Router ran all day. Ventilation slots, the speaker opening, the power inlet and every hole the wiring has to pass through.

Mounted the PC on its original bracket. Had to make a bracket for the ATX power supply.

The hardest part was working out where each module and component had to go.

#029

AC / DC Routes

With all the holes drilled through the cabinet and some of the hardware already in place, I started working out how to route the wiring. The AC and DC routes were crossing each other. Running 230V next to the controller wiring could pick up electrical noise and cause false triggers. I don't know if it would in this cabinet, but changing the routes later is more work than separating them now.

The idea was to split the cabinet into an AC side and a DC side. The main switch was already fixed in position, which determined where the AC side had to be. That left the other side for the DC and signal wiring.

The hinges were in the way. With them on the right I couldn't keep the two sides separated, so I moved them to the left.

Now the 12V, 5V and signal wiring can run through the hinge side to the dartboard door, while the 230V AC and HDMI can run up the right side to the monitor.

#030

Matrix board

Drew the matrix board in KiCad. Flat cable from the target goes into a 16 pin header, controller wires onto solder pads.

#031

Piezo and Matrix PCB

Redesigned the Piezo and the Matrix PCB. Printed, ironed and etched them. They came out okay.