kopia lustrzana https://github.com/mikaelnousiainen/RS41ng
Porównaj commity
2 Commity
024ed2a3db
...
8caca49ec7
Autor | SHA1 | Data |
---|---|---|
Wolfgang Hallmann | 8caca49ec7 | |
Wolfgang Hallmann | e1679a3553 |
10
README.md
10
README.md
|
@ -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.
|
||||
|
|
|
@ -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);
|
||||
|
|
24
src/main.c
24
src/main.c
|
@ -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;
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue