• @TODO(add demo that streams WAV <- this already exists in Advanced )
  • @TODO(add demo that loads WAV)

KLST_PANDA features a micro SDCard reader ( see Technical Specifications ):

  • ⑫ :: SDCard reader
bool     sdcard_init();
bool     sdcard_reinit();
bool     sdcard_deinit();
bool     sdcard_detected();
bool     sdcard_status();
bool     sdcard_mount();
bool     sdcard_unmount();
bool     sdcard_format(uint8_t format);
bool     sdcard_list(std::string path, std::vector<std::string>& files, std::vector<std::string>& directories, bool show_hidden_files);
bool     sdcard_file_open(std::string filepath, uint8_t flags);
uint32_t sdcard_file_write(uint8_t* bytes, uint32_t bytes_to_write);
uint32_t sdcard_file_read(uint8_t* bytes, uint32_t bytes_to_read);
bool     sdcard_file_close();
bool     sdcard_file_create(const std::string filename);
bool     sdcard_file_seek(uint32_t position);
bool     sdcard_file_eof();
bool     sdcard_file_attributes(const std::string filename);

Example SDCard

/**
 * this example demonstrates how to use an SD card.
*/

#include "Arduino.h"
#include "System.h"
#include "Console.h"
#include "SDCard.h"

void setup() {
    system_init();
    console_init();
    sdcard_init();

    sdcard_status();

    if (sdcard_detected()) {
        sdcard_mount();
        sdcard_file_create("KLST.TXT");
        uint8_t buffer[26] = "KLST writing to SD card!\n";
        sdcard_file_write(buffer, 26);
        sdcard_file_close();
        sdcard_unmount();
    }
}

void loop() {
    if (sdcard_detected()) {
        sdcard_mount();
        std::vector<std::string> files;
        std::vector<std::string> directories;
        sdcard_list("", files, directories);
        console_println("SD card detected");
        console_println("Files      : %i", files.size());
        for (std::string file: files) {
            console_println("             %s", file.c_str());
        }
        console_println("Directories: %i", directories.size());
        for (std::string directory: directories) {
            console_println("             %s", directory.c_str());
        }
        console_println("...");
        sdcard_unmount();
    } else {
        console_println("SD card not detected");
    }
    delay(1000);
}