# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ### Removed - compatibility with `python3.7` & `python3.8` ## [3.0.0] - 2023-05-04 ### Added - declare compatibility with `python3.11` - allow parametrization of `spi_max_speed_hz` during `C1101` class instantiation to solve [issue-128] ### Changed - `CC1101.transmit`: raise `RuntimeError` instead of `Exception` when attempting to transmit in non-idle state ### Removed - compatibility with `python3.5` & `python3.6` ## [2.7.3] - 2021-04-20 ### Fixed - change `IOCFG0.GDO0_CFG` as recommended in docs to "optimize RF performance" ## [2.7.2] - 2021-03-12 ### Fixed - recommend to check wiring & bus selection when receiving chip version `0` ## [2.7.1] - 2021-02-08 ### Fixed - close & unlock SPI device file when error occurs while entering context ## [2.7.0] - 2021-01-24 ### 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`) ## [2.6.1] - 2021-01-16 ### Fixed - private/unstable method `_set_modulation_format`: fixed incorrect configuration of `MDMCFG2` register ## [2.6.0] - 2021-01-04 ### 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 ## [2.5.0] - 2020-12-30 ### Added - added command `cc1101-transmit` to transmit via command-line interface - warn when selecting frequency below supported range ## [2.4.0] - 2020-12-13 ### Added - support chip version `0x04` ## [2.3.0] - 2020-12-11 ### 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 ## [2.2.0] - 2020-12-08 ### Added - select arbitrary device via `CC1101(spi_bus=?, spi_chip_select=?)` - added explanation to `PermissionError` on `SpiDev.open()` ## [2.1.0] - 2020-12-04 ### 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 ## [2.0.0] - 2020-12-03 ### Changed - `transmit()`: prepend length byte in variable packet length mode internally to avoid accidental incomplete transmissions and TX FIFO underflows ## [1.2.0] - 2020-12-02 ### 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) ## [1.1.0] - 2020-12-01 ### Added - method `disable_checksum()` to disable automatic CRC sum appending in TX mode and checking in RX mode ## [1.0.0] - 2020-09-02 ### 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 [Unreleased]: https://github.com/fphammerle/python-cc1101/compare/v3.0.0...HEAD [3.0.0]: https://github.com/fphammerle/python-cc1101/compare/v2.7.3...v3.0.0 [2.7.3]: https://github.com/fphammerle/python-cc1101/compare/v2.7.2...v2.7.3 [2.7.2]: https://github.com/fphammerle/python-cc1101/compare/v2.7.1...v2.7.2 [2.7.1]: https://github.com/fphammerle/python-cc1101/compare/v2.7.0...v2.7.1 [2.7.0]: https://github.com/fphammerle/python-cc1101/compare/v2.6.1...v2.7.0 [2.6.1]: https://github.com/fphammerle/python-cc1101/compare/v2.6.0...v2.6.1 [2.6.0]: https://github.com/fphammerle/python-cc1101/compare/v2.5.0...v2.6.0 [2.5.0]: https://github.com/fphammerle/python-cc1101/compare/v2.4.0...v2.5.0 [2.4.0]: https://github.com/fphammerle/python-cc1101/compare/v2.3.0...v2.4.0 [2.3.0]: https://github.com/fphammerle/python-cc1101/compare/v2.2.0...v2.3.0 [2.2.0]: https://github.com/fphammerle/python-cc1101/compare/v2.1.0...v2.2.0 [2.1.0]: https://github.com/fphammerle/python-cc1101/compare/v2.0.0...v2.1.0 [2.0.0]: https://github.com/fphammerle/python-cc1101/compare/v1.2.0...v2.0.0 [1.2.0]: https://github.com/fphammerle/python-cc1101/compare/v1.1.0...v1.2.0 [1.1.0]: https://github.com/fphammerle/python-cc1101/compare/v1.0.0...v1.1.0 [1.0.0]: https://github.com/fphammerle/python-cc1101/releases/tag/v1.0.0 [issue-128]: https://github.com/fphammerle/python-cc1101/issues/128