Air Pressure Sensor Kit

by nelson_phillips in Workshop > Cars

165 Views, 1 Favorites, 0 Comments

Air Pressure Sensor Kit

20260304_124554a.jpg
rect1.png
20260304_130232.jpg
20260304_124145.jpg
20260304_124213.jpg
20260304_124257.jpg
20260304_125922.jpg
20260304_131834.jpg

This is an air pressure kit primarily to measure the pressure field acting on a car. Intended to be cheap and accessible way of understanding the aerodynamics of a vehicle. Though you can buy this kit as a whole it can be replicated by following the information provided here in the instructable.

The kit can be used in two ways, as a basic kit and an advanced kit that utilizes extra memory. This basic kit is designed to provide the fundamental function for air pressure measurement and is contain on the main board. The more advanced kit includes a memory chip/board on the back of the main board and a second array of either four or eight additional pressure sensors with extra accuracy.

The idea is, the kit can be used by anyone interested in aerodynamics applied to the real world. It isn't intended to be a professional kit, but something useful enough for an enthusiast.

The links to the video outlines how the project was developed and how the kit would be used.

Part 2

https://youtu.be/VCc6cvCaDeM

Part 1. Design

https://youtu.be/KWqHiMi8ORQ

Supplies

20260220_165147.jpg
Screenshot 2026-03-19 171114.png
Screenshot 2026-03-19 171009.png
20260304_125910.jpg
20260304_124405.jpg
20260304_124419.jpg
20260304_125922.jpg
20260304_124340.jpg
Screenshot 2026-03-01 204856.png
Screenshot 2026-03-01 204609.png

This section contains all the components that are needed to replicate this kit from scratch with details of both the basic kit and advanced kit.

The main board pictured in the schematic is base on the Arduino nano. It has four factory calibrated ±5kpa sensors connected to the 10bit analogue input of the microcontroller. A BME280 module is added for atmospheric pressure and temperature reads, helpful to provide context(absolute pressure) to a test.

  1. Arduino nano
  2. 4x ±5kpa pressure transducers
  3. BME280 module
  4. slide switch
  5. push button
  6. 2x 2.54mm jst connectors male/female
  7. 2x vertical 1mm connectors male/female(qwiic connectors are possible)

An addition to the main board is extra memory and an expansion board for more sensors. This large amount of memory, 500Mb, makes it possible to increase the number of data point. That is, recording data from more sensors at a higher frequency. So the additional sensors, with the same ±5kpa rating, are mounted on a separate board. An amplification board with a ADS1115 chip is attached produce a far more accurate reading, as such also appears more noisy.

  1. SPI Flash storage chip
  2. 4x WF100S005-DS pressure sensor or equivalent
  3. ADS1115 breakout board the blue one with the header pins
  4. 1mm connector

The housing and sensor interface is with silicone tube and the attached 3d printed parts.

  1. 10m of 1mm id silicone tube
  2. 10cm of 2.5mm id silicone tube

Powering on the Basic Kit

Screenshot 2026-03-08 132325.png

If building the basic kit the code is available above. The basic board runs off the EEPROM only so that code needs to be use. If the memory board is used the advanced kit code is required even if the analog sensors are the only one attached.

If purchasing an assembled kit the basic kit comes with the code installed and ready to run. Connecting the device first through the usb port via the Arduino software is recommended to understand the kits functions. The kit functions exactly the same whether it is powered by the usb cable or battery.

Plugged into the computer, running the Arduino software the kit can be interacted with it through the serial monitor, top right of the UI. Clicking it opens up a window at the bottom.

Interacting with the kit through the serial port you can write to the internal memory by typing ‘w’ then ‘enter’, pressing the red button does exactly the same thing. This will overwrite any data that exists from prior startups, the trigger count is also reset. Typing ‘r’ then ‘enter’ will write the data to the serial and then removes previous data. These are all the functions the UI uses with either the Processing4 or Arduino software, the difference is using the Processing4 written UI gives the opportunity the write the data to a file on you computer therefore saving the data.

