Custom Shield - Indoor Air Quality Monitor


I got it from
Not sure why they’re not responding to you.


@peekay123 is there any issue if I just use a bi-directional voltage translator rather than two op amps in series? e.g. … seems to be simpler, but maybe less stable?


@Perrot, voltage translators are designed for digital signals and you have an analog signal you want to scale from a 0-5v range to a 0-3.3v range. The translator would simply give you a “low” output until its “high” threshold voltage is hit and then it will give you a “high” output. An analog circuit acts as a voltage multiplier with a multiplication factor of less than 1 so you get the entire range of voltages. This is why an analog circuit is required here. :smile:


Ok that was a stupid question :stuck_out_tongue: but thanks for helping out!


I checked the datasheet and it looks like we can indeed use MICS-4514 as a replacement with some minor changes to the PCB.

@Perrot It is true that there is no hardware measure to insure that the voltage on the Core pin does not exceed 5VDC. The pot can be tuned such that we limit the voltage but we can’t guarantee voltage levels in case of sensor failure. A unity gain buffer will be the right thing to put in place. I’ll ensure to put one in the next/final iteration!


Thanks Mohit,
I’m currently working on the Grove dust sensor.

I expect to orient the boards like this in the enclosure.
I mounted it vertically because the dust sensor must be this way up due to its internal heater.


An observation I have is that if we will now use the surface mount MICS sensors it may be possible to make a more generic shield with sockets only. I don’t mind - whatever you prefer.

Figaro SR6 socket for TGS2602 :

MICS_QUICK_START evaluation board shows the 10 pin SMD package :

Although one warning is the MICS sensors are difficult to obtain outside the US so customers will have trouble sourcing them.

EDIT: Actually looking at the various MICS sensors it would likely be very difficult to support all MICS chips. There doesn’t seem to be a standard. e.g. between 1-3 sensors on a chip, some pins are data on one chip other times load, different resistances required per sensor.


omg, that looks awesome! please keep us posted on your results!


Hi @zach and @mohit - these are my findings from working with the shield the last couple of months.

Recommendations :

  1. Replace no longer available MICS-5525 (CO) with MICS-4514 (CO and NO2)

  2. Programmatic switching of power to heaters for all sensors.
    Maintain power to temperature/humidity sensor.
    (we want to take temperature/humidity reading when all heaters are off)
    Default to heaters off when shield is first powered up.

This will :

  • Allow reading ambient temperature / humidity separately (when heaters have been off for some time). Even outside an enclosure the temperature can read 5 degrees C above ambient due to all the heaters nearby.
  • Improve lifespan of some sensors
  • Reduce power requirements if someone wants to use battery power and take the shield to a field for clean air calibration.
  • Some sensors recommend a “cool down” period between readings and a pre-heat time of 3 minutes.
  1. Replace the switches with right-angled long actuator switches.
    This would enable the buttons to stick out the top of the enclosure making it easier to press.
    (To stick out the front would need a 40mm long actuator which I cant find).
    See a couple of posts previous for photo of board orientation.

Nice to have :

a) Upgrade to SHT15 temperature / humidity sensor. The DHT22 has given me the most trouble of the sensors - causing strange behavior and making the wi-fi connection drop out (as has @peekay123 and others). Also according to @mtnscott the DHT22 timings vary by manufacturer. Apparently the SHT15 has a longer lifespan - so less returns are likely.

b) Additional Grove Port (Only 1 pin needed = SCL). My planned configuration calls for these two grove port sensors : Dust sensor + HCHO (Formaldehyde) sensor. An additional port would be useful if the user wants to increase the sensor reading frequency and needs to use an external temperature sensor for ambient readings.
Replace an MQ socket with WSP2110 formaldehyde sensor (as per grove HCHO sensor).

c) Change RGB LED to one which supports a right-angle light pipe to poke out the top of the enclosure.

This would make it easier to find a suitable off-the-shelf enclosure since it would not be necessary to find a transparent enclosure - which there is less choice of.

d) Review the grove sockets. Somehow the grove supplied connector seemed to only fit in the wrong way round - I had to trim the edges off the connector to make it fit in the right way.

Notes :

If we run short on data lines then I think the first thing to lose would be one/all of the MQ sockets. Many of the MQ sensors are not sensitive enough to notice anything in a home environment. There are a few with reasonable sensitivity - of which a couple can be purchased as grove sensors.


@zach and @mohit - this is the progress I have made so far on the software for the shield :


@Rockvole, just a note, @mtnscott has published an updated version of the non-blocking DHT library which seems much more stable, at least under “simple” test conditions. What I mean by simple is testing without any other libraries like the ones you are using. I have been running the code through 15,200 readings now without wifi dropping. I intend to continue testing with the inclusion of Spark.publish and Spark.function to test wifi stability beyond just having a cloud connection. :smile:


I notice in your long-running test you dont use a pullup resistor.

I think my shield has a pull-up resistor on the DHT22 - do you think that needs to be removed to make it more reliable ?


@rockvole, I recommend using a 1K pullup resistor on the data line for the DHT22.


@Rockvole, I agree with @mtnscott that a pull-up is needed. I just wanted to point out the fact that I was running without one to qualify all test conditions. :smile:


Thanks @peekay123 and @mtnscott,
If you guys think it is reliable now then I’m happy to stick with the DHT22. Its cheap so it will help keep costs down.


It looks like there is another dust sensor coming soon. Specifically for PM2.5 - which is the standard used by governments.

It makes the grove dust sensor look compact :


It looks like the new DHT library is reliable so I dont believe upgrading to the SHT15 will be needed.


Hi @kennethlimcp / @mohit,
I have been doing my long term testing with the shield which is going fine - I can get readings for days without a problem.

Now I want to test in different rooms and unplug the USB which I have not been doing due to the last time I tried this it resulted in :

I cannot get the shield to work when I disconnect USB power from the core. It could be a power issue.
The PSU I am using is 12VDC 2.0A (+ve in center)

USB plugged in
Everything works fine
Breathing cyan on spark
Shield blue LED solid

Unplug the USB
Core stops what it was doing (in a stage where shield LED is flashing)
Spark LED goes yellow and flickers very fast
Shield blue LED flickers very fast
Something whistles in vicinity of grove ports (spark/PR326/6X)


@Rockvole, it sounds like a Spark power issue. Are you supplying the core with 5V or 3.3V via your regulator? Is the regulator supplying at least 150ma to the Core besides the sensors? Could your regulator be oscillating?


Hi @peekay123,
Sorry, I don’t know much about hardware. This is the schematic for the shield :