Troubleshooting Zigbee API Frames: Extracting Analog Sample Bytes

Brian Holt2 min read
Data AcquisitionOther ManufacturerTutorial / How-to
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

A terminal program displays the complete Zigbee I/O Data Sample Rx Indicator frame because it treats the received data as a byte stream. The required analog sample occupies two bytes within that frame, so extracting and timestamping it requires an application that understands the API frame structure rather than a basic terminal.

Why the terminal displays the complete frame

Terminal software can capture all bytes received from the Zigbee device, but the evidence does not identify a terminal capable of isolating the analog sample. It also does not provide the sample offset, byte order, channel selection, or frame-length rules, so those details must come from the applicable device documentation or observed frame definition.

Use a frame-aware parsing application

Create an application that reads each complete API frame, validates that it is the expected I/O Data Sample Rx Indicator type, parses its fields, and outputs only the selected two-byte analog value. Do not extract two bytes from a fixed stream position until the frame boundaries and field layout are confirmed.

read complete API frame
confirm expected receive-frame type
parse frame fields using the documented layout
select required analog sample
output timestamp and two sample bytes

Timestamp and output decisions

Decision Required handling
Timestamp point Choose whether the timestamp represents frame receipt or parsed-record output, then apply that definition consistently.
Analog channel Select the required channel from the parsed frame; the evidence does not identify it.
Byte interpretation Confirm byte order and scaling before converting the two bytes into an engineering value.
Output format Write only the timestamp and selected two-byte sample, or its validated converted value.

Parsing and verification procedure

  1. Capture a complete frame with the existing terminal software and retain it as a reference.
  2. Implement a reader that detects complete API frames rather than consuming arbitrary byte pairs.
  3. Parse the expected I/O Data Sample Rx Indicator fields and select the required analog sample.
  4. Record a timestamp at the defined processing point and write the two sample bytes.
  5. Compare the extracted bytes with their position in the retained complete frame to verify the parser.

FAQ

Can a terminal display only the two Zigbee analog sample bytes?

The supplied evidence does not identify a terminal that performs this extraction. Use a custom application that parses the complete API frame and outputs only the required two bytes.

Can I read the analog sample from a fixed byte position?

Only after confirming the documented frame boundaries and field layout. The evidence does not specify the offset, byte order, or channel arrangement.

Where should I add the timestamp to a Zigbee sample?

Add it in the parsing application and define whether it marks complete-frame receipt or parsed-record output. Use the same timestamp point for every sample.

Back to blog