Flash Memory Guide

Estimated time to complete: 8 minutes

This guide explains the role and structure of flash memory on the OBC (On-Board Computer) board. Flash memory is used to store housekeeping (HK) and mission data from various subsystems, which can later be downlinked to the Ground Station. Communication between the OBC and these memories is handled via SPI.


Overview of Flash Memory Usage

Flash memories are shared between the OBC and peripheral subsystems. These are non-volatile memories used for storing telemetry, payload data, configuration states, and communication-related logs.

  • Communication Interface: SPI
  • Memory Sector Size: 64 kB
  • Main Partitions:
    • Main FM: Primary flash for core OBC operations
    • Shared Mission FM: Shared by all mission subsystems
    • Shared COM FM: Shared for communication subsystem needs

Flash Memory Map Summary

Below is the memory allocation template. Each row describes a type of data, its address range, and the sectors it occupies:

Data Type Address Range Sectors Size (kB) Used In
SAT_Log 0x00000000 - 0x00170000 0–23 1536 Main FM, COM FM
Reset_HK 0x00190000 - 0x01850000 25–389 23360 Main FM
Address Location 0x01870000 391 64 Main FM
Address Data 0x01880000 - 0x018A0000 392–394 192 Main FM
Flag Data 0x018B0000 395 64 Main FM
RSV_Data 0x018C0000 - 0x01900000 396–400 320 Main FM
FAB_HK 0x01910000 - 0x02BC0000 401–700 19200 Main FM
FAB_CW 0x02BD0000 - 0x02EE0000 701–750 3200 Main FM
Mission STATUS 0x02EF0000 - 0x03200000 751–800 3200 Shared Mission FM
PMSN APRS Data 0x03210000 - 0x03840000 801–900 6400 Main FM, Shared COM FM
I-C Data 0x03850000 - 0x03E80000 901–1000 6400 Shared Mission FM
RMSN CAM Thumbnails 0x03E90000 - 0x041A0000 1001–1050 3200 Shared Mission FM
RMSN CAM Images 0x041B0000 - 0x044C0000 1051–1100 3200 Main FM, Shared COM FM
TUM Payload Data 0x044D0000 - 0x04B00000 1101–1200 6400 Main FM, Shared COM FM
ADCS Data 0x04B10000 - 0x05140000 1201–1300 6400 Main FM
TLE (GPS) Data 0x05150000 - 0x05460000 1301–1350 3200 Main FM, Shared COM FM

Key Notes

  • Address Location stores the starting address of data logs; this address is updated on boot and overwrites old data.
  • Address Data contains structured metadata (e.g., flag and HK addresses) used by the OBC firmware.
  • Flag and RSV Data are used for system state management and reserved operations.
  • Mission Subsystems (like Paraguay, Moldova, and Rwanda missions) store their payload data in designated shared areas.
  • ADCS & GPS store telemetry relevant to satellite orientation and positioning.

Best Practices

  • Avoid Overwriting: Some memory areas (e.g., Address Data, Flag Data) overwrite older content—ensure your firmware handles this safely.
  • Mission Isolation: When allocating new memory for a mission, ensure no overlap with existing sectors.
  • Clear Sector Mapping: Always update the sector map and inform team members of changes to avoid conflicts.

Visualization

Below is an example memory map diagram :

pie title Flash Memory Allocation (by sector count)
    "SAT_Log [1536kB]" : 24
    "Reset_HK [23360kB]" : 365
    "Address Data location [64kB]" : 1
    "Address Data [192kB]" : 3
    "Flag Data [64kB]" : 1
    "RSV_Data [320kB]" : 5
    "FAB_HK [19200kB]" : 300
    "FAB_CW [3200kB]" : 50
    "Mission STATUS [3200kB]" : 50
    "PMSN APRS payload data [6400kB]" : 100
    "I-C [6400kB]" : 100
    "RMSN CAM Thumb [3200kB]" : 50
    "RMSN CAM IMG [3200kB]" : 50
    "TUM payload data [6400kB]" : 100
    "ADCS [6400kB]" : 100
    "TLE [3200kB]" : 50