Offline, when it is in the vehicle and battery operated the red button is pressed to trigger the data recording. The recording takes one second with the settings displayed in the image above. Pressing the button after one second will run the data recording process again until the maximum number, ‘MAX_TRIGGERS’ has been met. This number can be increased. When doing the data dump if less than the ‘MAX_TRIGGERS’ the extra displayed sets will contain zeros.

Data Extraction

s.png
Screenshot 2025-08-12 200538.png
Screenshot 2025-08-16 013353.png

To extract and save the data requires the Processing4 UI code, though you could copy and paste the data out of the Arduino serial window but it doesn’t work well. After loading the code into the software it is just a matter of running it and the UI window will open up.

If the serial port is not written as the same as the one used on the Arduino, then line 14 needs to be changed(close the UI window and change it then rerun the code). (The Arduino software needs the serial window closed for Processing4 to communicate via the serial port)

Each button on the UI writes to the kit via the same serial commands if using the Arduino software. ‘Record to EEPROM’ writes a ‘w’ to the serial, which is not necessary here as this will write over any data, only if the kit has been restarted. ‘Fetch Data’ will write the stored data to the UI window by sending ‘r’ the kit. After the data is in the window pressing the ‘Save to CSV’, write the data to a unique file where the pressureSensorUI_1 Processing4 code is stored. Now the CSV file can be opened in any spreadsheet.

Advanced Kit Setup & Use

image1b.png
path1as.png
text6-5.png

The setup is a little different for this advanced kit, as there are two sets of code that needs to be flashed to the microcontroller. One is for the data recording and the other is for communicating to the UI to access the memory. Then if the data needs to be erased from the memory chip, an additional program needs to be loaded, not supplied but available with other libraries.

The data recording code must be flashed to the microcontroller. After this, it is functionally the equivalent to the basic kit. This time all the data is recorded and stored by the kit with no averaging. Each time the red button is pressed to trigger a data set and it creates a unique file. In this set of data points one is added every 100ms until the red button is pressed again to stop the recording. The frequency of the recording data points can be increased in the code if it is thought necessary from the 10Hz as seen on line 44 of the data_logger_v2 file.

Extracting Data

untitled.png

A separate Arduino file for interfacing with the UI is required to be flashed to the controller before the Processing4 software can extract the stored file. The UI is a crude interface, but setup to follow the process in an obvious manner. Connecting to the Arduino is more straight forward than the basic kit, where the software will detect the serial port and connect to the kit by pressing the top button. It will give feedback to whether this was successful or not. If successful the following button can be pressed to retrieve the file names that will be displayed. The file that you want to extract needs its indexed number typed into the dialogue box and then the next button is pressed to display the data to be transferred to the computer. If the displayed data isn’t from the right file, reenter an alternative file number in the dialogue box. The save button will transfer the data to the computer with the same name and stored where the Processing4 code is situated. Video of the process is available is linked in part 2 in the introduction.

Calibration

cali.png
calibratedplot.png
2.png
3.png

When an experiment is going to happen the sensors need to be zeroed. Thought the main board sensors are factory calibrated they will drift on the supply voltage, seen within a difference when the kit is powered by the battery or usb. Therefore it is a good idea to record a data set whilst everything is static. Then this data can be used to calibrate the rest of the sensors with a reference offset. Also the it give you an opportunity to record an absolute pressure value for any offset that may cause.

An example of a raw data set for calibration is above. All other the silicone tube lines are connected to a common inlet with pressure changed by applying both positive and negative by the mouth. It is apparent that the digital sensors are negative, more responsive and have a large offset.

The main board sensors use the following equation to convert the analogue input to pressure. The E5 is the spreadsheet cell and it is divided by the analogue bits to get the input voltage. The rest of the equation is give by the data sheet, 2.5 is the voltage at zero gauge pressure, 5 is the supply voltage and -6.25 is a constant.

=(E5/1034)*(2.5*5)-6.25

As the non factory calibrated sensors can drift over a number of parameters the following equation I have used may need to be altered by the user. It is highly recommended that the use characterise the sensors by using a common pressure test. Not necessarily every time it is used but at least once before the first use.

=(-L5-750)/750

The noisy plot is calibrated data from an experiment. One of the lines are common to a analogue and digitally connected sensors. This is an alternative way to calibrate the data set.