python-cc1101
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
Release files for cc1101 3.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cc1101-3.0.0.tar.gz | 68.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cc1101-3.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 101.1 kB
Release files / cc1101-3.0.0.tar.gz
| Download URL | cc1101-3.0.0.tar.gz |
|---|---|
| Size | 68.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
75b59a837f6a26258e55be7de554e69deffc871ba19a9cda689cfb8b767a8e02
|
|
BLAKE2b-256 checksum How to use checksums |
73bec566a76d14741acb76861c49141688a4200ffbb7955851c3e0c31b35321d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.4.2 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.2
|
Release files / cc1101-3.0.0-py3-none-any.whl
| Download URL | cc1101-3.0.0-py3-none-any.whl |
|---|---|
| Size | 33.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1ccc76f4fc8d5cbac6ecc47b21bb1b184a6a32ab79d8f94ee99e81d9a10a8a39
|
|
BLAKE2b-256 checksum How to use checksums |
f20e7b45b408eda6ce4711d14b88085896c1fb01a91c2ac82f789460adf374c8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.4.2 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.2
|