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.
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.
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 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:
.
Examples:
-L:02<CR>
= Switch 0x02
closed
/L:14<CR>
= Switch 0x14
open
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 ?