Balloon Sonde for Relative Humidity and Temperature


Balloon Sonde Prototype

As we want to measure relative humidity in the low atmospheric layer (below 100m) with a good precision near condensation, we are constructing a balloon sonde with a Vaisala HMP155 warmed sensor probe.

To prevent condensation the sensor is slightly heated. That way the probe may report relative humidity even higher than 100%.

The measured values should be reported in real time to a computer at the ground while the balloon is ascending. To transmit the values, we use a Bluetooth class 1 module which transmits the data coming from the Vaisala probe's RS485 interface via SPP (Serial Port Profile).

The balloon probe needs to have a power supply: 16V 200mA max. for the Vaisala probe, 3.3V 100mA max for the Bluetooth module.
The power is generated from a 2000mAh Lithium Ion cell with two DC-DC converters.

This article will point out the details of the sonde construction and the experiences we make.


Vaisala HMP155 Probe

As the factory default the communication parameters on the RS485 serial interface of the Vaisala probe are set to 4800 baud, even parity, 7bit characters, one stop bit, no flow control.
Because cheap Bluetooth modules do not support this, we reconfigure the Vaisala probe to 4800 baud, no parity, 8bit characters, one stop bit, no flow control using the following command:

SERI 4800 n 8 1

The factory default mode of the probe after power up is "STOP", i.e. it does not send any data through serial interface. We want to continuously get the current values, so we configured the probe for "RUN" mode by the command:


To have enough time to switch the RS485 transceicer from send to receive direction after a command has been sent, the probe is configured for a delay of 128ms to send the response using the command:


More Commands

The HMP155 Probe has an integrated reat time clock, which is not battery buffered. After a power supply interruption, the clock restarts at 00:00:00.
To set the real time clock of the HMP155 Probe:


e.g. set clock to 16:12:54:

TIME 16 12 54

To set the reporting interval of the probe:

INTV <time spec>

Where <time spec> may be a number followed by "s", "m" or "h", meaning seconds, minutes or hours.

INTV 30 s

To set the format of the data records the HMP155 sends:

FORM TIME #t ta #t rh #t tdf #t \"[\" STAT \"]\" #t \"[\" ERR \"]\" #r#n↵

This produces data report lines like this:

11:29:49            20.8            55.3            11.5        [h ]    [0000]


The Vaisala probe comes with an 8-pin M12 male connector similar to this fitting Binder M12 female cable connector 99-0486-12-08 Farnell 1778743 or Phoenix Contact SACC-M12FS-8CON-PG9-M - 1513347

The MULTICOMP 2MT3002-W08200 is a a panel mount connector fitting the connector of the Vaisala probe. But only the contact body part is actually fitting, the metal threaded collar needs to be machined away. The locking nut/thread gender are exchanged between male and female parts of this connector series. So we constructed a custom locking mechanism (see Mechanical Construction).


16V Output DC-DC Converter

A DC-DC switching converter based on an LT1308A chip from Linear Technologies is built. The converter provides the power supply of 16V for the Vaisala HMP155 probe. At least 16V are needed when the warmed probe feature is used. The datasheet of the Vaisala HMP155 states a maximum current consumption of 150mA when the probe is heated.

The circuit is the one of figure 19 on page 14 in the datasheet.
(R3 is 0 Ohm and Cpl and compensation network is left out.)

LT1308 Boost Converter Schematic

The converter is built with SMD parts on a PCB with traces cut with a knife following the "recommended component placement" and layout hints on page 9 of the datasheet.
C1+ in the BOM is an additional capacitor in parallel to C1, which eventually is not needed.

LT1308 Boost Converter Layout

DC-DC Converter 16V PCB DC-DC Converter 16V 200mA Output

DC-DC Converter 16V 200mA Output
On the above picture a resistive divider connected to the LBI (Low Battery detector Input) (100k to Gnd, 1M + 390k to Vin) can be seen. It was originally intended to be used for switching off the converter when the battery voltage drops below 3V. As the battery has it's own low battery shutdown, this part of the circuit is not used and !SHDN pin of the LT1308A is tied to Vin.

Bill of Materials

IC1 LT1308ACS8 Linear Technology LT1308ACS8 Farnell 1663406
L1 10μH Bourns SRF0703-100M Farnell 1852818
C1 10μF, 25V, X7R KEMET C1812C106K3RACTU Farnell 1358500
C1+ 10μF, 10V tantal AVX TPSA106K010R0900 Farnell 1432565
C2 47μF, 20V tantal AVX TPSE476K020R0070 Farnell 1432634
D1 MBRS130T3G, SCHOTTKY,1A Farnell 1459070


