Skip to content

flippers:

This is a config file reference. Click for instructions.

This page is reference material which explains every setting and option for this section of an MPF yaml config file. See the instructions for config files for formatting and other details. See our guide to config file examples for more examples of real configs in action.

Valid in
machine config files YES ✅
mode config files NO 🚫

The flippers: section of your config contains all the settings for the flippers in a pinball machine.

Here's an example from a Judge Dredd machine with four flippers. (Note Judge Dredd technically has four flipper buttons too, but it's the style where you push the button part way in to flip the lower flipper, and all the way in to flip the upper flipper too. But as far as the game code is concerned, it sees two separate switches in each flipper button----one that's activated via the half-press, and the second via the full press.)

Also note that flippers are kind of complex and there are a lot of options. Read the Flippers tech note for details. (You should definitely read that first before digging into the configuration options here.)

Note

The flippers: section of the config is only used for controlled flippers in newer machines. Early solid-state (pre-WPC) machines used enable relays to enable the flippers, and those are configured elsewhere. (See the How To guides for details.)

#! switches:
#!   s_flipper_left:
#!     number:
#!   flipperLwL_EOS:
#!     number:
#!   s_flipper_right:
#!     number:
#!   flipperLwR_EOS:
#!     number:
#!   flipperUpL:
#!     number:
#!   flipperUpL_EOS:
#!     number:
#!   flipperUpR:
#!     number:
#!   flipperUpR_EOS:
#!     number:
#! coils:
#!   c_flipper_lower_left_main:
#!     number:
#!   c_flipper_lower_left_hold:
#!     number:
#!   c_flipper_lower_right_main:
#!     number:
#!   c_flipper_lower_right_hold:
#!     number:
#!   flipperUpLMain:
#!     number:
#!   flipperUpLHold:
#!     number:
#!   flipperUpRMain:
#!     number:
#!   flipperUpRHold:
#!     number:
flippers:
  lower_left:
    main_coil: c_flipper_lower_left_main
    hold_coil: c_flipper_lower_left_hold
    activation_switch: s_flipper_left
    eos_switch: flipperLwL_EOS
    label: Left Main Flipper
  lower_right:
    main_coil: c_flipper_lower_right_main
    hold_coil: c_flipper_lower_right_hold
    activation_switch: s_flipper_right
    eos_switch: flipperLwR_EOS
    label: Right Main Flipper
  upper_left:
    main_coil: flipperUpLMain
    hold_coil: flipperUpLHold
    activation_switch: flipperUpL
    eos_switch: flipperUpL_EOS
    label: Upper Left Flipper
  upper_right:
    main_coil: flipperUpRMain
    hold_coil: flipperUpRHold
    activation_switch: flipperUpR
    eos_switch: flipperUpR_EOS
    label: Upper Right Flipper

Required settings

The following sections are required in the flippers: section of your config:

main_coil:

Single value, type: string name of a coils: device. Defaults to empty.

The name of the main flipper coil. For flippers that only have single-wound coils, this is where you specify that coil. In that case you would also configure the lower-power hold option for this coil in the coils: section of your config.

Optional settings

