Fabian Peter Hammerle feca9fb7fb fix default config & _set_power_amplifier_setting_index: no longer set FREND0.LODIV_BUF_CURRENT_TX to 0 (cc1101's default: 1) | 3 anni fa | |
---|---|---|
.github | 3 anni fa | |
cc1101 | 3 anni fa | |
examples | 3 anni fa | |
tests | 3 anni fa | |
.gitignore | 3 anni fa | |
.pylintrc | 4 anni fa | |
CHANGELOG.md | 3 anni fa | |
COPYING | 4 anni fa | |
Pipfile | 3 anni fa | |
Pipfile.lock | 3 anni fa | |
README.md | 3 anni fa | |
mypy.ini | 4 anni fa | |
setup.py | 3 anni fa |
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:
C1101 | 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) |
GND | Ground |
If 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)
No resistors required. GDO0 & GDO2 are currently unused.
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