FAST Serial Protocol Audio Interface Commands¶
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.
This product is not yet released
This documentation is for a product that is not yet released. Final details may change.
Commands to control the audio board can come from the USB interface if connected to an external computer, or from a Raspberry Pi Attached to the Audio Board. All commands use a simple ASCII format making it possible to control the audio board with a terminal emulator if desired to get started. All commands are composed by a two character command followed by a colon :
, then data in ASCII hex nibble format (if required by the command), and then a carriage return (Enter).
In the descriptions below, the carriage return (Enter) will be shown as <CR>
. The ASCII hex value for a carriage return is 0x0D
(13 decimal). The ASCII hex value for a colon :
is 0x3A
(58 decimal)
Data is sent or received in ASCII hex nibble format. The value 0xa5
would be sent as the ASCII character A
followed by the ASCII character 5
. The upper nibble is sent first (‘A’ in this example) followed by the lower Nibble (‘5’ in this example). The ASCII characters sent can be upper or lower case. If you are not familiar with using ASCII, search the web. There are lots of examples and tables that will be useful.
An example to send the identification command:
Shown in this document, the ID command is requested by sending the command ID:<CR>
to the audio board interface. If using a terminal emulator you can send this command by simply typing ‘I’ then ‘D’ followed by a ‘:' and then a carriage return (Enter). If sending this same command from code, you could send the string “ID:\r” where “\r” = a carriage return. In ASCII hex the command would be 0x49 0x44 0x3a 0x0d
(refer to ASCII table to decode the bytes)
To communicate with the audio board, the following settings are used: * BAUD Rate 230400 * Data Bits 8 * Stop Bits 1 * Parity None
The commands for sending audio data to the sound board are:
AH:
Set the headphone volumeAM:
Set the audio mode (audio configuration)AS:
Set the subwoofer volumeAW:
Write the audio settings for power up initializationAV:
Set the main speaker volumeID:
Get board identificationWD:
Set / refresh the watchdog timeoutXO:
Pulse output pin
N or > jump the next page, P or < for previous, search with S or ?