FOSSASAT-1B
configuration.h
1 #ifndef CONFIGURATION_H_INCLUDED
2 #define CONFIGURATION_H_INCLUDED
3 
4 #include "FossaSat1B.h"
5 
29 #define MAX_STRING_LENGTH 32
30 #define MAX_OPT_DATA_LENGTH 128
31 #define MAX_RADIO_BUFFER_LENGTH (MAX_STRING_LENGTH + 2 + MAX_OPT_DATA_LENGTH)
47 #define ENABLE_TRANSMISSION_CONTROL
48 #define ENABLE_DEPLOYMENT_SEQUENCE
49 #define ENABLE_INTERVAL_CONTROL
50 #define ENABLE_INA226
72 #define BATTERY_VOLTAGE_LIMIT 3.8f
73 #define BATTERY_CW_BEEP_VOLTAGE_LIMIT 3.8f
74 #define BATTERY_TEMPERATURE_LIMIT -0.7f
75 #define WATCHDOG_LOOP_HEARTBEAT_PERIOD 1000
76 #define WATCHDOG_RESET_NUM_SLEEP_CYCLES 4
77 #define SLEEP_LENGTH_CONSTANT 0.9
78 #define DEPLOYMENT_ATTEMPTS 4
79 #define DEPLOYMENT_SLEEP_LENGTH 1800000
80 #define DEPLOYMENT_DEBUG_LENGTH 60
81 #define DEPLOYMENT_DEBUG_SAMPLE_PERIOD 1000
82 #define AUTODEPLOY_DELAY 1200
98 #define LOW_POWER_MODE_ACTIVE 0
99 #define LOW_POWER_MODE_ENABLED 1
100 #define MPPT_TEMP_SWITCH_ENABLED 1
101 #define MPPT_KEEP_ALIVE_ENABLED 0
102 #define TRANSMIT_ENABLED 1
114 #define INA_ADDR 0x40
115 #define INA_RSHUNT 0.1
116 #define INA_MAX_CURRENT 0.5
117 #define INA_REG_MANUFACTURER_ID 0xFE
118 #define INA_MANUFACTURER_ID 0x5449
171 #define EEPROM_DEPLOYMENT_COUNTER_ADDR 0x0000
172 
179 #define EEPROM_POWER_CONFIG_ADDR 0x0001
180 
187 #define EEPROM_FIRST_RUN_ADDR 0x0002
188 
195 #define EEPROM_RESTART_COUNTER_ADDR 0x0003
196 
203 #define EEPROM_FSK_RECEIVE_LEN_ADDR 0x0005
204 
211 #define EEPROM_LORA_RECEIVE_LEN_ADDR 0x0006
212 
219 #define EEPROM_UPTIME_COUNTER_ADDR 0x0007
220 
227 #define EEPROM_LOOP_COUNTER 0x000B
228 
229 
236 #define EEPROM_LORA_VALID_COUNTER_ADDR 0x000C
237 
244 #define EEPROM_LORA_INVALID_COUNTER_ADDR 0x000E
245 
252 #define EEPROM_FSK_VALID_COUNTER_ADDR 0x0010
253 
260 #define EEPROM_FSK_INVALID_COUNTER_ADDR 0x0012
261 
268 #define EEPROM_CALLSIGN_LEN_ADDR 0x0014
269 
276 #define EEPROM_CALLSIGN_ADDR 0x0015
277 
284 #define EEPROM_CHARGING_VOLTAGE_STATS_ADDR 0x0040
285 
292 #define EEPROM_CHARGING_CURRENT_STATS_ADDR 0x0043
293 
300 #define EEPROM_BATTERY_VOLTAGE_STATS_ADDR 0x0049
301 
308 #define EEPROM_CELL_A_VOLTAGE_STATS_ADDR 0x004C
309 
316 #define EEPROM_CELL_B_VOLTAGE_STATS_ADDR 0x004F
317 
324 #define EEPROM_CELL_C_VOLTAGE_STATS_ADDR 0x0052
325 
332 #define EEPROM_BATTERY_TEMP_STATS_ADDR 0x0055
333 
340 #define EEPROM_BOARD_TEMP_STATS_ADDR 0x005B
341 
348 #define EEPROM_MCU_TEMP_STATS_ADDR 0x0061
349 
364 //EEPROM_FIRST_RUN_ADDR
365 #define EEPROM_RESET_VALUE 0xFF
366 #define EEPROM_FIRST_RUN 0
367 #define EEPROM_CONSECUTIVE_RUN 1
404 #define ANALOG_IN_SOLAR_A_VOLTAGE_PIN A0
405 #define ANALOG_IN_SOLAR_B_VOLTAGE_PIN A7
406 #define ANALOG_IN_SOLAR_C_VOLTAGE_PIN A2
407 #define ANALOG_IN_RANDOM_SEED A6
408 #define DIGITAL_OUT_MPPT_PIN 5
409 #define DIGITAL_OUT_MOSFET_1 9
410 #define DIGITAL_OUT_MOSFET_2 8
411 #define DIGITAL_OUT_WATCHDOG_HEARTBEAT 4
412 #define RADIO_NSS 7
413 #define RADIO_DIO1 2
414 #define RADIO_BUSY 6
415 #define RADIO_NRST RADIOLIB_NC
427 #define BOARD_TEMP_SENSOR_ADDR 0b1001100
428 #define BATTERY_TEMP_SENSOR_ADDR 0b1001011
429 #define TEMP_SENSOR_REG_CONFIG 0b01
430 #define TEMP_SENSOR_RESOLUTION_9_BITS 0b00000000
431 #define TEMP_SENSOR_RESOLUTION_10_BITS 0b00100000
432 #define TEMP_SENSOR_RESOLUTION_11_BITS 0b01000000
433 #define TEMP_SENSOR_RESOLUTION_12_BITS 0b01100000
449 #define MCU_TEMP_OFFSET 324.31
450 #define MCU_TEMP_COEFFICIENT 1.22
468 #define SYNC_WORD 0x12
469 #define TCXO_VOLTAGE 1.6
470 #define MAX_NUM_OF_BLOCKS 3
471 #define LORA_RECEIVE_WINDOW_LENGTH 40
472 #define FSK_RECEIVE_WINDOW_LENGTH 20
473 #define RESPONSE_DELAY 500
474 #define WHITENING_INITIAL 0x1FF
506 #define LORA_CARRIER_FREQUENCY 436.7
507 #define LORA_BANDWIDTH 125.0
508 #define LORA_SPREADING_FACTOR 11
509 #define LORA_SPREADING_FACTOR_ALT 10
510 #define LORA_CODING_RATE 8
511 #define LORA_OUTPUT_POWER 20
512 #define LORA_PREAMBLE_LENGTH 8
513 #define LORA_CURRENT_LIMIT 140.0
543 #define FSK_CARRIER_FREQUENCY 436.8
544 #define FSK_BIT_RATE 9.6
545 #define FSK_FREQUENCY_DEVIATION 5.0
546 #define FSK_RX_BANDWIDTH 39.0
547 #define FSK_OUTPUT_POWER 20
548 #define FSK_PREAMBLE_LENGTH 16
549 #define FSK_DATA_SHAPING RADIOLIB_SHAPING_0_5
550 #define FSK_CURRENT_LIMIT 140.0
565 #define NUM_CW_BEEPS 3
566 #define MORSE_PREAMBLE_LENGTH 0
567 #define MORSE_SPEED 20
568 #define MORSE_BATTERY_MIN 3.2
569 #define MORSE_BATTERY_STEP 0.05
570 #define MORSE_BEACON_LOOP_FREQ 2
583 #define MODEM_LORA 'L'
584 #define MODEM_FSK 'F'
585 
598 extern volatile bool interruptsEnabled;
599 extern volatile bool dataReceived;
600 extern uint8_t currentModem;
601 extern uint8_t spreadingFactorMode;
602 extern uint32_t lastHeartbeat;
603 extern INA226 ina;
604 extern SX1268 radio;
605 extern MorseClient morse;
606 extern const char* password;
607 extern const uint8_t encryptionKey[];
625 #endif
void Configuration_Setup_Pins()
This function is called at the very beginning of the satellite's startup to configure each pin...
uint32_t lastHeartbeat
uint8_t spreadingFactorMode
const uint8_t encryptionKey[]
volatile bool interruptsEnabled
INA226 ina
uint8_t currentModem
volatile bool dataReceived
const char * password
MorseClient morse
SX1268 radio