Skip to content

DL: Configure 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, we have a series of programming guides. Also, be sure to read the overview of how FSP works and how to connect first.

The DL: command is used to configure & initialize a driver. All drivers must be configured with this command before they can be used.

Nano Controllers use N instead

The FAST Nano Controller uses the letter N for switch & driver-related commands instead of L. So everything here applies to the Nano too, except the commands are -N: /N: SN: DN: QN:.

If you haven't yet read the overview of the FAST Serial Protocol driver model, do that now. It explains the concepts that are outlined here.

Command Parameters

The DL: command uses the driver number (or driver ID) followed by one or more configuration parameters, followed by a CR.

[DL]:<driver_id>,<trigger>,<switch_id>,<mode>,<param_1>,<param_2>,<param_3>,<param_4>,<param_5><CR>

Let's look at what each parameter means.

<driver_id>

FAST driver number, zero-based, in hex. (Remember all values in the FAST Serial Protocol are in hex.)

<trigger>

Sets the mode for how this driver is triggered. See the trigger explanation on the working with drivers page for details.

<switch_id>

FAST switch number, (in hex) linked to this driver for use with hardware-triggered drivers. For software-triggered drivers, this value is ignored, and you can just use 00.

<mode>

Specifies the mode of operation for the driver from the following list:

Every driver is in one of these modes at all times. When the system is first powered up, all drivers start in mode 00 which is the disabled state.

Click on a mode above from the list above to see the details of how it works and its configuration options. (Options vary per mode.) Note that not all modes are valid on all controllers.

<param_1>,<param_2>,<param_3>,<param_4>,<param_5>

Driver modes require different parameters to configure them. The exact meaning of each parameter depends on the mode selected. For example, the Pulse mode requires a pulse length, while the Pulse + Hold mode requires a pulse length and a hold time, etc. Click on the mode above to see the details of what each parameter means for that mode.

Response messages

If the DL: command is successful, the response returned is DL:P. If it fails, you'll get back a DL:F. These responses are fairly quick, (10-30ms) and are sent after the driver object is successfully set up in the FAST Pinball hardware.

We recommend waiting for the response before sending any other commands to the controller. (Since DL: commands are typically only sent when a machine is first powered up, this shouldn't be a problem.)

Reading current driver configurations

There are several ways to get the current configuration of a driver. The easiest is to use the DL: command with the driver number and no other parameters. This will return the current configuration of the driver in the same format as the original DL: command which was used to configure it. For example:

>>>> DL:1
DL:01,81,00,10,0F,55,00,00,50

If you want to get the configuration of all drivers at once, you can use the DL:L command. In the example below, the first line of the response DL:30 indicates that there are 48 drivers configured. (This is also hex.) Then each driver config is provided in the same format as the original DL: command.

Note that the Neuron can be configured for up to 48 (30 hex) drivers, which is why this list will have 48 entries regardless of how many physical I/O boards are in the loop.

DL:L<CR>

DL:30
DL:00,81,00,10,0F,55,00,00,50
DL:01,81,00,10,0F,55,00,00,50
DL:02,81,00,10,0F,55,00,00,50
DL:03,81,00,10,0F,55,00,00,50
... the rest are removed for brevity, you get the idea ...

The CD: command is a human-readable command you can use to see the configuration of all the drivers. So if you're using a serial terminal, use CD:, and if you're writing software, use DL:.

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