rfcat


Namerfcat JSON
Version 2.0.1 PyPI version JSON
download
home_pagehttps://github.com/atlas0fd00m/rfcat
Summarythe swiss army knife of subGHz
upload_time2023-08-28 14:47:09
maintainer
docs_urlNone
authoratlas of d00m
requires_python>=2.7
license
keywords radio subghz cc1111 chipcon hacking reverse engineering
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage No coveralls.
            Welcome to the rfcat project

Table of Contents
-----------------

-  `Goals <#goals>`__
-  `Requirements <#requirements>`__

   -  `Other requirements <#other-requirements>`__
   -  `Build requirements <#build-requirements>`__

-  `Development <#development>`__

   -  `“Gotchas” <#gotchas>`__

-  `Installing on hardware <#installing-on-hardware>`__

   -  `Allowing non-root dongle
      access <#allowing-non-root-dongle-access>`__
   -  `Supported dongles <#supported-dongles>`__
   -  `Your build environment <#your-build-environment>`__

-  `Installing with bootloader <#installing-with-bootloader>`__

   -  `To install <#to-install>`__

-  `Installing client <#installing-client>`__
-  `Using RfCat <#using-rfcat>`__
-  `Epilogue <#epilogue>`__

GOALS
-----

The goals of the project are to reduce the time for security researchers
to create needed tools for analyzing unknown targets, to aid in
reverse-engineering of hardware, and to satiate my rf lust.

REQUIREMENTS
------------

RfCat currently requires Python 2.7. the only suspected
incompatibilities with Python 3.x are minimal, mostly print(“stuff”)
versus print “stuff” and other str/bytes issues.

Other requirements
~~~~~~~~~~~~~~~~~~

-  python usb
-  libusb - should be able to work with either 1.x or 0.1 versions.
   please let us know if you run into issues.
-  pyreadline (especially for Windows)

Build requirements
~~~~~~~~~~~~~~~~~~

-  Make
-  SDCC (code is kept up-to-date with the current Ubuntu release, as of
   this writing: 3.4.0+dfsg-2ubuntu1)

DEVELOPMENT
-----------

New development efforts should copy the “application.c” file to
“appWhateverMyToolIs.c” and attempt to avoid making changes to other
files in the repo if at all possible. that is only a recommendation,
because future bug-fixes in other libraries/headers will go much more
smoothely for you.

Gotchas
~~~~~~~

A couple
`gotchas <https://en.wikipedia.org/wiki/Gotcha_(programming)>`__ to keep
in mind while developing for the cc1111

-  The memory model includes both “RAM” and “XDATA” concepts, and
   standard RAM variables and XDATA variables have different assembly
   instructions that are used to access them. this means that you may
   find oddities when using a function written for XDATA on a standard
   RAM variable, and vice-versa.
-  Variables should be defined in a single .c file, and then “externs”
   declared in a .h file that can be included in other modules. this is
   pretty standard for c programs, but both this and the previous point
   caused me difficulties at some points, and i found myself unsure what
   was causing my troubles.
-  RAM memory is not cheap. use it sparingly.
-  You need to set the radio into IDLE mode before reconfiguring it
-  You need to set the radio into TX mode *before* writing to the RFD
   register (firmware) as it is a 1-byte FIFO.

INSTALLING ON HARDWARE
----------------------

Installing and getting up to speed with rfcat…

First things first. Using rfcat requires that you either use the python
client in root mode (sudo works well), or configure udev to allow
non-root users full access to the dongle. you must also have one of the
supported dongles flashed with the necessary application firmware.

allowing non-root dongle access
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

::

    sudo cp etc/udev/rules.d/20-rfcat.rules /etc/udev/rules.d
    sudo udevadm control --reload-rules

This tool is created, maintained, and used primarily on linux. make and
sdcc must be installed for creating new firmware and some of the helper
functions we provide through make.

supported dongles
~~~~~~~~~~~~~~~~~

