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 for them. Since the frequency at which these radiosondes are transmiting, is protected and allocated to meteorologists, it is necessary to find a way to shift the frequency into the amateur or ISM band. The radiosonde uses 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 worked, 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 program 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.




Description:

    The radiosonde can be switched on by the pushbutton 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 lower 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 battery holder.
    The radiosonde can operate in RTTY, APRS and CW mode. 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. 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 USB-TTL converter. Please note the radiosonde connector on the UART port is 3.3V! 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 RTTY & APRS tracker by OM3BC ...
cmd>

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 = 1 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
DBITS n - n = rtty databits (7 or 8)
SBITS n - n = rtty stop bits (1 or 2)
SHIFT n - n = 1,2,3,4 1 = 270, 2 = 540, 3 = 810, 4 = 1080 Hz
TEMP on / off - send temperature in rtty messages
ALT 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 on / off - Send sent 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
TXD n - Tx delay n = 10 to 500
MICE on/off - send coded aprs messages in mic-e format
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)
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 and GPRMC messages 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
cmd>

Available commands:

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.
RTTY - RTTY Text On / Off.
HOLDOFF - the time between the two RTTY broadcasts.
BAUD - RTTY transmission speed in baud.
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 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.
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).
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:

cmd>disp
Current parameters:

BUTTON: ON
LEDS: ON
POWER: 7
APRS FREQUENCY: 432500 kHz
RTTY FREQUENCY: 434500 kHz
RTTY: ON
RTTY CALLSIGN: OM3BC
HOLOFF: 15 s
RTTY BAUDRATE: 100 Bd
RTTY SHIFT: 570 Hz
RTTY DATA BITS: 7
RTTY STOP BITS: 2
TEMPERATURE: OFF
ALTITUDE: ON
SPEED: OFF
COURSE: OFF
BATTERY VOLTAGE: ON
SYSTEM VOLTAGE: OFF
SATELLITES: ON
APRS: ON
APRS CALLSIGN: OM3BC-10
TX DELAY: 250
SYMBOL: /O
APRS EVERY: 4
SPEED and COURSE: OFF
MIC-E: OFF
TELEMETRY: OFF
TAIL TEXT EVERY: 2
TAIL TEXT: Modified RS-41 balloon tracker
CWID: ON
CWID MESSAGE: TEST DE OM3BC/AM
CW ID speed: 60 WPM
CW ID EVERY: 5
IGATE: OFF
NMEA: OFF
cmd>

Closing remarks:

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.

Wiring:

RS-41 connector:

| ----------- |
|  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
10- GND

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