IDT ZMOD4410 Indoor Air Quality Raspberry Pi HAT - Review

Table of contents

RoadTest: IDT ZMOD4410 Indoor Air Quality Raspberry Pi HAT

Author: saicheong

Creation date:

Evaluation Type: Development Boards & Tools

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: Similar Metal Oxide Based Gas sensors such as Bosch BME680

What were the biggest problems encountered?: Learning of the characteristics and implement of sensors driver package. * The sensor can't work on out-of-package software after custom app have been ran. (Update: 16Jan After contact with Renesas, the hardware may defected and need future analysis )

Detailed Review:

RoadTest of IDT ZMOD4410 Indoor Air Quality Raspberry Pi HAT




The Indoor Air Quality which is a score determine the level of in-house pollution which may harmful to humans or pets though the respiratory system or damaged the mental healthy by foul odour or strong smear. The high VOC furnitures, poor ventilation, smoking or even cooking will affect the IAQ. As currently COVID-19 global pandemic, people get indoor shielding and remain stay at home for a long time, so maintaining good indoor air is a key for keep both physical and mental healthily. However, many toxic gas produced by household are odourless and undiscoverable. Fortunately, thanks for involve by semi-conductor pioneers, many new inexpensive, high performance, portable and low power consumption electronic sensors have been developed in the last decade such as the MOX gas sensors and PM2.5 laser dust sensors. Together with the declining price of IoT wireless devices, properties managers is able to monitoring the indoor pollutions much detail by distributing many devices on communicate offices, factories, care homes or hospitals. On the other hand, those sensors open the opportunities for inventors build new "Smart Home Device" which is cost saving, miniature and seamlessly integrated to internet for example a Ceiling light with IAQ detections and connected to Cellular.



The Avnet's Renesas ZMOD4410 IAQ HAT for Raspberry Pi is a add-on card on top of Raspberry GPIO header for IAQ monitoring by Renesas' (IDT joined Renesas 2019) sensors solution.

The HAT included ZMOD4410 Gas VOC sensor,  HM3003 relative humidity and temperature sensor. It also embedded a set of Adjustable voltage circuit for test of sensor performance under different voltage. Two LEDs, the ZMOD4410 interrupt and reset pin also connected to GPIOs and should directly control by raspberry host.


This board come with a out-of-the-box pre-complied application for rapidly testing or validation. After registered and agree the Renesas' Software License, developer is ability to download and use the algorithm to build of own software.


element14's community provided us this ambitious development HAT together with a Raspberry 3B for this RoadTest Review, although it don't shipped with the 16GB memory card, we use a 32GB microSD card for the OS and develop our own software directly on the raspberry.


The 3B is not the latest generated of Raspberry but it definely sufficient on our purpose.


Raspberry as the IoT centre

The Raspberry is a small low-cost single-board ARM computer targeted for budgeting desktop, education as well as embedded or IoT applications. The founder  - Raspberry Pi Foundations provided offical OS based on Debian Linux, user is able to installed 3rd parity OS like FreeBSD. Because only with main boards,  the keyboard and mouse  and common external monitor should attached. For embedded applications,  a touch display is good alternation. Advantage user can connected remotely though remote VNC.

As Raspberry as a IoT devices, it have both Pros and Cons:


  • The board is easy obtained
  • It relative cheap for the bare board and batch projects
  • Good supports by community
  • Indigenous desktop capability with full GUI support together with flexible external GPIO available.
  • Various choose of Accessory and HAT



  • Power consumption is high for battery applications.
  • Relative expensive when cost is critical.
  • The default OS is not industry certified such as meet of ISO for automotive and medical.
  • Limited GPIO connections.
  • The stocked OS is not designed for Real time applications.


