11 of the 13 features in our table differ between the SCD40 and the MH-Z19C.
Sensirion
SCD40
CO₂ · temperature · humidity · I²C · 2.4 to 5.5 V
Sensirion’s small photoacoustic CO₂ sensor: ±(50 ppm + 5 %) from 400 to 2,000 ppm, 2.4 to 5.5 V, I²C.
Watch out: Specified only up to 2,000 ppm: for greenhouses or higher levels, choose the SCD41.
Winsen
MH-Z19C
CO₂ · UART/PWM · 4.9 to 5.1 V
A low-cost NDIR CO₂ sensor on UART or PWM: it reads from 400 to 5,000 ppm, with ±(50 ppm + 5 %) stated from 400 to 2,000 ppm.
Watch out: It needs 5 V (5.0 ± 0.1 V in Winsen’s table) and draws 125 mA peaks. Self-calibration is on by default and assumes the room reaches 400 ppm every day: turn it off in rooms that are never aired.
Differences
Feature
SCD40
MH-Z19C
Measures
CO₂ · temperature · humidity
CO₂
Technology
Photoacoustic NDIR
NDIR (infrared)
CO₂ range
400 to 2,000 ppm
400 to 5,000 ppm
CO₂ accuracy
±(50 ppm + 5 %)
±(50 ppm + 5 %), stated up to 2,000 ppm
Interface
I²C
UART, PWM
I²C address
0x62
Not I²C
Supply
2.4 to 5.5 V
4.9 to 5.1 V
Lowest average current
3.2 mA
40 mA
Warm-up
–
1 min
Rated lifetime
–
10 years or more
ESPHome
scd4x
mhz19
Same on both: status.
Choose the SCD40 if you need
temperature and humidity readings too
a standard I²C bus shared with other sensors
a 3.3 V supply without a 5 V rail
a lower average current (3.2 mA against 40 mA)
When to choose the MH-Z19C
In our table the MH-Z19C has nothing the SCD40 lacks: choose it for price, availability or a board you already have.
What is the difference between the SCD40 and the MH-Z19C?
The SCD40 offers temperature and humidity readings too, a standard I²C bus shared with other sensors, a 3.3 V supply without a 5 V rail, and a lower average current; in our table the MH-Z19C has no advantage of its own, apart from price or availability.
Which is better for air quality, the SCD40 or the MH-Z19C?
Both measure real CO₂: ±(50 ppm + 5 %) for the SCD40 (400 to 2,000 ppm), ±(50 ppm + 5 %) for the MH-Z19C (400 to 2,000 ppm).
Can I replace the SCD40 with the MH-Z19C?
Not as a drop-in: the SCD40 uses I²C and the MH-Z19C a UART or PWM, so the wiring and the code change. Check the supply too: 2.4 to 5.5 V for the SCD40, 4.9 to 5.1 V for the MH-Z19C.