Help with reducing RAM Usage and implementing TLS Co-Processor on nRF9161

Dear,

We are currently developing a communication board for a client that uploads large images (~1MB) to the cloud via local and remote interfaces, and we've encountered some RAM limitations with the nRF series.

Context:

Our custom board uses the following components:

  • nRF5340 for BLE and WiFi communication
  • nRF9161 for LTE communication
  • W5500 for Ethernet (connected to nRF9161 over SPI)

The nRF5340 and nRF9161 communicate via UART, and both run Zephyr OS with all peripherals currently in use. Here's a breakdown of the functionality:

  • nRF5340 operates as a local connectivity platform, running as a WiFi Access Point configurable over BLE. We’ve implemented a custom HTTP server for device configuration and large data retrieval (>1MB).
  • nRF9161 acts as the remote platform, running an LwM2M client (for device management) and an HTTP(S) client that uploads large data files (e.g., >1MB every 5 minutes) to an S3 bucket via LTE or Ethernet. The system automatically switches between LTE and Ethernet based on cable detection.

The issue:

When using LTE, we offload the connectivity/security stacks (MBEDTLS + Credentials) to the modem. However, since we also support Ethernet, we need these stacks to run locally, leading to heavy RAM usage. We already tried several code optimizations by looking into the RAM report, but we’re still at 99.8% of RAM utilization, leaving no room for future developments.

Request for Help:

We’re exploring options to reduce RAM usage or increase available memory. Specifically, we're considering TLS co-processors (such as ATECC608B). Given our tight timeline, we’d like to know if this has been done before and if there are resources to help us get started? Any additional suggestions to solve our problem would also be greatly appreciated.

Thank you for your support. 

Best regards,
Henrico Brom

Related