Access Sensor Technologies has improved our UPAS v2.1 and UPAS v2.1 PLUS firmware to make UPAS operation more intuitive and reliable. Read on to learn how the new firmware (version 200) differs from our old firmware (versions < 200). You'll find out if upgrading to firmware version 200 is the right decision for you.
The firmware is the software that runs on the UPAS. The firmware tells the UPAS how to operate and when to complete tasks.
Firmware version 200 is compatible with all UPAS v2.1 and UPAS v2.1 PLUS (any device with a serial number that starts with "PSP") but is NOT compatible with UPAS v2.0.
If you're using custom firmware, contact our team before updating your UPAS to ensure your custom features remain intact. Examples of custom firmware include revision numbers 158, 159, 160, or 277.
Firmware version 200 offers several benefits over older firmware versions. These changes are discussed in more detail in the sections that follow. Click on the linked text in the list below to learn more.
No, firmware version 200 writes log files with the same format as firmware version 157. With firmware version 200, you will still be able to read UPAS log files into R using our astr package and visualize log file data using our web-based R Shiny application; however, a few variable names have changed, a few new variables have been added, and some variables have been removed from the standard log file. Read the Greater transparency in reporting sample flow rates and volumes and Streamlined sample log files sections to learn more.
With firmware versions < 200, the LED flashed a lot of different colors during UPAS start-up. Each flash conveyed information about the UPAS status, but it wasn't easy to keep track of what all the flashes meant.
In firmware version 200, the number of LED colors and flashes displayed during UPAS power-on and sample start-up has been simplified to convey the most important information about the UPAS status. Tables 1–4 below describe the new LED indicators. See the updated UPAS v2.1 and v2.1 PLUS User Guide for more information.
Power-on sequence | LED status | Meaning | |
1 | Power-on UPAS by pressing pushbutton for > 3 s | White LED on | UPAS is powered on and initializing |
2 | Battery State of Charge (SOC)1 indication (UPAS flashes one of these codes). If the UPAS is charging, the SOC code will appear twice (8× flashes total). |
Red LED flashes 4×
Orange LED flashes 4×
Yellow LED flashes 4×
Blue LED flashes 4×
Green LED flashes 4×
|
SOC is < 25%
SOC is 25 to 50%
SOC is 50 to 75%
SOC is 75 to 96%
SOC is > 96%
|
3 | Check for microSD card | White LED on | Checks whether a microSD card is installed |
4 | Wait for microSD card installation if not already installed2 | White LED flashes indefinitely until microSD card is installed | No microSD card is installed in the UPAS |
5 | Get sensor information and check "At Next Power-On" state3 | White LED on | UPAS is checking sensor settings and determining whether it should proceed to starting a sample |
6 | Power on Bluetooth® Low Energy (BLE) | White LED on | Powering on BLE to allow for Android/iOS app programming |
7 | UPAS is ready to connect to the iOS/Android app to program a sample |
Pink LED flashing or
pink LED on
|
Flashing pink: A GPS signal has not been received.4
Solid pink: A GPS signal has been received.5
|
8 | UPAS is connected to the app | Blue/pink alternating LED or blue LED on | Blue/pink alternating: A GPS signal has not been received.4 Solid blue: A GPS signal has been received.5 |
|
Step | LED status | The UPAS is... |
|
Now | Sample initiating | Lilac LED on | Initiating the pre-programmed sample; pumps will start soon and will adjust to the flow rate setpoint. |
Targeting set flow rate | Green LED flashing1,2 | Adjusting the sampling pumps to the flow rate setpoint. | |
Sample running | Green LED on (or blue LED on if charging or pink LED on if fully-charged) | Controlling the flow rate to the setpoint that is required for the inlet selected by the user during sample programmed. | |
At Next Power-On | Waiting for next power-on | LED off | Off and awaiting power-on (via the pushbutton) to initiate the pre-programmed sample. |
Power-on with pushbutton | Follows UPAS power-on sequence with "At Next Power-On" state enabled | Powered-on (because the user has held down the pushbutton for 3 s). | |
Sample initiating | Lilac LED on | Initiating the pre-programmed sample; pumps will start soon and will adjust to the flow rate setpoint. | |
Targeting set flow rate | Green LED flashing1,2 | Adjusting the sampling pumps to the flow rate setpoint. | |
Sample running | Green LED on (or blue LED on if charging or pink LED on if fully-charged) | Controlling the flow rate to the setpoint that is required for the inlet selected by the user during sample programmed. | |
Set Date/Time | Waiting for start date/time | Blue LED flashes repeatedly | Awaiting the scheduled start date/time to initiate the pre-programmed sample. |
Sample initiating | Lilac LED on | Initiating the pre-programmed sample; pumps will start soon and will adjust to the flow rate setpoint. | |
Targeting set flow rate | Green LED flashing1,2 | Adjusting the sampling pumps to the flow rate setpoint. | |
Sample running | Green LED on (or blue LED on if charging or pink LED on if fully-charged) | Controlling the flow rate to the setpoint that is required for the inlet selected by the user during sample programmed. | |
|
LED color | Meaning | Recommended action |
Green | UPAS is sampling and not charging. | No action required |
Blue | UPAS is sampling and charging. | No action required |
Pink | UPAS is sampling and fully-charged. | No action required |
Orange | UPAS battery is low (approximately 20% charge remaining). | Plug the UPAS into a charging source while the sample is running. |
Red1 | UPAS flow is obstructed or the pumps are at maximum power.1 | Verify that the inlet is not obstructed. |
|
LED color | Meaning |
Lilac LED flashing | The UPAS flow rate is still adjusting to the target value associated with the current flow offset setting. |
Lilac LED on | The UPAS flow rate has adjusted to the target value associated with the current flow offset setting. |
The UPAS needs to know the date and time to function properly, so a UPAS operating on the old firmware (versions < 200) would not connect to a mobile device for sample programming if there was not a valid timestamp stored in the UPAS internal memory. Additionally, a UPAS operating on the old firmware could only get the Coordinated Universal Time (UTC) from a GPS satellite. If the UPAS lost track of time (e.g., because the UPAS battery depleted to such a low state of charge that the timestamp stored in the UPAS internal memory was lost), the UPAS LED would flash pink upon power-on, the UPAS would not connect to the mobile app, and the UPAS would need to be taken outside to connect to a GPS satellite before a sample could be programmed or started.
A UPAS operating on the new firmware (version 200) gets the UTC timestamp from the mobile device used to program a sample. As a result, the UPAS no longer needs to connect to a GPS satellite to get the time. A UPAS operating on firmware version 200 can connect to a mobile device upon power-on regardless of whether the UPAS has the current date and time stored in the internal UPAS memory. The timestamps that the UPAS gets from mobile devices will be just as accurate as the timestamps the UPAS used to get from GPS satellites because mobile devices get Coordinated Universal Time from the cellular network, Wi-Fi, or GPS.
This change in the procedure used to set the UPAS internal clock makes it easier to use the UPAS in locations with poor GPS signal. This change also makes it easier to see if the UPAS has a GPS signal for location tracking when programming and starting the sample. Previously, the LED was always solid pink when the UPAS was ready to connect to the mobile app. Now, the UPAS can connect to the mobile app when the LED is either flashing pink (no GPS signal) or solid pink (GPS signal received). See Figure 1 for a summary of this behavior and Table 1 for additional information.
Figure 1. Old versus new (i.e., firmware version ≤ 200 versus firmware version 200) behavior when the UPAS is powered-on without a valid UTC timestamp stored in the UPAS internal memory.
If the microSD card is removed during a sample, a UPAS operating on the old firmware (versions < 200) would continue to sample for 5 minutes. If the microSD card was reinserted during that 5-minute period, the sample would continue to run, but the sample log data from the period when the microSD card was removed would never be written to the log file. If the microSD card was not reinserted within 5 minutes, the UPAS would stop sampling and shut down.
A UPAS operating on the new firmware (version 200) will immediately stop sampling, reset, and go through the power-on sequence described in Table 1 if the microSD card is removed. Firmware version 200 firmware will then allow you to restart or reprogram the sample using one of these methods:
The UPAS contains a mass flow sensor that monitors the flow rate through the sample filter continuously throughout the sample. The UPAS uses data from this mass flow sensor—along with data on the air temperature, pressure, and relative humidity—to adjust the pump power, as needed, to maintain the target volumetric flow rate through the sample filter. We calibrate the mass flow sensor at our factory when the UPAS is manufactured or serviced. If you check the UPAS filter sample flow rate against an external reference flow meter and apply a nonzero flow offset (using the “Filter Flow Check & Adjust” feature in the mobile app), that has the effect of shifting the factory calibration curve.
With firmware versions < 200, only sample flow rates and volumes calculated with the calibration curve shifted in accordance with the user-supplied flow offset were written to the log file.
With firmware version 200, sample flow rates and volumes calculated using the factory calibration curve alone (i.e., without accounting for the flow offset) are also written to every log file. As a result:
read_ast_header()
function from the astr package is used with update_names = TRUE
, the relevant parameters in log files written using older firmware versions will be updated to these new names.read_ast_log()
function from the astr package is used with update_names = TRUE
, the relevant variables in log files written using older firmware versions will be updated to these new names.Firmware | Variable name | Units | Meaning |
LOG FILE HEADER | |||
200 | OverallFlowAvgFactory | (L min-1) | Sample-averaged flow rate through the filter as calculated using our factory calibration curve. |
200 | PumpingFlowAvgFactory | (L min-1) | Sample-averaged flow rate through the filter when the pumps were on as calculated using our factory calibration curve. |
200 | SampledVolumeFactory | (L) | Volume of air sampled through the filter as calculated using our factory calibration curve. |
200 157 |
OverallFlowAvgOffset OverallFlowRateAverage |
(L min-1) | Sample-averaged flow rate through the filter as calculated with the calibration curve shifted by the user-applied flow offset; will equal OverallFlowAvgFactory if FlowOffset = 0. |
200 157 |
PumpingFlowAvgOffset PumpingFlowRateAverage |
(L min-1) | Sampled-averaged flow rate through the filter when the pumps were on as calculated with the calibration curve shifted by the user-applied flow offset; will equal PumpingFlowAvgFactory if FlowOffset = 0. |
200 157 |
SampledVolumeOffset SampledVolume |
(L) | Volume of air sampled through the filter as calculated with the calibration curve shifted by the user-applied flow offset; will equal SampledVolumeFactory if FlowOffset = 0 |
SAMPLE LOG | |||
200 | PumpingFlowFactory | (L min-1) | The volumetric flow rate through the sample filter as calculated using our factory calibration curve. If the log interval = 30 s, this is the time-average of the flow rate measured when the pumps were active. If the log interval = 1 s, this is the instantaneous flow rate (when the pumps were active) or zero (when the pumps were inactive). |
200 | OverallFlowFactory | (L min-1) | Duty cycle-adjusted flow rate through the sample filter as calculated using our factory calibration curve; equal to PumpingFlowFactory multiplied by the duty cycle. |
200 | SampledVolumeFactory | (L) | Cumulative volume of air sampled through the filter as calculated using our factory calibration curve. |
200 157 |
PumpingFlowOffset PumpingFlowRate |
(L min-1) | The volumetric flow rate through the sample filter as calculated with the calibration curve shifted by the user-applied flow offset; will be equal to PumpingFlowFactory if FlowOffset = 0. If the log interval = 30 s, this is the time-average of the flow rate measured when the pumps were active. If the log interval = 1 s, this is the instantaneous flow rate (when the pumps were active) or zero (when the pumps were inactive). |
200 157 |
OverallFlowOffset OverallFlowRate |
(L min-1) | Duty-cycle adjusted flow rate through the sample filter as calculated with the calibration curve shifted by the user-applied flow offset; equal to PumpingFlowOffset multiplied by the duty cycle; will equal OverallFlowFactory when FlowOffset = 0. |
200 157 |
SampledVolumeOffset SampledVolume |
(L) | Cumulative volume of air sampled through the filter as calculated with the calibration curve shifted by the user-applied flow offset; will equal SampledVolumeFactory when FlowOffset = 0. |
200 | PM2_5SampledMassFactory | (μg) | Cumulative mass of PM2.5 sampled onto the filter as estimated from PM2_5MC and SampledVolumeFactory |
200 |
PM2_5SampledMassOffset PM2_5SampledMass |
(μg) | Cumulative mass of PM2.5 sampled onto the filter as estimated from PM2_5MC and SampledVolumeOffset |
To reduce the size and complexity of UPAS v2.1 and v2.1 PLUS log files, the variables listed in Table 6 are no longer included in standard log files written using firmware version 200. These variables were either: (a) included in sample logs written using firmware versions < 200 primarily for troubleshooting purposes or (b) are not relevant in most sampling applications. See our UPAS v2.1 and v2.1 PLUS User Guide for detailed descriptions of these variables.
If you want to collect larger sample logs that still include all the variables listed in Table 6 (except Dead, BCS1, BCS2, BC_NPG), you can put your UPAS into “verbose logging mode” by connecting it to the mobile app, entering “LOGVERBOSE#” (without quotes) in the sample name field, and then hitting “return” (on an iOS device) or “Ok” (on an Android device). The app will return to the main menu, “LOGVERBOSE#” will disappear from the sample name field, and the mode will have been activated.
Sample log category | Variables that have been removed from the standard sample log |
DateTime | UnixTimeMCU |
Motion | RotX, RotXVar, RotXMin, RotXMax, RotY, RotYVar, RotYMin, RotYMax, RotZ, RotZVar, RotZMin, RotZMax |
PMSensor | PM4MC, PM4MCVar, PM10MC, PM10MCVar, PM4NC, PM10NC, PM0_5NCVar, PM1NCVar, PM2_5NCVar, PM4NCVar, PM10NCVar, PMtypicalParticleSizeVar, PMReadingErrorCnt, PMFanErrorCnt, PMLaserErrorCnt, PMFanSpeedWarn |
EngData | PT100R, PumpPow2, BFGenergy, PumpsON, Dead, BCS1, BCS2, BC_NPG, TPumpsOFF, TPumpsON |
Follow the instructions below to install new firmware on your UPAS. Note that the process varies slightly depending on the type of computer used to update the firmware.
After updating your UPAS to firmware version 200, make sure any mobile device that you will use to program the UPAS is running iOS/Android 12 or later and has the most recent version of our mobile application installed: iOS version 1.0.4 (published December 28, 2022) or Android version 2.3.1 (published March 27, 2025).
Yes, but, if you want to revert from firmware version 200 to a firmware that operates similarly to version 157, you must install firmware version 158 (linked below). To install firmware version 158 on your UPAS:
After the microSD card is reinserted, the LED will turn orange and then the UPAS will shut down. The next time the UPAS is powered on, it will operate normally on firmware version 158. Firmware version 158 is similar to version 157.