Back in 2017 I produced two digital pinball machines controlled with real hardware flippers and tilt function. These machines were the Xero Pinball and Reload Bar Pinball tables.
See https://alienabductionunit.com/pinball for an overview of the tables. Mobile and desktop only versions of the Hip Pocket Pinball Series are still available for free (and ad-free) download.
The custom controller hardware itself supports six buttons:
Also two LED outputs are supported:
The original boards were done on perf and were an eye-sore. But they featured USB HID functionality, essentially based on keyboard triggering, but allowed the lighting of LED indicators which is a limitation in regular USB keyboard PCBs.
It was designed with good old pen and paper to sketch out a rough component layout (now lost) but I still have the SVG that it was moved to:
This was then used as the reference for designing the new PCB layout and connections, and testing component footprints for sizing.
The new controller PCB utilises a PIC16F1455 microcontroller (earlier designs used a variety of other Microchip microcontrollers) on a custom PCB designed in KiCAD. The goal was to use all through-hole components for simple assembly, troubleshooting or repair.
Spending the time hand-routing the traces paid off. When my boards arrived, I popped in the pre-programmed PIC (dip package) and connected it to the test harness. To my absolute delight the design worked first time, no patching or re-spin required.
When working in KiCAD, I used the printout of the original SVG diagram and highlighted each trace on the paper as it was laid down in the new design. This way I could slowly cross reference each trace and have a fair level of confidence that each was correct.
It's always interesting to see how a board always appears much smaller than what you had in your mind. Like people on television :)
To access more information about the Virtual Pinball schematics and PCB gerbers, these are available at: https://github.com/sausagejohnson/pinball_pic16f1455. Eventually all parts of the project: the frame construction, game software, controller hardware, and controller software will be opened up to allow you to build your own machine.