Skip to content

FAST config file changes in MPF 0.57

As mentioned elsewhere, the FAST hardware platform code in MPF was completely rewritten in MPF 0.57. This means that your existing config files will need to be updated to work with MPF 0.57. This guide gives an overview of the specific things that have changed. You can also refer to the full FAST MPF Config Guides which have full details and should be your main reference.

"fast:" config section has been reorganized by port type

The fast: section of the MPF machine config files has been completely overhauled. Luckily it's a simple section and you can just manually make all the changes in a few minutes.

Basically instead of all settings under the single fast: section, there are now subsections for each serial port type. So you'll have subsections for net:, dmd:, rgb:, etc. Then, all of the settings for that port type are under that subsection. (e.g. watchdog setting is now net:, the LED update settings are in the rgb: or exp: section, etc.)

Here's an example of the new fast: section:

New fast: section in an MPF 0.57 config file
fast:
  net:
    controller: neuron
    port: /dev/tty.usbmodem11101
    io_loop:
      my_first_board:
        model: FP-I/O-3208
        order: 1
  exp:
    port: /dev/tty.usbmodem11102
    boards:
      ...

I/O boards now have names

In prior versions of MPF, switch and driver numbers were based on the I/O board sequence in the loop. This was confusing, and also meant that if the loop network wiring changed, all the device numbers would change too.

In MPF 0.57, you give each I/O board a name, and then devices use that name plus the header number from the board. This simplifies device numbering. (e.g. "3208 board, switch 1." Easy!)

I/O boards are configured in the fast: net: io_loop: section of your machine config file. Details here.

fast:
  net:
    io_loop:
      your_io_board_name:
        [settings for that board]
      another_io_board:
        [settings for that board]
      etc:

Switches and coil numbers now use the I/O board names

In prior versions of MPF, switch and driver numbers were in the form of "board position in the loop"-"number". So switches had numbers like:

FAST switches in older MPF versions
  switches:
    left_flipper:
      number: 0-1
    right_flipper:
      number: 0-2
    upper_left_popper:
      number: 1-4
    rear_gate_switch:
      number: 1-15

It was confusing and meant that you had to plug your Cat-5 loop cables in the same order every time or else all your switch and driver numbers would change.

The new in MPF 0.57 away assigns a name to each I/O board, and then your config files use the name of the board instead of the board position in the loop. So the above switches would be:

FAST switches in MPF 0.57
  switches:
    left_flipper:
      number: cab-1  # "cab" is the name of the I/O board this switch is on, switch 1
    right_flipper:
      number: cab-2
    upper_left_popper:
      number: io1616-4  # "io1616" is the name of the I/O board this switch is on, switch 4
    rear_gate_switch:
      number: io1616-15  # "io1616" is the name of the I/O board this switch is on, switch 15

Coil numbers work the same way.

FAST coil numbers in MPF 0.57
  coils:
    left_flipper_coil:
      number: cab-1  # I/O board "cab", driver 1

Luckily this is a simple find and replace in your config files. (Find 0- and replace with cab-, find 1- and replace with io1616-, etc. The same search will work for both switches and drivers.)

If you really don't want to find-and-replace your device numbers, then just name your I/O boards 0, 1, 2, etc. 🤣

FAST I/O Boards in MPF 0.57
#config_version=6
fast:
  net:
    io_loop:
      io_loop:
        0:
          [settings for that board]
        1:
          [settings for that board]

Serial ports are now automatic and can be removed from your config

Prior versions of MPF required you to specify which serial port was used for each connection type. This was confusing and also meant that if you changed the computer or the serial port randomly changed then you had to update your config files.

In MPF 0.57, serial port detection is automatic, and you can remove the port: entries. (Or you can keep them and still hard code each port, but the automatic detection should be fine and only adds about ⅛th of a second to the MPF startup time.)

Some settings have moved

The following settings which used to be in the general fast: section have been moved to the fast: net: section:

watchdog:
default_quick_debounce_open:
default_quick_debounce_close:
default_normal_debounce_open:
default_normal_debounce_close:

The hardware_led_fade_time: setting is now called led_fade_time: and is in the fast: rgb: section and/or the fast: exp: your_board_name: section, depending on what hardware you have.

Check the MPF site for other config version 6 changes

This guide just showed you what changed related to FAST Pinball hardware in MPF 0.57. But there are other changes you'll need to do too. Check out the MPF guide to changes for config file 6 for details on all the changes for MPF 0.57 config files.

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 the docs, please let me know!

You can email me at brian@fastpinball.com. I maintain this site in my spare time, so there might be a week or so delay if you email me.

If you have a more pressing need, reach out to us via Slack, or email Aaron Davis.

Thanks!

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