Skip to content

Frequently Asked Questions

This section provides answers to common questions about uThing™ devices, their integration, and specific product features.


General & Integration

I'm using Linux and I get 'Permission Denied' when I try to access the serial port.

You need to grant your user permission to read and write to the serial port. Please refer to the Fixing Linux Permissions section in the connection guide for detailed instructions.

How can I send the dongle data over MQTT?

The easiest way to send uThing™ data over MQTT is by using the uBridge server with its MQTT plugin. This provides a robust and scalable solution for IoT applications.

What's the easiest way for logging data?

For robust, long-term data logging, we recommend using the uBridge server with its CSV logger plugin.

For quick, short-term logging directly from the command line, you can redirect the device's output to a file. First, configure the device to output in CSV format (see your device's Configuration page). Then, use the following command:

$ cat /dev/ttyACM0 > activity.csv &
The & symbol runs the process in the background, allowing continuous logging until the user logs out or the dongle is disconnected. The generated CSV file can then be easily opened in spreadsheet applications like Excel or Google Sheets.

How can I build a data logging and visualization solution for a Proof of Concept (PoC)?

For a comprehensive data logging and visualization solution, we recommend using the uBridge server combined with the InfluxDB plugin. This setup allows you to store time-series data in InfluxDB and visualize it using its integrated WebGUI or other dashboarding tools.

What is a Virtual COM Port (VCP) and why is it used?

A Virtual COM Port (VCP) is a software abstraction that allows a USB device to appear as a traditional serial port (like COM1 or /dev/ttyUSB0) to your computer. This simplifies connectivity as it doesn't require custom drivers and allows communication using standard serial port tools and libraries across Linux, macOS, and Windows.

Can I use multiple uThing™ devices simultaneously?

Yes, uThing™ devices are designed to be used simultaneously. Each device enumerates as a separate Virtual COM Port. The uBridge server is specifically designed to manage multiple connected uThing™ devices concurrently and stream their data to various plugins.

What is the difference between Interactive and JSON modes for configuration?

uThing™ devices support two configuration modes:

  • Interactive Mode: Uses single-character commands (e.g., S for Status, K for Calibrate). Ideal for quick, manual interaction via a serial terminal.
  • JSON Mode: Uses JSON objects for commands (e.g., {"led":true}). Designed for programmatic control, allowing multiple settings to be changed in a single command and easier integration into custom software.
How can I get the serial number or firmware version of my device?

You can retrieve this information using the Status command in Interactive mode (S) or the info command in JSON mode ({"info":true}). Refer to your device's Configuration page for specific command details and example responses.

What is the recommended way to power the uThing™ dongles?

uThing dongles are powered directly via the USB port (5V). They are designed for low power consumption. For optimal performance and to minimize potential heat transfer from the host, especially for temperature-sensitive sensors, using a powered USB hub or a short USB extension cable is recommended.


uThing::VOC Specific

Can I use the uThing::VOC device outdoors?

While the uThing::VOC is robust, using it outdoors requires careful consideration:

  • Water-proofing: You must ensure the device and its host are protected from rain and moisture while maintaining adequate airflow to the sensor.
  • VOC Concentration: VOC concentrations are generally much lower outdoors than indoors. The BME680 sensor is optimized for indoor air quality and may not provide meaningful readings for typical outdoor pollutants like particulate matter. For outdoor air quality, sensors based on photo-optical absorption (for particulates) are usually more appropriate.
Why am I seeing an offset between the reported and ambient temperature?

The BME680 sensor can be affected by heat conduction from the PCB and the host device (e.g., Raspberry Pi, USB hub). This can cause the reported temperature to be slightly higher than the true ambient temperature.

  • The device is factory-calibrated while connected to a standard USB hub.
  • You can apply a software temperatureOffset via the JSON configuration command to fine-tune the reading for your specific setup.
  • Using a USB extension cable or disabling the LEDs ({"led":false}) can help reduce self-heating and improve temperature accuracy.
Between multiple uThing::VOC units, why does the raw gas resistance seem to vary significantly?

