Hi, I think I solved the issue.
const uint32_t total_packet_length = 6 + 3*(_response[START_DATA_LENGTH] & 0x1F) + 5;
if ((_response[START_DATA_LENGTH] & 0x1F) != PAYLOAD_COUNT ||
_response[START_DATA_LENGTH] has length only on 5LSB bits, 3 MSB are packet type
So 0x2C means actually packet type = 1, length = 12 data points, but that require bitmask as pasted above.
BR,
Adam Borowski