Thursday, September 14, 2017

Digging deeper (Recoil: Part 4)

So in the previous IR digging, I decided upon a decoding scheme(Short bits are less than 0.575ms, and are "0"s, long bits are longer than 0.575ms and are "1"s). So let's go through all these captures and see what we find.

Pistol, single shot

<START>
<SYNC><SYNC DELAY>00000010000111000000000000001100001<6.865ms delay>
<SYNC><SYNC DELAY>00000010000111000000000000001100001<10.87ms delay>
<SYNC><SYNC DELAY>110010000111000000000000001000011<13.84ms delay>
<SYNC><SYNC DELAY>110010000111000000000000001000011
<END>

Huh, so there's actually multiple packet lengths. Hadn't noticed that before. I'll have to keep an eye on that.

Pistol, trigger held

<START>
<SYNC><SYNC DELAY>00111000011100000000000000100000000<12.86ms delay>
<SYNC><SYNC DELAY>00111000011100000000000000100000000<60.9ms delay>
<END?>
<START>
<SYNC><SYNC DELAY>100110000111000000000000001100100<22.87ms delay>
<SYNC><SYNC DELAY>100110000111000000000000001100100<26.9ms delay>
<SYNC><SYNC DELAY>00001000000111000000000000001110000<21.87ms delay>
<SYNC><SYNC DELAY>00001000000111000000000000001110000<47.89ms delay>
<END?>
<START>
<SYNC><SYNC DELAY>111000000111000000000000001001100<24.89ms delay>
<SYNC><SYNC DELAY>111000000111000000000000001001100<11.89ms delay>
<SYNC><SYNC DELAY>00100000000111000000000000001001001<19.87ms delay>
<SYNC><SYNC DELAY>00100000000111000000000000001001001<46.95ms delay>
<END?>
<START>
<SYNC><SYNC DELAY>100000000001110000000000000011111<13.09ms delay>
<SYNC><SYNC DELAY>100000000001110000000000000011111<55.98ms delay>
<END?>
<START>
<SYNC><SYNC DELAY>00000010000111000000000000001100001<12.89ms delay>
<SYNC><SYNC DELAY>00000010000111000000000000001100001<23.9ms delay>
<SYNC><SYNC DELAY>110010000111000000000000001000011<15.87ms delay>
<SYNC><SYNC DELAY>110010000111000000000000001000011<62.93ms delay>
<END?>

(Note for myself, this only gets up to 2500ms into the capture, so I can come back and get more if I need to later)

Grenade, button held

This is pairing mode. Probably going to be the same set of packets over and over again, since the grenade has no receivers.

<START>
<SYNC><SYNC DELAY>101000010000001000010011110000100<28.46ms delay>
<SYNC><SYNC DELAY>101000010000001000010011110000100<28.44ms delay>
<SYNC><SYNC DELAY>101000010000001000010011110000100<46.01ms delay>
<Stray 54us pulse><32.74ms delay>
<SYNC><SYNC DELAY>101000010000001000010011110000100<28.46ms delay>
<SYNC><SYNC DELAY>101000010000001000010011110000100<28.43ms delay>
<SYNC><SYNC DELAY>101000010000001000010011110000100<28.45ms delay>
<SYNC><SYNC DELAY>101000010000001000010011110000100<28.43ms delay>
<SYNC><SYNC DELAY>101000010000001000010011110000100<28.46ms delay>
<SYNC><SYNC DELAY>101000010000001000010011110000100<28.45ms delay>
<SYNC><SYNC DELAY>101000010000001000010011110000100<30.04ms delay>
<Stray 0.1827ms pulse><0.3892ms delay><Stray 77us pulse><18.23ms delay><Stray 0.1823 pulse><29.68ms delay>
<END>

The grenade repeats the same packet forever in pairing mode, it looks like. It looks like it sends the packet 16 times, with a ~28ms delay between packets, and then stops transmitting for half a second, then begins the cycle again. The transmitting time total is ~776ms, and then it waits for ~480ms.

I also wonder about the noise I seem to be seeing. It looks like it's always in the fourth and twelfth packets in a burst. This could be either the AGC in the three-pin receiver I'm listening with, or it could be a glitch in the grenade itself, but it's /very/ regular.

I should capture another one of these and see if it still happens, and if the packet it sends changes between pairing instances.

