23 Mar 2018

Extech CO250 Protocol Details

Extech CO250 Protocol Title

Note: This post is currently just some loose notes during my R&D, and is a continuation of the Extech CO250 project.

Open-source Java library

I have a working Java library that reads all values over serial and provides statistics (minimum, maximum, average, etc). It’s open-source and available here on GitHub.

Connection configuration

9600 baud, 8 databits, No parity, 1 stopbit.

Example data

Here are five packets of data from the device:


Packet breakdown

Let’s look at this packet:


It can be broken down as follows:

$                      0x24 - start character
CO2:Air:RH:DP:WBT      description
f9                     line checksum
                       0x0D 0x0A - line break
C 1115 ppm :           CO2 value
T 26.3 C   :           air temperature value
H 52.9 %   :           relative humidity value
d 15.9 C   :           dew point temperature value
w 19.4 C               wet bulb temperature value
2b                     line checksum
                       0x0D 0x0A - line break


The checksum is an 8-bit, 2s complement, sum of all bytes in the line (i.e. between line breaks).


  • Variable packet length (no zero padding on numbers).
  • No comms during the initial 30 second warm up after power on.
  • Values over serial are always live, even if the device is displaying Min, Max, STEL, or TWA.

About the Author:

Hardware and software engineer with experience in product development and building automation. Director at Cabot Technologies and Product Manager at NEX Data Management Systems.


  1. […] So we have a good idea of the RS-232 signals and cable. Next is to look at the data in more detail. My next post will be a look at the Extech CO250 serial protocol details. […]

  2. […] do the same with this Extech CO250, so in future posts I’ll detail the RS-232 connection and serial protocol, and develop some software. Stay […]

Leave a Reply


This site uses Akismet to reduce spam. Learn how your comment data is processed.