Sin descripción

Fabian Peter Hammerle 451ed77a85 test method get_main_radio_control_state_machine_state hace 3 años
.github 451ed77a85 test method get_main_radio_control_state_machine_state hace 3 años
cc1101 fbdcc5bcc9 increase test coverage of context manager hace 3 años
examples 78da9b6a06 release v2.3.0 hace 3 años
tests 451ed77a85 test method get_main_radio_control_state_machine_state hace 3 años
.gitignore f6fccfd243 pipeline: added pytest-cov hace 3 años
.pylintrc 2bc397185f setup ci pipeline hace 4 años
CHANGELOG.md feca9fb7fb fix default config & _set_power_amplifier_setting_index: no longer set FREND0.LODIV_BUF_CURRENT_TX to 0 (cc1101's default: 1) hace 3 años
COPYING 994a9a5ede added GPLv3+ hace 4 años
Pipfile ebed8f8706 env: add upper version constraint for pytest to keep compatibility with python3.5 hace 3 años
Pipfile.lock ebed8f8706 env: add upper version constraint for pytest to keep compatibility with python3.5 hace 3 años
README.md 11ca3576f7 readme: added coverage badge hace 3 años
mypy.ini 991cc935f0 mypy: ignore missing imports hace 4 años
setup.py 15e2949290 added command cc1101-export-config to export / inspect register values after configuration via args/options hace 3 años

README.md

python-cc1101

CI Pipeline Status Coverage Status Last Release Compatible Python Versions DOI

Python Library & Command Line Tool to Transmit RF Signals via CC1101 Transceivers

Setup

$ pip3 install --user --upgrade cc1101

On Raspbian / Raspberry Pi OS, dependencies can optionally be installed via:

$ sudo apt-get install --no-install-recommends python3-spidev

Wiring Raspberry Pi

Connect the following pins directly:

C1101 Raspberry Pi
VDD 3.3V (Pin 1 or 17)
SI MOSI (Pin 19)
SO MISO (Pin 21)
CSn CE0 (Pin 24)
SCLK SCLK (Pin 23)
GND Ground

If these pins are already in use, select a different SPI bus or chip select: https://www.raspberrypi.org/documentation/hardware/raspberrypi/spi/README.md (permalink)

No resistors required. GDO0 & GDO2 are currently unused.

Raspberry Pi GPIO docs: https://www.raspberrypi.org/documentation/usage/gpio/

Usage

Library

See examples.

import cc1101

with cc1101.CC1101() as transceiver:
    transceiver.set_base_frequency_hertz(433.92e6)
    print(transceiver)
    transceiver.transmit(b"\x01\xff\x00 message")

In case CC1101 is connected to a different SPI bus or chip select line than /dev/spidev0.0, use CC1101(spi_bus=?, spi_chip_select=?).

Command Line

$ printf '\x01\x02\x03' | cc1101-transmit -f 433920000 -r 1000

See cc1101-transmit --help.

Troubleshooting

In case a PermissionError gets raised, check the permissions of /dev/spidev*. You'll probably need sudo usermod -a -G spi $USER, followed by a re-login.

Consult CC1101's offical docs for an in-depth explanation of all options: https://www.ti.com/lit/ds/symlink/cc1101.pdf