hygrometer

8,022

hygrometer
hygrometer

A digital frostpoint hygrometer was developed for measuring water vapor at NOAA. This new hygrometer was created using AVR microcontrollers and other digital electronics, referencing an old analog instrument. The circuit board layout was designed using Altium DXP, and the PCBs were fabricated by various companies, with all components soldered onto each board. The embedded C microcontroller code and C++ control program were also written for the hygrometers. The embedded software manages logic, communication protocols, and data processing on the circuit board. The control program displays and plots the hygrometer data and allows for calibration settings. The schematic for the frostpoint hygrometer features an Atmel AVR microcontroller, decoupling capacitors, a reset pull-up resistor, a crystal oscillator, a status LED, and a UART/RS232 header. Multiple components are connected through the SPI bus and other IO pins, including an ADC, pressure transducer, and SD card connector. The printed circuit board was laid out from the schematic, with copper traces connecting various ICs and using vias for layer changes. Designators and layout information are silkscreened on the top layer for reference. Companies like Imagineering can use this layout for PCB fabrication. The finished hygrometer board had all parts soldered using a standard soldering iron, with plans for more efficient fabrication methods as production increases. These instruments are now standard for balloon flights to measure water vapor, providing accurate data even in the upper atmosphere. The embedded software for the microcontroller was written in C using the WinAVR toolchain, managing the system's main functionality and communicating with a separate board for wireless data transmission. The hygrometer control software, developed in C++ with wxWidgets and OpenGL libraries using Microsoft Visual Studio 2008, features a GUI and plotting area. A worker thread continuously collects hygrometer data from the serial port, sending messages to the GUI thread when new data is received, which is displayed and plotted in a dynamic oscilloscope-like view. Menu options allow for thermistor calibration values to be set and for SD card data retrieval.

The digital frostpoint hygrometer is designed to accurately measure water vapor levels in the atmosphere, utilizing a sophisticated architecture that integrates both hardware and software components. The core of the system is an Atmel AVR microcontroller, which serves as the processing unit. The microcontroller is equipped with essential components such as decoupling capacitors to stabilize power supply fluctuations, a reset pull-up resistor to ensure proper startup conditions, and a crystal oscillator that provides the necessary clock frequency for operation. A status LED is incorporated to indicate the operational state of the device, while a UART/RS232 header facilitates serial communication with external devices.

Connections among various components are established through an SPI bus, which allows for high-speed data transfer between the microcontroller and peripheral devices such as an analog-to-digital converter (ADC) for signal digitization, a pressure transducer for atmospheric pressure measurement, and an SD card connector for data storage. The printed circuit board (PCB) layout is meticulously crafted, with copper traces designed to minimize resistance and interference, ensuring reliable signal integrity. Vias are strategically placed to allow for multi-layer connections, optimizing the board's compactness and functionality.

The embedded software, developed in C, implements the logic required for sensor data acquisition and processing, along with communication protocols for interfacing with the pressure transducer and ADC. The software architecture is designed to manage multiple slave devices, with an emulation layer that allows the microcontroller to interact seamlessly with an external board responsible for wireless data transmission.

The control software, written in C++ and leveraging wxWidgets and OpenGL libraries, provides a user-friendly graphical interface for visualizing data collected by the hygrometer. The plotting functionality mimics an oscilloscope, enabling real-time monitoring of water vapor levels with dynamic scaling to accommodate varying data ranges. Calibration options for the thermistor are accessible through the GUI, ensuring that users can maintain measurement accuracy. The inclusion of SD card data retrieval functionality allows for easy access to historical data, enhancing the utility of the hygrometer in research and operational contexts.

As production scales, transitioning to automated assembly methods such as hot air reflow or utilizing pick-and-place machines will enhance manufacturing efficiency, ensuring that the hygrometers can meet the demands of their application in atmospheric research. The integration of these advanced technologies positions the frostpoint hygrometer as a critical tool in measuring water vapor, particularly in challenging environments like high-altitude balloon flights, where precise data collection is essential.I worked on developing a digital frostpoint hygrometer for measuring water vapor at NOAA. Using an old analog instrument as a reference, I created this new hygrometer using AVR microcontrollers and other digital electronics. I laid out the circuit board using Altium DXP, had the PCBs fabricated through various companies, and soldered all the parts

onto each board. I also wrote both the embedded C microcontroller code and C+ control program for the hygrometers. The embedded software handles all of the logic, communication protocols, and data processing on the circuit board. The control program displays and plots the hygrometer data, and allows for certain calibrations to be set.

Using Altium DXP, I created the schematic for the frostpoint hygrometer. It centers around an Atmel AVR microcontroller (with decoupling capacitors, a reset pullup resistor, a crystal oscillator, a status LED, and a UART/RS232 header). Many parts are connected through the SPI bus and other IO pins, including an ADC, pressure transducer, and SD card connector.

I laid out this printed circuit board from the hygrometer schematic. Copper traces connect various ICs, using vias to change layers when necessary. Designators and layout information are silkscreened on the top layer for reference. Companies like Imagineering can use this layout to fabricate the actual PCBs. This is the finished hygrometer board. I soldered all parts on the PCB using a regular soldering iron. As production increases, we will move to a more efficient means of fabrication (hot air reflow, or using a separate company that has a pick and place machine). These instruments are now used as the standard on our balloon flights to measure water vapor, giving accurate data even in the upper atmosphere (with incredibly low water content in the air).

I wrote the embedded software for the microcontroller in C using the WinAVR toolchain. It manages the main functionality of the system, using the many attached slave devices, and emulates the behavior of another chip to communicate with a separate board that transmits our data wirelessly. This is a screenshot of the hygrometer control software I wrote in C+. It uses the wxWidgets and OpenGL libraries to create the GUI and plotting area, developed with Microsoft Visual Studio 2008.

A worker thread continuously runs in the background collecting hygrometer data from the serial port. It sends messages to the GUI thread when new data is received, which is then displayed and plotted on the window. The plot works like an oscilloscope, with a sliding view to show the incoming values, and can dynamically scale to the visible data range.

Menu options allow for thermistor calibration values to be set (both on the program and hygrometer), and SD card data retrieval. 🔗 External reference