This repository is used as a git submodule in the Galileo Gui and Galileo Cli interfaces. It is a common interface to interact with the star tracker PCB over I2C. It must be built on a linux system.
This interface uses the following register map to talk to star tracker's PCB microcontroller:
STM MCU I2C Slave Address = 0x18
| Register Address | Register Value | R/W | Conversion | Units | Notes |
|---|---|---|---|---|---|
| 0x00 | MODE_CONFIG | R/W | N/A | N/A | Set mode to IDLE_PI_ON = 0x01, IMU_MEASURE = 0x02, LOST_MEASURE = 0x03, FUSION_MEASURE = 0x04, or LOST_MEASURE_MOCK = 0x05 |
| 0x01 | IMU_TEMP | R | 1 | Celcius | |
| 0x02 | MOCK_IMAGE | R/W | N/A | N/A | Used with the GUI to allow for mock image selection |
| 0x04 | IMU_QUAT_0 | R | 1/16384 | N/A | |
| 0x06 | IMU_QUAT_1 | R | above | above | |
| 0x08 | IMU_QUAT_2 | R | above | above | |
| 0x0A | IMU_QUAT_3 | R | above | above | |
| 0x0C | IMU_EULER_0 | R | 1/16 | Degrees | |
| 0x0E | IMU_EULER_1 | R | above | above | |
| 0x10 | IMU_EULER_2 | R | above | above | |
| 0x12 | IMU_ACCEL_0 | R | 1/100 | m/s^2 | |
| 0x14 | IMU_ACCEL_1 | R | above | above | |
| 0x16 | IMU_ACCEL_2 | R | above | above | |
| 0x18 | IMU_MAG_0 | R | 1/16 | mT | |
| 0x1A | IMU_MAG_1 | R | above | above | |
| 0x1C | IMU_MAG_2 | R | above | above | |
| 0x1E | IMU_GYRO_0 | R | 1/16 | deg/s | |
| 0x20 | IMU_GYRO_1 | R | above | above | |
| 0x22 | IMU_GYRO_2 | R | above | above | |
| 0x30 | LOST_VALID | R | N/A | N/A | Returns 1 if star tracking algorithm found a solution, 0 if not |
| 0x31-0x34 | LOST_RA | R | 1 | Degrees | Returns a float (4 bytes) |
| 0x35-0x38 | LOST_DEC | R | 1 | Degrees | Returns a float (4 bytes) |
| 0x39-0x3C | LOST_ROLL | R | 1 | Degrees | Returns a float (4 bytes) |
| 0x3D-0x40 | LOST_i | R | 1 | N/A | Returns a float (4 bytes) |
| 0x41-0x44 | LOST_j | R | 1 | N/A | Returns a float (4 bytes) |
| 0x45-0x48 | LOST_k | R | 1 | N/A | Returns a float (4 bytes) |
| 0x49-0x4C | LOST_REAL | R | 1 | N/A | Returns a float (4 bytes) |
| 0x50-0x53 | IMU_FREQUENCY | R/W | 1 | Hz | Sets imu sampling frequency in Hz, write a float (4 bytes) |
| 0x54-0x57 | LOST_FREQUENCY | R/W | 1 | Hz | Sets star tracking algorithm frequency in Hz, write a float (4 bytes) |
| 0x58-0x5B | FUSION_i | R | 1 | N/A | Returns a float (4 bytes) |
| 0x5C-0x5F | FUSION_j | R | 1 | N/A | Returns a float (4 bytes) |
| 0x60-0x63 | FUSION_k | R | 1 | N/A | Returns a float (4 bytes) |
| 0x64-0x67 | FUSION_k | R | 1 | N/A | Returns a float (4 bytes) |