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:
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.
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:
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.
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 start.sh.
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.
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, https://www.qt.io/product/develop-embedded-devices 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.
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.
A N-API https://nodejs.org/api/n-api.html 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. https://www.npmjs.com/package/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 https://reactjs.org/ 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 https://airbnb.io/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 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.
There are three main elements on typical IAQ sensor, which is:
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:
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:
ZMOD4410 | BME680 | |
---|---|---|
Provider | Renesas | Bosch |
Sensors | IAQ sensor (Raspberry PI HAT included HS3003 Temp/Humid sensor) | 4 in 1 (Gas,Temp,Humid,Baro) |
Size | 3x3x0.77mm | 3x3x0.93mm |
Protector | Metal Cover | Metal Cover |
Interface | I2C | I2C |
Basic Driver | Sources provided (by agree Renesas SLA) | Open source |
Intelligent Algorithms | Closed Binary (by agree Renesas SLA) | Closed Binary (by agree Bosch SLA) |
IAQ Score | 1-15 | 0-500 |
Accuracy Indicator | Stabilisation, start up only | 0-3 |
Mode (*recommend) | 1st, *2nd, Sulfur, Odors | Ultra-Low, Quick-UltraLow, *Low and Continues |
Instructions and example of Programming | Good | Good |
Software Complicate | Simple (only gas sensor and not much options aviliable) | More Demand (multi-sensors, much more options such as filter, heater profile and calibration mode) |
Unique Functions | Cleaning Mode | Testing 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.
Come with out-of-box software without programming
Raspberry PI host make possible develop by various Linux desktop develop tools
Gas sensor and Temp/Humid Sensor together with two GPIO LED
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 )
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.
Temperature and Humidity affected by heat from CPU
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: https://github.com/sicreative/zmod_airquality
(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.
Top Comments
Nice road test report.
DAB