1.7.0 - 2025-06-05
==================

**Fixed:**

- Reject string property setting when value is not zero-terminated.
- Reject partial setting of binary properties.

**Changed:**

- Minimum symbol rate changed from 100 kBd to 10 kBd.
- AFC pull-in range increased from 15 kHz to 100 kHz. For symbol rates <100 kBd,
  the maximum pull-in range is equal to the symbol rate.

1.6.1 - 2024-06-11
==================

**Fixed:**

- Fix Ethernet transmission issue introduced in v1.6.0.

1.6.0 - 2024-03-25
==================

**Fixed:**

- Fix potential reboot for uplink frames with corrupt spacelink header length.
- Fix delayed closing FEND output for 512 byte KISS/RS-422 frame transmissions.

**Changed:**

- Internal code changes to improve robustness and reduce binary image size. The
  changes do not affect any external APIs and do not require any action from
  the end user.

**Added:**

- Add ``rx.local.drop`` property. When set to ``true``, the SRS-4 will drop all
  incoming CSP and IP frames on the spacelink interface destined to the radio
  itself. With this setting enabled, the SRS-4 can only be configured via the
  CAN and RS422 interfaces and will only forward traffic between the spacelink
  and the CSP and IP interfaces.

1.5.0 - 2022-07-15
==================

**Changed:**

- Use ``sys.csp.routes`` as the full CSP routing table instead of an amendment
  to the firmware defaults. The property default value has been changed from
  the empty string (no amendment) to ``0/0 CAN,10/5 SPACE``, which matches the
  previous firmware default routing table. This change removes the need to
  override the firmware ``10/5 SPACE`` route explicitly, when address 10 is not
  a spacelink address. Configurations that relied on the the implicit routing
  of address 10 to the spacelink interface must now explicitly add the route.

**Added:**

- Add ``tx.allow.always`` and ``tx.allow.time`` properties. See documentation
  for *Transmit Allow Timer* for a description of their use. The default
  settings maintain the behavior of previous firmware releases.

1.4.1 - 2021-08-02
==================

**Fixed:**

- Fix unlikely deadlock and subsequent WDT restart when resetting GWDT through
  telecommand.

1.4.0 - 2021-04-16
==================

**Fixed:**

- Frame sizes that resulted in an Reed-Solomon block length for the last block
  that differed by 2 or more bytes from the others were not interleaved
  correctly. This issue did not affect frames up to 446 RS bytes (interleaving
  depth 1 or 2) nor frame sizes that were a multiple of, or 1 byte less than a
  multiple of, the interleaving depth. All frame sizes that followed CCSDS
  131.0-B-3 were handled correctly.
- Fix occasional IP stack buffer corruption on high load that could lead to
  spurious reboots of the system.

**Changed:**

- Changed minimum values for ``tx.size`` and ``rx.size`` to 187 bytes. The size
  is chosen such that a minimum size frame with all link layer features will
  fit in a single RS block.

**Added:**

- Offload Reed-Solomon encoding to FPGA for much higher encoding performance.
  Reed-Solomon encoding can now be enabled for all transmit modulation types
  and symbol rates.

1.3.0 - 2021-03-24
==================

**Fixed:**

- Fix spurious receive RS422/KISS CRC frame errors on high load.

**Added:**

- Add verification of alternate image before executing it. The primary and
  alternate images can be verified using the ``sl_srs4_bootloader_verify``
  function via CSP and using the ``srs4 boot verify`` debug command.
- Add ``srs4 gwdt`` client wrapper commands for reading and resetting the GWDT.
- Add ``srs4 run`` client command for running debug shell commands remotely.
- Add software client documentation in ``doc`` directory.
- Add ``btp-client`` library to client tarball.

1.2.1 - 2021-03-02
==================

**Fixed:**

- Fix occasional Ethernet PHY initialization errors.

1.2.0 - 2021-01-25
==================

**Fixed:**

- Fix uplink and downlink when authentication is enabled but encryption is
  disabled (GMAC mode).

**Changed:**

- Additional improvements to receiver performance at low Eb/N0 and low symbol
  rates.
- Limited AFC range to 15 kHz for improved locking reliability.

**Added:**

- Added ``rx.ebn0`` property to read back estimated receiver Eb/N0.
- Added support for RS422 rates up to 12.5 Mbaud. Note that the achievable
  rates due to divider limitations is very limited above 5 Mbaud.

1.1.0 - 2020-09-08
==================

**Fixed:**

- Fix occasional RX task reinitialization warnings when configuring multiple
  properties in quick succession.
- Fix missing receiver reinitialization when modulation type changed.

**Changed:**

- Significantly improved receiver demodulator performance and lock time,
  especially for symbol rates below ~1 Mbaud.

**Added:**

- Added support for uplink/receiver convolutional coding, which can be enabled
  with the ``rx.cc`` property. Convolutional coding is enabled by default.
- Added receive AFC that can be enabled with the ``rx.afc.enable`` property.
  The allowed compensation range can be adjusted with the ``rx.afc.range``
  property. The AFC is enabled by default.
- Added ``tx.pa.templimit`` property for PA temperature limit. The transmitter
  will stop transmitting if the ``tm.temp.pa`` sensor value exceeds this limit.
  Set the limit to 255 to disable the check and always transmit.
- Added preliminary Ethernet/IP support. Enable using the ``sys.net.enable``
  property.

1.0.0 - 2020-07-31
==================

**Added:**

- First released version.
