Changelog

2.4.0 - 2021-04-26

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.

Changed:

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

2.3.0 - 2021-03-24

Fixed:

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

Changed:

  • Support asynchronous establishment of Ethernet link and allow the Ethernet to be enabled/disabled at runtime using the sys.net.enable property. The remote host is no longer required to have an active link when Ethernet is enabled.

  • Remove the conf.power.eth property. The power for the Ethernet PHY is now controlled automatically by the sys.net.enable property.

Added:

  • Add support for on-orbit firmware update. See doc/doc/fwupdate.html.

2.2.1 - 2020-11-24

Fixed:

  • Fix incorrect applied ALC gain with ALC limit >700 and low Pout setting.

2.2.0 - 2020-10-14

Fixed:

  • Do not spuriously enable RS422 driver on boot.

  • Support 256 bytes CSP frames on KISS interface in default configuration.

Added:

  • Add support for increasing the CSP MTU beyond 256 bytes using the sys.csp.mtu property. See doc/csp.rst for additional documentation.

2.1.0 - 2020-01-30

Fixed:

  • Avoid head-of-line blocking of the CSP router task when waiting for spacelink frames queue to drain.

  • Remove unnecessary double PLL retune when changing TX parameters with idle enabled.

Changed:

  • Remove unused boot debug command.

  • Only increase tx.frames for non-idle frames.

2.0.1 - 2020-01-16

Fixed:

  • Fix occasional TX task lockups when reconfiguring RX with idle frames enabled.

2.0.0 - 2019-12-19

Fixed:

  • Fix occasional erroneous initialization of VREG and 3V3 rails current/power measurements.

  • Fix tx.size and rx.size properties max values to match actual limit of 1024 bytes.

  • Improved modulation accuracy for lower transmit bitrates.

Changed:

  • Frame format change! The spacelink frame now includes the ASM in the convolutionally coded data.

  • Frame format change! The Reed-Solomon blocks are now interleaved according to CCSDS 131.0-B-3 but allow frame sizes that do divide evenly in the interleaving depth. In that case, that last block has 1 to I-1 additional virtual fill bytes. The interleaving depth (1-5) is automatically calculated from the configured frame sizes.

  • Removed the tm.temp.core property since the junction temperature readings were not reliable. The tm.temp.mcu property should be used instead.

  • Add multidrop UART support using the sys.uart.multidrop property. If set to true, the system will only drive the differential transmit pair when actively transmitting.

Added:

  • Add support for sending idle frames when there is no data frames to transmit. tx.idleframes (default 0) idle frames will be transmitted after each data frame to aid receiver synchronization. Any data frames queued for transmission while sending idle frames take priority and resets the idle counter to tx.idleframes. Idle frames consists of all-zero data but with FEC and CRC applied.

  • Add support for configurable preamble/midamble/postamble lengths using the tx.preamble, tx.midamble, and tx.postamble properties. The training patterns can be modified from the default alternating bits to a PRBS-9 sequence if the tx.traintype is set to 1. If convolutional coding is enabled, the PRBS-9 sequence is convolutionally coded.

  • Add support for authenticated encryption using AES-256-GCM. The tx.crypto.* and rx.crypto.* properties are used for configuration. See doc/crypto.rst for documentation.

  • Add support for a optional 16 bit satellite ID to be transmitted and used for reception filtering. The ID is configured using the tx.id and rx.id properties. The default value is 0 which corresponds to no ID.

1.4.1 - 2019-05-28

Fixed:

  • Fix spectral artifacts in output when transmissions ends introduced in v1.4.0.

1.4.0 - 2019-05-24

Fixed:

  • Fix CAN bitrates below 1000 kbps using the sys.can.rate property. The supported rates are 1000, 500, 250, 125, 100, 83.3, and 50 kbps.

  • Fix error handling when calling prop commands without a group argument or with flags specified after the group.

Changed:

  • Renamed the trace print command to trace mask.

Added:

  • Add support for runtime configuration of transmit and receive bitrates through the tx.rate and rx.rate properties.

  • Add support for runtime configuration of receive bandwidth as a percentage of the receive bitrate using the rx.bw property. The default of 150% matches previous firmware versions.

  • Add sys.can.promisc property to select between CSP CAN/CFP promiscuous or masked mode. The default is true which enables promiscuous mode as in previous firmware versions.

1.3.0 - 2019-03-19

Changed:

  • Improved ALC first burst value.

1.2.0 - 2018-10-23

Changed:

  • Renamed sys.rs422.rate to sys.uart.rate. The property ID and type are unchanged, so existing code will work without modifications.

Added:

  • Added IP stack properties in sys group. See doc/ip.rst for documentation.

1.1.0 - 2018-09-07

Fixed:

  • Fix lost TM sensor samples under high-load.

Changed:

  • Use BT=0.50 as default. The BT can now be changed between 0.3 and 0.6 in 0.05 steps with the tx.bt property.

  • Framing format: Add header support for multiplexed IP and CSP packets.

  • Framing format: Use CCSDS convolutional code polynomials and dual-basis Reed-Solomon.

  • Use CAN as default route instead of RS422/KISS.

  • Enable internal MCU watchdog.

Added:

  • Add ALC loop. Configurable through the tx.alc.* properties. Enabled by default.

  • Add calibration properties for VCOs, power sensors and coretemp.

  • Add periodic PLL retune every 2 minutes for TX and every 10 minutes for RX.

  • Add ground watchdog timer (GWDT) to reset system after 24 hours if not reset. The timeout period is configurable through the sys.gwdt.init value.

  • Add rx.detected counter for detected frames. This is increased for each frame, even if FEC decode fails.

  • Show property state (default, loaded, modified) and flags (no-store, read-only) when listing.

  • Add remote shell debug service to execute slash commands via CSP.

  • Add sys.name property to set system hostname in CSP ident and prompt.

1.0.0 - 2018-07-06

Added:

  • First released version.