3.3V Output DC-DC Converter

A DC/DC SEPIC (Single-Ended Primary Inductance Converter) switching converter based on an LT1307 chip from Linear Technologies is built. The datasheet of the RN41 Bluetooth module from Roving Networks specifies a peak current consumption of 100mA.

The circuit is the "Step-Up/Step-Down Converter" circuit as described on page 16 of the LT1307 datasheet.

LT1307 SEPIC Converter Schematic

The converter is built with SMD parts on a PCB with traces cut with a knife following the "recommended component placement" and applications information, "Figure 9. Recommended component placement for SEPIC" on page 10 of the datasheet of the LT1308A, component numbers of the BOM refer to this figure aswell.

LT1307 SEPIC Converter PCB Layout

DC-DC Converter 3.3V PCB DC-DC Converter 3.3V 100mA Output
Note that there are some mistakes in the cuts done to reproduce the layout. The mistakes are repaired on the right picture by filling the wrong cuts with thin wire and soldering over.

DC-DC Converter 3.3V 100mA Output
On the above picture a resistive divider connected to the LBI (Low Battery detector Input) (100k to Gnd, 1M+390k to Vin) can be seen. It was originally intended to be used for switching off the converter when the battery voltage drops below 3V. As the battery has it's own low battery shutdown, this part of the circuit is not used and !SHDN pin of the LT1307 is tied to Vin.
Note that the pads of the two windings of the Coiltronics CTX5-1A-R inductor are over cross compared to the layout from the LT1308A datasheet. For this the inductor is mounted top side down and is connected to the PCB by (crossed) wires.

Bill of Materials

IC1 LT1307CN8 Linear Technology LT1307CN8 Farnell 9560394
L1A, L1B 4.7μH, 3.75A, Dual Winding COILTRONICS CTX5-1A-R Farnell 1852818
C1 10μF, 10V tantal AVX TPSA106K010R0900 Farnell 1432565
C2,C3 10μF, 25V, X7R KEMET C1812C106K3RACTU Farnell 1358500
D1 MBR0520L, SCHOTTKY,0.5A Farnell 1467521



We use a 2000mAh LiIon polymer cell like the one sold by Sparkfun.
This seems to be sufficent for several hours (> 12h) of operation. So half the capacity or even less would perfectly do. Half the capacity would save 14g.

This battery includes built-in protection against over voltage, over current, and minimum voltage. So no measures need to be taken to prevent deep discharge.


RS485 Transceiver

To interface to the RS485 the Vaisala probe offers, an SN75HVD08 RS485 transceiver chip from Texas Instruments is used.


Bluetooth Module

As we need a range of up to 100m, a class 1 Bluetooth module is needed.

We decided to use RN41 Bluetooth modules from "Roving Networks", now "Microchip". Actually we used Bluetooth Mate Gold from Sparkfun which is an RN41 module mounted to an adapter board with voltage regulator and level translators so the module is 3-6V tolerant.

To get a class 1 long range connection, both ends of the bluetooth connection need to be class 1 modules. So we use two RN41 modules . The end at the ground station (laptop) is equipped with an FTDI Basic Breakout - 5V also from Sparkfun to be able to access the Bluetooth module via USB.
To connect RN41 module and FTDI Basic Breakout, Tx and Rx must be crossed, aswell as DTR (RTS) and CTS.

Configuring the Bluetooth Modules

The modules have a data pass through mode and a command mode. When powered up, both modules are in data pass through mode.

To switch from data pass through mode to command mode, the module must receive the "switch to command mode" sequence, which by factory default is "$$$".

The module switches back to the data pass through mode when receiving:


The modules may be configured via the UART side, aswell as via the radio side.

To be able to switch the remote, probe side module to command mode over the Bluetooth connection, the "Configuration Detection Character" is changed from "$$$" to "///" by sending the command:

This way it is possible to separately switch both end's Bluetooth modules to command mode, the probe's module by sending "///" and the ground station's module by sending "$$$".

The probe's side module's serial communication parameters are configured as 4800 bit/s to fit the settings of the HMP155 probe.
This is done by issueing:

in command mode.

