Porównaj commity

...

2 Commity

Autor SHA1 Wiadomość Data
Wolfgang Hallmann 8caca49ec7 Hints for using 2nd frequency in H-V2 mode 2023-10-21 17:10:06 +02:00
Wolfgang Hallmann e1679a3553 Some more comments for ublox init at startup 2023-10-21 16:41:54 +02:00
3 zmienionych plików z 26 dodań i 10 usunięć

Wyświetl plik

@ -253,6 +253,16 @@ Payload 3:
#define HORUS_V2_TIME_SYNC_OFFSET_SECONDS 80 // the third payload will transmit at 80 seconds within the 120 second interval
```
### Using two alternating frequencies in HORUS-V2 Mode
In Europe there are two areas of RX stations they listen on their regional frequencies. So the problem may occur that you have to decide
wich channel you have to choose for best reception reports on the track. So the idea was to define an additional channel to transmit.
You will find in the config.h the entry `RADIO_SI4032_TX_FREQUENCY2_HORUS_V2_ACTIV` on default `false`.
To activate this, set it to `true` and use define `RADIO_SI4032_TX_FREQUENCY2_HORUS_V2` to add a second frequency e.g. `437600000`.
From now on, the frequency will change after each TX Intervall in HORUS-V2 Mode (not working on HORUS-V2-continous-mode).
## Building the firmware
The easiest and the recommended method to build the firmware is using Docker.

Wyświetl plik

@ -259,6 +259,7 @@ void system_flicker_green_led(uint8_t count)
{
uint8_t i;
system_set_green_led(false);
delay_ms(50);
for(i=1;i<=count;i++) {
system_set_green_led(true);
delay_ms(50);
@ -280,6 +281,7 @@ void system_flicker_red_led(uint8_t count)
{
uint8_t i;
system_set_red_led(false);
delay_ms(50);
for(i=1;i<=count;i++) {
system_set_red_led(true);
delay_ms(50);

Wyświetl plik

@ -126,27 +126,31 @@ int main(void)
log_info("SPI init\n");
spi_init();
// look for Voltage
// maybe interessting to check if reset only helpfull after mV climbed up > 1500 mV by solar panel source
uint16_t batteryV = system_get_battery_voltage_millivolts();
float batteryVf = (float)batteryV / 5.0f;
uint8_t volts_scaled = (uint8_t)(255 * batteryVf);
// on debug with dongle the VCC is only 170 mV because board feed by dongle not on battery.
log_info("Startup Voltage: %d mV \n",volts_scaled);
/* ---- not in use now because log_info only work with dongle, so mV is not helpfull to know ------
// look for Voltage
// maybe interessting to check if reset only helpfull after mV climbed up > 1500 mV by solar panel source
uint16_t batteryV = system_get_battery_voltage_millivolts();
float batteryVf = (float)batteryV / 5.0f;
uint8_t volts_scaled = (uint8_t)(255 * batteryVf);
// on debug with dongle the VCC is only 170 mV because board feed by dongle, not on battery.
log_info("Startup Voltage: %d mV \n",volts_scaled);
------------------------------ */
gps_init:
log_info("GPS init\n");
success = ubxg6010_init();
if (!success) {
// on use of solar panels at sunrise, the power is not fully available.
// So the ubxg6010_init() maybe fail. The fail will be shown as flicker red led two times.
// Counter increases and after 10 times a system restart will be fired.
// if system starts new the sunrise meanwhile will give more energy until it is enough for a successfull ubxg6010_init()
log_error("GPS initialization failed, retrying...\n");
delay_ms(1000);
system_flicker_red_led(2);
gps_init_fail_counter++;
if (gps_init_fail_counter >= 10) {
system_disable_irq();
system_flicker_red_led(5);
// dont think here to stop some interrupts before. In practis the cold start will not work.
nvic_cold_start();
}
goto gps_init;
}