From 8e9e9b34a5b6427b8282ff60a5c73a2a73bcab90 Mon Sep 17 00:00:00 2001 From: Mikael Nousiainen Date: Fri, 6 Oct 2023 20:16:31 +0300 Subject: [PATCH] More work on docs and config for DFM-17 --- README.md | 39 +++++++++++++++++++++++++-------------- src/config.c | 3 ++- src/config.h | 11 ++++------- 3 files changed, 31 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 32b9376..2ad2be7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # RS41ng - Amateur radio firmware for Vaisala RS41 and Graw DFM-17 radiosondes -**NOTE:** While this firmware has been tested with great success on a number of high-altitude balloon +**NEW:** Experimental support for Graw DFM-17 radiosondes added! Please test and report any issues! + +**NOTE:** While this firmware has been tested (on RS41) with great success on a number of high-altitude balloon flights, it is still a work in progress and some features might not work as expected yet! In particular, the time sync (scheduling) features and use of an external Si5351 as a transmitter need more testing. @@ -109,7 +111,7 @@ On an external Si5351 clock generator connected to the external I²C bus of the #### Notes about APRS * Bell 202 frequencies are generated via hardware PWM, but the symbol timing is created in a loop with delay -* There is also code available to use DMA transfers for symbol timing to achieve greater accuracy, but I have not been able to get the timings working correctly +* There is also code available to use DMA transfers for symbol timing to achieve greater accuracy, but the timings are not working correctly #### Notes about Horus 4FSK @@ -146,7 +148,16 @@ Sensor driver code contributions are welcome! 1. Configure your amateur radio call sign, transmission schedule (time sync), transmit frequencies and transmission mode parameters in `config.h` -2. Set up transmitted message templates in `config.c`, depending on the modes you use + * Select the desired radiosonde type in the beginning of the file by removing the `//` comment from either + the `#define RS41` or `#define DFM17` lines. + * Customize at least the following settings: + * `CALLSIGN` + * For RS41, the settings beginning with `RADIO_SI4032_` to select transmit power and the modes to transmit + * For DFM-17, the settings beginning with `RADIO_SI4063_` to select transmit power and the modes to transmit + * `HORUS_V2_PAYLOAD_ID` if you transmit Horus 4FSK + * `APRS_COMMENT` if you transmit APRS +2. Set up transmitted message templates in `config.c`, depending on the modes you use. + You can customize the APRS and CW messages in more detail here. ### Power consumption and power-saving features @@ -374,10 +385,10 @@ ______________________| |______________________ 1. If your ST-LINK v2 programmer is capable of providing a voltage of 3.3V (as some third-party clones are), remove the batteries from the sonde. Otherwise, leave the batteries in and power on the sonde. 2. Connect an ST-LINK v2 programmer dongle to the sonde via the following pins: - * SWDIO -> Pin 9 (SWDIO) - * SWCLK -> Pin 8 (SWCLK) - * GND -> Pin 1 (GND) - * 3.3V -> Pin 5 (MCU switch 3.3V) (only required when using the programmer to power the sonde) + * SWDIO -> Pin 9 (SWDIO) + * SWCLK -> Pin 8 (SWCLK) + * GND -> Pin 1 (GND) + * 3.3V -> Pin 5 (MCU switch 3.3V) (only required when using the programmer to power the sonde) ### Graw DFM-17 programming connector @@ -421,13 +432,13 @@ _____ 1. If your ST-LINK v2 programmer is capable of providing a voltage of 3.3V (as some third-party clones are), remove the batteries from the sonde. Otherwise, leave the batteries in and power on the sonde. -2. Connect an ST-LINK v2 programmer dongle to the sonde via the following pins. - Note that you will need to either solder wires directly to the connector or solder a 0.5" (1.27mm) 5-by-2 pin header to the connector. -* SWDIO -> (SWDIO) -* SWCLK -> (SWCLK) -* RST -> (RST) -* GND -> (GND) -* 3.3V -> (VTRef) (only required when using the programmer to power the sonde) +2. Connect an ST-LINK v2 programmer dongle to the sonde via the following pins: + * SWDIO -> (SWDIO) + * SWCLK -> (SWCLK) + * RST -> (RST) + * GND -> (GND) + * 3.3V -> (VTRef) (only required when using the programmer to power the sonde) + * Note that you will need to either solder wires directly to the connector or solder a 0.5" (1.27mm) 5-by-2 pin header to the connector. ## Flashing the radiosonde with the firmware (both RS41 and DFM-17) diff --git a/src/config.c b/src/config.c index 78d21e3..42d4f4e 100644 --- a/src/config.c +++ b/src/config.c @@ -56,6 +56,7 @@ volatile bool system_initialized = false; * Maximum length: 64 characters. */ char *cw_message_templates[] = { + "$cs", // "$cs $loc6 $altm $gs km/h $tiC", // "$cs $loc6", // "$alt m", @@ -83,7 +84,7 @@ char *aprs_comment_templates[] = { // " B$bu $loc12 $hh:$mm:$ss - " APRS_COMMENT, // " $loc12 - " APRS_COMMENT, // " $teC $hu% $prmb PC $pc RI $ri uR/h - " APRS_COMMENT, -// " " APRS_COMMENT, + " " APRS_COMMENT, NULL }; diff --git a/src/config.h b/src/config.h index 419b425..b65e39d 100644 --- a/src/config.h +++ b/src/config.h @@ -1,12 +1,9 @@ #ifndef __CONFIG_H #define __CONFIG_H -// Define radiosonde type. Must be either RS41 or DFM17. +// Define radiosonde type. Remove the "//" comment to select either RS41 or DFM17. //#define RS41 -#define DFM17 - -// Comment the following error to make the DFM17 development branch compile :) -#error "DFM17 radiosonde support is a work in progress. This code does not work yet!" +//#define DFM17 #if !defined(RS41) && !defined(DFM17) #error "No hardware type specified. Please define RS41 or DFM17." @@ -16,8 +13,8 @@ // Enable semihosting to receive debug logs during development // See the README for details on how to set up debugging and debug logs with GDB // NOTE: Semihosting has to be disabled when the RS41 radiosonde is not connected to an STM32 programmer dongle, otherwise the firmware will not run. -#define SEMIHOSTING_ENABLE -#define LOGGING_ENABLE +//#define SEMIHOSTING_ENABLE +//#define LOGGING_ENABLE /** * Global configuration