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
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| cc1101-3.0.0.tar.gz | 68.2 kB | Without provenance | Details for cc1101-3.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| cc1101-3.0.0-py3-none-any.whl | Python 3 | none | any | Details for cc1101-3.0.0-py3-none-any.whl |
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
|
Security for cc1101 3.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.