Recycling of Vaisala RS-41 meteorological radiosonde
Since I succeeded in capturing a few Vaisala
RS-41 meteorological radiosondes, I decided to look for some usefulness
them. Since the frequency at which these radiosondes are transmiting,
protected and allocated to meteorologists, it is necessary to find a
way to shift the frequency into the amateur or ISM band. The radiosonde
a Si4032-type radio IC so this job is only a question of programming.
Unfortunately, it is usual practice that the program in these devices
is protected so that only one way can be walked - the whole program
must be re-written. During the search on the net I came across a
program published by a Polish radio amateur, SQ5RWU. I programmed a
radiosonde with this software and started testing it. The program
but it was unconfortable that every time I wanted to change some
parameters, it was necessary to change the source code and compile it
and then re-write the new program into the processor. This is a
time-consuming process, and the flash memory on the other hand does not
like the frequent rewriting. Since the whole program was simple and the
possibilities it provided me were not enough, I decided to re-write the
entire program. The final result of this development is this program.
It is quite large, barely fitting in the flash, but the advantage is
that you does not have to constantly re-write the radiosonde. The
should be put once into it, then the parameters can be changed at any
time through the serial line on the port of the rs41 connector.
Before the first programming, the flash memory must be deleted
completely with the "Full chip erase" command so that the originally
protected memory parts are released. Otherwise, the program will not
save our own parameters due to lack of space!
The radiosonde can be switched on by the
in the lower right corner. If the battery voltage is sufficient (the
radiosonde can be powered by two NiMH batteries), the green LED on the
left corner of the PCB will start to flash. If
the radiosonde has a good view on the GPS satellites, the green LED will
light up permanently after finding it's position. The red LED near to
it lights up when the transmitter is working. The original sensors are
not used, so they must be removed. If the BUTTON parameter is set to
ON, the radiosonde can be switched off by pressing and holding the button.
Push the button until the green LED starts blinking rapidly. After the
button has been released, the radiosonde switches off. If the BUTTON is OFF,
the radiosonde can only be switched off by removing the batteries from the
The radiosonde can operate in RTTY, APRS and CW
These modes can be switched on or off individually. The RTTY text is
compatible with UKHAS recommendations. The APRS packet may be decrypted
and encoded according to Mic-E variable. Sonde transmissing APRS data
only if the coordinates are valid. Each parameter can be changed
by sending a command and its parameters by the serial port. To do this,
the radiosonde and computer should be connected via a COM-TTL or
converter. Please note the radiosonde connector on the UART port is
You can use any terminal program on your computer. The speed is 9600
baud, 8 data bits and 1 stop bit without parity and hw control (9600
8-N-1). As every other parameters, this can be changed too. The possible speeds are from 300 to 115200 baud. Communication
is interactive. All issued commands will be answered. If the processor
has understood and executed the command, then the answer will be an OK.
Otherwise, we'll get an error message telling you where we made a
mistake. After turning on the radiosonde, we need to see this welcome text
on the screen, if the radiosonde and computer are properly connected:
STM32 CW, RTTY & APRS tracker v. 2.5 by OM3BC...
If you need help, you can use the HELP or the ? commands. After this command we get the following text:
Allowed commands (not case sensitive):
BUTTON on/off - use button to turn off
LEDS on/off - use LEDs
POWER n - rf power n = 0 to 7 (7 is max.)
APRSFRQ n - n = aprs frequency in kHz
RTTYFRQ n - n = rtty frequency in kHz
APRSCALL string - aprs callsign (up to 6 characters)
RTTYCALL string - rtty callsign (up to 15 characters)
CWIDMESS string - cw message (up to 25 characters)
RTTY on/off - send rtty message
HOLDOFF n - n = time between two rtty messages in seconds
BAUD n - n = rtty baudrate (max. 300)
DBITS n - n = rtty databits (7 or 8)
SBITS n - n = rtty stop bits (1 or 2)
SHIFT n - n = 1,2,3,4 or 270,540,810,1080 Hz
TEMP (or TEMPERATURE) on/off - send temperature in rtty messages
ALT (or ALTITUDE) on/off - send altitude in rtty & aprs messages
SPEED on/off - send speed in rtty messages
COURSE on/off - send course in rtty messages
UBAT on/off - send battery voltage in rtty messages
USYS on/off - send system voltage in rtty messages
SAT (or SATELLITES) on/off - send heard satellites in rtty messages
APRS on/off - send aprs messages
SPEEDCOURSE on/off - send speed and course in aprs messages
SYMBOL string - symbol from aprs symbol table (2 characters)
SSID n - aprs ssid n = 1 to 15
RELAY string - aprs relays (WIDE1-1,WIDE2-1)
TXD n - Tx delay n = 10 to 500 ms
MICE on/off - send coded aprs messages in mic-e format
TEL (or TELEMETRY) on/off - send telemetry data in aprs messages
APRS_EVERY n - time between aprs messages is n x holdoff
TAIL_EVERY n - time between tail text is n x aprs time
TTEXT string - tail text (up to 100 characters)
APRS_UBAT on/off - send battery voltage in aprs ttext
WWL on/off - send wwlocator messages
LWWL on/off - send long (10 char.) wwlocator messages
CWID on/off - send cwid messages
CWID_EVERY n - time between cw messages is n x holdoff
CW_SPEED n n = cw speed in wpm
IGATE on/off - monitoring aprs message via UART
NMEA on/off - send MNEA GPGGA message via UART
DISP - show parameters
SERCOM n - speed of serial communication port (n = 300 to 115200)
DEF - set default values
SAVE - save parameters to flash
BUTTON - this parameter specifies whether the push button can be used to turn off the radiosonde or not.
LEDS - you can save energy when
you do not use LEDs. Nobody sees them anyway when the radiosonde is
flying. After switching on, the LEDs always work, but when set to OFF,
they automatically turn off after 10 minutes of operation.
POWER - output power setting 0 = smallest, 7 = maximum power (approx. 40 mW).
APRSFRQ - APRS frequency (recommended frequency is 432,500 MHz)
RTTYFRQ - RTTY frequency. This frequency is also valid for CW identification.
APRSCALL - APRS call sign.
RTTYCALL - RTTY call sign.
CWIDMESS - the text of the CW identification.
If you write a > at the beginning of the text, the broadcast will
begin with a "attention" (-.-.-) sign, which facilitates machine
decoding (MixWin, Dl-FlDigi, etc.).
RTTY - RTTY Text On / Off.
HOLDOFF - the time between the two RTTY broadcasts.
BAUD - RTTY transmission speed in baud (max. 300).
DBITS - number of data bits. Possible values are 7 or 8.
SBITS - number of stop bits. Possible values are 1 or 2.
SHIFT frequencies. Possible values: 1-270, 2-540, 3-810, 4-1080 Hz
TEMP - to transmit the temperature in the RTTY text. (The value is the temperature of the radio chip, not the environment.)
ALT - enable altitude transmission.
SPEED - enable speed transmission.
COURSE - enable motion direction transmission.
UBAT - enable battery voltage transmission.
USYS - enable transmission of system voltage. This is a constant value - for testing only.
SAT - the number of GPS satellites heard.
APRS - Enable APRS transmission.
SPEEDCOURSE - speed and direction in APRS packets.
SYMBOL - two characters that determine how the radiosonde appears on the www.aprs.fi website. (icon fom the symbol table)
SSID - the caller ID of the APRS. Possible values from 0 to 15.
RELAY - aprs relays (WIDE1-1,WIDE2-1)
TXD - the TxDelay. Possible value from 10 to 500.
MICE - Package unscrambled, or MIC-E encoding.
TELEMETRY - telemetry data transmission.
APRS_EVERY - APRS packages are not required to be given too often. This parameter specifies the time between the two packets.
TAIL_EVERY - frequency of transmission of the attached information text (comment field).
TTEXT - the attached information text (comment).
APRS_UBAT - Send battery voltage in aprs text.
WWL - Send WW Locator.
LWWL - Send long (10 character) WW Locator.
CWID - Enable CW Authentication.
CWID_EVERY - Frequency of CW identification.
CW_SPEED - the CW identification speed in WPM.
IGATE - after the parameter has been enabled, the radiosonde sends a text through the serial port that the iGate can link to.
NMEA - If the parameter has been enabled, the radiosonde sends standard NMEA GPGGA and GPRMC text via the serial port.
DISP - shows the set parameters.
SERCOM - speed of serial communication port (n = 300 to 115200).
DEF - set parameters to default values.
SAVE - stores the set parameters.
One possible setting:
APRS FREQUENCY: 432500 kHz
RTTY FREQUENCY: 434500 kHz
RTTY CALLSIGN: OM3BC
HOLOFF: 15 s
RTTY BAUDRATE: 100 Bd
RTTY SHIFT: 540 Hz
RTTY DATA BITS: 7
RTTY STOP BITS: 2
BATTERY VOLTAGE: ON
SYSTEM VOLTAGE: OFF
APRS CALLSIGN: OM3BC-11
TX DELAY: 250
APRS EVERY: 4
SPEED and COURSE: OFF
TAIL TEXT EVERY: 2
TAIL TEXT: Modified RS-41 balloon tracker
CWID MESSAGE: TEST DE OM3BC/AM
CW ID speed: 60 WPM
CW ID EVERY: 5
UART: 9600 8-N-1
The original source can be found here.
Hex file can be found here.
For programming, I use the ST-LINK V2 programmer, which can be obtained from aliexpress, for example.
HG8LXL, Laci's report on the balloon, he has launched.
| ----------- |
| 2 4 6 8 10 |
| 1 3 5 7 9 |
| ------ ---- |
1 - GND
2 - Uart3 Rx
3 - Uart3 Tx
4 - PB1 * (10k + cap + 10k)
5 - Vcc (Boost out)
6 - VBAT
7 - RST
8 - SCL
9 - SDI
The Programer cable connections:
RS41 ----- ST-LINK
Pin 1 ----- GND
Pin 5 ----- 5.0V
Pin 8 ----- SWCLK
Pin 9 ----- SWDIO
USB - TTL converter:
RS41 ------ USB-TTL
Pin 1 ----- GND
Pin 2 ----- TxD
Pin 3 ----- RxD