-  `YARDStick One <https://greatscottgadgets.com/yardstickone>`__
-  cc1111emk (aka DONSDONGLES)
-  chronos watch dongle (aka CHRONOSDONGLE)
-  imme (limited support for both IMME and IMMEDONGLE)

   -  imme dongle is not really usable as of 1/31/2012

GoodFET
^^^^^^^

::


                --------------------------------
                |                         1  2 |
                |                         3  4 |
           ------                         5  6 |  
           | USB                          7  8 |
           ------                         9 10 |
                |                        11 12 |
                | GoodFET                13 14 |
                --------------------------------

Chronos Dongle
^^^^^^^^^^^^^^

::

                --------------------------------
                |                              |
                |             RST 1  2 TP      ------
                |             GND 3  4 VCC      USB |
                |         DC/P2_2 5  6 DD/P2_1 ------
                | Chronos                      |
                --------------------------------

                   GoodFET            Chronos
                     PIN                PIN

                      1 <----- DD -----> 6
                      2 <----- VCC ----> 4
                      5 <----- RST ----> 1
                      7 <----- DC -----> 5
                      9 <----- GND ----> 3

EMK Dongle
^^^^^^^^^^

::

                --------------------------------
                | 2 4 6 8 10   2 4 6 8 10      |
                | 1 3 5 7 9    1 3 5 7 9       |
                |-TEST-PINS----DEBUG-PINS------|
                |                              |
           ------                              |
           | USB                               |
           ------                              |
                | Don's Dongle (EMK)           |
                --------------------------------

                   GoodFET              EMK  
                     PIN             DEBUG PIN

                      1 <----- DD -----> 4
                      2 <----- VCC ----> 2
                      5 <----- RST ----> 7
                      7 <----- DC -----> 3
                      9 <----- GND ----> 1

YARD Stick One
^^^^^^^^^^^^^^

Pogo pads on the back are clearly marked, but if you want to use the
header…

::

                -----------------------------------------
                | YARD Stick One      2 4 6 8 10 12 14  |
                |                     1 3 5 7 9  11 13  ------
                |                                        USB |
                |                                       ------
                |                                       |
                -----------------------------------------

        
                   GoodFET           YARD Stick One
                     PIN                 PIN

                      1 <----- DD -----> 1
                      2 <----- VCC ----> 2
                      5 <----- RST ----> 5
                      7 <----- DC -----> 7
                      9 <----- GND ----> 9

Your build environment
~~~~~~~~~~~~~~~~~~~~~~

Intended development model is using a
`GoodFET <http://goodfet.sf.net>`__ although one of our developers uses
the chipcon debugger from Texas Instruments. \* install sdcc \* install
make \* make sure both are in the path \* cd into the
``rfcat/firmware/`` directory \* ``make testgoodfet`` will read info
from your dongle using the GoodFET. you should see something like:

::

    SmartRF not found for this chip.
    Ident   CC1111/r1103/ps0x0400
    Freq         0.000 MHz
    RSSI    00

-  ``make backupdongle`` will read the current firmware from your dongle
   to the file ``.../bins/original-dongle-hex.backup``.
   (``make restoredongle``) to revert to the original firmware.
-  ``make clean installRfCatChronosDongle`` will clean, build, and
   install the RfCat (``appFHSSNIC.c``) firmware for a Chronos dongle.
-  ``make clean installRfCatDonsDongle`` will clean, build, and install
   the RfCat (``appFHSSNIC.c``) firmware for a cc1111emk.
-  ``make clean installimmesnifffw`` will clean, build, and install the
   RfSniff firmware for the IMME girls toy from girltech

INSTALLING WITH BOOTLOADER
--------------------------

Dependencies: Fergus Noble’s CC-Bootloader (slightly modified). For your
convenience, hex files are provided in the CCBootloader sub-directory in
firmware.

Source can be found here \* https://github.com/AdamLaurie/CC-Bootloader

Which is branched from here \* https://github.com/fnoble/CC-Bootloader

To install
~~~~~~~~~~

We need permanent symlinks to the USB serial devices that will
communicate with the CHRONOS, DONSDONGLE or YARDSTICKONE bootloader when
required. If you haven’t done this step already (see above), then run:

