-
Hi, Is it possible to capture RAW data send from a RF device ? All help will be appreciated. |
Beta Was this translation helpful? Give feedback.
Replies: 11 comments 38 replies
-
What exactly do you mean by "raw data"? If it's raw IQ as for example SDR does, then no, you can't do that with a dedicated FSK transceiver chip like RF69 or SX127x. If it's enough to get the data as a sequence of bits, then that's perfectly doable, assuming you have some information about the signal - like the frequency deviation and the bit rate at the very minimum. What's the ultimate goal here, to decode communication from an RF keyboard using some FSK transceiver? If that's the case, I suggest using the SDR first to get as much information about the signal as possible. SDR programs like UniversalRadioHacker or gnuradio should be able to decode it, from that you can deduce the packet structure. |
Beta Was this translation helpful? Give feedback.
-
Sure. But these are big files. How can I get them to you ? Wetransfer ?
Which email address ?
Op ma 1 feb. 2021 om 17:24 schreef Jan Gromeš <[email protected]>:
… Preamble should look like 10101010... - could you send me the recorded
files, I can take a look.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#233 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AB6R6ZQ6TRELGRDGQ6HNADDS43IVPANCNFSM4WWYEWIA>
.
|
Beta Was this translation helpful? Give feedback.
-
The "Test0" string is clearly visible when looking for it binary format.
So there is no encoding.
But when I remove this from the binary sequence I would expect only the
preamble and the syncword would remain.
But then I get a syncword with 33 bits, which feels incorrect.
Op wo 3 feb. 2021 21:01 schreef Jan Gromeš <[email protected]>:
… Sending a known string is a very good idea indeed - since then we can
search the captured data for it. However, from what you're describing, it
looks like the captured data doesn't contain that (in hex Test0 shoud be
5465737430). In that case, some encoding is happening, maybe Manchester.
URH can decode that too, check out the Analysis tab.
I think you will have to reverse-engineer the whole packet in URH before
you try to capture it with SX1278.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on Gothic
<#233 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AB6R6ZUV6EQHP3TASAT6XBTS5GTSHANCNFSM4WWYEWIA>
.
|
Beta Was this translation helpful? Give feedback.
-
I remover all trailing data when I remover the data from my test string.
The data I said is actually everything that was in front of my test string.
But it looks strange to have a syncword like that.
Am I correct to remove the very first '1' from the sequence? Every
transmission I capture starts with '11' but the preamble should start with
'10'.
Op wo 3 feb. 2021 22:49 schreef Jan Gromeš <[email protected]>:
… I think there might also be some post-amble bits - I noticed long
sequencies of 0xaaaaa at the end of the packets you sent me. If that's the
case, then the final 1010 bits are not a part of the sync word and it
would only leave 14F52461
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#233 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AB6R6ZQBYOKHCCGW7GMCCSLS5HAGXANCNFSM4WWYEWIA>
.
|
Beta Was this translation helpful? Give feedback.
-
I've tried with 30 instead of 240, but that gives me the same result.
I think there is something wrong in the code.
Op do 4 feb. 2021 om 23:01 schreef Jan Gromeš <[email protected]>:
… The value for preamble length in SX127x::beginFSK() is actually in bytes,
not bits - that's an oversight on my part, so try setting it to 30 instead
of 240. Although it shoud be 240 bytes long in this case, I'm not sure why
it isn't. I haven't tried FSK preambles this long before.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#233 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AB6R6ZTRD7NUENXIHZKN2V3S5MKLNANCNFSM4WWYEWIA>
.
|
Beta Was this translation helpful? Give feedback.
-
I've downloaded the new code and tried again, but I'm still not able to
receive the data.
My test setup with one SX1276 sending test data with a 240 bits preamble,
and another SX1276 receiving it does work.
It looks like I'm not able to find the correct syncword. Any suggestions?
Would implicit mode be an option to get the raw binary data ? And disabling CRC check ?
If I can get the complete binary packet, that would be fine, I can go from there with my own code.
Op vr 5 feb. 2021 om 23:30 schreef Jan Gromeš <[email protected]>:
… I've tried with 30 instead of 240, but that gives me the same result.
I think there is something wrong in the code.
It's possible - SX127x datasheet isn't very clear on FSK preamble length
configuration (bits vs bytes). I'll run my own tests and let you know.
The sx1276 data-sheet shows registers to enable/disable preamble and
syncword detection.
The issue there is that disabling the preamble (or using a very short one)
would make reception rather unreliable.
One more idea - are you using fixed or variable packet length mode? The
default is variable length mode, which expects the first byte after sync
word to be the length byte, which is most likely not your case. Try to
enable fixed length mode with fixedPacketLengthMode(length).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#233 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AB6R6ZQAJKMKXKBXLWASAKLS5RWQZANCNFSM4WWYEWIA>
.
|
Beta Was this translation helpful? Give feedback.
-
Yes, I've tried with a fixed packet length, but that didn' change anything.
Still nothing.
I now also got a second remote keyboard. So I had them send the same
command, and look for the difference. It was my idea that only the syncword
would be the difference.
Below is the result from URH in binary format.
There is only a little difference, and looks like it's right before and
right after the data.
How and where do I check the values for the IRQ register ?
Keyboard 1
101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010
10100111101010010010001100000100000000010010000 01
0011111101010010010001000010010100100101010110000001001000000011001100 11
01010101010101010101010101010101010101010101010100
Keyboard 2
101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010
10100111101010010010001100000100000000010010000 10
0011111101010010010001000010010100100101010110000001001000000011001100 00
01010101010101010101010101010101010101010101010100
Op vr 12 feb. 2021 om 20:08 schreef Jan Gromeš <[email protected]>:
… Implicit mode only affects LoRa mode, not FSK. You should probably disable
CRC (since we have no idea if the packets have it), but having it enabled
won't prevent you form receiving the packets, it would just drop them after
the CRC check fails.
Another way to debug this further would be to start checking values of the
SX1276's IRQ register. That would at least tell us if it's able to receive
the preamble.
Did you try the fixed packet length mode? And if so, what was the result?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#233 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AB6R6ZXXQHNGWJINCXELBALS6V4EVANCNFSM4WWYEWIA>
.
|
Beta Was this translation helpful? Give feedback.
-
How can I debug this further ? When I set the 'attachInterrupt' mode to 'CHANGE' the function is sometimes called, but without real data.
|
Beta Was this translation helpful? Give feedback.
-
For now I've given up with the SX1276. I've tried with the RF69 and gotten somewhat further. The data I get looks like this:
But when I do not set promiscuous mode, and I set preamble length to 24 bytes and disable syncword filtering, I receive nothing.
How can I get the data without have to set promiscuous mode ? |
Beta Was this translation helpful? Give feedback.
-
It seems to work now. With a fixed packetlength of 9, and as long as I
disable CRC.
When I do not disable CRC, I get nothing.
Op di 16 feb. 2021 om 23:41 schreef Jan Gromeš <[email protected]>:
… I think it's because you're in variable packet length mode, so the part
after the postamble is just noise. Try fixedPacketLengthMode(11) to set
fixed packet lenggth mode for 11 bytes (based on the output above).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#233 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AB6R6ZUIV6S7HRCOMNA42OLS7LYCBANCNFSM4WWYEWIA>
.
|
Beta Was this translation helpful? Give feedback.
-
Thank you very much for your help and patience !!
You are a lifesaver...
Op wo 17 feb. 2021 om 21:35 schreef Jan Gromeš <[email protected]>:
… Glad you got it working! The CRC requirement is caused by the fact that
RF69 will just silently drop packets if the CRC fails, IIRC.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#233 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AB6R6ZVWQPY4JCBLSRLLKKLS7QSBNANCNFSM4WWYEWIA>
.
|
Beta Was this translation helpful? Give feedback.
What exactly do you mean by "raw data"?
If it's raw IQ as for example SDR does, then no, you can't do that with a dedicated FSK transceiver chip like RF69 or SX127x.
If it's enough to get the data as a sequence of bits, then that's perfectly doable, assuming you have some information about the signal - like the frequency deviation and the bit rate at the very minimum.
What's the ultimate goal here, to decode communication from an RF keyboard using some FSK transceiver? If that's the case, I suggest using the SDR first to get as much information about the signal as possible. SDR programs like UniversalRadioHacker or gnuradio should be able to decode it, from that you can deduce the packet …