Warning
This is the documentation the latest work-in-progress version of MPF!
This is the documentation for MPF 0.57, which is the “dev” (next) release of MPF that is a work-in-progress. This is probably ok, and means you’ll be on the latest, cutting-edge version of MPF.
However, if you want a more stable version, select the
v:stable
version from the lower-left corner of this page. You can always update to the latest at any time.
MPF compatible control systems / hardware¶
MPF controls a pinball machine by interfacing to a modern pinball control system. (See the MPF Overview for details.) MPF itself is hardware-independent, meaning that MPF (and the configs and code you build) runs on a normal/embedded PC and can work with lots of different kinds of control systems and hardware devices.
Not only does this give you a choice of what type of pinball control hardware you want to use, it also means that you have the flexibility to change your hardware at any time without having to change any game code. You could even release a game code update that works on multiple platforms—all with the same code!
Here’s a demo video of us switching out a P-ROC controller for a FAST controller in 3 minutes and running the same game code on both:
It’s possible to mix-and-match multiple types of hardware in a single MPF machine config. For example, you could combine the SmartMatrix RGB DMD with a FAST Core controller, or a FadeCandy LED controller with a P-ROC, etc. (You can even mix-and-match platforms within the same type of device, meaning you could have some LEDs attached to a FAST Pinball controller and others attached to a FadeCandy. See the Mixing-and-Matching hardware platforms guide for details.)
MPF currently supports the following hardware control systems. We are always adding more, so if there’s a hardware device that you’d like to use that we don’t support, let us know. (Or better yet, write your own interface to it and submit a pull request to the MPF codebase!)
Also see our guide on voltages found in a pinball machine.
List of supported control systems & hardware¶
Here’s a list of all the different types of control systems and hardware that MPF currently supports. If there’s a type of hardware you’d like us to support that you don’t see on this list, please post a message to the MPF Users Google Group and we’ll go from there.
Primary control systems¶
You’ll need to pick one of these three as the main interface between MPF and your pinball machine.
- Open Pinball Project (OPP) controllers
- Gen 2 OPP hardware, with many combinations of wing boards for drivers, switches, switch matrix, LEDs & incandescent lights
- CobraPin Pinball Controller
- Arduino Pinball Controller (APC)
- New in MPF 0.53
- System 3 to System 11c
- Segment displays
- External sounds
- Switches, rules and coils
- Lights and enable triggers
- LISY
- New in MPF 0.50
- Gottlieb System 1 (LISY1)
- Gottlieb System 80 (LISY80)
- Bally and Stern Games manufactured from 1977 to 1985 (LISY35) New in MPF 0.53
- Segment displays
- External sounds
- Switches, rules and coils
- Lights and enable triggers
- Multimorphic
- P-ROC with PDB driver boards (PD-16, PD-8x8, PD-LED)
- P-ROC in all supported existing machines (Williams, Stern, etc.)
- P3-ROC with PDB driver boards (PD-16, SW-16, PD-LED)
- Plasma & LED mono DMDs (P-ROC)
- Accelerometer-based tilt (P3-ROC)
- I2C slave boards (see below for which I2C boards are supported) (P3-ROC)
- Alphanumeric displays via aux port (P-Roc)
- FAST Pinball
- Core Controller, Nano Controller, WPC Controller
- 0804, 1616, 3208 I/O Boards
- Servo controller daughter board
- Power Filter Driver Board coin-door interconnect
- Plasma & LED mono DMDs (Core & WPC controllers)
- FAST RGB LED-based DMD
- Stern SPIKE / SPIKE 2 machines
- New in MPF 0.33
- A computer running MPF can directly connect to a SPIKE machine with a simple “USB to serial” converter which you plug into the SPIKE main board.
- Penny K Pinball PKONE Platform
- Nano Controller
- PKONE Extension (switches, coils, rules, servos)
- PKONE Lightshow (simple LEDs, WS281x RGB/RGBW LEDs)
- Virtual (software-only) controllers
- MPF includes virtual hardware interfaces you can use to run MPF when it’s not connected to physical hardware. (This is good for working on your game when you’re not around your machine, or if you don’t have real hardware yet.)
- You can also integrate MPF with a Virtual Pinball (VPX) table to play your game with simulated hardware.
- The MPF Monitor is a graphical tool you can also use to visually interact with MPF which is especially useful if you’re not using MPF with physical hardware.
Additional supported hardware¶
The following hardware devices can be combined with primary control sytstems to provide additional functionality.
- Snux System 11 driver board
- Supported in combination with the P-ROC or FAST WPC controller
- Supported for System 11, 11A, 11B, 11C
- Should work in Data East machines too, though it’s never been tried
- I2C Servo Controllers
- Servos connected to I2C-based servo controllers
- Fadecandy RGB LED controllers
- 512 RGB LEDs per Fadecandy
- Can connect multiple Fadecandys to support more LEDs
- Pololu Maestro servo controllers
- Supports up to 24 servos per board
- SmartMatrix RGB LED display controller
- Supports a “real” color DMD made up of RGB LED matrix
- RGB.DMD RGB LED display controller
- Supports a “real” color DMD made up of RGB LED matrix
- MyPinballs Segment Display Controller
- New in MPF 0.50
- Alphanumeric segment displays
- Also supports TNA Numeric Score Displays
- Light Segment Displays
- Control segment displays via light outputs or driver on another platform
- BCD segment displays
- 7-segment displays
- Serial driven displays
- RGB segment displays
- Other formats and custom built displays
- Trinamics StepRocker
- New in MPF 0.50
- StepRocker stepper controller
- Raspberry Pi
- New in MPF 0.50
- Local (MPF on the RPi) or remote via ethernet
- All inputs and outputs
- I2C and SPI
- PIN2DMD RGB DMD
- New in MPF 0.54
- 128x32 or 192x64 RGB LED DMD
- Connected via USB
- Native I2C on Linux
- New in MPF 0.50
- I2C devices on any nativ I2C bus
- MMA8451-based accelerometers
- New in MPF 0.50
- Connected to I2C
- Pololu Tic
- New in MPF 0.52
- Stepper controller connected to USB
- Open Sound Control (OSC)
- Control lights via OSC (i.e. your DMX controller)
- Receive incoming switch changes (i.e. from your MIDI keyboard)
- Receive incoming events (i.e. from your MIDI keyboard)
- Send events to OSC (to generate sounds or trigger actions)
There is a hardware roadmap for other hardware which we want to support in the future.
Video on how platforms work internally and how to implement them:
Configuration Guides¶
We have configuration guides which show you how to setup and use different types of pinball mechanisms with the various control systems and hardware that MPF supports:
- Open Pinball Project (OPP)
- LISY platform
- Connecting a System1/80 Machine to LISY1/80
- Configuring Switches with LISY1
- Configuring Switches with LISY80
- Configuring Drivers in LISY
- Configuring and Enabling Flippers/Pop Bumpers/Slingshots in LISY
- Configuring Lights in LISY
- Configuring Segment Displays in LISY
- Configuring Sound in LISY
- LISY Protocol
- Troubleshooting LISY
- Arduino Pinball Controller
- P-ROC/P3-ROC
- FAST Pinball
- Stern SPIKE / SPIKE 2
- Penny K Pinball PKONE Platform
- Snux System 11 Driver Board
- FadeCandy RGB LED controllers
- 1. Understanding all the parts and pieces
- 2. Download the FadeCandy package from GitHub
- 3. Install the FadeCandy drivers
- 4. Setup the fcserver
- 5. Set your LEDs to use the “fadecandy” platform
- 6. Understanding FadeCandy LED numbering
- 6b. Numbering with multiple Fadecandy Boards
- 7. Unterstanding MPF light numbers and channels
- 8. Launch the fcserver
- 9. Additional FadeCandy LED options
- 10. Color Correction
- What if it did not work?
- I2C Servo Controllers
- Pololu Maestro
- Pololu Tic
- SmartMatrix RGB DMD
- RGB.DMD
- PIN2DMD
- Raspberry Pi DMD
- MyPinballs Segment Displays
- Light Segment Displays
- Trinamics StepRocker
- StepStick Steppers
- Computer Requirements
- Native I2C
- Raspberry Pi
- MMA8451-based accelerometer
- SPI Big Bang Switches
- Open Sound Control (OSC)
- Virtual Hardware
- Existing Machines
- How to use MPF with WPC machines
- Controlling Stern Whitestar Machines
- Controlling Data East Machines
- Controlling Williams, Bally System 11 Machines
- Controlling Gottlieb System 1 Machines
- Controlling Gottlieb System 80 Machines
- Controlling Stern SAM Machines
- Controlling Stern SPIKE/SPIKE 2 Machines
- Controlling Pinball 2000 Machines
- Bally/Stern Machines with AS-2518-17 or AS-2518-35 MPU
- Voltages and Power
- How MPF handles “quick response” mechs (flippers, slingshots, etc.)
- How to configure “number:” settings
- Mixing-and-Matching hardware platforms
- Hardware Roadmap
- Troubleshooting Hardware Platforms