This is an old revision of the document!
Tom SP9UOB kindly gave some of us a RS41-SG Radiosonde at the UKHAS 2018 conference.
Software options seem to be:
Trying this software first: https://github.com/yanosik/STM32_RTTY
Downloaded and installed the IDE https://www.wyzbee.com/download/Utilities/Software/CoIDE-1.7.8.exe
Downloaded and installed the 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, 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 -DSTM32F10X_MD_VL -DUSE_STDPERIPH_DRIVER -D__ASSEMBLY__ -IC:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\stm_lib\inc -IC:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master -IC:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\stm_lib -IC:\Users\WALTONK\Documents -IC:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\cmsis -IC:\Users\WALTONK\Documents\Electronics -IC:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\cmsis_boot C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\stm_lib\src\stm32f10x_tim.c C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\fun.c C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\cmsis_boot\startup\startup_stm32f10x_md_vl.c C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\cmsis_boot\system_stm32f10x.c C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\stm_lib\src\stm32f10x_pwr.c C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\stm_lib\src\stm32f10x_gpio.c C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\init.c C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\stm_lib\src\stm32f10x_rcc.c C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\stm_lib\src\stm32f10x_adc.c C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\stm_lib\src\stm32f10x_usart.c C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\f_rtty.c C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\syscalls\syscalls.c C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\stm_lib\src\stm32f10x_flash.c C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\stm_lib\src\stm32f10x_dma.c C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\stm_lib\src\misc.c C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\stm_lib\src\stm32f10x_spi.c [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\fun.c: In function 'srednia': [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\fun.c:139:13: warning: array subscript has type 'char' [-Wchar-subscripts] [cc] srednia_u[i] = dana; [cc] ^ [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\fun.c:144:10: warning: array subscript has type 'char' [-Wchar-subscripts] [cc] srednia_u[nr_pom] = dana; [cc] ^ [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\fun.c:151:19: warning: array subscript has type 'char' [-Wchar-subscripts] [cc] sr += srednia_u[i]; [cc] ^ [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c: In function 'main': [cc] sprintf(buf_rtty,"%s*%04X\n",buf_rtty,CRC_rtty & 0xffff); [cc] ^ [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c:344:20: warning: format '%X' expects argument of type 'unsigned int', but argument 4 has type 'long int' [-Wformat=] [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c:344:20: warning: format '%X' expects argument of type 'unsigned int', but argument 4 has type 'long int' [-Wformat=] [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c:355:9: warning: implicit declaration of function 'strncmp' [-Wimplicit-function-declaration] [cc] if (strncmp(GPS_buf,"$GPRMC",6) == 0) [cc] ^ [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c:359:9: warning: implicit declaration of function 'strcpy' [-Wimplicit-function-declaration] [cc] strcpy(czas,"000000"); [cc] ^ [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c:359:9: warning: incompatible implicit declaration of built-in function 'strcpy' [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c:364:12: warning: incompatible implicit declaration of built-in function 'strcpy' [cc] strcpy(kierunek,"0"); [cc] ^ [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c:364:12: note: include '<string.h>' or provide a declaration of 'strcpy' [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c:368:8: warning: incompatible implicit declaration of built-in function 'strcpy' [cc] strcpy(szerokosc,"0.00000"); [cc] ^ [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c:368:8: note: include '<string.h>' or provide a declaration of 'strcpy' [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c:378:8: warning: incompatible implicit declaration of built-in function 'strcpy' [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c:359:9: note: include '<string.h>' or provide a declaration of 'strcpy' [cc] strcpy(dlugosc,"0.00000"); [cc] ^ [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c:378:8: note: include '<string.h>' or provide a declaration of 'strcpy' [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c:389:10: warning: incompatible implicit declaration of built-in function 'strcpy' [cc] strcpy(status,"-"); [cc] ^ [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c:389:10: note: include '<string.h>' or provide a declaration of 'strcpy' [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c:398:13: warning: incompatible implicit declaration of built-in function 'strcpy' [cc] strcpy(wysokosc,"0"); [cc] ^ [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c:398:13: note: include '<string.h>' or provide a declaration of 'strcpy' [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c:402:13: warning: incompatible implicit declaration of built-in function 'strcpy' [cc] strcpy(use_sat,"0"); [cc] ^ [cc] C:\Users\WALTONK\Documents\Electronics\STM32_RTTY-master\main.c:402:13: note: include '<string.h>' or provide a declaration of 'strcpy' [cc] strcpy(predkosc,"0"); [cc] ^ [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. The Driver for the ST-link-V2 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 were:
- Gnd to Gnd
- +VDD_MCU to +3.3v
- SWCLK to SWCLK
- SWDIO to SWDIO
And we have a connection:
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.
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.