BFF Motion Driver v2 - Short User Guide


Previous    Contents     Next


5. Platform Cue Data Output Formats

The format of the position demand cue output from the motion driver is set using the Mode= parameter in the .bff configuration file.

In v2.6 and later there are several published data output formats available – binary, hexadecimal, shared memory, Pololu, Pololu Meastro, Servo Driver, SCN5 Actuator and the Galil DMC Controller format. There are a number of "hidden" higher resolution formats - contact me if you wish more details of the higher resolution formats.

An additional option is available (NONE) in which the output COM port is not opened and no data is sent – this is useful if you just want to try the program and do not want it to interact with your COM ports.

See the settings section to see how to set these in the configuration file.

In the BIN and HEX2 output formats each position demand value is output as a value in the range 0 to 255 corresponding to the motion driver working range 0 - 255. See the detailed format below.

In the GAL Galil DMC controller output format the position demand range is not limited and is set to correspond to the feedback encoder count range used in the control system. See the Galil section for details. The driver sends its position demands directly to the Galil Optima Series controller using the Galil DMCwin32.ddl Windows Toolkit API. Communications will be by either Ethernet or Serial comms to match the installation of the DMC controller.

In the Pololu Servo Controller card format POLO the position demands are sent as serial commands that can be read by older Pololu servo controllers. The output instructs Pololu RC Servo controller cards to output RC Servo pulses in the range 1.0 to 2.0 mS corresponding to motion driver drive position range 0 - 255.

Use Mode=POLOM for Pololu Maestro servo cards. Use the card's "Command" COM port and set a baud compatible with the Pololu card. Note in both Pololu formats the position demands are sent to servo channels 1, 2 & 3 (not 0, 1 & 2).

In the Dyadic SCN5 linear actuator output mode SCN5 the output is in the form of Termi-BUS commands which drive the SCN5 actuators directly. For more details see the SCN5 quick start guide.

The shared memory MEM output option writes the motion cues to shared memory where they are read by the PID Servo Controller software when it runs. The MEM outputs are specialised for the BFF servo controller - they are in high resolution polynomial curve fitted format which allows the PID Servo Controller to smoothly interpolate or extrapolate the cues.

To use the driver with the BFF PID Servo Controller the output mode must be set to MEM.

For fast data output to Thanos' cards use Mode=BIN2TH. The additional settings are set in the BINTH.ini file in the motion driver folder.


In binary (BIN) mode the data is transmitted in binary 8 bit bytes. In hexadecimal (HEX2) each number is transmitted as two characters giving the 2 character hex value of the number eg FF for Hex 0xFF. The serial output format is 8 bit, 1 stop bit, no parity to the COM port stated at the baud rate stated in the configuration file.


BIN output format is - “AB” byte1 byte2 byte3 byte4 CR

"AB" - start of data identifier for the receiving micro controller

byte1 - reserved

byte2 - 8 bit binary number giving pitch/act1 demand in 0-255 scale

byte3 - 8 bit binary number giving roll/act2 demand in 0-255 scale

byte4 - 8 bit binary number giving heave/act3 demand in 0-255 scale

0x0D - single byte Carriage Return data terminator

HEX2 output format is - “JK” JJ XX YY ZZ RR SS 0x0D

"JK" - Start of data identifier for the receiving micro controller

JJ - 1 byte - 8 bits, each indicates on/off for status indicators - see below

XX - hex value of pitch/act1 demand in 0-255 (0x00 to 0xFF) scale

YY - hex value of roll/act2 demand in 0-255 (0x00 to 0xFF) scale

ZZ - hex value of heave/act3 demand in 0-255 (0x00 to 0xFF) scale

RR - hex value for current forward ground speed in m/s, capped at 255

SS - hex value for engine 1 rpm, 0 - 100 percent

Final 1 byte - "CR" data terminator


The JJ bits are -

b7 (msb) flaps

b6 landing gear

b5 brake indicator

b4 spoiler (not currently available in X-Plane version)

b3 overspeed (not currently available in X-Plane version)

b2 stall

b1 on ground

b0 (lsb) not used

Note the BIN output format is the more efficient and uses approximately half the data length of the HEX2 format to carry the same information. This might be significant if you want to use low transmission baud rates.

The driver works at baud rates up to 115200. For the MEM output the data is written to the shared memory area at the refresh rate of the Driver.




Previous    Contents     Next

Copyright © 2010 BFF Design Ltd All Rights Reserved.