Files
RadioPhotonic_PCB_software/Examples/SD_Card/README.md
2026-04-24 16:51:15 +03:00

2.5 KiB

SD card example layout

Firmware expects a plain FAT volume handled by FatFs. In this project exFAT is disabled in ffconf.h, so the safe choice is FAT32 with a standard MBR partition.

Recommended card preparation:

  1. Format the card as FAT32.
  2. Copy the files from this directory to the root of the SD card, or keep the same relative folder structure.
  3. Make sure profiles.csv is present at the root path expected by the firmware.

Expected file set:

  • profiles.csv
  • profiles/profile_1_saw.ini
  • profiles/profile_2_custom_wave.ini
  • waves/wave_custom.csv

profiles.csv format:

  • One profile per line.
  • Columns: display_name, profile_ini_path, optional_waveform_csv_path
  • Empty lines are ignored.
  • Lines starting with # or ; are ignored.

Example:

Factory Saw,profiles/profile_1_saw.ini,
Custom SRAM,profiles/profile_2_custom_wave.ini,waves/wave_custom.csv

Profile .ini format:

  • One key=value pair per line.
  • Empty lines are ignored.
  • Lines starting with # or ; are ignored.
  • Unknown keys are ignored.

Additional profile-controlled devices:

  • AD9102 waveform settings are stored through the waveform_* keys.
  • AD9833 settings are stored through ad9833_enable, ad9833_triangle, and ad9833_frequency_word.
  • STM32 internal DAC settings are stored through stm32_dac_enable and stm32_dac_code.
  • DS1809 is stored as an absolute target above the minimum tap using ds1809_apply and ds1809_position_from_min.

Notes:

  • ad9833_frequency_word uses the same raw 28-bit tuning word that the old serial command accepted.
  • ds1809_position_from_min is clamped to the valid 0..63 range by the firmware.
  • When ds1809_apply=true, the firmware first drives the potentiometer fully down and then steps it up to the requested absolute position.

Waveform file format:

  • The firmware scans the file with strtol().
  • Any integer token found in the file becomes one AD9102 SRAM sample.
  • Separators may be commas, spaces, tabs, or newlines.
  • Do not put comments or stray digits into the waveform file, because any parsed integer will be treated as a sample.

Supported waveform_mode values:

  • saw
  • generated_sram
  • custom_sram

Minimal boot behavior:

  • On startup the firmware loads the first valid line from profiles.csv.
  • It then loads the referenced profile .ini.
  • If boot_enabled=true, the profile is activated.
  • If auto_run=true, the board immediately enters WORK mode.