Skip to content

TL: Set Trigger Control for a Driver command

FAST Serial Protocol: Overview & First Steps

This documentation section is about the FAST Serial Protocol (FSP) commands, which are the low-level commands a host computer sends to a FAST board. Most FAST Pinball makers do not need to know about these details, since the pinball game framework (such as the Mission Pinball Framework) handles this communication for you.

If you're writing your own game framework, read the overview of how FSP works and how to connect first.

The TL: command is valid for FAST Neuron and Retro controllers. The FAST Nano Controller uses the command TN: instead, but everything else is the same.

In the world of the FAST Serial Protocol, the term "trigger" is used to describe what action triggers a driver to fire. That action could be an "auto" fire based on a switch changing state, e.g. fire the flipper driver when the flipper button is activated, pulse the slingshot driver when the slingshot switch is activated, etc. Or that trigger could be a manual trigger where you manually send a command to fire a driver (eject a ball from the trough), or manually send a command to "disable" drivers (disable autofire drivers during tilt, for example).

The theory behind this is the DL: commands let you configure "how" the driver fires (pulse, how long, PWM, hold, etc.), and then the TL: command lets you change "when" the driver fires (with a switch, never, manually, etc.)

The TL: command is used to modify the control and switch parameters of the driver command. This command does not reset the driver if it is already active like the DN counterparts. This can be especially important for taking manual control of something like flippers. If the flippers are already active, and a new DN command is written, the flippers will be reset to off, and then re-trigger if the new Control (either switch or manual ON) is true.

By using the TL command, the control field can be modified without resetting the flippers to off like in the example above.

To manually fire a pop bumper (driver 0x10 in the example below) without changing its configured settings, you would send the command:

TL:10,03<CR> Manually fire the driver TL:10,02<CR> Manually turn off the driver TL:10,00<CR> Turn off manual mode, so if a switch was configured to auto-fire this driver, control will be handed back over to that switch.

The Switch_ID can also be changed with this command.

TL:10,00,16<CR> change the switch that controls Driver 0x10 to switch 0x16.

One other powerful feature of the TL command is the ability to single fire the driver. In the case of the pop bumper, this would fire the coil as if a switch was pressed without changing the current control mode. This is useful for ball searches, or quickly firing a driver without having to send two commands (Manual On, and Manual Off).

“Trigger Control Modifier”

TL:<Driver ID>,<CONTROL_MODIFIER>,<SWITCH_ID><CR>

where CONTROL= :

0 = Auto (Remove Manual Mode, clears upper two bits of CONTROL value) 1 = Manual one shot (only sets bit 3 of CONTROL value, no other bits modified) 2 = Manual OFF (Sets bit 7 of CONTROL value, and clears bit 6) 3 = Manual ON (Sets bit 6 and 7 of CONTROL value)

Command Syntax

TL:<DRIVER_ID>,<CONTROL>,<SWITCH_ID><CR>

<DRIVER_ID>

  • FAST Driver number, zero based.

<CONTROL>

  • 0 = Auto (clears trigger 0x40 and 0x80)

  • 1 = Tap

  • 2 = Virtual Off

  • 3 = Virtual On

<SWITCH_ID>

  • FAST Switch number, zero based.

Documentation Feedback? Requests? Confused?

Hi! I'm Brian, and I'm responsible for the documentation at FAST Pinball. If you have any feedback, requests, corrections, ideas, or any other thoughts about this documentation, please let me know! You can email me at brian@fastpinball.com. Thanks!

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