Freematics OBD-II UART Adapter V2.1 comes with CAN sniffing features. We are now publishing the AT commands for this purpose. The adapter’s Arduino library is yet to be updated for implementation of friendly APIs for doing CAN sniffing from Arduino sketch.

The CAN sniffing related commands are as following.


  • Function: set header bytes (on 11-bit CAN)
  • Example: ATSH 7DF


  • Function: set lower 24 bits of header (on 29-bit CAN),  higher 5 bits are set by ATCP command
  • Example: ATSH DB 33 F1


  • Function: set CAN priority/higher 5 bits of header (on 29-bit CAN)
  • Example: ATSH 18

ATCF <ABC> or <AA> <BB> <CC>

  • Function: set filter for CAN bus messages, <ABC> for CAN 11-bit, <AA> <BB> <CC> for CAN 29-bit
  • Example: ATCF 7E8

ATCM <AA> <BB> <CC> <DD>

  • Function: set 32-bit filtering mask for CAN header
  • Example: ATCM 0xFFFFFFFE (ignore the lowest bit on filtering)


  • Start CAN sniffing mode (send any character to stop)


Typical sniffing on 11-bit 500kbps CAN bus

  1. ATSP6
  2. ATCF 000007E8
  4. ATMA

Typical sniffing on 29-bit 500kbps CAN bus

  1. ATSP7
  2. ATCF 18DBF133
  3. ATCM FF000000
  4. ATMA