The raw gas resistance from the MOX sensor (BME680) is highly sensitive and can vary between individual sensors and due to environmental factors like humidity. This raw value is not directly indicative of VOC concentration. Instead, the Bosch BSEC algorithms process this raw resistance, along with temperature and humidity, to produce a compensated Indoor Air Quality (IAQ) index. The BSEC algorithm continuously learns and adapts to the environment's baseline over time (up to several days) to provide a more reliable and relative IAQ estimation.

How long does it take for the IAQ sensor to stabilize?

The BSEC algorithm requires a learning period to establish a reliable baseline for the Indoor Air Quality (IAQ) index. Typically, it takes about 5 minutes to provide an initial valid IAQ value (Accuracy = 1). For the most reliable readings (Accuracy = 3), the sensor needs to operate in its typical environment for up to four days to fully adapt and learn the baseline.

What do the different iaqAccuracy levels mean?

The iaqAccuracy field (0-3) indicates the reliability of the IAQ, eCO2, and eqBreathVOC values:

  • 0 (Stabilizing): Sensor just powered on; data is unreliable.
  • 1 (Uncertain): Air conditions have been very stable, making it hard for the algorithm to establish a clear baseline.
  • 2 (Calibrating): The algorithm is actively learning and adjusting its baseline; data is becoming more reliable.
  • 3 (Calibrated): The algorithm has a reliable baseline; IAQ values are trustworthy.

It is recommended to use IAQ, eCO2, and eqBreathVOC values for logging or triggers only when iaqAccuracy is 2 or 3.

Why is the IAQ value relative and not an absolute measurement?

The IAQ index is a relative measure of air quality. The BSEC algorithm learns the "normal" air quality of its specific environment over time and sets a baseline. An IAQ of 25, for example, represents what the algorithm considers "typical good air" for that particular room, not a fixed concentration of gases. If the sensor is moved to a new environment, it will begin a new learning process to adapt to the new baseline.

What do eqCO2 and eqBreathVOC represent?
  • eqCO2 (Equivalent CO₂): This is an estimated CO₂ concentration derived from the measured VOCs. It's useful for indicating changes in air quality due to human presence (as humans exhale CO₂ and VOCs) but is not a direct CO₂ measurement.
  • eqBreathVOC (Equivalent Breath VOC): This is an estimated concentration of VOCs specifically characteristic of human breath. It serves as a strong indicator of room occupancy and ventilation status.
What do the LEDs on the uThing::VOC indicate?

The uThing::VOC has two LEDs:

  • Blue LED: Indicates the BSEC algorithm's IAQ accuracy status. Blinks once per second for Accuracy 0 (stabilizing), and is steady ON for Accuracy 1-3 (IAQ value is valid).
  • Red LED: A short blink indicates that BME680 data has been read and a report sent. A steady ON indicates an error in communication with the sensor.

uThing::MNL Specific

Can I use the uThing::MNL device outdoors?

Using the uThing::MNL outdoors requires careful consideration:

  • Water-proofing: You must protect the device and its host from rain and moisture. Ensure the noise sensor opening is not obstructed.
  • PIR Sensor: The PIR sensor will not perform reliably when directly exposed to sunlight, as it can cause false triggers.
  • Luminosity Sensor: For the luminosity sensor to function correctly, it needs a transparent window to be exposed to light.
How do I change the Fresnel lens on the uThing::MNL?

The uThing::MNL comes with two interchangeable Fresnel lenses (Dome and Angled) to optimize motion detection. To change the lens, gently pull the existing one off. Align the slot on the new lens with the corresponding feature on the sensor housing and push it in completely to ensure the correct focal distance.

Does the uThing::MNL record audio?

No, the uThing::MNL does not record or transmit intelligible audio. The integrated MEMS microphone is used solely to measure ambient noise levels (Sound Pressure Level - SPL). The device processes the sound internally and only outputs calculated decibel levels, ensuring user privacy.

How does the PIR sensor work and what affects its performance?

