X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=AltOS%2Fdoc%2Fcompanion.html;h=4a3509bdd47fb2cbb6cefddadd9451b3ab42986b;hb=c1bc6447d1b2e9f7c5fc648184f0a47632e9c946;hp=6936953d03eff364a095985fb6d90bf5025bb54c;hpb=f655bd3ba4385300e7d5b63af452119d481e82d2;p=web%2Faltusmetrum diff --git a/AltOS/doc/companion.html b/AltOS/doc/companion.html index 6936953..4a3509b 100644 --- a/AltOS/doc/companion.html +++ b/AltOS/doc/companion.html @@ -1,10 +1,10 @@ -AltOS Companion Port

AltOS Companion Port

Protocol Definitions

Keith Packard

+AltOS Companion Port

AltOS Companion Port

Protocol Definitions

Keith Packard

This document is released under the terms of the Creative Commons ShareAlike 3.0 license. -

Revision History
Revision 0.113 January 2012
Initial content

1. Companion Port

+

Revision History
Revision 0.113 January 2012
Initial content

1. Companion Port

Many Altus Metrum products come with an eight pin Micro MaTch connector, called the Companion Port. This is often used to program devices using a programming cable. However, it can also @@ -12,20 +12,20 @@ (hence the name).

The Companion Port provides two different functions: -

  • +

    • Power. Both battery-level and 3.3V regulated power are available. Note that the amount of regulated power is not huge; TeleMetrum contains a 150mA regulator and uses, at peak, about 120mA or so. For applications needing more than a few dozen mA, placing a separate regulator on them and using the battery for power is probably a good idea. -

    • +

    • SPI. The flight computer operates as a SPI master, using a protocol defined in this document. Companion boards provide a matching SPI slave implementation which supplies telemetry information for the radio downlink during flight -

    -

2. Companion SPI Protocol

+

+

2. Companion SPI Protocol

The flight computer implements a SPI master communications channel over the companion port, and uses this to get information about a connected companion board and then to get @@ -42,11 +42,11 @@

Because of the limits of the AVR processors used in the first two companion boards, the SPI data rate is set to 187.5kbaud. -

3. SPI Message Formats

+

3. SPI Message Formats

This section first defines the command message format sent from the flight computer to the companion board, and then the various reply message formats for each type of command message. -

3.1. Command Message

Table 1. Companion Command Message

OffsetData TypeNameDescription
0uint8_tcommandCommand identifier
1uint8_tflight_stateCurrent flight computer state
2uint16_ttickFlight computer clock (100 ticks/second)
4uint16_tserialFlight computer serial number
6uint16_tflightFlight number
8   

Table 2. Companion Command Identifiers

ValueNameDescription
1SETUPSupply the flight computer with companion +

3.1. Command Message

Table 1. Companion Command Message

OffsetData TypeNameDescription
0uint8_tcommandCommand identifier
1uint8_tflight_stateCurrent flight computer state
2uint16_ttickFlight computer clock (100 ticks/second)
4uint16_tserialFlight computer serial number
6uint16_tflightFlight number
8   

Table 2. Companion Command Identifiers

ValueNameDescription
1SETUPSupply the flight computer with companion information
2FETCHReturn telemetry information
3NOTIFYTell companion board when flight state changes

The flight computer will send a SETUP message shortly after @@ -74,7 +74,7 @@ use this to change data collection parameters, disabling data logging until the flight starts and terminating it when the flight ends. -

3.2. SETUP reply message

Table 3. SETUP reply contents

OffsetData TypeNameDescription
0uint16_tboard_idBoard identifier
2uint16_tboard_id_inverse~board_id—used to tell if a board is present
4uint8_tupdate_periodMinimum time (in 100Hz ticks) between FETCH commands
5uint8_tchannelsNumber of data channels to retrieve in FETCH command
6   

+

3.2. SETUP reply message

Table 3. SETUP reply contents

OffsetData TypeNameDescription
0uint16_tboard_idBoard identifier
2uint16_tboard_id_inverse~board_id—used to tell if a board is present
4uint8_tupdate_periodMinimum time (in 100Hz ticks) between FETCH commands
5uint8_tchannelsNumber of data channels to retrieve in FETCH command
6   

The SETUP reply contains enough information to uniquely identify the companion board to the end user as well as for the flight computer to know how many data values to expect in @@ -85,12 +85,12 @@ bit-wise inverse of board_id. Current companion boards use USB product ID as the board_id, but the flight computer does not interpret this data and so it can be any value. -

3.3. FETCH reply message

Table 4. FETCH reply contents

OffsetData TypeNameDescription
0uint16_tdata00th data item
2uint16_tdata11st data item
...   

+

3.3. FETCH reply message

Table 4. FETCH reply contents

OffsetData TypeNameDescription
0uint16_tdata00th data item
2uint16_tdata11st data item
...   

The FETCH reply contains arbitrary data to be reported over the flight computer telemetry link. The number of 16-bit data items must match the 'channels' value provided in the SETUP reply message. -

4. History and Motivation

+

4. History and Motivation

To allow cross-programming, the original TeleMetrum and TeleDongle designs needed to include some kind of connector. With that in place, adding the ability to connect