SpaceTeam / STS1_COBC_SW

Software for the communication and onboard computer (COBC) of SpaceTeamSat1 (STS1)
MIT License
10 stars 2 forks source link

Implement telemetry memory #179

Open PatrickKa opened 11 months ago

PatrickKa commented 11 months ago

Description

The telemetry memory is a ring buffer on the FRAM that stores the telemetry data of the last few weeks. I am not sure about the exact amount of time, but basically we use as much of the FRAM as possible.

The telemetry memory needs to support the following operations:

PatrickKa commented 11 months ago

Blocked by #185 and #192

PatrickKa commented 10 months ago

The EDU program status history is also a ring buffer stored on the FRAM, so I guess it makes sense to implement a general ring buffer abstraction for the FRAM (see #204).

Edit: Implementing a general FRAM ring array is now tracked separatly in #323.

PatrickKa commented 10 months ago

I think it would be good if we employed some form of error detection and correction (EDAC) for the telemetry memory. Hamming or Reed–Solomon codes are the first that come to mind, but there are many more options to choose from.

PatrickKa commented 10 months ago

Also blocked by #207 because we need tests.

PatrickKa commented 7 months ago

Blocked by #239 We will not implement #239 now due to a lack of resources. Maybe we'll come back to it later.

PatrickKa commented 5 months ago

As explained in #294, we need a fallback mechanism in case the FRAM does not work. This means that the Telemetry Memory needs to be cached in RAM (with a smaller size, though). If the FRAM works, records are read from and written to it. Records are also always written to the cache, but only when the FRAM doesn't work are they also read from the cache.

PatrickKa commented 1 month ago

Blocked by #323