How can I use cm1106 co2-Sensor?

I bought a cm1106 co2 sensor (user manual attached)
and tried to read out the pwm signal

byte PWM_PIN = 3;
int pwm_value;
void setup() {
  pinMode(PWM_PIN, INPUT);
void loop() {
  pwm_value = pulseIn(PWM_PIN, HIGH);

it returns always zero. What is wrong?
thanks for your help!

CM1106 (1).pdf (428 KB)

If the sensor behaves as datasheet shows: connector 4, pins 1,2,4 are used
Make "pwm_value" unsigned long (it is microseconds..)
Add a timout parameter of eg. 2 secs.

thanks for helping!
Yes, that's how I connected it. The changes didn't help, it still returns zero:(

Is it easy to get the values via Serial (UART)?

If the sensor is working according to datasheet, PWM should work.

To test this (without a scope) connect the output to mic in on a PC - listen for ‘clicks’ every second
Make sure the sensor gets enough power. Arduinos 5V-supply should be OK

On an oszilloscope there seems to be an 0.3 V pwm signal of the right length.
So do I need to amplify this?

Maybe.. I'd try with a pullup_resistor.. range 3k3 .. 10k. in case of an open collector output.

.. yes, thank you very much, now I get a signal, and it reacts to co2.
But it is only stable, if the oszilloscope is connected too. Does this make sense?

Verify good connections. Stronger pullup? (1k…2k ?)

as you got the scope - can you read (see) the serial output?
I saw the datasheets from the Chinees site. They tell no details.

thanks, probably some connection was wrong - now I get a good pwm signal,
although the calibration seems not to fit with the datasheet.

I attached the UART Comunication protocol. (I havo no oscilloscope at my place, so I could not look for this signal on it)
I have never used this UART Comunication - are there example programs which can be easily adopted to this protocol?

UART-Protocol_cm1106 .pdf (230 KB)