Skip to main content

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

Project description

python-cc1101

Code style: black 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cc1101-2.7.3rc0.tar.gz (60.6 kB view details)

Uploaded Source

Built Distribution

cc1101-2.7.3rc0-py3-none-any.whl (32.3 kB view details)

Uploaded Python 3

File details

Details for the file cc1101-2.7.3rc0.tar.gz.

File metadata

  • Download URL: cc1101-2.7.3rc0.tar.gz
  • Upload date:
  • Size: 60.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.4.2 requests/2.23.0 setuptools/49.3.1 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.8.6

File hashes

Hashes for cc1101-2.7.3rc0.tar.gz
Algorithm Hash digest
SHA256 e3dcb0ef0ed7d088b38c92c43dc5d6b7f69ea4372258312be6a2b914039624fa
MD5 230652d35d8fd3ab69b8a5340ec96fdd
BLAKE2b-256 10178a8c126f6cef220142b786a97074b734128bbc3ea30018f17c58f4c57b2e

See more details on using hashes here.

File details

Details for the file cc1101-2.7.3rc0-py3-none-any.whl.

File metadata

  • Download URL: cc1101-2.7.3rc0-py3-none-any.whl
  • Upload date:
  • Size: 32.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.4.2 requests/2.23.0 setuptools/49.3.1 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.8.6

File hashes

Hashes for cc1101-2.7.3rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 0f9fd48cf7ffb07d0119aef6607d9ba90091782c77744fa41ae3f411d41f6f78
MD5 2b1905fbbce8626bcab9f1c96820aa63
BLAKE2b-256 bf592822782ab041f95f090b180c8917be7cd8cbc07596680d961a9dac3e865c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page