The Passive Infrared (PIR) sensor detects motion by measuring changes in infrared radiation (body heat). It contains two pyroelectric elements that generate a voltage when heated or cooled. Motion is detected when a warm object crosses the sensor's field of view, causing a differential change in voltage. Performance can be affected by:

  • Ambient Temperature: The sensor works best when there's a significant temperature difference between the environment and the object.
  • Direct Sunlight & Heat Sources: Avoid pointing the sensor at windows or near heat sources, as these can cause false triggers. For optimal results, place the sensor 3 to 5 meters away from direct sunlight and heat sources, and position it so that motion occurs across its field of view.
What is SPL and how is it measured by uThing::MNL?

Sound Pressure Level (SPL) is a logarithmic measure of sound pressure relative to a reference value, typically expressed in decibels (dB). The uThing::MNL uses its MEMS microphone and Digital Signal Processing (DSP) algorithms to calculate SPL. It reports three values:

  • rms: The root mean square of the sound pressure level (average).
  • peak: The maximum SPL measured during the sampling window.
  • base: The minimum SPL (background noise) measured during the sampling window. The uThing::MNL reports SPL in dBSPL (Z-weighted), meaning it gives equal importance to all frequencies in the audible spectrum.

uThing::iPH Specific

Why are the pH / voltage readings slowly drifting?

Drift in pH/voltage readings is most commonly caused by the sensing electrode itself, rather than the meter:

  • Temperature Equilibration: It can take 10-20 minutes for the probe's temperature to equilibrate with the solution. If the probe and compensation sensor temperatures differ, an offset will occur until equilibrium is reached.
  • Probe Fouling: A dirty or fouled glass bulb can slow down ion diffusion, leading to sluggish responses and drift as the reading slowly approaches the true value.
  • Memory of Past Junction Potentials: When a probe is moved between samples, residual liquid in the reference junction can cause temporary drift until the new solution fully diffuses. This effect is more pronounced with significant differences in ionic mobility between solutions.
I'm getting noisy readings even with a new electrode, what can I do?

Noisy readings, especially in industrial environments, can be caused by Electromagnetic Interference (EMI). Due to the very high impedance of pH electrodes and the uThing::iPH's input (TeraOhm range), the probe cable can act as an antenna for noise.

  • Cable Placement: Keep the coaxial cable as far as possible from AC power sources.
  • Shielding: Consider routing the cable inside a metallic conduit connected to earth ground on the probe side to provide shielding.
What is galvanic isolation and why is it important for uThing::iPH?

Galvanic isolation means there is no direct electrical path between the uThing::iPH's measurement circuitry (analog domain) and its USB connection to the host system. Power and data are transferred across an insulating barrier. This is crucial for:

  • Preventing Ground Loops: Eliminates measurement errors caused by different ground potentials in industrial or complex setups.
  • System Protection: Protects your host computer from high voltages or electrical faults that might occur in the solution being measured.
Why does the uThing::iPH have such a high input impedance?

pH and ORP electrodes have very high internal resistance (typically 10 MΩ to 1000 MΩ). To accurately measure the tiny voltage generated by these probes without drawing current (which would polarize the electrode and cause errors), the measuring device must have an input impedance significantly higher than the probe itself. The uThing::iPH's >1 TΩ input impedance ensures minimal current draw and highly accurate readings.

How does Automatic Temperature Compensation (ATC) work on the uThing::iPH?

The voltage output of a pH electrode is temperature-dependent. ATC automatically corrects for this by continuously measuring the solution's temperature and adjusting the pH calculation using the Nernst equation. The uThing::iPH can use either its onboard temperature sensor or a more accurate external waterproof probe for this compensation.

Why do I need to calibrate my pH probe regularly?

pH probes are electrochemical sensors whose characteristics change over time due to aging, contamination, and depletion of internal electrolytes. Regular calibration (using buffer solutions of known pH) is essential to correct for these drifts, ensuring that the probe provides accurate and repeatable measurements.

What are pH buffers and why are they used in calibration?

pH buffers are solutions with a very stable and precisely known pH value. They are used as reference points during calibration. By immersing the pH probe in at least two different buffer solutions (e.g., pH 7.00 and pH 4.00), the pH meter can determine the probe's actual offset and slope, allowing it to accurately convert the probe's voltage output into a correct pH reading.