This documentation is for an unreleased version of MPF!

This is the developer documentation for MPF 0.54, which is the “dev” (next) release of MPF that is a work-in-progress. Use the “Read the Docs” link in the lower left corner to view the developer docs for the version of MPF you’re using.


class mpf.devices.digital_output.DigitalOutput(machine: mpf.core.machine.MachineController, name: str)

Bases: mpf.core.system_wide_device.SystemWideDevice

A digital output on either a light or driver platform.

Accessing digital_outputs in code

The device collection which contains the digital_outputs in your machine is available via self.machine.digital_outputs. For example, to access one called “foo”, you would use self.machine.digital_outputs.foo. You can also access digital_outputs in dictionary form, e.g. self.machine.digital_outputs['foo'].

You can also get devices by tag or hardware number. See the DeviceCollection documentation for details.

Methods & Attributes

Digital_outputs have the following methods & attributes available. Note that methods & attributes inherited from base classes are not included here.


Disable digital output.


Enable digital output.


Handle disable control event.


Handle enable control event.

event_pulse(pulse_ms, **kwargs)

Handle pulse control event.

format_log_line(msg, context, error_no) → str

Return a formatted log line with log link and context.


Pulse digital output.

raise_config_error(msg, error_no, *, context=None) → NoReturn

Raise a ConfigFileError exception.