The lighthouse memory mapping is used to communicate geometry and calibration data. The implementation supports both read and write operations.
Memory layout
| Address | Type | Description |
|---|---|---|
| 0x0000 | Geometry data | Geometry data for base station on channel 1 |
| 0x0100 | Geometry data | Geometry data for base station on channel 2 |
| … | Geometry data | |
| 0x0f00 | Geometry data | Geometry data for base station on channel 16 |
| 0x1000 | Calibration data | Calibration data for base station on channel 1 |
| 0x1100 | Calibration data | Calibration data for base station on channel 2 |
| … | Calibration data | |
| 0x1f00 | Calibration data | Calibration data for base station on channel 16 |
Geometry data memory layout
| Address | Type | Description |
|---|---|---|
| 0x0X00 | float (4 bytes) x 3 | Base station position, 3 element vector of floats (4 bytes) |
| 0x0X0C | float (4 bytes) x 9 | Base station attitude, 3 x 3 rotation matrix of floats (4 bytes) |
| 0x0X18 | uint8 | Is valid : 0 = the data is not valid, 1 = data is valid |
Calibration data memory layout
| Address | Type | Description |
|---|---|---|
| 0x0X00 | Calibration sweep data | Calibration data for first sweep |
| 0x0X1C | Calibration sweep data | Calibration data for second sweep |
| 0x0X38 | uint32 | Base station UID |
| 0x0X3C | uint8 | Is valid : 0 = the data is not valid, 1 = data is valid |
Calibration sweep data memory layout
| Address | Type | Description |
|---|---|---|
| 0x0X00 | float (4 bytes) | phase |
| 0x0X04 | float (4 bytes) | tilt |
| 0x0X08 | float (4 bytes) | curve |
| 0x0X0C | float (4 bytes) | gibmag |
| 0x0X10 | float (4 bytes) | gibphase |
| 0x0X14 | float (4 bytes) | ogeemag (only used in LH2) |
| 0x0X18 | float (4 bytes) | ogeephase (only used in LH2) |