Thanks for the mass productions of Raspberry PI, the price of that powerful single board is cheaper that most 32bit embedded development kits, for small and medium projects such as monitoring on a Museum that aimed for up to few hundred batch size, which is expensive for build and test by custom hardware. It also easy productive by the developer which is dominant of web-technology but not familiarity with embedded, such as in this roadmap, a NodeJS bridge have been built and User Interface by React which typical web front-end programmer can be involved for. However, the Raspberry is relative high cost especially most IoT don't require such computing power, the Arduino IoT board is another great choose for lower cost and power consumption. It also not suitable for large volumes embedded applications such a Smart Lamp which require very low cost and fully integrated, however the flexible of GPIO make the Raspberry is a good development tools and easy porting to other ARM solutions, for example our roadmap attempted develop a dashboard by QT creators run on the Raspberry's LCD display which is easy transfer to other device that capability the QT5.0. However, some critical applications may not suitable use of Raspberry especially empower by fast changed stocked OS that not designed for safety and critical, such as by our observed the Raspberry Pi OS Interrupt callback and I2C is not reliability when long term use, which most IoT device required 24/7 non-stop running, so in our code, all I2C communication have been open a new steam and closed immediately after each reading for improve the stable.


Out-of-stock Applictions



The Avnet provided an out of box applications that available free download.

A great instruction have been provided by Monica on:

Monitor Indoor Air Quality with the IDT ZMOD4410 Pi HAT

Firstly, the board should request enable I2C from terminal: raspi-config whenever you want to use this or  built app by yourself.


The package also requires pre-install some python libraries because the program is based on python.

Finally, download the package, extract it and run the


When, it launch, should require to select the firmware for mode of sensor operation.

After that, push "start sensor" button and choose the record csv file location.

The program will start the meassurement and logging the data to the csv.

The left side show the current Algorithm result and the lower chart will continue update.

The out-of-board program is simple and well design. However, the chart will lag up to few minutes while update when large data is present, i.e after a day of continuous logging,

should select "last day" next to "show" to avoid long drawing.


QT Dashboard

After study of the out-of-board software, i decided built our own app. Firstly, you need to agree the term by Renesas

and register on the supplier sites, agree the term and submit for access permission. It may require few days for Renesas' staff authorising, to avoid delay if you a enthusiast that use some free email, better mention you are the owner the ZMOD HAT as normally Renesas' only support for corporate email users.

Based on the Renesas agreement, which can't distrubute the complied binary directly. Instead, you can install the Qt Creator, import the necessary files to the project and complied it by your own.


This is a simple dashboard created by QT, which is trend of built mighty GUI for embedded system as well as a widely used on Linux. It introduced the modern graphic technology to embedded system's user experience, for example this software use of use of QML script with built-in animation ,the meter colouring is directly draw by the graphic card's OpenGL fragment shader.


The left of our dashboard is the meter of IAQ, the lower indicators show the progress of measurement. It also come with two button, when user click of the Reset button, the sensors and the  software will fully reset (push sensors reset pin down). When click the Log button, trigger to log the data to ./data.csv and stop when push it again, the sample active LED also flashing when logging active.


The code and the detail compile instruction can be download from our GitHub.


Node.JS and React Dashboard

The Raspberry is a full desktop compatibility board so we can turn our project more "web-style" which is simplifying our creative as like as built a web-site, this enhance use of diversity web built-up tool and framework, the concept of backend and frontend also help us to separate the user interface and data gathering. Our project involve Node.JS, nginx, React by Facebook and Visx by Airbnb.


Node.js add-on and backend server

     A N-API  native add-on have been develop for bridge cpp drivers to Node javascript, the hardware access from cpp native code and the timing loop is handled by javascript. A html backend server also creative for frontend access. The node.js backend will run at background when raspberry boot up and managed by PM2.


Therefore, instantly sensor data can be read from http://[site]/sensor



Use for encapsulate frontend html server and the proxy server for the backend. The frontend and backend is seamlessly as some server on some IP and port to avoid browser security restriction, it also provide flexible of change either backend or frontend without interrupt the other side and easy shift frontend to Cloud infrastructure.


