Interacting with switches via the FAST Serial Protocol¶
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.
You can read an overview of how the FAST platform handles switches, including how they are numbered, in the platform documentation.
Switches on the FAST Platform are individually debounced and can be configured to report in multiple ways. Since each switch has its own set of debounce parameters, issues such as shotgunning on sling shots can be fully addressed by changing a few parameters. The parameters that can be adjusted on a per-switch basis are debounce time for switch open, debounce time for switch closed, and how the switch gets reported. FAST platforms that have a switch matrix also run the matrix through the debounce engine, so all switches act in the same way no matter where they are in the machine.
Switches can also be set up to report automatically when they change states. This is set up by using the
CH: command and enabling verbose switch outputs. If this is enabled, whenever a switch changes state one of the following messages will be displayed:
/L:<Switch ID in ASCII HEX><CR>message for switch open
-L:<Switch ID in ASCII HEX><CR>message for switch closed
Nano Controllers use
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
-L:02<CR> = Switch
/L:14<CR> = Switch
The commands to control and report the switches are:
SA:Get the state of all switches in ASCII hex data format
SD:Get the state of all switches in binary format
SL:Configure a switch (debounce, reporting, etc.)
N or > jump the next page, P or < for previous, search with S or ?