Python Library & Command Line Tool to Transmit RF Signals via C1101 Transceivers
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file cc1101-2.7.1.tar.gz
.
File metadata
- Download URL: cc1101-2.7.1.tar.gz
- Upload date:
- Size: 57.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78a7384cb57dfbb0d1418d8a834192d675a095b75b0f75f16b8bba0d8bcca6e1 |
|
MD5 | 8b9e6ebee8d9c1219c265f99d21595c1 |
|
BLAKE2b-256 | 2c2beb9005ae3954ae764ef6cadf179bfecd094bded83084d157b748eb68bcd5 |
File details
Details for the file cc1101-2.7.1-py3-none-any.whl
.
File metadata
- Download URL: cc1101-2.7.1-py3-none-any.whl
- Upload date:
- Size: 30.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac70a4d1efa4bedae49cb35856bd6ef5c726f72326b98a4bbe90a6d300916a16 |
|
MD5 | 17118cda3af34cf149286f3ca39014f4 |
|
BLAKE2b-256 | 6b89025f546113447f343f2a158e6e46581fb2efe05841e80a0004ef162daba4 |