FOSSASAT-1B
Loading...
Searching...
No Matches
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'
598extern volatile bool interruptsEnabled;
599extern volatile bool dataReceived;
600extern uint8_t currentModem;
602extern uint32_t lastHeartbeat;
603extern INA226 ina;
604extern SX1268 radio;
605extern MorseClient morse;
606extern const char* password;
607extern 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.
uint8_t spreadingFactorMode
const uint8_t encryptionKey[]
uint8_t currentModem
SX1268 radio
volatile bool dataReceived
const char * password
INA226 ina
volatile bool interruptsEnabled
uint32_t lastHeartbeat
MorseClient morse
T Persistent_Storage_Read(uint16_t addr)
This function reads a value of type T from EEPROM.