Skip to content

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.

Video about wiring of lights:


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.

See the documentation of your platform on how to configure GIs.

Platform related How To


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