ExoCube Tracking

Please email any Exocube related data to: exocubetracking@gmail.com

For more information about the mission and its history, click here.

Exocube TLE (updated twice a day) :

Celestrak TLE

Exocube TRACKING INFO:

  • Call sign: KK6HGC
  • Frequency: 437.270 MHz
  • Modulation: AX.25 FSK (NRZI with G3RUH scrambling)
  • Data Rate: 9600 BaudExocube_cutout_low_res

Decoder Status:

The decoder can be downloaded here. Java 1.6 is required to run the decoder. Send any questions to exocubetracking@gmail.com.

Exocube Guide on Extracting Raw Hex Data  & FunCube Dongle:

Exocube can be demodulated exactly like IPEX.

The call sign, CW beacon and health beacon contents are different as noted above.

IPEX Demod Guide – Click Here

Beacon Info:

Exocube transmits two types of beacons:

Transmission Type

Period (s)

Duration (s)

Health Beacon

127.09

0.26

Morse Code

45

2.75

  • Health Beacon: Contains the latest snapshot of Exocube’s telemetry
  • Morse Code: 15 wpm, should spell “XO3”.

 

Only the health beacon can be decoded into interesting data, the beacon format is given below:

* Packet beacon packet format is HDLC->AX.25->IP->UDP.  The layout of the UDP

typedef struct {
//Temperatures from the various temp sensors
uint8_t daughter_aTmp; // 0 == -75c 7/1 (range -75c – +54c, precision .5c)
// uint8_t daughter_bTmp;
uint8_t threeV_plTmp;
uint8_t rf_ampTmp;

//readings from the various ina power sensors
uint8_t atmelPwrCurr;
uint8_t atmelPwrBusV;
uint8_t threeV_PwrCurr;
uint8_t threeV_PwrBusV;
uint8_t threeV_plPwrCurr;
uint8_t threeV_plPwrBusV;
uint8_t fiveV_plPwrCurr;
uint8_t fiveV_plPwrBusV;
uint8_t daughter_aPwrCurr;
uint8_t daughter_aPwrBusV;
uint8_t panel3v3_pwrCurr;
uint8_t panel3v3_pwrBusV;
uint8_t panel5v0_pwrCurr;
uint8_t panel5v0_pwrBusV;

// SOC
uint8_t fuelGauge1Volt;
int8_t fuelGauge1Curr;
uint16_t fuelGauge1Accum;

uint8_t fuelGauge2Volt;
int8_t fuelGauge2Curr;
uint16_t fuelGauge2Accum;

// Side panel telemetry
uint8_t negZSolarVolt;
int8_t negZSolarCurr;
uint8_t negZTemp;
uint8_t posZSolarVolt;
int8_t posZSolarCurr;
uint8_t posZTemp;
uint8_t negXSolar1Volt;
int8_t negXSolar1Curr;
uint8_t negXSolar2Volt;
int8_t negXSolar2Curr;
uint8_t negXSolar3Volt;
int8_t negXSolar3Curr;
uint8_t negXTemp;
uint8_t posXSolar1Volt;
int8_t posXSolar1Curr;
uint8_t posXSolar2Volt;
int8_t posXSolar2Curr;
uint8_t posXSolar3Volt;
int8_t posXSolar3Curr;
uint8_t posXTemp;
uint8_t negYSolar1Volt;
int8_t negYSolar1Curr;
uint8_t negYSolar2Volt;
int8_t negYSolar2Curr;
uint8_t negYSolar3Volt;
int8_t negYSolar3Curr;
uint8_t negYTemp;
uint8_t posYSolar1Volt;
int8_t posYSolar1Curr;
uint8_t posYSolar2Volt;
int8_t posYSolar2Curr;
uint8_t posYSolar3Volt;
int8_t posYSolar3Curr;
uint8_t posYTemp;

// software telemetry
uint16_t userCpuTime;
uint16_t niceCpuTime;
uint16_t sysCpuTime;
uint32_t idleCpuTime;
uint16_t processes;
uint8_t procs_running;
uint8_t procs_blocked;
uint32_t memFree;
uint32_t buffers;
uint32_t cached;
uint32_t vmallocTotal;
uint32_t vmallocUsed;
uint32_t dataFree;
uint32_t sdcardFree;
// uint32_t loBytes;
uint16_t loPkts;
uint32_t nandErasures;

//Beacon info
uint16_t beaconCnt;
uint32_t time;
uint32_t boottime;
uint16_t long_dur_counter;
} __attribute__((packed)) ExoCube_SysmgrData;

typedef struct {
uint16_t rxCount;
uint16_t txCount;
uint32_t rxBytes;
uint32_t txBytes;
uint16_t digipeatsPerHour;
uint16_t digipeatsRemaining;
struct {
char callsign[7];
int8_t lastRssi;
uint32_t lastRx;
} callsigns[2];
int8_t rxRssi;
} __attribute((packed)) ExoCube_CommData;

typedef struct {
int16_t latitude; // 8.8
int16_t longitude; // 9.7
uint16_t altitude; // 10.6
int16_t q1;
int16_t q2;
int16_t q3;
int16_t q4;
int16_t r1;
int16_t r2;
int16_t r3;
int16_t magX; // body mG
int16_t magY; // body mG
int16_t magZ; // body mG
uint16_t solX; // deg
uint16_t solY; // deg
uint16_t solZ; // deg
uint16_t wheelSpeed; // RPM, fixed point 12.4
int32_t wheelAccel; // deg/sec^2, fixed point 9.23
uint32_t tleEpoch;
uint8_t adcsCtrlMode;
} __attribute((packed)) ExoCube_ADCSData;

typedef struct {
uint8_t pwr_3v3Volt;
uint8_t pwr_3v3Curr;
uint8_t pwr_5v0Volt;
uint8_t pwr_5v0Curr;
uint8_t pwr_wheelVolt;
uint8_t pwr_wheelCurr;
uint8_t pib_temp;
uint8_t boom0_temp;
uint8_t boom1_temp;
uint8_t inst_cmds_sent;
uint8_t inst_cmds_rcvd;
uint16_t inst_packets_read;
uint8_t inst_temp1;
uint8_t inst_temp2;
} __attribute((packed)) ExoCube_PayloadData;

typedef struct {
ExoCube_SysmgrData sys;
ExoCube_ADCSData adcs;
ExoCube_CommData comm;
ExoCube_PayloadData payload;
} __attribute__((packed)) ExoCube_BeaconData;

Comments are closed.