FOSSASAT-1B
EEPROM Address Map

DescriptionStart AddressEnd AddressLength (bytes)
Deployment counter (uint8_t).0x00000x00001
Power configuration (powerConfig_t).0x00010x00011
First run (uint8_t).0x00020x00021
Restart counter (uint16_t).0x00030x00042
FSK receive window length (uint8_t).0x00050x00051
LoRa receive window length (uint8_t).0x00060x00061
Seconds elapsed since last reset (uint32_t).0x00070x000A4
Number of main loop iterations (uint8_t).0x000B0x000B1
Number of received valid LoRa frames (uint16_t).0x000C0x000D2
Number of received invalid LoRa frames (uint16_t).0x000E0x000F2
Number of received valid FSK frames (uint16_t).0x00100x00112
Number of received invalid FSK frames (uint16_t).0x00120x00132
Length of callsign (uint8_t).0x00140x00141
Callsign (C-string, max MAX_STRING_LENGTH bytes).0x000150x0035MAX_STRING_LENGTH
Charging voltage stats (min - avg - max, 3x uint8_t).0x00400x00423
Charging current stats (min - avg - max, 3x int16_t).0x00430x00486
Battery voltage stats (min - avg - max, 3x uint8_t).0x00490x004B3
Solar cell A voltage stats (min - avg - max, 3x uint8_t).0x004C0x004E3
Solar cell B voltage stats (min - avg - max, 3x uint8_t).0x004F0x00513
Solar cell C voltage stats (min - avg - max, 3x uint8_t).0x00520x00543
Battery temperature stats (min - avg - max, 3x int16_t).0x00550x005A6
Board temperature stats (min - avg - max, 3x int16_t).0x005B0x00606
MCU temperature stats (min - avg - max, 3x int8_t).0x00610x00633
Total72
More...

Collaboration diagram for EEPROM Address Map:

Macros

#define EEPROM_DEPLOYMENT_COUNTER_ADDR   0x0000
 
Start AddressEnd Address
0x00000x0000

 
#define EEPROM_POWER_CONFIG_ADDR   0x0001
 
Start AddressEnd Address
0x00010x0001

 
#define EEPROM_FIRST_RUN_ADDR   0x0002
 
Start AddressEnd Address
0x00020x0002

 
#define EEPROM_RESTART_COUNTER_ADDR   0x0003
 
Start AddressEnd Address
0x00030x0004

 
#define EEPROM_FSK_RECEIVE_LEN_ADDR   0x0005
 
Start AddressEnd Address
0x00050x0005

 
#define EEPROM_LORA_RECEIVE_LEN_ADDR   0x0006
 
Start AddressEnd Address
0x00060x0006

 
#define EEPROM_UPTIME_COUNTER_ADDR   0x0007
 
Start AddressEnd Address
0x00070x000A

 
#define EEPROM_LOOP_COUNTER   0x000B
 Loop counter - only used to determine when to transmit full Morse beacon, so it doesn't matter when it overflows.

Start AddressEnd Address
0x000B0x000B

 
#define EEPROM_LORA_VALID_COUNTER_ADDR   0x000C
 
Start AddressEnd Address
0x000C0x000D

 
#define EEPROM_LORA_INVALID_COUNTER_ADDR   0x000E
 
Start AddressEnd Address
0x000E0x000F

 
#define EEPROM_FSK_VALID_COUNTER_ADDR   0x0010
 
Start AddressEnd Address
0x00100x0011

 
#define EEPROM_FSK_INVALID_COUNTER_ADDR   0x0012
 
Start AddressEnd Address
0x00120x0013

 
#define EEPROM_CALLSIGN_LEN_ADDR   0x0014
 
Start AddressEnd Address
0x000140x00014

 
#define EEPROM_CALLSIGN_ADDR   0x0015
 
Start AddressEnd Address
0x00150x0035

 
#define EEPROM_CHARGING_VOLTAGE_STATS_ADDR   0x0040
 
