Fabian Peter Hammerle 451ed77a85 test method get_main_radio_control_state_machine_state | hace 3 años | |
---|---|---|
.github | hace 3 años | |
cc1101 | hace 3 años | |
examples | hace 3 años | |
tests | hace 3 años | |
.gitignore | hace 3 años | |
.pylintrc | hace 4 años | |
CHANGELOG.md | hace 3 años | |
COPYING | hace 4 años | |
Pipfile | hace 3 años | |
Pipfile.lock | hace 3 años | |
README.md | hace 3 años | |
mypy.ini | hace 4 años | |
setup.py | hace 3 años |
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