Skip to content

FAST config file changes in MPF 0.57

MPF 0.57 requires some config file changes in general. (It moves to config version 6.) The fast: section of yor config also requires changes for MPF 0.57. We have a full set of FAST MPF Config Guides which have all details about all types of FAST hardware. That should be your main reference in the future, but below you'll find an overview of the specific changes needed to go from MPF 0.56 to 0.57:

"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:

Example of the 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, click the (+) for details
  switches:
    left_flipper:
      number: cab-0  #(1)!
    right_flipper:
      number: cab-2
    upper_left_popper:
      number: io1616-4  #(2)!
    rear_gate_switch:
      number: io1616-15  #(3)!
  1. "cab" is the name of the I/O board this switch is on, switch 0
  2. "io1616" is the name of the I/O board this switch is on, switch 4
  3. "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  #(1)!
  1. I/O board "cab", driver 1

Switch and Driver numbers use the number printed on the I/O board

The actual number for each switch will be the switch input or driver output printed by the header on the I/O board. Switch numbers include 0, e.g. the first switch bank is 0-7, the second is 8-15, etc. Driver numbers also start with 0 but have a "D" on the board. You can remove the "D" in your config, e.g. Driver "D0" would be number: boardname-0.

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.)

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:

Some settings have been removed

driverboards:
hardware_led_fade_time:
ignore_rgb_crash:
net_buffer:
rgb_buffer:
dmd_buffer:

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.

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