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 '' 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 [[https://www.aliexpress.com/item/FREE-SHIPPING-ST-Link-V2-stlink-mini-STM8STM32-STLINK-simulator-download-programming-With-Cover/1823628996.html|one from china]], or if you can't wait that long, [[https://www.amazon.co.uk/gp/product/B0722WMDFQ/|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 [[https://my.st.com/content/my_st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/stsw-link004.license=1533224576969.html|here]].
Pinout of the SG41 2mm connector is [[https://github.com/Qyon/STM32_RTTY/blob/master/docs/pinout_extension_port.txt|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