Tom SP9UOB kindly gave some of us a RS41-SG Radiosonde at the UKHAS 2018 conference.
Software options that I can find:
- https://github.com/yanosik/STM32_RTTY - Original?
- https://github.com/Qyon/STM32_RTTY - Added APRS
- https://github.com/df8oe/RS41HUP - Make UKHAS format compatible
- https://github.com/darksidelemm/RS41HUP - Remove APRS, add 4FSK and other tidy-ups (Fix compile on Windows, by adding missing files - Projects window, right click, 'Add Files' - and add all missing files.)
- - - Toms software which is not publicly available yet.
Download and install the CoIDE https://www.wyzbee.com/download/Utilities/Software/CoIDE-1.7.8.exe
Download and install the GCC ARM compiler https://launchpad.net/gcc-arm-embedded/5.0/5-2016-q3-update/+download/gcc-arm-none-eabi-5_4-2016q3-20160926-win32.exe
Open the project in CoIDE and setup the defaults in main.c or config.h (depends which software you are using), and then build:
GCC HOME: C:\Program Files (x86)\GNU Tools ARM Embedded\5.4 2016q3\bin compile: [mkdir] Created dir: C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\rtty\Debug\bin [mkdir] Created dir: C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\rtty\Debug\obj [cc] 17 total files to be compiled. [cc] arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Wall -ffunction-sections -g -O0 -c -DSTM32F100C8 - [snip] [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c:411:16: warning: incompatible implicit declaration of built-in function 'strcpy' [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c:411:16: note: include '<string.h>' or provide a declaration of 'strcpy' [cc] Starting link [cc] arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -g -nostartfiles -Wl,-Map=rtty.map -O0 -Wl,--gc-sections -LC:\apps\CooCox\CoIDE\configuration\ProgramData\rtty -Wl,-TC:\apps\CooCox\CoIDE\configuration\ProgramData\rtty/arm-gcc-link.ld -g -o rtty.elf ..\obj\stm32f10x_tim.o ..\obj\fun.o ..\obj\startup_stm32f10x_md_vl.o ..\obj\system_stm32f10x.o ..\obj\stm32f10x_pwr.o ..\obj\stm32f10x_gpio.o ..\obj\main.o ..\obj\init.o ..\obj\stm32f10x_rcc.o ..\obj\stm32f10x_adc.o ..\obj\stm32f10x_usart.o ..\obj\f_rtty.o ..\obj\syscalls.o ..\obj\stm32f10x_flash.o ..\obj\stm32f10x_dma.o ..\obj\misc.o ..\obj\stm32f10x_spi.o Program Size: text data bss dec hex filename 38929 2848 2208 43985 abd1 rtty.elf BUILD SUCCESSFUL Total time: 6 seconds
And with a few warnings it builds!
Reprogramming needs a STM programmer like this one from china, or if you can't wait that long, this one on Prime from Amazon. The driver for the ST-link-V2 programmer is here https://www.st.com/en/development-tools/stsw-link009.html. I used the ST-Link utility programming tool (which includes the driver) from here.
Pinout of the SG41 2mm connector is here. Connections to the 2mm pitch RS41-SG connector I made were:
- Gnd to Gnd
- +VDD_MCU to +3.3v
- SWCLK to SWCLK
- SWDIO to SWDIO
- Rst to Rst
Be aware that some of the circuit diagrams around are for the OEM ST-Link V2 programmer which has many more pins than the cheap one I link to above.
And we have a connection using the ST-Link utility.
11:51:09 : ST-LINK SN : 56FF6B064977535412210687 11:51:09 : ST-LINK Firmware version : V2J29S7 11:51:09 : Connected via SWD. 11:51:09 : SWD Frequency = 4,0 MHz. 11:51:09 : Connection mode : Normal. 11:51:09 : Debug in Low Power mode enabled. 11:51:09 : Device ID:0x420 11:51:09 : Device family :STM32F100xx Low/Medium density Value Line 11:51:09 : Can not read memory! Disable Read Out Protection and retry.
I then tried for several hours to re-programme the chip, and kept failing, before discovering that I needed to turn off the 'Read Out Protection' that was turned on in the chip. I used the STM32 ST-Link utility to do that, connecting to the RS41 (Target → Connect) and then editing the Options Bytes (Target → Options Bytes) to disabled Read Out Protection and 'Unselect all' in the bottom 'Flash sectors protection' section.
15:51:19 : Option bytes updated successfully. 15:51:31 : Flash memory erased. 15:52:01 : Memory programmed in 6s and 812ms.
Now both the ST-Link and the CooCox CoIDE tools will both flash the chip
The RS41 takes 2 x AA batteries - as you look at the battery holder vertically, with the aerial down and temperature sensor up, the right hand battery has + at the top, the left hand battery has + at the bottom.
I have tried all of the software above, but currently am running darksidelemm's and getting packets transmitted:
$$$$$G7PMO-RS41-1,18,17:03:20,N52.3227,W0.7062,93,0,4,2810,25*9511
Hopefully this is of use to others - any corrections please do let me know.
Cheers, Kevin