Files
cute-handshake-capture/handshake-capture-c6/SD_Card.cpp
drjones 804e71e175 handshake-capture-c6: production SD gating (SD_IsReady), v1.0.1
- Gate capture on SD_IsReady() after successful SD_Init; avoid false
  'insert SD' when SD.cardType() lies after WiFi on shared SPI with LCD
- SD_Init: LCD CS high, SD.end() on empty card; HandshakeCapture save path
  retries SD_Init before discard
- FAT filename sanitize, discard deadlocks, WPA3 scan labels, docs (README,
  PRODUCTION, IMPROVEMENTS), firmware version 1.0.1

Made-with: Cursor
2026-03-21 01:12:12 -07:00

31 lines
654 B
C++

#include "SD_Card.h"
#include "Display_ST7789.h"
uint16_t SDCard_Size = 0;
static bool g_sd_ready = false;
bool SD_IsReady() {
return g_sd_ready;
}
bool SD_Init() {
g_sd_ready = false;
pinMode(SD_CS, OUTPUT);
digitalWrite(SD_CS, HIGH);
// Shared SPI with ST7789: ensure display CS idle so SD sees a clean bus.
digitalWrite(EXAMPLE_PIN_NUM_LCD_CS, HIGH);
if (!SD.begin(SD_CS, SPI)) {
Serial.println("SD init failed");
return false;
}
if (SD.cardType() == CARD_NONE) {
Serial.println("No SD card");
SD.end();
return false;
}
g_sd_ready = true;
SDCard_Size = SD.totalBytes() / (1024 * 1024);
return true;
}