by inaki » Fri Aug 11, 2006 4:45 pm
by inaki
Fri Aug 11, 2006 4:45 pm
Here there are some codes sent by AXS1 sensor through IR leds.
There are 3 parts, each about 8 bits long. The first and second parts are bytes 0 and 1 in reverse order, sepparated by a 1 bit.
The picture shows the pattern for some data in the following order: 0,1,2,4,8,0x88,0x80,0x100,0x200.
As you see there are 16 bits of data, the low byte is in first place with bits in reverse order (LSB). Then a ONE bit, then the high byte.
After the two data bytes there are one additional byte that contains some sort of checksum or control byte. Are you able to decipher this byte ?
Deciphering the third byte it would be easy to send an IR code with any device to our Bioloid AXS1 sensor.
Note that although the first bytes seem straightformward to decipher the byte 0x88 is identical to the byte 8 except for the control byte.
Looking only at the first bytes (0 to 8, ) the encoding would be:
First bits always to zero
Bits 1 to 8 correspond to bits 0 to 7 of low byte (in revers order).
Then comes a bit that is always to 1.
Then comes the high byte, bits 0 to 7 (in reverse order).
Then a pattern of two bits that is always the binary value: 10
Then a pattern of 8 bits that is some sort of encoding or checksum and that might be (L XOR H)XOR 0xF8, except that it does not match the 0x88 code for example.
So the first two questions to solve are:
- Why 0x88 is equal to 8, except in the third byte ?
- What is the format of the third byte ?
Please note that high pulses are zero while blank or low pulses are 1.
Each data stream sent has a prefix code that is not shown in the picture because it is always the same.
Here there are some codes sent by AXS1 sensor through IR leds.
There are 3 parts, each about 8 bits long. The first and second parts are bytes 0 and 1 in reverse order, sepparated by a 1 bit.
The picture shows the pattern for some data in the following order: 0,1,2,4,8,0x88,0x80,0x100,0x200.
As you see there are 16 bits of data, the low byte is in first place with bits in reverse order (LSB). Then a ONE bit, then the high byte.
After the two data bytes there are one additional byte that contains some sort of checksum or control byte. Are you able to decipher this byte ?
Deciphering the third byte it would be easy to send an IR code with any device to our Bioloid AXS1 sensor.
Note that although the first bytes seem straightformward to decipher the byte 0x88 is identical to the byte 8 except for the control byte.
Looking only at the first bytes (0 to 8, ) the encoding would be:
First bits always to zero
Bits 1 to 8 correspond to bits 0 to 7 of low byte (in revers order).
Then comes a bit that is always to 1.
Then comes the high byte, bits 0 to 7 (in reverse order).
Then a pattern of two bits that is always the binary value: 10
Then a pattern of 8 bits that is some sort of encoding or checksum and that might be (L XOR H)XOR 0xF8, except that it does not match the 0x88 code for example.
So the first two questions to solve are:
- Why 0x88 is equal to 8, except in the third byte ?
- What is the format of the third byte ?
Please note that high pulses are zero while blank or low pulses are 1.
Each data stream sent has a prefix code that is not shown in the picture because it is always the same.