python-cc1101

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

GPL-3.0 License

Downloads
2.4K
Stars
76
Committers
3

Bot releases are hidden (Show)

python-cc1101 - spi max speed Latest Release

Published by fphammerle over 1 year ago

Added

Changed

  • CC1101.transmit: raise RuntimeError instead of Exception when
    attempting to transmit in non-idle state

Removed

  • compatibility with python3.5 & python3.6
python-cc1101 - radio performance fix

Published by fphammerle over 3 years ago

Fixed

  • change IOCFG0.GDO0_CFG as recommended in docs to "optimize RF performance"
python-cc1101 - chip version 0

Published by fphammerle over 3 years ago

Fixed

  • recommend to check wiring & bus selection when receiving chip version 0
python-cc1101 - unlock on init error

Published by fphammerle over 3 years ago

Fixed

  • close & unlock SPI device file when error occurs while entering context
python-cc1101 - configure output power

Published by fphammerle over 3 years ago

Added

  • method set/get_output_power to configure/retrieve output power settings
    (PATABLE and FREND0.PA_POWER)
  • all commands: added parameter -p/--output-power
  • command cc1101-export-config: append values of PATABLE register as comment

Fixed

  • default config via private/unstable method _set_power_amplifier_setting_index:
    no longer set FREND0.LODIV_BUF_CURRENT_TX to 0 (default: 1)
python-cc1101 - fixed _set_modulation_format

Published by fphammerle almost 4 years ago

Fixed

  • private/unstable method _set_modulation_format: fixed incorrect configuration of MDMCFG2 register
python-cc1101 - export config

Published by fphammerle almost 4 years ago

Added

  • command cc1101-export-config to export / inspect config register values
    after configuration via command-line arguments & options matching cc1101-transmit

Fixed

  • cc1101-transmit command:
    • set flock on SPI device file to avoid race conditions,
      if other processes attempt to use the same transceiver
    • configure transceiver after reading from stdin
      to avoid delay between configuration and transmission, if pipe is slow
python-cc1101 - command-line interface

Published by fphammerle almost 4 years ago

Added

  • added command cc1101-transmit to transmit via command-line interface
  • warn when selecting frequency below supported range
python-cc1101 - chip version 0x04

Published by fphammerle almost 4 years ago

Added

  • support chip version 0x04
python-cc1101 - flock

Published by fphammerle almost 4 years ago

Added

  • option CC1101(lock_spi_device=True) sets an advisory, exclusive,
    non-blocking flock on the SPI device file /dev/spidev?.?
  • method .unlock_spi_device() to release flock manually
python-cc1101 - select spi bus & chip-select line

Published by fphammerle almost 4 years ago

Added

  • select arbitrary device via CC1101(spi_bus=?, spi_chip_select=?)
  • added explanation to PermissionError on SpiDev.open()
python-cc1101 - preamble & sync word

Published by fphammerle almost 4 years ago

Added

  • method .get_sync_word()
  • method .set_sync_word()
  • method .get_preamble_length_bytes()
  • method .set_preamble_length_bytes()
  • preamble length & sync word in string representation
python-cc1101 - length byte

Published by fphammerle almost 4 years ago

Changed

  • transmit(): prepend length byte in variable packet length mode internally
    to avoid accidental incomplete transmissions and TX FIFO underflows
python-cc1101 - fixed packet length mode

Published by fphammerle almost 4 years ago

Added

  • support for fixed packet length mode
    via new method set_packet_length_mode(PacketLengthMode.FIXED)
  • new enum options.PacketLengthMode
  • new method get_packet_length_mode()
  • method get_packet_length_bytes() is now public
  • new method set_packet_length_bytes()
  • added configured packet length to CC1101's string representation
    (≤n indicates variable length mode, =n fixed length mode)
python-cc1101 - disable checksum

Published by fphammerle almost 4 years ago

Added

  • method disable_checksum() to disable automatic CRC sum
    appending in TX mode and checking in RX mode
python-cc1101 - first release

Published by fphammerle about 4 years ago

Added

  • CC1101 class providing
    • context manager to open SPI port
    • transmit() for buffered transmission
    • context manager asynchronous_transmission() for manual signal generation
    • get_configuration_register_values() to read all configuration registers
  • OOK modulation
  • configurable symbol rate & sync mode
  • optional manchester encoding
  • disabled data whitening
  • automatic calibration