::

    sudo cp etc/udev/rules.d/20-rfcat.rules /etc/udev/rules.d
    sudo udevadm control --reload-rules

| Next, your user must have read/write access to the dongle when it
  shows up to the operating system.
| For most Linux distros, this means you have to be a member of the
  “dialout” group.

To prepare your dongle for the first time, you’ll need to hook up your
debugger as described above and do:

(install ``rfcat_bootloader`` from the CC-Bootloader subdirectory to
somewhere on your execution path)

``cd firmware``

for EMK/DONSDONGLE: ``make installdonsbootloader``

for CHRONOS: ``make installchronosbootloader``

for YARDSTICKONE: ``make installys1bootloader``

now unplug the debugger and plug in your USB dongle.

If you have just installed the bootloader, the dongle should be in
bootloader mode, indicated by a solid LED.

If you are re-flashing a dongle that is already running rfcat, the
Makefile targets will force it into bootloader mode for you, but you can
manually put it into bootloader mode either by holding down the EMK/DONS
button as you plug it into USB (on the CHRONOS or YARDSTICKONE jumper
P2_2/DC to GROUND), or by issuing the command ``d.bootloader()`` to
rfcat in interactive mode (``rfcat -r``), or by issuing the command
``rfcat --bootloader --force`` from the command line.

Once you have a solid LED, or if you’re running an rfcat dongle, you can
do the following:

``cd firmware``

for EMK/DONSDONGLE: \* ``make installRfCatDonsDongleCCBootloader``

for CHRONOS: \* ``make installRfCatChronosDongleCCBootloader``

for YARDSTICKONE: \* ``make installRfCatYS1CCBootloader``

The new version will be installed, and bootloader exited.

Installing client
-----------------

Dependencies
~~~~~~~~~~~~

-  python-usb
-  libusb

