Fabian Peter Hammerle a8bba1707b drop compatibility with python3.8 | 1 неделя назад | |
---|---|---|
.github | 1 неделя назад | |
cc1101 | 10 месяцев назад | |
examples | 3 лет назад | |
tests | 1 неделя назад | |
.gitignore | 4 лет назад | |
.pylintrc | 2 лет назад | |
CHANGELOG.md | 1 неделя назад | |
COPYING | 4 лет назад | |
Pipfile | 1 неделя назад | |
Pipfile.lock | 1 неделя назад | |
README.md | 6 месяцев назад | |
mypy.ini | 4 лет назад | |
setup.py | 1 неделя назад |
Python Library & Command Line Tool to Transmit RF Signals via CC1101 Transceivers
$ 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
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/
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=?)
.
$ printf '\x01\x02\x03' | cc1101-transmit -f 433920000 -r 1000
See cc1101-transmit --help
.
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