The following sections are optional in the flippers: section of your config. (If you don't include them, the default will be used).

activation_switch:

Single value, type: string name of a switches: device. Defaults to empty.

The switch that controls this flipper (i.e. the flipper button). This setting is optional because you can also use sw_flip_enable below but activation_switch is far more common and recommended instead.

ball_search_hold_time:

Single value, type: time string (ms) (Instructions for entering time strings). Default: 1s

How long this flipper will be activated for when it is activated during ball search.

ball_search_order:

Single value, type: integer. Default: 100

A relative value which controls the order individual devices are pulsed when ball search is running. Lower numbers are checked first. See the Ball Search documentation for details.

disable_events:

List of one (or more) device control events (Instructions for entering device control events). Default: ball_will_end, service_mode_entered

(Note that if you add an entry here, it will replace the default. So if you also want the default value(s) to apply, add them too.)

Disables this flipper (meaning pushing the flipper button doesn't active the flipper).

enable_events:

List of one (or more) device control events (Instructions for entering device control events). Default: ball_started

(Note that if you add an entry here, it will replace the default. So if you also want the default value(s) to apply, add them too.)

Enables this flipper.

eos_active_ms_before_repulse:

Single value, type: time string (ms) (Instructions for entering time strings). Default: 500

If you specify repulse_on_eos_open MPF will wait this many milliseconds until issuing an EOS repulse. The rational for this is that we do not want to stress the main coil too much. For instance if the hold coil break we do not want to continuously pulse the coil.

eos_switch:

Single value, type: string name of a switches: device. Defaults to empty.

EOS switch on this flipper (if there is one).

eos_switch_overwrite:

One or more sub-entries. Each in the format of string : string

One or more sub-entries, each in the format of string : string If you're using an end of stroke switch with this flipper, enter the switch name here.

hold_coil:

Single value, type: string name of a coils: device. Defaults to empty.

The name of the hold coil winding for dual-wound flipper coils.

hold_coil_overwrite:

Single value, type: coil_overwrites:. Defaults to empty.

Overwrites settings on the hold_coil. See /mechs/flippers/index for details.

Single value, type: boolean (true/false). Default: false

Controls whether this flipper is included in ball search.

Usually flippers aren't included in ball search. However if you have upper flippers, it's probably good to include them in the ball search since it's often possible for an upper flipper to disable and hold a ball under the flipper. Usually this isn't an issue since the player can just flip to release the ball. However if the machine has tilted (or the flippers are otherwise disabled), then it's possible for a flipper to come down on the ball and get it stuck. So you definitely want to include upper flippers in ball search.

BTW, this is something that happened to us in Wizard of Oz, so that's how we thought to include an option for flippers in ball search. :)

main_coil_overwrite:

Single value, type: coil_overwrites:. Defaults to empty.

Overwrites settings on the main_coil. See /mechs/flippers/index for details.

playfield:

Single value, type: string name of a playfields: device. Default: playfield

change this value if you have more than one playfield and you're managing them separately.

power_setting_name:

Single value, type: string. Defaults to empty.

A machine setting to use to adjust the (relative) power. It can be used to allow the operator to adjust the power in service mode.

This is an example:

coils:
  c_flipper_main:
    number:
switches:
  s_flipper:
    number: 1
    tags: left_flipper
flippers:
  f_test_flippers_with_settings:
    main_coil: c_flipper_main
    power_setting_name: flipper_power
    activation_switch: s_flipper

MPF comes with a setting called flipper_power by default and you can add additional ones.

repulse_on_eos_open:

Single value, type: boolean (true/false). Default: false

Whether MPF should repulse the main coil of the flipper when the EOS reopens and the flipper buttons are still active. Not all platforms support this in hardware. MPF might emulate this in software for platforms which do not support this. Consult your platform manual if in doubt.

sw_flip_events:

List of one (or more) device control events (Instructions for entering device control events). Defaults to empty.

If the flipper is enabled this will flip the flipper from software. This will usually have some delay and jitter so use with care. In almost all cases it is prefered to use an activation_switch which will use hardware rules internally to flip the flipper.

sw_release_events:

List of one (or more) device control events (Instructions for entering device control events). Defaults to empty.

Disables a flipper from software. Use this together with sw_flip_events.

switch_overwrite:

One or more sub-entries. Each in the format of string : string

One or more sub-entries, each in the format of string : string Overwrites settings on the activation_switch. See /mechs/flippers/index for details.

use_eos:

Single value, type: boolean (true/false). Default: false

Controls whether an EOS switch is used to disable the main winding or to switch to lower-power pwm mode.

console_log:

Single value, type: one of the following options: none, basic, full. Default: basic

Log level for the console log for this device.

debug:

Single value, type: boolean (true/false). Default: false

See the documentation on the debug setting for details.

file_log:

Single value, type: one of the following options: none, basic, full. Default: basic

Log level for the file log for this device.

label:

Single value, type: string. Default: %

A descriptive name for this device which will show up in the service menu and reports.

tags:

List of one (or more) values, each is a type: string. Defaults to empty.

Special / reserved tags for flippers: None

See the documentation on tags for details.


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