Project Specification

OpenHumidistat: an open-source humidistat

Closed-loop humidistat for fast and precise humidity control for small-scale experiments


Microcontroller board - Teensy LC
Teensy LC specifications
MCUARM Cortex-M0+
Clock48 MHz
MemoryFlash: 62 kB
SRAM: 8 kB
Voltage 3.3 V
Digital I/O pins27
ADCChannels: 13
Resolution: 12 bit
PWMChannels: 10
Resolution: 16 bit
Humidity sensorSensirion SHT-85
Flow sensorsMEMS D6F-P0010A1
Maximum measurable flow rate1 L min−1
Miniature proportional solenoid valvesModel: PVQ30-series, SMC
Voltage: 12V
Solenoid driver2-channel VCCS (Voltage-Controlled Current Sink)


This tech spec was submitted by Lars Veldscholte as part of the University Technology Exposure Program.


A humidistat controls the mixture of humid and dry airflow in different proportions by using proportional solenoid valves to adjust moist and dry air flow rates. The OpenHumidistat features independent use or the optional connection to a PC via USB to monitor and log the controller parameters using the Python utility.

Problem / Solution

Numerous experiments require humidity control, yet conventional methods yield unstable humidity regulation, slow performance, and inflexible application. Systems that use the balance of water vapour with salt solutions require a specific amount of salt for every value of humidity that needs to be manually changed. Other systems that use local water heating and a mixture of dry and humid air streams usually produce poor control due to the lack of automatic feedback, long response times, and external disturbances. PID-based electropneumatic humidistats are not burdened with these issues. However, commercial devices are often uncommon and inaccessible.

 OpenHumidistat is an open-source affordable, and simple humidistat for laboratory-scale humidity control. The design combines humid and dry air flow in varying proportions and sensor feedback to achieve desired humidity through closed-loop control. It can attain a humidity range of approximately 10–90%, features high accuracy, good disturbance rejection, easy operation, excellent versatility, and portability.


The OpenHumidistat has five components: a PID controller, user interface (UI), sensors, valves, and a humidifier.

The PID (proportional, integral, derivative) controller operates on a microcontroller board. It works by a closed-loop control scheme, which uses feedback to control the variables. It controls the valves to attain desired humidity in a chamber, which contains a humidity sensor to provide feedback to the controller. A Teensy LC microcontroller board allows for a more complex UI than the popular Arduino Uno by featuring increased processing time, flash, RAM, and I/O pins.

 The user interface utilizes a 128x64 LCD and 5-button keypad with four directional and a ‘select’ button. However, an alternative input method can replace the current keypad since it only uses a single analog input pin.

 OpenHumidistat employs a cascade control by which one outer control loop controls humidity, and two inner loops control the airflow of the two valves. The two inner control loops use the outer controller’s flow sensor output for precise flow control. The inner loops have quicker dynamics than the outer loop because flow rates are easier to change than humidity. A few advantages of using a cascade controller are fewer issues with hysteresis in the plant and actuator nonlinearities.

The small humidity sensor Sensirion SHT-85 inside the chamber allows for more reliable and accurate measurements. MEMS flow sensors provide flow rate feedback for the closed-loop flow control with a maximum measurable flow rate of 1L m-1.

Proportional solenoid valves allow for analog control of flow rates. A PWM current generated by a custom solenoid valve driver powers these valves.

A simple humidifier produces a humid air stream by bubbling air through water in two gas washing bottles without using electronics. These two bottles in series ensure sufficient water vapour saturation with no aerosols at high flow rates. 


A research paper describing the challenge, design, and outcome of the research

Lars B. Veldscholte and Sissi de Beer