Grenade, firing after countdown

<START>
<SYNC><SYNC DELAY>1100000000000010000100111100111<28.46ms delay>
<SYNC><SYNC DELAY>1100000000000010000100111100111<28.43ms delay>
<SYNC><SYNC DELAY>1100000000000010000100111100111<78.79ms delay>
<END?>
<START>
<SYNC><SYNC DELAY>1100000000000010000100111100111<28.46ms delay>
<SYNC><SYNC DELAY>1100000000000010000100111100111<28.43ms delay>
<SYNC><SYNC DELAY>1100000000000010000100111100111<28.46ms delay>
<SYNC><SYNC DELAY>1100000000000010000100111100111<28.43ms delay>
<SYNC><SYNC DELAY>1100000000000010000100111100111<28.46ms delay>
<SYNC><SYNC DELAY>1100000000000010000100111100111<28.43ms delay>
<SYNC><SYNC DELAY>1100000000000010000100111100111<28.46ms delay>
<SYNC><SYNC DELAY>1100000000000010000100111100111<78.8ms delay>
<END?>
<START>
<SYNC><SYNC DELAY>1100000000000010000100111100111<28.46ms delay>
<SYNC><SYNC DELAY>1100000000000010000100111100111<28.43ms delay>
<SYNC><SYNC DELAY>1100000000000010000100111100111<28.46ms delay>
<SYNC><SYNC DELAY>1100000000000010000100111100111<28.43ms delay>
<SYNC><SYNC DELAY>1100000000000010000100111100111<28.46ms delay>
<SYNC><SYNC DELAY>1100000000000010000100111100111<28.43ms delay>
<SYNC><SYNC DELAY>1100000000000010000100111100111<28.46ms delay>
<SYNC><SYNC DELAY>1100000000000010000100111100111<78.8ms delay>
<END?>

It seems to repeat this 7-signature burst and delay cycle for ~22s, then it switches to a constant stream of signatures for another 10s. The constant stream is the same signature, just with only ~28.5ms delays, no ~79ms delays.

Grenade, turned off early

<START>
<SYNC><SYNC DELAY>1110010000001000010011110000001<29ms delay>
<NOISY PACKET><30.54ms delay>
<SYNC><SYNC DELAY>1110010000001000010011110000001<28.5ms delay>
<END>

It basically just repeats the packet with a 28.5ms delay between them for 2.5s. Possibly an "unpair" command?

The grenade also sends the longest long bits I've seen, at 1.088ms. Possibly need to revise the maximum allowed length up to 1.1ms...

Contrast and compare...

Blaster shots seem to consist of two signatures, adding up to a total of 68 bits of data... Possibly only the 35-bit signatures are shots, and the 33-bit signatures are a general "data" packet? I don't see any 35-bit signatures that start with anything other than two 0 bits, and I don't see any 33-bit signatures that don't start with a 1... So let's take another pass at this data and see what patterns come out from these observations.

Well, just putting the bit patterns into notepad and removing all the duplicates, I realize that both the grenade being turned off early and the grenade "firing" both send 31-bit packets, so there's a third packet length to consider.

I'm gonna go capture another set from the grenade and see what if anything changes, and what stays the same.

More captures from the grenade

I took another set of captures in this order: Pair, fire, turn off early. Let's see what the data is.

Pairing: <START><SYNC><SYNC DELAY>101000010000001000010011110000100<delay><END>
Firing:  <START><SYNC><SYNC DELAY>110000000000100000010011110010000<delay><END>
Off:      <START><SYNC><SYNC DELAY>1110010000001000010011110000001<delay><END>

So the pairing and off-early packets are the same, but the shot packet is different... Alright... I really wish I had a second grenade here, to see if the pairing/off-early packets are the same between grenades, or unique...

.........WAAAAAIT A SECOND... That grenade shot packet is a different length from the previous one! The heck..? Now I need to capture a couple more of these...

But for now, I'm going to go get lunch, and let the confusion simmer for a bit. Maybe I'll have some insight into what might be going on.

1 comment:

  1. Did you ever get a solid IR Capture from the grenade? I have been working with it myself and find that it exceeds 32 bit. I am trying to get a RAW download using AnalysIR. Also, did you ever figure out the protocol format that Skyrocket is using? I would like to know more about your findings.

    bumsteadsean@gmail.com

    ReplyDelete