===== Digital Pinball Controller PCB ===== {{ :pinball:pinball-pcb.jpg?direct&400|}} 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: * Left flipper * Right flipper * Launch button * Play button * Admin function button Also two LED outputs are supported: * Launch LED * Player LED {{https://alienabductionunit.com/_media/games:reload-bar-pinball.jpg?250x446|}}{{https://alienabductionunit.com/_media/pinballmachines:reload-bar-pinball-frame.jpg?306x446 |}} 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: {{ :pinball:perf-board-layout.png?nolink&600 |}} 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. {{ :pinball:pinball-schematic.png?nolink&1000 |}} 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. {{ :pinball:pinball-kicad-pcb.png?nolink&400 |}} 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.