Skip to content

Working with physical hardware

This section will discuss working with Pinball control systems and electronics, as well as working with physical pinball mechs and devices.

MPF controls a pinball machine by interfacing to a modern pinball control system. (See the platform 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 pinball control systems & hardware compatible with MPF

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, you can add it! (Or, you can get the hardware maker to add it.) Reach out in the forum if you need help.

Pinball hardware makers are responsible for their own MPF integration

The maintainers of MPF are responsible for maintaining the MPF software itself. But the individual "platform" code that allows MPF to interact with physical hardware is owned and maintained by the hardware vendors themselves. (e.g. FAST Pinball maintains the /platforms/fast code, CobraPin and the OPP project creators maintain the /platforms/opp code, etc.)

If you have a specific feature, support, or documentation request for how MPF interacts with pinball hardware, reach out to that company.

Primary control systems

You'll need to pick one of these three as the main interface between MPF and your pinball machine.

  • FAST Pinball

    • Neuron, Nano, and Retro Controllers
    • All I/O Boards (Playfield & Cabinet Controller)
    • Expansion Boards & EXP Bus (LEDs, servos, motors, etc.)
    • Smart Power Filter Board
    • Existing displays & DMDs (Retro platform)
    • FAST LED DMD (All platforms)
    • FAST Audio Interface (Modern & Retro platforms)
  • 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)
  • 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 systems to provide additional functionality.

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:

Something missing or wrong? You can fix it!

This website is edited by people like you! Is something wrong or missing? Is something out of date, or can you explain it better?

Please help us! You can fix it yourself and be an official "open source" contributor!

It's easy! See our Beginner's guide to editing the docs.

Page navigation via the keyboard: < >

You can navigate this site via the keyboard. There are two modes:

General navigation, when search is not focused:

  • F , S , / : open search dialog
  • P , , : go to previous page
  • N , . : go to next page

While using the search function:

  • Down , Up : select next / previous result
  • Esc , Tab : close search
  • Enter : go to highlighted page in the results