Mics 6814

Hi, I bought this sensor (MICS6814 3-in-1 Gas Sensor Breakout (CO, NO2, NH3) - Pimoroni) and I am trying to use the available Arduino library (GitHub - eNBeWe/MiCS6814-I2C-Library: Arduino library for my I2Ccontroller board for a MiCS-6814 based gas sensor as well as the Grove Multichannel Gas Sensor.). I tryed to run the calibrate code and then the code for reading values but I am getting -1 for all the values. I only connected it to my board thorugh Vcc, Grnd, SCL and SDA.
How can I try to solve this problem?

1 Like

I have same issue, unfortunatelly this library does not work.

i have same problem. any solution?

Our MICS6814 breakout uses a Nuvoton IO expander chip as an analog to digital converter - communicating with it uses our own protocol so Arduino drivers written for breakouts made by other manufacturers may not work.

However, there’s an Arduino port of the IO Expander library here which should do the job:

And an MICS6814 example here:

Thankyou so much. do you know if i need calibrate this or only 10 or 20 minutes prehead are necesary? I thing a problem in Values ppm
ppm values recibe are:

Reading Gas
Red: 42547.48
NH3: 29217.39
Ox: 2129.28

They’re not ppm values, they’re resistance readings from the sensor (in Ohms) that relate to groups of gases. There’s some basic info about this how this sensor works and what the readings can tell you here: Getting Started with Enviro+

Alternatively, the datasheet and FAQ have some more technical info:

Hi, I don’t understand electronics or chemistry, isn’t there any library that obtains ppm?

There is something else I don’t understand about the specifications. They say that in NH3 it has a range of 1 to 500ppm but in the Performance NH3 sensor table it says Typical NH3
detection range FS 1 300 ppm.

What is the correct maximum?

thankyou so much

Unfortunately accurate ppms are the realm of much, much more expensive sensors. In general these are used for qualitative measurements where you see things go up or down compared to previously, but trying to squeeze accurate ppms out of them doesn’t seem like it is feasible.

There is something else I don’t understand about the specifications.

That is a little odd, but I wonder if it is to do with accuracy. A lot of sensors are accurate to within X% up to Y concentration, but become less accurate (but still respond) after that. I wonder if the “typical” range of 0-300 is the most accurate, but it does respond up to 500, just less effectively. Unfortunately the datasheet doesn’t seem too helpful about that.

We need the sensor to see if there are ammonia leaks in a tank, I understand that it is not 100% accurate, but if there is a leak of 50 ppm or more it will be able to detect it even if it is not exact. I don’t know how I have to convert the value to ppm, isn’t there another library that does it? There are libraries for other sensors in this range and all of them can return ppms (Grove Multichannel Gas Sensor is the same mics6814 i l2c sensor)

This thread might be worth a look - it contains some discussion of calculations for turning ohms into ppm? They’re in Python rather than C though - it may be easier to see what calculations are being used in the Arduino library you mentioned and implement those?

Hello, we have done a test with a real ammonia leak and the oms value has not changed.
I think the sensor is bad.
because in open air it gives me values between NH3: 92050.71 - 110000 and with an NH3 leak caused by the technician that has remained at the same values.

Can you tell me if the sensor is malfunctioning? I made the purchase at RobotShop and I would have to talk to them if that is the case.

Hello, can you tell me if the sensor is malfunctioning so I can notify the after-sales service?


I’ve not got any personal experience with this sensor I’m afraid but if you suspect the unit is faulty please email support@pimoroni.com and they should be able to help.