The React by Facebook have been choice for our frontend framework because of the popularity. In every three seconds, the frontend will request latest sensor and update the dashboard on the user browser. The frontend also recorded the prevoius records and showed the history chart on the right which is builded based on visx


Because of those framework naturally support of multi-user and most jobs is running at client browser, a Raspberry and a Sensor HAT can be serviced for many users accessed from different locations. The NGINX layout also supports many-sensors to many-users. Whenever is any clients or not, the Raspberry will continuously update the IAQ algorithm to get better results.


Traditionally, the web industrial is dynamically changing mean that the update of those framework is quite frequency and may make it not stable enough, especially most of the IoT installed on remote location and need uninterruptible. The back-end and front-end layout also increase the complexity. However, the backend tools Node.js currently is very stable and practically working on financial services make most IoT should working well at least on the backend layer. Although some critical applications such medical products may need more stable and not suitable use those as main user interface and control, it is good used for a remote and auxiliary monitoring when error is allow.


The code and the detail compile instruction is free from our GitHub.


The Indoor semiconductor VOC sensors


The semiconductor type VOC detector, according to ISO16000-29 Test methods for VOC detectors is "The principle of operation of the semiconducting type detector depends upon changes of electrical conductance that occur by chemisorption on the surface of the heater sensing element when exposed to gas other than air. Gas concentrations are inferred by measuring the change of resistance". The standard also mention other type detection which is much expensive and hard to operations.


My currently have experiment of using two similar Metal-oxide gas sensors (ZMOD4410 and BME680 ) for Indoor air quality detection. Different of handling some metal-oxide gas sensors specifically for mono-gas sensing such as Carbon monoxide sensor, the IAQ sensor is a multi-gas sensors mean the sensor is response various type of gas in the same time and use computer algorithm which is properties and custom for each sensors manufacturer, make it unique characteristics and need to specially handling for both hardware and software.


Basic Principle of Operations

There are three main elements on typical IAQ sensor, which is:


  1. Hotplate - The heater heating the metal oxide surface for certain temperature, typical between 180-400C. Because use of microscopic silicon membranes heat up a very small area, the power consumption down to around 10-20mw. A set of temperature sensors and controller precisely adjust the hot plate temperature.
  2. Metal-oxide - The hot oxygen absorbed on the metal-oxide surface have been change, and reflected on the electrical resistivity directly relative to ambient gas concentration. The electrical resistivity sensing by ADC to digital value.
  3. Algorithm - software that transfer the change of MOX resistance value to indoor air quality score.


The optimum of develop IAQ software

     Most of the sensors' vendors provide a complied libraries for transfer the sensor values to indoor air quality score and a source code for read and operate the sensor like  Renesas and Bosch does, to get the optimum result, the developer should work carefully:

  1. The function of I2C read/write and waiting callback is responsible by developer, although this is typical I2C read/write process but should verify it well before future actions, ensure your I2C interface stable and work well for sensor initial and pass checking process, otherwise may damage the sensor.
  2. The "Mode" of sensor actually is a sequence of heater and measurement actives, strictly following the timing of vendor recommend and ensure the priority is high enough to maintain the loop timming within around 10%. Because the MOX actually is analysis of "change" of resistance, the various of timing will affect the result precision, especially multi-gas sensors like IAQ may check different temp and value by a sequence, as different gas with their unique heater set and response/recover times, follow the manufacturing advice normally is a best practice. As our occur, best result obtained by implement ZMOD IAQ 2nd algorithm should delay 1990us and wait of sensor response or track the Interrupt and ensure the program can response instantly.
  3. The sensor and algorithm require stabilisation and may need up to few days for precision, therefore the sensors and driver should continue run without stop and recommending use a good power supply for best result.
  4. The multi-gas sensor like IAQ sensor is definitely harder calibration that mono-gas sensor, and most of the case the sensor pre-calibration at semi-conductor factories before assemble without further post-calibration, storage under good condition and contaminant should prevent when soldering. For amateur, should prevent any dirty nearby when operation.