Start AddressEnd Address
0x00400x0042

 
#define EEPROM_CHARGING_CURRENT_STATS_ADDR   0x0043
 
Start AddressEnd Address
0x00430x0048

 
#define EEPROM_BATTERY_VOLTAGE_STATS_ADDR   0x0049
 
Start AddressEnd Address
0x00490x004B

 
#define EEPROM_CELL_A_VOLTAGE_STATS_ADDR   0x004C
 
Start AddressEnd Address
0x004C0x004E

 
#define EEPROM_CELL_B_VOLTAGE_STATS_ADDR   0x004F
 
Start AddressEnd Address
0x004F0x0051

 
#define EEPROM_CELL_C_VOLTAGE_STATS_ADDR   0x0052
 
Start AddressEnd Address
0x00520x0054

 
#define EEPROM_BATTERY_TEMP_STATS_ADDR   0x0055
 
Start AddressEnd Address
0x00550x005A

 
#define EEPROM_BOARD_TEMP_STATS_ADDR   0x005B
 
Start AddressEnd Address
0x005B0x0060

 
#define EEPROM_MCU_TEMP_STATS_ADDR   0x0061
 
Start AddressEnd Address
0x00610x0063

 

Detailed Description

DescriptionStart AddressEnd AddressLength (bytes)
Deployment counter (uint8_t).0x00000x00001
Power configuration (powerConfig_t).0x00010x00011
First run (uint8_t).0x00020x00021
Restart counter (uint16_t).0x00030x00042
FSK receive window length (uint8_t).0x00050x00051
LoRa receive window length (uint8_t).0x00060x00061
Seconds elapsed since last reset (uint32_t).0x00070x000A4
Number of main loop iterations (uint8_t).0x000B0x000B1
Number of received valid LoRa frames (uint16_t).0x000C0x000D2
Number of received invalid LoRa frames (uint16_t).0x000E0x000F2
Number of received valid FSK frames (uint16_t).0x00100x00112
Number of received invalid FSK frames (uint16_t).0x00120x00132
Length of callsign (uint8_t).0x00140x00141
Callsign (C-string, max MAX_STRING_LENGTH bytes).0x000150x0035MAX_STRING_LENGTH
Charging voltage stats (min - avg - max, 3x uint8_t).0x00400x00423
Charging current stats (min - avg - max, 3x int16_t).0x00430x00486
Battery voltage stats (min - avg - max, 3x uint8_t).0x00490x004B3
Solar cell A voltage stats (min - avg - max, 3x uint8_t).0x004C0x004E3
Solar cell B voltage stats (min - avg - max, 3x uint8_t).0x004F0x00513
Solar cell C voltage stats (min - avg - max, 3x uint8_t).0x00520x00543
Battery temperature stats (min - avg - max, 3x int16_t).0x00550x005A6
Board temperature stats (min - avg - max, 3x int16_t).0x005B0x00606
MCU temperature stats (min - avg - max, 3x int8_t).0x00610x00633
Total72
Test:

(ID CONF_EEPROM_ADDR_MAP_T0) (SEV 1) Check that EEPROM_DEPLOYMENT_COUNTER_ADDR is functional, including restarts.

(ID CONF_EEPROM_ADDR_MAP_T1) (SEV 1) Check that EEPROM_POWER_CONFIG_ADDR is functional, including restarts.

(ID CONF_EEPROM_ADDR_MAP_T2) (SEV 1) Check that EEPROM_FIRST_RUN_ADDR is functional, including restarts.

(ID CONF_EEPROM_ADDR_MAP_T3) (SEV 1) Check that EEPROM_RESTART_COUNTER_ADDR is functional, including restarts.

(ID CONF_EEPROM_ADDR_MAP_T4) (SEV 1) Check that EEPROM_CALLSIGN_LEN_ADDR is functional, including restarts.

(ID CONF_EEPROM_ADDR_MAP_T5) (SEV 1) Check that EEPROM_CALLSIGN_ADDR is functional, including restarts.