Skip to content

[FEATURE] Buffer File Uplink #295

@Mikefly123

Description

@Mikefly123

Short summary

Buffer File Uplink in NOR Flash or PSRAM Rather Than Direct to SD Card

Motivation and user story

Right now we are limited on all communication buses to uplinking files at no faster than one 204 byte chunk every 400ms. We believe this is due to approximately 300ms of blocking activities in the SD Card interface (where the filesystem currently lives) whenever we receive an uplink packet and then attempt to write it into the filesystem.

By implementing a buffer in a different type of memory we can potentially stream data up to the satellite much faster! Allowing us to condense our over the air update CONOPS.

Proposed implementation

There are two other locations on the V5x Flight Controller Board where we might be able to store file chunks: the PSRAM and the NOR Flash both of these chips are connected via QSPI.

The NOR Flash is where we are current store all of our flight code partitions. There are currently 128 Megabits of storage available on the NOR Flash with about 75% current used for code partitions. The NOR Flash is also non-volatile, meaning that any data buffered here will persist past reboots.

The PSRAM chip is not implemented in Zephyr, but is supported in CircuitPython and the PicoSDK as general purpose heap memory. The PSRAM Chip that comes default with the Flight Controller Board is a module with 16 Megabits of storage. The PSRAM is volatile, meaning that a reboot will dump all of the data inside it!

The largest file that we are interested in buffering at the moment is a software image at around 8 Megabits (1 Megabyte) of size.

Priority

Medium

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Status

    New Features

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions