Không có mô tả

Fabian Peter Hammerle a8bba1707b drop compatibility with python3.8 19 giờ trước cách đây
.github a8bba1707b drop compatibility with python3.8 19 giờ trước cách đây
cc1101 c5400eb633 upgrade black from 23.12.1 to 24.1.0 10 tháng trước cách đây
examples cebeeb5207 rename set/get_output_power_levels to set/get_output_power as a higher patable setting does not necessarily imply a higher output power level (see table 39) 3 năm trước cách đây
tests a8bba1707b drop compatibility with python3.8 19 giờ trước cách đây
.gitignore f6fccfd243 pipeline: added pytest-cov 4 năm trước cách đây
.pylintrc 706ead5c4c pylint: enable various optional checks/extensions 2 năm trước cách đây
CHANGELOG.md a8bba1707b drop compatibility with python3.8 19 giờ trước cách đây
COPYING 994a9a5ede added GPLv3+ 4 năm trước cách đây
Pipfile a8bba1707b drop compatibility with python3.8 19 giờ trước cách đây
Pipfile.lock a8bba1707b drop compatibility with python3.8 19 giờ trước cách đây
README.md dee1d36f33 pipeline: remove broken coveralls (log below, `pytest --cov-fail-under=100 …` in place) 6 tháng trước cách đây
mypy.ini 991cc935f0 mypy: ignore missing imports 4 năm trước cách đây
setup.py a8bba1707b drop compatibility with python3.8 19 giờ trước cách đây

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:

CC1101 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)
GDO2* Any GPIO pin, commonly GPIO25 (Pin 22) [1,2,3]
GDO0* Any GPIO pin, GPIO24 (Pin 18) recommended
GND Ground

No resistors required. Connection of pins marked with * is optional. GDO2 stays "high until power and crystal have stabilized" (see CHIP_RDYn in docs). GDO0 is used by .asynchronous_transmission() for data input.

If some of 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)

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