GPIO for selecting RS485 Transceiver Direction

The HMP155 has an RS485 interface, which is a half duplex channel. Data may flow in one direction at a time only.
To be able to both send to and receive from the probe, there must be means to remotely switch the direction of the RS485 transceiver. This is done using a GPIO pin of the Bluetooth module.

GPIO11 (module pin 34) is connected by an extra wire and used as data direction control signal for the RS485 transceiver. The following command issued in command mode of the Bluetooth module may be used to switch GPIO11 to high (data direction Bluetooth module -> HMP155):

this one, to switch GPIO11 to low (data direction HMP155 -> Bluetooth module):


Setting up the Bluetooth Link with the HMP155 Probe

To simplify the procedure described below, a perl script has been programmed which does all the steps automatically.
The perl script is written to support Linux aswell as Windows.
For the Windows support it is recommended to install the 32 bit version of Strawberry Perl. At the time of this writing, installation of Win32::SerialPort under 64 bit Strawberry Perl did NOT work.
Under Windows the cpan module Win32::SerialPort needs to be installed. The installation of Win32::SerialPort only works seemlessly, if COM1 is present on the system. If there is no COM1 present, read the "README.txt" coming with the Win32::SerialPort distribution package.

The perl script may be downloaded here.

Under Linux the script is called like this:

./ -v -c --hmp155-set-time --hmp155-set-intv 2s --hmp155-set-format "TIME #t ta #t rh #t tdf #t \"[\" STAT \"]\" #t \"[\" ERR \"]\" #r#n" --hmp155-log-recs 3

Under Windows the script is called like this:
perl -v -c --hmp155-set-time --hmp155-set-intv 2s --hmp155-set-format "TIME #t ta #t rh #t tdf #t \"[\" STAT \"]\" #t \"[\" ERR \"]\" #r#n" --hmp155-log-recs 3

Manually setting up Bluetooth link

To do the manual setup described below, you need a serial terminal program like e.g. putty.
The terminal program needs to be set to 115200 bits/s, 8bit data words, 1 stop bit, no parity, no handshake.

A typical procedure for manually setting up the reporting of measurements of the HMP155 probe over the Bluetooth link might look like the following:

Switch the local BT module to command mode:


Initiate the connection between the two BT modules:


After a few seconds the BT connection should be up, indicated by the green LEDs of both modules lit.

Switch the remote BT module to command mode:


Switch remote BT module's GPIO11 to high to set RS485 transceiver to BT module -> HMP155 direction:


Switch the remote BT module to transparent data mode:


Now we may send commands to the HMP155 probe.
To take notice of configuration commands, the HMP155 probe must be in stop mode, i.e. it must not be in the mode where it continuously sends measurement data.
So first send "S":


Be aware of the fact that the HMP155 probe may only react to the stop command if it is not just sending measurement data at the same time the stop command is sent.
So best is to repeatedly send "S" until being reasonably sure the HMP155 probe had heard at least one of them.

Now, if we are sure the HMP155 probe is in stop mode, we can send the configuration parameters we want to have set.
In our case this would be: setting the clock, setting the data reporting format, setting the data reporting interval
And finally switch the HMP155 probe to run mode.

TIME hh mm ss↵
FORM TIME #t ta #t rh #t tdf #t \"[\" STAT \"]\" #t \"[\" ERR \"]\" #r#n↵
INTV 2 s↵

Now we may switch the RS485 transceiver back to HMP155 -> BT module direction
consisting of switching the remote BT module to command mode, setting the BT module's GPIO11 to low, switching the BT module to data mode:


From now on, if everything went well, we should see the HMP155 probe reporting measurement records in the interval set by the INTV command issued.


Mechanical Construction

A housing made from 2mm polycarbonate sheet protects the Li Ion battery, the electronics board and the socket to plug the Vaisala HMP155 probe.

The electronic parts, i.e. the dc-dc converter modules, the Bluetooth module and the RS485 transceiver IC are soldered to a prototyping PCB 70mm x 65mm which may be removed from the housing for servicing.

Probe Supply Module Housing

A machined nut made from POM fixes the Vaisala probe to the electronics housing. The nut has an outer diameter of 18mm and a height of 5mm. The thread is M12x1 (metric fine pitch thread).

Probe Supply Module




This site maintained by:
My public PGP key
last updated: 2015-11-20 Valid CSS! Valid XHTML 1.0 Strict