Skip to content

Version 2.4.0

Latest

Choose a tag to compare

@chrishamm chrishamm released this 28 Jul 14:56

This release contains the following changes since 2.3.0:

  • Added TLS server support on ESP32, ESP32-C3 and ESP32-S3 modules so that RepRapFirmware can serve HTTPS and other protocols over TLS
  • Added new commands to store a PEM-encoded certificate and private key on the WiFi module, to enable TLS and to erase the stored credentials again; they are kept on the data partition and survive reboots
  • Added a flag to the listen command that marks a listener as TLS-wrapped
  • Restricted TLS to version 1.2 with ECDHE-ECDSA ciphersuites, TLS 1.0 and 1.1 as well as unused key exchanges and elliptic curves are no longer compiled in
  • TLS is not available on the ESP8266 module because a single handshake needs more heap than the module has available
  • Changed the priorities of all firmware tasks to run below the lwIP TCP/IP thread, so that SPI transfers take precedence over crypto operations in progress
  • Network tasks are pinned to the first core and the main task to the second one on dual-core modules
  • Increased the main task and TCP listener stack sizes for TLS operations and enabled hardware stack overflow detection
  • M122 reports the remaining stack of every task
  • Bug fix: The saved sdkconfig could become stale when running make, so builds could pick up outdated SDK settings

TLS support requires RepRapFirmware 3.7 or later, which adds the T parameter to M552 and M586. Older versions are unaffected and remain compatible.