Skip to content

Driver Mode 10: Pulsed driver

This page describes a mode of operation for a driver. See the Working with Drivers section of the FAST Serial Protocol documentation for details about how to use it.

Pulse the driver (up to 255ms) when triggered.

[DL/DL]:<DRIVER_ID>,<TRIGGER>,<SWITCH_ID>,<10>,<PWM1_ONTIME>,<PWM1>,<PWM2_ONTIME>,<PWM2>,<REST_TIME><CR>

<DRIVER_ID>

  • FAST Driver number, zero based.

<TRIGGER>

  • 0x00 = Disabled

  • 0x01 = Switch True

  • 0x09 = Switch True & Pulse Driver Immediately

  • 0x11 = Switch False

  • 0x19 = Switch False & Pulse Driver Immediately

  • 0xC1 = Virtual Switch True

  • 0x81 = Virtual Switch False

  • 0x89 = Virtual Switch False & Pulse Driver Immediately

<SWITCH_ID>

  • FAST Switch number, zero based.

<MODE>

  • 0x10 = Pulsed

<PWM1_ONTIME>

  • PWM1 On-Time in Milliseconds (HEX)

<PWM1>

See PWM Byte Sequence Table

<PWM2_ONTIME>

  • PWM2 On-Time in Milliseconds (HEX)

<PWM2>

See PWM Byte Sequence Table

<REST_TIME>

  • Rest Time in Milliseconds (HEX)

Mode 10: Pulsed Driver Examples:

Pulse a Pop Bumper: Pulsing a pop bumper on driver channel 0x10 hex for 20mS ( 0x14 hex ) when switch (0x15 hex) triggers. After the event allow the coil to cool (rest time) for 80mS (0x50 hex).

DL:10,01,15,10,14,FF,00,00,50<CR>

DL:id,tr,sw,md,p1,p2,p3,p4,p5

This is another example: This one will fire the coil at 100% power for 8mS, and then 15mS at 50% power when switch 15 is triggered.

DL:10,01,15,10,08,FF,0F,AA,50<CR>

DL:id,tr,sw,md,p1,p2,p3,p4,p5

After this command is sent, the pop bumper will fire each time the switch that controls it goes true.

After the driver is configured, it can be changed anytime with a new DL/DL command or TL/TN command.

The difference between DL/DL and TL/TN is the DL/DL command always resets the driver back to the initial state (waiting to trigger), where the TL/TN command will allow a few changes without resetting a driver. For a pop bumper, resetting to the initial state has little consequence. If the coil was on when the new DL/DL command was written, the coil will turn off. If the switch triggering the coil is still true, it will fire the coil again. For a driver like a flipper though, changing the driver will turn it off, and then trigger once again if the switch is pressed. This may not be a desired behavior. If changing what switch controls the flipper such as in drunk mode (swapping flipper buttons) if both the new and old switch are pressed, the flipper should stay active. Changing the switch ID using the TN/TL:will allow for the switch change without affecting the current state of the flipper

Manual Off/On. When the game is over, or is tilted, drivers such as flippers/pop bumpers.. will need to be turned off. The easiest way to do this is to set the driver to Manual Off. The same command can be sent as before, but now the trigger is set to Manual off instead of “ 

The command would be:

DL:10,81,15,10,14,FF,0,0,50<CR>
DL:id,tr,sw,md,p1,p2,p3,p4,p5

It could also be entered as:

DL:10,81<CR>
DL:id,tr

The DL/DL command allows for variable parameters, so you only need to send as many fields as it takes to get to the field(s) you want to modify. In the example above we need to change the control field (second field), so we have to send the first two to complete the command.

Now that the driver has been disabled, to enable it you can write out the original string (with trigger set to trigger on the switch going true)

DL:10,01,15,10,14,FF,0,0,50<CR> 
DL:id,tr,sw,md,p1,p2,p3,p4,p5

or

DL:10,01<CR> (shorter version without rewriting all the other fields).

Ok, what about software firing the coil manually?

The Control Manual On (0xc1) will allow the software to pulse the coil as if a switch has pressed it. Just like a switch, controlling the Pop Bumpers, Manual on does the same thing. Manual On makes a virtual switch go true, and Manual Off makes the virtual switch go false. The Pulse driver is a edge triggered driver meaning for each true switch edge, the coil will fire one time. The switch must go false before the driver can trigger again (the the next true switch edge). The same is true for the Manual virtual switch. If you send a Manual On, You will have to send a Manual Off, wait the rest time 80mS in the example above, and then you can send another Manual On to file the coil again. So basically Manual On and Manual Off work exactly like a switch, but the switch is controlled by SW. Manual On and Manual Off both will cause the switch(0x15) in the above example to be ignored.

For manual on:

DL:10,C1,15,10,14,FF,00,00,50<CR>DL:id,tr,sw,md,p1,p2,p3,p4,p5

(or DL:10,C1<CR>)

For manual off:

DL:10,81,15,10,14,FF,0,0,50<CR>DL:id,tr,sw,md,p1,p2,p3,p4,p5

(or DL:10,81<CR>)

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 ?