diff --git a/Include/config.h b/Include/config.h --- a/Include/config.h +++ b/Include/config.h @@ -11,17 +11,22 @@ // -------------------------------------------------------------------------- // Transmit power (0-0x7F, 0mW - 40mw?) -#define SI446x_POWER 0x02 +#define SI446x_POWER 0x40 // 0x40 for jake launch #define TUNE_FREQUENCY 433500000UL + // Internal macros #define hal_init HAL_Init // Uncomment if using legacy LPS25h pressure sensor -//#define LPS25H +#define LPS25H + +#define FRIENDLY_MODE +#define FRIENDLY_TIMEOUT 1800 // 1800 // seconds before reducing tx rate +#define FRIENDLY_TX_RATE 60000 // milliseconds tx rate after timeout elapsed // -------------------------------------------------------------------------- // ADC config (adc.c) diff --git a/Libraries/aprs/aprs.c b/Libraries/aprs/aprs.c --- a/Libraries/aprs/aprs.c +++ b/Libraries/aprs/aprs.c @@ -61,11 +61,18 @@ void aprs_send(void) // emz: modified this to get the size of the first address rather than the size of the struct itself, which fails ax25_send_header(addresses, sizeof(addresses)/sizeof(addresses[0])); - ax25_send_byte(','); char tmpBuffer[128]; - tmpBuffer[0] = ','; - tmpBuffer[1] = '\0'; + + #ifdef FRIENDLY_MODE + if(HAL_GetTick() > 1000 * FRIENDLY_TIMEOUT) + { + snprintf(tmpBuffer, 128, "KD8TDF"); + ax25_send_string(tmpBuffer); + } + #endif + + ax25_send_byte(','); // Latitude snprintf(tmpBuffer, 128, "%ld,", gps_getdata()->latitude); diff --git a/Source/main.c b/Source/main.c --- a/Source/main.c +++ b/Source/main.c @@ -64,10 +64,21 @@ int main(void) uint32_t last_transmission = HAL_GetTick(); uint32_t last_led = HAL_GetTick(); + uint32_t transmission_rate = 700; + uint32_t is_friendly = 0; + while (1) { - // Blink LEDs - if(HAL_GetTick() - last_transmission > 700) + #ifdef FRIENDLY_MODE + if(!is_friendly && HAL_GetTick() > 1000 * FRIENDLY_TIMEOUT) + { + transmission_rate = FRIENDLY_TX_RATE; + is_friendly = 1; + } + #endif + + // Transmit RF packet + if(HAL_GetTick() - last_transmission > transmission_rate) { gps_update_data(); // Will always return at 1hz rate (default measurement rate) @@ -83,6 +94,7 @@ int main(void) last_transmission = HAL_GetTick(); } + // Blink LEDs if(HAL_GetTick() - last_led > 100) { HAL_GPIO_TogglePin(LED_POWER);