Compare as ZMOD4410 and BME680




Above diagram is normallized IAQ value measured by ZMOD4410 and BME680 about 3 hours with 1 hours warm up. Two sensors installed on some room with three meters distance.

As the result, the ZMOD4410 produce more rapidly result that BME680. Although the curve by ZMOD and BME680 were inconsistency, the value of both sensor is quit similar between 1-3 (The value of BME680 was downscaled) which  our room in a high-rise urban buildings. Because the IAQ sensor designed for response mixed gas purpose of overall TVOC quality level, it is reasonable the those sensor have different reading as each manufacturer have their unique formula.


The below table is a brief compare between two sensors:

SensorsIAQ sensor (Raspberry PI HAT included HS3003 Temp/Humid sensor)4 in 1 (Gas,Temp,Humid,Baro)
ProtectorMetal CoverMetal Cover
Basic DriverSources provided (by agree Renesas SLA)Open source
Intelligent AlgorithmsClosed Binary (by agree Renesas SLA)Closed Binary (by agree Bosch SLA)
IAQ Score1-150-500
Accuracy IndicatorStabilisation, start up only0-3
Mode (*recommend)1st, *2nd, Sulfur, OdorsUltra-Low, Quick-UltraLow, *Low and Continues
Instructions and example of ProgrammingGoodGood
Software ComplicateSimple (only gas sensor and not much options aviliable)More Demand (multi-sensors, much more options such as filter, heater profile and calibration mode)
Unique FunctionsCleaning ModeTesting Mode, Save/Load algorithms state


As both of sensors' vendor provide great intuitive of IAQ score by intelligent algorithms, the Bosch provide open source driver and algorithms that more convenient for access (only need to register onsite as Renesas need manual authorising). The BME680 is a 4in1 sensor and ZMOD4410 only come with gas sensor, as the price of ZMOD4410 is about 2/3 of BME680. I also occurred the Renesas is much easy of use especially for hobbyist, however the BME680 provide more options for production and custom profile. One of the BME680 advantage is the develop can save the  algorithms and recover when power reset as Renesas will reset all after loss power, the Bosch also provide accuracy information when running and Renesas only provide stabilisation when startup.



The Metal Oxide Gas Sensor is versatile for detect single or multi gas in a single package. Innovation of world-class semi-conductors, it is possible to detect various of toxic and unpleasant gas in a very small footprint, low power and portable enhanced the possible of new ubiquitous deployment. The IAQ sensors design for detect wide range of gas, obtain the digital resistance value and feed those data to the Algorithms to calculate the TVOC and IAQ score. The ZMOD4410 Raspberry PI HAT is a convenient add-on for Raspberry PI. Make it incredible for education, hobbyist and even for real case monitoring projects. In this road test review, we use QT for create a embedded dashboard and built web remote access by NodeJS and React.


image Come with out-of-box software without programming

image Raspberry PI host make possible develop by various Linux desktop develop tools

image Gas sensor and Temp/Humid Sensor together with two GPIO LED


image The out-of-box software error when detect our board after run of custom code (Update: 16Jan After contact with Renesas, the hardware may defected and need future analysis )              

image The out-of-box/binary algorithms no options to save current status, make close or reboot will loss all AI experiments as the algorithms should run few days for better accuracy.

image Temperature and Humidity affected by heat from CPU

image The sensor possible halt when I2C connect permanently, should open and close I2C socket in every measurement, may relative to Raspberry firmware.


The source code:


(Update 16-Jan-2021)

As help with Renesas Customer Support and simple hardware diagnostic. Suggested by Renesas engineer, the sensor heater may defected as heater resistance out-of-scope, possible reason is  mechanical shocks, soldering etc, and need future analysis.