Skip to content

How to configure MPF to work with FAST Neuron Controllers

Coming soon!

This section of the documentation is not yet complete and will be coming soon. However, if you need this now, and/or you want to share what documentation is most important to you, please email Brian. Thanks!

The second-generation FAST Neuron Controller, and its related new boards (the Smart Power Filter Board, the Cabinet I/O Board, the audio interface, etc.) require updates to MPF for them work.

We are working on those updates now. For the time being, the updates to the FAST hardware platform for MPF are being maintained in the FAST Pinball fork of MPF. Once these updates are more complete and tested, we will merge them back into the maintain open source MPF. (It's our goal for FAST users of MPF to use the main open source version, NOT a FAST-specific version.)

While we're working on these changes, we'll maintain this page with the latest information for what's different and how you can add the latest FAST boards into your MPF config files. (Don't worry, we are working really hard to make the changes as small as possible.)

Where do you find the latest MPF to work with the new FAST boards?

The current open source mainline version of MPF lives in the Mission Pinball GitHub organization here:

github.com/missionpinball/mpf

This repo is currently NOT compatible with the latest FAST Pinball hardware, specifically the Neuron Controller and the FAST Expansion Boards. (Again, we will merge the new FAST stuff into that mainline MPF when we're done.) In the meantime, you the latest FAST support is in our fork of MPF, available here:

github.com/fastpinball/mpf

Installing the (temporary) FAST version of MPF

coming soon . . .

Changes to config files

The biggest change for FAST hardware moving forward is that we have removed the driverboards: configuration, and instead replaced it with a fast: controller: configuration.

Here is the OLD way:

hardware:
    platform: fast

fast:
    driverboards: fast  # or sys11, wpc89, wpc95
    ports: com3, com4, com5

And here is the NEW way:

hardware:
    platform: fast

fast:
    controller: neuron  # or nano, sys11, wpc89, wpc95
    ports: com3, com4, com5

The main changes can be summarized like this:

  • In the hardware: section, you still have platform: fast. If you have a driverboards: entry here, remove it.

  • In the fast: section, you will also remove the driverboards: entry, and instead replace it with a controller: entry. Then you use that setting to specify what type of FAST Pinball platform controller you have: neuron, nano, sys11, wpc89, or wpc95.

Using FAST Expansion Boards with MPF

One of the big changes with the newest FAST Pinball hardware is we are moving to Expansion Boards to drive essentially everything other than drivers and switches. So things like LEDs, servos, steppers, etc. will be connected to FAST Expansion Boards. You can have multiple FAST expansion boards in a machine, each which can have multiple breakout boards, and each of those can have multiple ports to control your devices!

None of this changes the conceptual ways you interact with your hardware from MPF. The only real change is the device's number: entry in your hardware config files.

Since there are several types of expansion and breakout boards which can be configured for multiple addresses, the first change is you need to list the expansion boards in your machine via a new expansion_boards: configuration entry in the fast: config section.

FAST Expansion Boards have different model numbers, which we tend to abbreviate like this:

  • FP-EXP-0201: 201
  • FP-EXP-0081: 81
  • FP-EXP-0071: 71

Each Expansion Board has its own address (which is internally hard coded) which MPF uses to send the right commands to the right board. In cases where you might have more than one of the same model Expansion Board in a single machine, each board has two solder jumpers you can use to set the ID of the board from 0 - 3. (The default with no jumpers soldered is ID 0 which is probably what 99% of these boards will use out in the world.)

So in order to use any expansion board with MPF, you need to add that board to the fast: expansion_boards: section. This is a comma-separated list (if you have more than one), and for each entry, you add the board short name from above, then a dash, then the board's ID. Take a look at this example below:

fast:
    controller: neuron
    ports: com3, com4
    expansion_boards: 201-0, 71-0

This machine is configured to use two expansion boards, an FP-EXP-0201 with no ID jumpers soldered (hence the -0 portion), and an FP-EXP-0071 board, also with ID 0.

LED Numbering

For LEDs attached to expansion boards, you'll need to replace the older port + LED number with a more complex number that specifies the expansion board, the breakout board, the port, and the LED number.

Here are a few examples of what that looks like:

lights:
  led1:
    number: exp-201-i0-b0-p1-1
  led2:
    number: exp-201-i0-b0-p1-2
  led3:
    number: exp-71-i0-b0-p2-1

Notice that the number: entry contains six parts. Let's break one of them down:

exp-201-i0-b0-p1-1

This is an LED attached to a 201 expansion board, with board ID 0, breakout 0, port 1, LED #1.

  • exp This LED is attached to an expansion board
  • 201 The expansion board is an FP-EXP-0201
  • i0 The expansion board's solder jumpers are set to ID 0
  • b0 This LED is plugged into a port on Breakout Board 0 (the built-in ports on a 201)
  • p1 This LED is in a chain connected to Port 1
  • 1 This LED is the first in the chain.

This numbering scheme might seem a bit tedious, but it's an unfortunate reality of having such a flexible system! The good news is these numbers are the same for everyone using these boards, so we will release configuration templates you can copy and paste to get started.

Servo Numbering

Adding servo support for servos connected to Expansion Boards is next on our list. The firmware which runs on the expansion boards is complete. We just need to add support for MPF now. Stay tuned . . .

Documentation Feedback? Requests? Confused?

Hi! I'm Brian, and I'm responsible for the documentation at FAST Pinball. If you have any feedback, requests, corrections, ideas, or any other thoughts about this documentation, please let me know! You can email me at brian@fastpinball.com. Thanks!

N or > jump the next page, P or < for previous, search with S or ?