Install rfcat onto your system. on most linux systems, this will place
``rfcat`` and ``rfcat_server`` in ``/usr/local/bin/`` and ``rflib`` into
``/usr/*/lib/python2.x/dist-packages``

Installation
~~~~~~~~~~~~

-  cd into the rfcat directory (created by unpacking the tarball or by
   hg clone)
-  sudo python setup.py install
-  I highly recommend installing ``ipython``

   -  For deb/ubuntu folk: ``apt-get install ipython``

Using rfcat
-----------

If you have configured your system to allow non-root use:

-  type “rfcat -r” (if your system is not configured to allow non-root
   use, prepend “sudo” or you must run as root) you should have now
   entered an interactive python shell, where tab-completion and other
   aids should make a very powerful experience i love the raw-byte
   handling and introspection of it all.

-  try things like:

   -  d.ping()
   -  d.discover()
   -  d.debug()
   -  d.RFxmit(‘blahblahblah’)
   -  d.RFrecv()
   -  print(d.reprRadioConfig())
   -  d.setMdmDRate(19200) # this sets the modem baud rate (or DataRate)
   -  d.setPktPQT(0) # this sets the preamble quality threshold to 0
   -  d.setEnableMdmFEC(True) # enables the convolutional Forward Error
      Correction built into the radio

while the toolset was created to make communicating with <ghz much
easier, you will find the cc1111 manual from ti a great value. the
better you understand the radio, the better your experience will be.
play with the radio settings, but i recommend playing in small amounts
and watch for the effects. several things in the radio configuration
settings are mandatory to get right in order to receive or transmit
anything (one of those odd requirements is the TEST2/1/0 registers!)

If you watched any of my talks on rfcat, you will likely remember that
you need to put the radio in **IDLE state** before configuring. (I said
it three times, in a row, in different inflections).

However, you will find that I’ve done that for you in the client for
most things. The only time you need to do this yourself are: \* If you
are doing the changes in firmware \* If you are using the “d.poke()”
functionality \* if you use “d.setRFRegister()”, this is handled for you
\* ``use d.setRFRegister()``

Epilogue
--------

Other than that, hack fun, and feel free to share any details you can
about successes and questions about failures you are able!

@ and the rest of the development team.



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/atlas0fd00m/rfcat",
    "name": "rfcat",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=2.7",
    "maintainer_email": "",
    "keywords": "radio,subghz,cc1111,chipcon,hacking,reverse engineering",
    "author": "atlas of d00m",
    "author_email": "atlas@r4780y.com",
    "download_url": "https://files.pythonhosted.org/packages/3e/fc/d5c1d05ae3a84e2ffbda3f99f8265591d47b3d3a3f875cc6d33638f25b45/rfcat-2.0.1.tar.gz",
    "platform": null,
    "description": "Welcome to the rfcat project\n\nTable of Contents\n-----------------\n\n-  `Goals <#goals>`__\n-  `Requirements <#requirements>`__\n\n   -  `Other requirements <#other-requirements>`__\n   -  `Build requirements <#build-requirements>`__\n\n-  `Development <#development>`__\n\n   -  `\u201cGotchas\u201d <#gotchas>`__\n\n-  `Installing on hardware <#installing-on-hardware>`__\n\n   -  `Allowing non-root dongle\n      access <#allowing-non-root-dongle-access>`__\n   -  `Supported dongles <#supported-dongles>`__\n   -  `Your build environment <#your-build-environment>`__\n\n-  `Installing with bootloader <#installing-with-bootloader>`__\n\n   -  `To install <#to-install>`__\n\n-  `Installing client <#installing-client>`__\n-  `Using RfCat <#using-rfcat>`__\n-  `Epilogue <#epilogue>`__\n\nGOALS\n-----\n\nThe goals of the project are to reduce the time for security researchers\nto create needed tools for analyzing unknown targets, to aid in\nreverse-engineering of hardware, and to satiate my rf lust.\n\nREQUIREMENTS\n------------\n\nRfCat currently requires Python 2.7. the only suspected\nincompatibilities with Python 3.x are minimal, mostly print(\u201cstuff\u201d)\nversus print \u201cstuff\u201d and other str/bytes issues.\n\nOther requirements\n~~~~~~~~~~~~~~~~~~\n\n-  python usb\n-  libusb - should be able to work with either 1.x or 0.1 versions.\n   please let us know if you run into issues.\n-  pyreadline (especially for Windows)\n\nBuild requirements\n~~~~~~~~~~~~~~~~~~\n\n-  Make\n-  SDCC (code is kept up-to-date with the current Ubuntu release, as of\n   this writing: 3.4.0+dfsg-2ubuntu1)\n\nDEVELOPMENT\n-----------\n\nNew development efforts should copy the \u201capplication.c\u201d file to\n\u201cappWhateverMyToolIs.c\u201d and attempt to avoid making changes to other\nfiles in the repo if at all possible. that is only a recommendation,\nbecause future bug-fixes in other libraries/headers will go much more\nsmoothely for you.\n\nGotchas\n~~~~~~~\n\nA couple\n`gotchas <https://en.wikipedia.org/wiki/Gotcha_(programming)>`__ to keep\nin mind while developing for the cc1111\n\n-  The memory model includes both \u201cRAM\u201d and \u201cXDATA\u201d concepts, and\n   standard RAM variables and XDATA variables have different assembly\n   instructions that are used to access them. this means that you may\n   find oddities when using a function written for XDATA on a standard\n   RAM variable, and vice-versa.\n-  Variables should be defined in a single .c file, and then \u201cexterns\u201d\n   declared in a .h file that can be included in other modules. this is\n   pretty standard for c programs, but both this and the previous point\n   caused me difficulties at some points, and i found myself unsure what\n   was causing my troubles.\n-  RAM memory is not cheap. use it sparingly.\n-  You need to set the radio into IDLE mode before reconfiguring it\n-  You need to set the radio into TX mode *before* writing to the RFD\n   register (firmware) as it is a 1-byte FIFO.\n\nINSTALLING ON HARDWARE\n----------------------\n\nInstalling and getting up to speed with rfcat\u2026\n\nFirst things first. Using rfcat requires that you either use the python\nclient in root mode (sudo works well), or configure udev to allow\nnon-root users full access to the dongle. you must also have one of the\nsupported dongles flashed with the necessary application firmware.\n\nallowing non-root dongle access\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n::\n\n    sudo cp etc/udev/rules.d/20-rfcat.rules /etc/udev/rules.d\n    sudo udevadm control --reload-rules\n\nThis tool is created, maintained, and used primarily on linux. make and\nsdcc must be installed for creating new firmware and some of the helper\nfunctions we provide through make.\n\nsupported dongles\n~~~~~~~~~~~~~~~~~\n\n-  `YARDStick One <https://greatscottgadgets.com/yardstickone>`__\n-  cc1111emk (aka DONSDONGLES)\n-  chronos watch dongle (aka CHRONOSDONGLE)\n-  imme (limited support for both IMME and IMMEDONGLE)\n\n   -  imme dongle is not really usable as of 1/31/2012\n\nGoodFET\n^^^^^^^\n\n::\n\n\n                --------------------------------\n                |                         1  2 |\n                |                         3  4 |\n           ------                         5  6 |  \n           | USB                          7  8 |\n           ------                         9 10 |\n                |                        11 12 |\n                | GoodFET                13 14 |\n                --------------------------------\n\nChronos Dongle\n^^^^^^^^^^^^^^\n\n::\n\n                --------------------------------\n                |                              |\n                |             RST 1  2 TP      ------\n                |             GND 3  4 VCC      USB |\n                |         DC/P2_2 5  6 DD/P2_1 ------\n                | Chronos                      |\n                --------------------------------\n\n                   GoodFET            Chronos\n                     PIN                PIN\n\n                      1 <----- DD -----> 6\n                      2 <----- VCC ----> 4\n                      5 <----- RST ----> 1\n                      7 <----- DC -----> 5\n                      9 <----- GND ----> 3\n\nEMK Dongle\n^^^^^^^^^^\n\n::\n\n                --------------------------------\n                | 2 4 6 8 10   2 4 6 8 10      |\n                | 1 3 5 7 9    1 3 5 7 9       |\n                |-TEST-PINS----DEBUG-PINS------|\n                |                              |\n           ------                              |\n           | USB                               |\n           ------                              |\n                | Don's Dongle (EMK)           |\n                --------------------------------\n\n                   GoodFET              EMK  \n                     PIN             DEBUG PIN\n\n                      1 <----- DD -----> 4\n                      2 <----- VCC ----> 2\n                      5 <----- RST ----> 7\n                      7 <----- DC -----> 3\n                      9 <----- GND ----> 1\n\nYARD Stick One\n^^^^^^^^^^^^^^\n\nPogo pads on the back are clearly marked, but if you want to use the\nheader\u2026\n\n::\n\n                -----------------------------------------\n                | YARD Stick One      2 4 6 8 10 12 14  |\n                |                     1 3 5 7 9  11 13  ------\n                |                                        USB |\n                |                                       ------\n                |                                       |\n                -----------------------------------------\n\n        \n                   GoodFET           YARD Stick One\n                     PIN                 PIN\n\n                      1 <----- DD -----> 1\n                      2 <----- VCC ----> 2\n                      5 <----- RST ----> 5\n                      7 <----- DC -----> 7\n                      9 <----- GND ----> 9\n\nYour build environment\n~~~~~~~~~~~~~~~~~~~~~~\n\nIntended development model is using a\n`GoodFET <http://goodfet.sf.net>`__ although one of our developers uses\nthe chipcon debugger from Texas Instruments. \\* install sdcc \\* install\nmake \\* make sure both are in the path \\* cd into the\n``rfcat/firmware/`` directory \\* ``make testgoodfet`` will read info\nfrom your dongle using the GoodFET. you should see something like:\n\n::\n\n    SmartRF not found for this chip.\n    Ident   CC1111/r1103/ps0x0400\n    Freq         0.000 MHz\n    RSSI    00\n\n-  ``make backupdongle`` will read the current firmware from your dongle\n   to the file ``.../bins/original-dongle-hex.backup``.\n   (``make restoredongle``) to revert to the original firmware.\n-  ``make clean installRfCatChronosDongle`` will clean, build, and\n   install the RfCat (``appFHSSNIC.c``) firmware for a Chronos dongle.\n-  ``make clean installRfCatDonsDongle`` will clean, build, and install\n   the RfCat (``appFHSSNIC.c``) firmware for a cc1111emk.\n-  ``make clean installimmesnifffw`` will clean, build, and install the\n   RfSniff firmware for the IMME girls toy from girltech\n\nINSTALLING WITH BOOTLOADER\n--------------------------\n\nDependencies: Fergus Noble\u2019s CC-Bootloader (slightly modified). For your\nconvenience, hex files are provided in the CCBootloader sub-directory in\nfirmware.\n\nSource can be found here \\* https://github.com/AdamLaurie/CC-Bootloader\n\nWhich is branched from here \\* https://github.com/fnoble/CC-Bootloader\n\nTo install\n~~~~~~~~~~\n\nWe need permanent symlinks to the USB serial devices that will\ncommunicate with the CHRONOS, DONSDONGLE or YARDSTICKONE bootloader when\nrequired. If you haven\u2019t done this step already (see above), then run:\n\n::\n\n    sudo cp etc/udev/rules.d/20-rfcat.rules /etc/udev/rules.d\n    sudo udevadm control --reload-rules\n\n| Next, your user must have read/write access to the dongle when it\n  shows up to the operating system.\n| For most Linux distros, this means you have to be a member of the\n  \u201cdialout\u201d group.\n\nTo prepare your dongle for the first time, you\u2019ll need to hook up your\ndebugger as described above and do:\n\n(install ``rfcat_bootloader`` from the CC-Bootloader subdirectory to\nsomewhere on your execution path)\n\n``cd firmware``\n\nfor EMK/DONSDONGLE: ``make installdonsbootloader``\n\nfor CHRONOS: ``make installchronosbootloader``\n\nfor YARDSTICKONE: ``make installys1bootloader``\n\nnow unplug the debugger and plug in your USB dongle.\n\nIf you have just installed the bootloader, the dongle should be in\nbootloader mode, indicated by a solid LED.\n\nIf you are re-flashing a dongle that is already running rfcat, the\nMakefile targets will force it into bootloader mode for you, but you can\nmanually put it into bootloader mode either by holding down the EMK/DONS\nbutton as you plug it into USB (on the CHRONOS or YARDSTICKONE jumper\nP2_2/DC to GROUND), or by issuing the command ``d.bootloader()`` to\nrfcat in interactive mode (``rfcat -r``), or by issuing the command\n``rfcat --bootloader --force`` from the command line.\n\nOnce you have a solid LED, or if you\u2019re running an rfcat dongle, you can\ndo the following:\n\n``cd firmware``\n\nfor EMK/DONSDONGLE: \\* ``make installRfCatDonsDongleCCBootloader``\n\nfor CHRONOS: \\* ``make installRfCatChronosDongleCCBootloader``\n\nfor YARDSTICKONE: \\* ``make installRfCatYS1CCBootloader``\n\nThe new version will be installed, and bootloader exited.\n\nInstalling client\n-----------------\n\nDependencies\n~~~~~~~~~~~~\n\n-  python-usb\n-  libusb\n\nInstall rfcat onto your system. on most linux systems, this will place\n``rfcat`` and ``rfcat_server`` in ``/usr/local/bin/`` and ``rflib`` into\n``/usr/*/lib/python2.x/dist-packages``\n\nInstallation\n~~~~~~~~~~~~\n\n-  cd into the rfcat directory (created by unpacking the tarball or by\n   hg clone)\n-  sudo python setup.py install\n-  I highly recommend installing ``ipython``\n\n   -  For deb/ubuntu folk: ``apt-get install ipython``\n\nUsing rfcat\n-----------\n\nIf you have configured your system to allow non-root use:\n\n-  type \u201crfcat -r\u201d (if your system is not configured to allow non-root\n   use, prepend \u201csudo\u201d or you must run as root) you should have now\n   entered an interactive python shell, where tab-completion and other\n   aids should make a very powerful experience i love the raw-byte\n   handling and introspection of it all.\n\n-  try things like:\n\n   -  d.ping()\n   -  d.discover()\n   -  d.debug()\n   -  d.RFxmit(\u2018blahblahblah\u2019)\n   -  d.RFrecv()\n   -  print(d.reprRadioConfig())\n   -  d.setMdmDRate(19200) # this sets the modem baud rate (or DataRate)\n   -  d.setPktPQT(0) # this sets the preamble quality threshold to 0\n   -  d.setEnableMdmFEC(True) # enables the convolutional Forward Error\n      Correction built into the radio\n\nwhile the toolset was created to make communicating with <ghz much\neasier, you will find the cc1111 manual from ti a great value. the\nbetter you understand the radio, the better your experience will be.\nplay with the radio settings, but i recommend playing in small amounts\nand watch for the effects. several things in the radio configuration\nsettings are mandatory to get right in order to receive or transmit\nanything (one of those odd requirements is the TEST2/1/0 registers!)\n\nIf you watched any of my talks on rfcat, you will likely remember that\nyou need to put the radio in **IDLE state** before configuring. (I said\nit three times, in a row, in different inflections).\n\nHowever, you will find that I\u2019ve done that for you in the client for\nmost things. The only time you need to do this yourself are: \\* If you\nare doing the changes in firmware \\* If you are using the \u201cd.poke()\u201d\nfunctionality \\* if you use \u201cd.setRFRegister()\u201d, this is handled for you\n\\* ``use d.setRFRegister()``\n\nEpilogue\n--------\n\nOther than that, hack fun, and feel free to share any details you can\nabout successes and questions about failures you are able!\n\n@ and the rest of the development team.\n\n\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "the swiss army knife of subGHz",
    "version": "2.0.1",
    "project_urls": {
        "Download": "https://github.com/atlas0fd00m/rfcat/archive/v1.9.1.tar.gz",
        "Homepage": "https://github.com/atlas0fd00m/rfcat"
    },
    "split_keywords": [
        "radio",
        "subghz",
        "cc1111",
        "chipcon",
        "hacking",
        "reverse engineering"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f58548b082988c2f055d36fc27d311f0fd2d6bb1ef1788a6b0029f2ec924035b",
                "md5": "dba97c934ab67f9d7c9e2dde11e0f472",
                "sha256": "9706215612f49b1b5f9438709c08a217df3dd83b63e5fb606d40d71350e9a32b"
            },
            "downloads": -1,
            "filename": "rfcat-2.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "dba97c934ab67f9d7c9e2dde11e0f472",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=2.7",
            "size": 147261,
            "upload_time": "2023-08-28T14:47:07",
            "upload_time_iso_8601": "2023-08-28T14:47:07.649589Z",
            "url": "https://files.pythonhosted.org/packages/f5/85/48b082988c2f055d36fc27d311f0fd2d6bb1ef1788a6b0029f2ec924035b/rfcat-2.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3efcd5c1d05ae3a84e2ffbda3f99f8265591d47b3d3a3f875cc6d33638f25b45",
                "md5": "e0763b097ff1c5b78021a76e8692eb3f",
                "sha256": "4f2fc26f1551487fd13cbfe81bfb479ea4a940e6ea816881b4c77c28e2f51aa0"
            },
            "downloads": -1,
            "filename": "rfcat-2.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "e0763b097ff1c5b78021a76e8692eb3f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=2.7",
            "size": 228582,
            "upload_time": "2023-08-28T14:47:09",
            "upload_time_iso_8601": "2023-08-28T14:47:09.740103Z",
            "url": "https://files.pythonhosted.org/packages/3e/fc/d5c1d05ae3a84e2ffbda3f99f8265591d47b3d3a3f875cc6d33638f25b45/rfcat-2.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-08-28 14:47:09",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "atlas0fd00m",
    "github_project": "rfcat",
    "travis_ci": true,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "rfcat"
}
        
Elapsed time: 2.68143s