Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Global] (RF) Implementation of support for parsed protocol .sub files #570

Open
rouing opened this issue Dec 17, 2024 · 7 comments
Open

Comments

@rouing
Copy link
Contributor

rouing commented Dec 17, 2024

Right now, we can only use RAW (And I think a few others.. maybe? Have to check) protocol in .sub files. This request comes in 2 parts, one is covered in another issue #192.

  1. The first part is processing of a .sub file to transmit that contains a parsed protocol option (Megacode as an example)
  2. The second part is capturing, identifying, parsing, and processing of a signal during capture/receive and then saving that signal in its parsed format as a .sub file.

This issue is a stub for now.

@rouing
Copy link
Contributor Author

rouing commented Dec 17, 2024

@eadmaster Are you still around and are you still working on your port?

@rouing
Copy link
Contributor Author

rouing commented Dec 17, 2024

There is also tons of room for improvement on signal capture all together. At the moment I have to be really close to the device to capture a signal and it is usually pretty mangled and unusable.

@bmorcelli
Copy link
Collaborator

I scanned the TX outputs from EvilCrow V2 and the protocols read using T-Embed CC1101 were like:

Rc-Switch Protocol
1 Princeton
11 CAME
11 Holtek HT12X
11 CAME
11 SMC5326
11 Nice FLO
11 GateTX

which I added here in this secction

Bruce/src/modules/rf/rf.cpp

Lines 1144 to 1155 in 7ba77ca

else if(protocol.startsWith("Princeton")) {
RCSwitch_send(rfcode.key, rfcode.Bit, 350, 1, 10);
}
else {
Serial.print("unsupported protocol: "); Serial.println(protocol);
Serial.println("Sending RcSwitch 11 protocol");
//if(protocol.startsWith("CAME") || protocol.startsWith("HOLTEC" || NICE)) {
RCSwitch_send(rfcode.key, rfcode.Bit, 270, 11, 10);
//}
return;
}

I believe there might have differences between them and rc-switch lib couldn't be reading well.. but nothing that couldn't be enhanced

https://github.com/bmorcelli/rc-switch/blob/13c3aaf0da8d5fe2a568f1e0a38c69cb23c87ea0/RCSwitch.cpp#L80-L104

Other thing that must be enhanced, is the RAW capture, that is using the same logic of the decoder, but saving the signal even if it can´t decode:

https://github.com/bmorcelli/rc-switch/blob/13c3aaf0da8d5fe2a568f1e0a38c69cb23c87ea0/RCSwitch.cpp#L701-L762

I made this changes because it was detecting a lot of noise (signals with timings <25us, mostly from 3 to 15us), so I tried to ignore the first burst, waiting the first "RCSwitch::nSeparationLimit" (4300us) to validate the reading.. when using M5 RF433R module, we don´t have RSSI to validade it, so the noise triggers the interruptions quite often..

@eadmaster
Copy link
Contributor

eadmaster commented Dec 17, 2024

This request comes in 2 parts, one is covered in another issue #192.

Sensors decoding with rtl_433_ESP is a completely different feature, not related to generic RF signals dumping/replaying.

At the moment I have to be really close to the device to capture a signal and it is usually pretty mangled and unusable.

If the signal gets decoded by the RCSwitch lib, it should be more reliable than a RAW capture.
To get a better range you may need to replace the antenna, or reduce environment noise.

@rouing
Copy link
Contributor Author

rouing commented Dec 17, 2024

This request comes in 2 parts, one is covered in another issue #192.

Sensors decoding with rtl_433_ESP is a completely different feature, not related to generic RF signals dumping/replaying.

I understand that and I sort of slipped something in there I am half hoping to achieve here at a later point. It would require generation of a sub file from a whole new process itself.

At the moment I have to be really close to the device to capture a signal and it is usually pretty mangled and unusable.
If the signal gets decoded by the RCSwitch lib, it should be more reliable than a RAW capture.
To get a better range you may need to replace the antenna, or reduce environment noise.

Alright. Ill adjust my testing accordingly. I did slap on a new antenna myself but have found the SMA connector has some loss. Ill play with that later.

Heres some funny results of my testing so far anyways.
What it was vs what it shouldve been:
image
image

@bmorcelli
Copy link
Collaborator

These graphics are from what? HackRF? Rtl-SDR?

I want to buy one for me as a Christmas gift, need advices

@rustysun9
Copy link

These screenshots are from universal radio hacker (urh) app. With URH you can record, decode, analyze signals. To be able to do this you also need SDR modul. Something like RTL-SDR, HackRF, Airspy. These modules usually only support Rx. I am using Airspy mini with URH sw and gqrx sw for analyzing RF data. If you need more features and mobility go with HackRF with portapack. If not, either RTLSDR or Airspy will be fine and also a lot cheaper. Such tools realy helps at learning and understanding actual RF transsmisions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants