Skip to content

CH: Configure the controller for game-specific hardware

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 CH: command is used for FAST Platform controllers to tell the controller what type of pinball machine it's installed in. (This command is not used with the Nano controller.)

Before the FAST Controller can drive lamps, coils, motors, GI, etc., it must be configured. Because multiple platforms exist, each having specific differences in hardware, an incorrect configuration could have negative system behavior (coils stuck on, lamp matrix not scanning, etc.).

The FAST Platform has safeguards to protect against trying to run System 11 code on a System 89 game, for instance. However, it cannot determine the set of boards in a specific game (e.g. Twilight Zone has an aux board with 8 extra drivers). Therefore a configuration is required to set up the hardware platform based on a specific game. As we support each new game on a specific platform, new platform configurations will be created.

This CH: command also changes the reporting of verbose data such as asynchronous switch events.

Note that since the Neuron Controller runs the same code as the Retro Controllers, the CH: configuration is also needed for a Neuron Controller to let it know it's running in a modern machine with FAST I/O Boards.

Command Syntax

CH:<Platform Configuration>,<Verbose Data Flags><CR>

<Platform Configuration>

The configuration is two bytes (four hex characters). Current valid options are:

  • 2000 FAST Neuron Controller
  • 0011 FAST Retro System 11 Controller
  • 0089 FAST Retro WPC-89 Controller
  • 0095 FAST Retro WPC-95 Controller

<Verbose Data Flags>

A single byte (represented by two ASCII hex nibbles) where each bit controls a flag

  • Bit 7 - Bit 1 = Reserved

  • Bit 0  = Verbose switch outputs

  • 0 = No Verbose switch reporting.  Switches must be read with a switch read command.

  • 1 = Verbose switch outputs (as a switch changes states it will send an instant asynchronous message back)

Return Values

  • CH:P Valid platform configuration command submitted

  • CH:X Invalid Platform configuration command submitted

  • CH:F Invalid Platform configuration command submitted

  • Just sending a CH:<CR> will return the current configuration value.

Example

CH:8900,01<CR> Set up the hardware for system 89 configuration 0 with verbose switch outputs.

Returns:

CH:P

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