Giter Site home page Giter Site logo

Comments (9)

jglim avatar jglim commented on August 17, 2024 2

Hey no worries!

With regards to your requirements on ~1k symbols, the hardware you have (CC1101, 3.3V Arduino) is enough to do so - however you may wish to write your own firmware on the Arduino itself as CCManager is not able to solve the issue as-is.

CCManager works by queuing bytes into the CC1101's internal TX FIFO (limited to 61 bytes), then requesting the CC1101 to TX the buffer's content. This allows timing flexibility between the host/bridge/CC1101.

There is also a second mode (serial synchronous/asynchronous mode) on the CC1101. Upon enabling TX, the CC1101 will generate a clock signal and read data from its GDO pins. In this mode, the CC1101 acts more like a simple modulator and you should be able to send a transmission of arbitrary length.

This is the literature from TI which might help you in the alternative mode:
http://www.ti.com/lit/an/swra359a/swra359a.pdf

Unfortunately I have not implemented a CLI version of CCManager. Perhaps in the future ^_^

Might I suggest looking at rfcat for similar features, but more powerful in the "expert mode" and automation department? (Different hardware though)

from ccmanager.

trishmapow avatar trishmapow commented on August 17, 2024 2

Thanks again for so much help.
I don't know how I misinterpreted it so badly, but I actually only need to send 17 bytes! I managed to use GRC to record from an RTL-SDR and use wave-converter to demodulate and decode the 2-FSK rolling key code and then convert it to a hexadecimal code. Turns out the code is repeated twice, so only 8 bytes, 2 of the bytes increment by 16 every button press, 5 bytes are constant, leaving only one true "rolling code". I'll see if there's some sort of pattern to it.

Crazy how this is the stuff protecting my car! 1 byte of data. So much for rolling code security.

from ccmanager.

jglim avatar jglim commented on August 17, 2024 1

Hey,

I've tested out 2FSK briefly and it seems to work. You can configure the registers manually via the CC1101's datasheet or use TI's SmartRF Studio (free - requires TI login though) and let it generate the registers for you.

These are the RF settings I used to test (2FSK @ 433.9MHz, 82.5KHz deviation)

cc1101-smartrf-settings

This is the output (annotated)

cc1101-2fsk-annotated

You can configure your desired RF settings, export the registers (1), choose the correct output type and copy the text (2) and import it into CCManager through pasting into the dialog in "Import SimpliciTI Settings" (3)

reg-export-annotated

Hope it helps!

from ccmanager.

trishmapow avatar trishmapow commented on August 17, 2024 1

Thanks for all the help.
After searching around, I seem to be on my own :( I don't have much experience with SPI etc.
Oh well, I'll see how this whole "serial synchronous" business works out.

from ccmanager.

trishmapow avatar trishmapow commented on August 17, 2024

Thanks a lot for that! Such a nice and detailed guide!

Anyway, the particular rolling code system I have has a symbol rate of around 18kHz, which the CC1101 can do, however it does have ~1000 symbols that need to be transmitted ... I see that your program only supports 61 bytes. Do you have any idea on how to tackle this challenge (I am using an Arduino Pro Mini, 3.3V, 8MHz)? Also, is there a way to run your CCManager program without the GUI, just with a CLI in Linux shell/Windows command prompt? I'd like to be able to automate this on a Raspberry Pi -> analyses/decodes FSK -> sends code to CC1101.

Sorry for the many questions, I am still a n00b with this hardware.
Thanks again.

from ccmanager.

trishmapow avatar trishmapow commented on August 17, 2024

Hi again,
Just wondering if this idea makes any sense: instead of transferring the data continuously over serial and having to deal with clocks etc, could I just hard code the entire transmission in a string in the Arduino sketch? There should be enough flash memory for this. I could have a Raspberry Pi dynamically generate and upload the sketch to the Arduino once it captures a key press.

Then I could simply go on by looping and keeping the TX FIFO filled (not sure on how to do this, but there are libraries I suppose)? Would this work?
Thanks.

from ccmanager.

jglim avatar jglim commented on August 17, 2024

Hey,

It might work, though it sounds somewhat hacky given that the data would be sent in blocks of 61 bytes with an unknown interval, and I don't think I am able to give more advice than that. It would be easier and more reliable to get the Arduino to do the work via asynchronous mode with the CC1101 in your case for long packets.

Asynchronous mode is similar to the method you describe, where you store your data on the microcontroller, and configure the CC1101 to both transmit and read the next packet's data simultaneously.

from ccmanager.

jglim avatar jglim commented on August 17, 2024

Congrats!

Do remember that rolling code can be desynchronized (by accident usually) and there probably is a sequence of actions you may have to take to re-synchronize it. Hopefully CCManager is capable of opening your car for you :^)

from ccmanager.

Bihel29 avatar Bihel29 commented on August 17, 2024

Hey trishmapow,

You have succeeded? I am looking for information to use a CC1101 on arduino to try on my car.

Sorry for my bad english

Thanks

from ccmanager.

Related Issues (8)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.