FAST Pinball hardware programming: an overview of options¶
Writing software to run a pinball machine is complex, but also fun. FAST Pinball hardware is controlled via a simple serial-based interface which makes writing your own software fairly straightforward.
If you're a computer programmer who wants to write your own pinball software, we've created a series of guides to help you through the process. However...
You don't have to write your own pinball game software!¶
Writing your own pinball software is not for the faint of heart! Most FAST Pinball makers don't write their own software from scratch, rather, they use a free and open source project called the Mission Pinball Framework (MPF) to run their games. MPF uses text-based configuration files and can get you up and running quickly. It's also feature-rich and robust. In fact several commercial pinball machines run MPF! We have a series of guides and tutorials for FAST Pinball makers which show you how to use MPF with your FAST Pinball hardware.
That said, if you're a software developer who wants to write your own game software or framework from scratch, that's awesome! It's super fun and rewarding! Keep reading for guides, tips, and tricks.
The basics of working with FAST Pinball hardware¶
We've put together specific guides for every aspect of what you need to know to create your own pinball software. We'll start off with an overview of the general concepts of how you connect a computer to FAST Pinball software:
- FAST Serial Protocol overview & concepts
- Connecting to and initializing the NET connection
- Understanding the EXP connection & expansion board / breakout board topology
- Troubleshooting your code
Writing your own game framework¶
Once you learn the basic concepts of how to interact with the FAST Pinball hardware, you'll need to string everything together into a sequence for how your machine works. We have guidance for the specific things your software needs to do, and the order they need to happen in:
- Machine power on & your code's startup process
- NET connection startup process
- EXP connection startup process
Notes, examples, and hints for using & interacting with various pinball devices¶
Your game code will interact with and control many different types of pinball devices. We have guides for each type of device, detailing specific examples of FAST Serial Protocol commands and configurations for how each type of device is used—all from a programmer's perspective.
- Switches
- Dual-wound flippers
- Pop Bumpers /Slingshots
- Ball Devices (Trough, VUKs, ball ejects)
- LEDs
- Servos
- FAST Audio Interface
- Diverters
- DMD
- Segment Displays
- Smart Power Filter Board
Programming FAST Retro (Classic) machines¶
FAST Retro controllers are drop-in replacements for the main MPU board in existing classic Bally/Williams machines. If you're writing game software for one of these controllers, most of the concepts are similar to FAST Modern controllers. (The NET connection, the command set, etc.) But there are also some unique aspects which only apply to retro machines, such as interacting with classic hardware devices (general illumination chains, lamp matrix, using the A/C relay, etc.)
FAST Serial Protocol Reference¶
All programming and software for FAST Pinball hardware communicates using the FAST Serial Protocol. The FAST Serial Protocol reference documentation provides the specific details and syntax of every command, and should be used alongside the programming guides and concepts outlined here.
N or > jump the next page, P or < for previous, search with S or ?