Skip to content

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 volume
  • AM: Set the audio mode (audio configuration)
  • AS: Set the subwoofer volume
  • AW: Write the audio settings for power up initialization
  • AV: Set the main speaker volume
  • ID: Get board identification
  • WD: Set / refresh the watchdog timeout
  • XO: Pulse output pin

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