

RS41 adapter
Vaisala RS41 radiosonde firmware written in Rust
- Size
- 35.6 × 26.7 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 8
- Nets
- 18
- Pads
- 33
- Tracks, vias
- 25, 1
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 20 Jan 2023
- Updated
- 18 Mar 2026
Overview
RS41 adapter is an open-source printed circuit board by arnobert, from the arnobert/rs41_rust repository on GitHub, published under the BSD-2-Clause licence. It is a 2-layer board of 35.6 × 26.7 mm with 8 parts on 18 nets, routed with 25 tracks and 1 via.
Its parts include 5 resistors and 2 connectors. It belongs with the interfaces and adapters boards of this library.
README
README.mdrs41-rs
This repo contains a new approach to a firmware for the Vaisala RS41 radiosonde, written entirely in Rust.
:warning: 2024-05-03: Today I captured a RS41 with a new microcontroller: STM32L412. This repo is developed on the old revision (with STM32F100). Do not attempt to flash a new revision with this firmware! A new version might be on it's way some day.
Obtaining the sonde
The web contains lots of information about how to get and program a RS41. I am using a standard NXP LPC Link 2 with CMSIS-DAP firmware connected to the sonde with the adapter (see KiCad project in the hw folder). LPC-Link J2 must be closed.
Please unsolder and remove the antenna (steel wire next to the 10 pin connector) before first programming!
I have additionally mounted a SMA plug to connect to a SDR (LimeSDR) or analyzer, with a 10 dB pad between.
Sonde hardware
bazjo did an amazing job in reverse-engineering the RS41's PCB. Please read the documentation: https://github.com/bazjo/radiosonde_hardware/tree/master/Vaisala_RS41
Currently working features:
☑️ Flashing the sonde
☑️ RTIC running
☑️ LEDs indicating status:
- Blinking red LED indicates missing GPS lock
- Green LED indicates communication between STM32 and ublox
☑️ Power button and battery voltage (reading ADC)
☑️ Radio configuration:
- frequency
- tx power
- modulation
- GPIOs (heater)
☑️ Generating ubx messages
☑️ Sending ubx messages to u-blox GPS receiver and parsing responses
☑️ Transmitting data via (G)FSK and Hellschreiber mode
- Coordinates and height
- Callsign
- UTC
- GPS status
The (G)FSK mode also transmits
- sequence number
- CRC
You will find the (G)FSK receiver project here: https://codeberg.org/dl2ssb/rs41_rx-rs
Unlocking the flash:
I am running a stock Arch Linux. Other distros or even OSs have not been tested yet.
First terminal: open openocd
openocd -f interface/cmsis-dap.cfg -c "transport select swd" -f target/stm32f1x.cfgSecond terminal: commands to openocd and unlock:
telnet 127.0.0.1 4444
> flash protect 0 0 15 offFor some sondes the command above did not work. You can try:
telnet 127.0.0.1 4444
> reset halt
> stm32f1x unlock 0Building the firmware
$ git clone https://github.com/arnobert/rs41_rust
$ cd rs41_rust
$ cargo fetch
$ cargo buildWith Hellschreiber mode:
$ cargo build --features "hell"Flashing the sonde, GFSK/HELL:
$ cargo embed
$ cargo embed --features "hell"Cargo embed auto-detects the LPC-Link. Other programmers might also work, but have not been tested.
Parts
8| Qty | Value | Footprint | References |
|---|---|---|---|
| 5 | 27 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R1, R2, R3, R4, R5 |
| 1 | Conn_01x03_Socket | Connector_Phoenix_MSTB:PhoenixContact_MSTBA_2,5_3-G-5,08_1x03_P5.08mm_Horizontal | J3 |
| 1 | Conn_02x05_Odd_Even | Connector_JAE:JAE_LY20-10P-DT1_2x05_P2.00mm_Vertical | SONDE |
| 1 | Conn_ARM_JTAG_SWD_10 | Connector_PinHeader_1.27mm:PinHeader_2x05_P1.27mm_Vertical | J1 |
Questions
How big is the RS41 adapter PCB?
It measures 35.6 × 26.7 mm and has 2 copper layers, 1.6 mm thick.
What parts does the RS41 adapter use?
8 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the RS41 adapter KiCad files?
From the arnobert/rs41_rust repository on GitHub, at the commit this page was made from: the board is hw/RS41_jtag_adapter/RS41_adapter.kicad_pcb and its schematic hw/RS41_jtag_adapter/RS41_adapter.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the RS41 adapter design in my own project?
Its repository publishes it under the BSD-2-Clause licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 2 layers20.5 × 24.8 mm

- 2 layers14.4 × 10.5 mm

OSO SWAB B1-00 Sensor Watch Accelerometer
joeycastillo/Sensor-Watch
A board replacement for the classic Casio F-91W wristwatch
8 parts2.1k - 2 layers7.9 × 39.1 mm

Brain board STM32F407 SD wing it
rusefi/rusefi
rusefi - GPL internal combustion engine control unit
8 parts1.2k - 2 layers59.9 × 25.7 mm

Buffer
hoglet67/RGBtoHDMI
Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI
8 parts1kGPL-3.0 - 2 layers52 × 12.6 mm

USB
shanteacontrols/OpenDeck
A platform for building interactive control and sensing devices using MIDI and OSC built with Zephyr RTOS.
8 parts960Apache-2.0 - 2 layers87.5 × 48.5 mm

7 input macropad
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
8 parts915 - 2 layers36.2 × 63.1 mm

PicoMemcard pico
dangiu/PicoMemcard
Emulating PSX Memory Card (or controller) using a Raspberry Pi Pico
8 parts694GPL-3.0 - 2 layers36 × 10 mm

PCB4-PWR BTN Rev.A
OLIMEX/DIY-LAPTOP
Do It Yourself Open Source Hardware and Software Modular Hacker's Friendly Laptop
8 parts578Apache-2.0