Uplink/I2C Commands for SpeedBall

Flight Computer Commands, Speedball-1 (Draft 1)

An uplink/I2C packet to Flight Computer or Comm Controller modules must be assembled as follows:

<Address + Write> + <Command> + <Command Data>

Invalid or incomplete packets are ignored completely.

A ubyte is an unsigned byte. The signing mechanism is 2s complement unless otherwise mentioned.

Command Action Data Required Valid Range Explanation Sat Uplink
0x00 Set Flight Phase unsigned 1 byte 0-4 0=PreL,1=Clim,2=Cruise,3=descent,4=landed
0x01 Ballast Altitude Target (m) unsigned 2 byte 0-65534 MSL Meters
0x02 Ballast Positive Vertical Speed Target (m/min) signed 1 byte -127 to 127 meters/minute
0x06 Data Sample Interval (s) unsigned 2 bytes 0-65534 Seconds between long message data captures
0x07 Data Transmit Interval (s) unsigned 2 bytes 0-65534 Seconds between long message bulk transmissions
0x08 Preset Bitmask Select unsigned 2 bytes 0-65534 0=, 1=, 2=
0x09 Custom Bitmask Select unsigned 12 byte Choose which long report channels for long message channels are active
0x0A Max Allowable TX Interval (s) unsigned 2 byte 0-65534 Longest time interval allowed between long message TX. OVERRIDES “Data Transmit Interval” if needed.
0x0B Battery Heater Setpoint signed 1 byte not used for SB1
0x0D Ballast Safety Threshold (m) unsigned 2 byte 0-65534 Altitude to NOT ballast BELOW, for fire safety.
0x0E HF Transmit Interval (s) unsigned 2 byte 0-65534 Interval between HF transmit power-ons by FC
0x0F Cutdown NOW! No Data Must be manually entered. Will result
0x10 Cutdown At Given Time (min) unsigned 2 byte 0-65534 Cut down at particular EPOCH MINUTE since Epoch 0
0x11 Dump X Grams of Ballast (g) unsigned 2 byte 0-65534 Force ballast dump, not needed if in Auto Ballast
0x12 Disarm Auto Ballast No Data Stop automatic ballast management
0x13 ReArm Auto Ballast No Data Start automatic ballast management
0x14 Set Mayday VSpeed Threshold to X (m/min) signed 2 byte -32766 to 32766 Descent speed that triggers High rate TX and ballast
0x15 Set Mayday Altitude Threshold to X (m) unsigned 2 byte 0-65535 MSL altitude that triggers High rate TX and ballast
0x17 Set HF Transmit Power Interval to X (s) unsigned 1 byte 0-254 HF Transmission Powers
0x18 Ballast Negative Vertical Speed Target (m/min) signed 1 byte -127 to 127 Part of Ballast Algorithm
0x19 Enable Report Commands No Data ATC Reports
0x1A Disable Report Commands No Data ATC Reports
0x1B Set Short Report TX interval (s) unsigned 2 byte
0x1C Update Time to HF TX (s) unsigned 2 byte
0x1D Update length of time to keep HF tx active (s) unsigned 1 byte
0xF1 Send Long Bulk Message No Data Bulk Message
0xF2 Send ATC Short Report No Data ATC Short Report Pair
0xF4 Reset FCPU No Data Does software reset (watchdog) of FC
0xF5 Turn off HF No Data Turns off HF TX, except in MAYDAY mode
0xF6 Turn on HF No Data Turns on HF with no auto-off
0xF7 Epoch Lock unsigned 1 byte 0-1 Resets epoch to zero when set to 1 and FC is reset.
0xFF Ground Support Data Dump No Data Dump all variables to GSP debug

This Configuration implements MOST of the commands listed in the draft below. The following commands are NOT implemented:

  • Set Deadman Interval
    • It is assumed that the Comm Controller will handle this responsibility for this mission.

Other Notes:

  • While the cutdown module itself is responsible for cutting the balloon down under a timeout condition, sending the “Cutdown Now!” command to the flight computer will result in a shift in telemetry behavior (Shifting into Emergency, Holy Crap I'm dying” mode). Thus, if the comm controller detects a cutdown, it would be advisable to send this command.

Comm Controller Inbound I2C Commands, Speedball-1 (Draft 1)

Command Action Data Required Format Sat Uplink ok I2C OK
0x00 Transmit ATC Short Report 12 bytes See Note below Y
0x01 Transmit Data from I2C EEPROM 4 bytes unsigned 2B Start Addr, unsigned 2B End Addr Y
0x06 Reset cutdown heartbeat timer 0 byte Y
0x07 Set cutdown timer to X minutes, and reset unsigned 1 byte byte, 0-255 Y
0x0B Send Iridium Position Report 0 bytes Takes latest position from last ATC report Y Y
0x99 CUTDOWN NOW 0 bytes Y
0x20 Force Satellite Comm Session 0 bytes not relevant Y
0xBB Power up sat modem 0 bytes Y
0xAA Power down sat modem 0 bytes Y

Comm Controller Uplink via Sat Commands, Speedball-1 (Draft 1)

Uplink commands will fit in 5 bytes of a standard Orbcomm uplink command transmission. Uplink command structure:

Purpose Counter I2C Address Command Data
Bytes 1 1 1 2

Special Commands Cases

Cutdown at specific time 0x10

Send only the middle 2 bytes of the 4 byte value. Comm controller will zero pad out to 4 digits for I2C xfer. Highest byte will never be used for our flights anyway, and removing low byte only reduces time accuracy to 1 minute.

software/speedball1/uplink/commands.txt · Last modified: 2018/07/29 17:58 (external edit)
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki