Hi,
I am currently researching the transmission of messages of an ANT+ Heart Rate Monitor.
Therefore i used an oscilloscope and saved the signals generated by the Heart Rate Sensors.
I did the demodulation of the signals in Matlab, as result i get binary arrays of the transmitted message.
Since the format of the payload is described by the HRM Device Profile PDF, i know the position of the bytes in the string. I converted the binary string into a Hexadecimal String.
Here are some of the measured messages:
AAA6C5 A51A 780108 8400EC75317B5130 3386
AAA6C5 A51A 780108 0400991EFB24A025 F62D
AAA6C5 A51A 780108 8400F71FB223023C 9E39
AAA6C5 A51A 780108 0400943DB240BD49 5C4D
AAA6C5 A51A 780108 8400F0176B1ACF4B 3A6D
AAA6C5 A51A 780108 03040405F043E623 5FF9
AAA6C5 8909 780108 841E1EE2B6E4414A 7834
AAA6C5 8909 780108 841E2CDF21E1407A 884C
AAA6C5 8909 780108 04240A64F165487E 2392
AAA6C5 8909 780108 8424E8D2BAD40D83 4817
AAA6C5 8909 780108 84251C731C75CD78 E83D
AAA6C5 8909 780108 04251D8A388C5B71 642E
(Note: I used 2 different Heart Rate Sensors. The first 6 Strings are from the first Sensor and the second 6 Strings from the other )
As you can see i divided the string in 5 sections:
The second last section is the payload => This is the part that behaves as expected. The Toggle Bit, the Page Number and the BPM all behave as described by the Device Profile PDF. I also measured the BPM directly with an ant+ device and got the same result as the value of the last payload-byte. I think that the demodulation is working.
The other parts should be the ANT message carrying the ANT+ Payload right?
Looking at the ANT Message ProtocoI and Usage PDF, I would expect something like this:
Sync(A4) - MessageLength(08?) - MessageID - Channel Number - Payload - Checksum.
Somehow the measured messages don't even contain a Sync byte.
The HRM Device Profile PDF describes the channel Configuration and some values of the Channel configuration appear at the second and third section of the Hex String.
For example Device Type(78), Transmission Type(01) and Device Number(2 bytes, different for each sensor => section 2 of the Hex string). The 08 might stand for the length of the payload.
Is there any specification of the type of message i recorded?
Are the last two bytes the Checksum?
Is it a CRC16?
I would like to try to send my own messages. Should they look like described by the ANT Message ProtocoI and Usage PDF or should they look like the messages i recorded?
Thanks for helping