atlas0fd00m / rfcat

RfCat - swiss-army knife of ISM band radio
Other
560 stars 117 forks source link

Suggested Feature: Ability to send raw pulses/gaps #138

Closed Crsarmv7l closed 9 months ago

Crsarmv7l commented 1 year ago

I was wondering if it would be possible to send raw pulses and gaps.

I ask because rtl_433 has their own .ook filetype which has pulse duration and gap durations. The flipper zero .subs also have pulse durations and gap durations (infact it is very easy to convert an .ook to a .sub).

Being able to send pulse/gaps based on duration would allow the creation of python scripts to use either or both of those prevalent filetypes without having to use an intermediary.

Thanks for considering this

atlas0fd00m commented 1 year ago

RfCat has support for OOK proper. currently there's little (with any accuracy) support for transmitting raw pulses and gaps, aside from ticking on and off TX in time from Python.

we can simply do some math on the .ook and .sub files and translate that to baud rate, and we could parse the raw data into an RfCat session. is that what you're asking? that's the most accurate thing to do. RfCat relies on a real packet-radio. we could build a converter if it might be useful, or just allow the importing of the .sub/.ook files into an RfCat session.

thoughts?

Crsarmv7l commented 1 year ago

RfCat has support for OOK proper. currently there's little (with any accuracy) support for transmitting raw pulses and gaps, aside from ticking on and off TX in time from Python.

we can simply do some math on the .ook and .sub files and translate that to baud rate, and we could parse the raw data into an RfCat session. is that what you're asking? that's the most accurate thing to do. RfCat relies on a real packet-radio. we could build a converter if it might be useful, or just allow the importing of the .sub/.ook files into an RfCat session.

thoughts?

I think a converter would be a great idea. I have tried a couple times, using URH's method of parsing .sub files, unfortunately while it worked and txed, there was something off with the signal as the light I test with didn't turn on.

Crsarmv7l commented 1 year ago

Starting at line 138 is how URH parses and loads the pulse/gap of .sub files. https://github.com/jopohl/urh/blob/master/src/urh/signalprocessing/Signal.py

Might save you some time if you plan on taking this on. If not I will keep messing with it periodically

atlas0fd00m commented 1 year ago

thanks! sounds like you've done this work to some degree. anything you care to put into a pull request?

Crsarmv7l commented 1 year ago

thanks! sounds like you've done this work to some degree. anything you care to put into a pull request?

Ha, if it worked I would. Problem is it doesn't and I don't really know where I am going wrong which is making it all the more frustrating.

I am parsing as URH does. Then using 1 sample/symbol , and using the default flipper specs (its a RAW AM650 file), in the appropriate RfCat format: https://github.com/flipperdevices/flipperzero-firmware/blob/dev/firmware/targets/f7/furi_hal/furi_hal_subghz_configs.h

{CC1101_MDMCFG0, 0x00}, // Channel spacing is 25kHz {CC1101_MDMCFG1, 0x00}, // Channel spacing is 25kHz {CC1101_MDMCFG2, 0x30}, // Format ASK/OOK, No preamble/sync {CC1101_MDMCFG3, 0x32}, // Data rate is 3.79372 kBaud

With a known working Flipper RAW file. It transmits something....but its not working

atlas0fd00m commented 9 months ago

sorry, i'm just circling back to this. any traction? what is it transmitting? any indications of why it's wrong? SDR is a wonderful tool for troubleshooting this type of thing.

atlas0fd00m commented 9 months ago

closing unless you want to reply