This is the dev documentation for an unreleased version of MPF!

This is the documentation for MPF 0.53+, which is the “dev” (next) release of MPF that is a work-in-progress. Unless you’re specifically looking for this version, you probably want to use the version of documentation called “latest” which is for the latest released version of MPF. That documentation is at docs.missionpinball.org/en/latest.

GI (general illumination)

Related Config File Sections

MPF includes support for GI (general illumination) light strings which are common in existing Williams and Stern machines. You can specify GI strings which you can then enable, disable, or (if the hardware supports it) dim. Typically, there are one to four GI strings.


In MPF 0.50 GIs became lights: with subtype gi. They behave like any other lights in MPF.


TODO: Add a picture of a GI string TODO: Add a picture of GI LEDs

GI Strings are actually kind of complex. Many of them are AC (even in WPC machines), and some Williams WPC machines include triacs (kind of like a transistor for AC) and “zero cross” AC waveform detection circuits so they can sync their dimming commands with the AC current wave. Later Williams WPC machines split their GI into non-dimmable (which used still used AC) and switched their dimmable to DC. Some machines also have “enable” relays that must be activated first before certain GI strings will work. In general those bulbs are the same models as used for inserts (#44 and #47 for EM and early SS; #444/#555/#249 for later SS; #906 for later machines).

GI string might also be connected to a driver and not part of a light matrix. In recent machines LEDs are used but still driven in strings.


MPF hides all this complexity from you. You just define your GI strings in your machine lights: section and then you can enable, disable, and dim the dimmable ones as you wish.

This is an example for a light with subtype: gi:

    number: 3         # number depends on your platform
    subtype: gi

In modern machines (such as Spike) your GIs might just be handled as lights. The details depend on your hardware platform and are outlined in the platform documentation.

This is an example for a light in Spike:

    number: 3         # number depends on your platform
    subtype: led      # might be matrix in some platforms

In some cases GIs are connected to normal drivers on your driver board (e.g. on a PD-16 on the P3-Roc). If that is the case you should configure them as coils. Then add them as light with platform: drivers:

    number: A1-B1-3           # number depends on your platform
    allow_enable: True        # this will allow 100% enable without pwm

    number: gi_string_left    # map this light to a driver
    platform: drivers

Alternatively, you could also use coil_player but this gives you the convinience of being able to use GIs in normal light shows.

Monitorable Properties

For dynamic values and conditional events, the prefix for lights is device.lights.<name>.

The color of this string. If you set it to brightness values all color channels will have the same value. Brightness 100 (of 255) will be hex 64 and color 646464.