Files
KodeDot-FTP-Explorer/AGENT.md
T

1.9 KiB

KodeDot FTP Explorer — Agent Memory

Project Overview

FTP server for Kode Dot (ESP32-S3) that serves the microSD card over Wi-Fi.
Reads Wi-Fi credentials from SD:/Wi-Fi.json, syncs time via NTP (Vienna), displays status on AMOLED via LVGL.

Hardware

Feature Detail
MCU ESP32-S3, 240 MHz dual-core, 32 MB flash, 8 MB PSRAM
Display AMOLED 2.13" 410x502 (CO5300 QSPI + CST820 I2C touch)
SD Card SDMMC 1-bit: CMD=GPIO5, CLK=GPIO6, D0=GPIO7, CD=EXP14
IO Exp TCA9555 @ 0x20 (buttons, SD detect, interrupts)
LED NeoPixel GPIO4 (1 LED, GRB 800 kHz)
Partition App at 0x400000 (8 MB). KodeOS bootloader below — DO NOT TOUCH
Port COM10

Key APIs

  • DisplayManagerinit(), update(), setBrightness(), getTouchCoordinates()
  • SD_MMCsetPins(clk=6, cmd=5, d0=7), begin("/sdcard", 1) (1-bit mode)
  • SimpleFTPServerFtpServer ftpSrv; ftpSrv.begin("user","pass"); ftpSrv.handleFTP();
  • ArduinoJson — parse [{"ssid":"...","pass":"..."}] from SD
  • NTP — configTzTime("CET-1CEST,M3.5.0,M10.5.0/3", "pool.ntp.org")

Build Notes

  • Build flag -DDEFAULT_STORAGE_TYPE_ESP32=STORAGE_SD_MMC overrides FtpServerKey.h
  • Flash: esptool --chip esp32s3 ... write-flash 0x400000 <bin> (preserves bootloader)
  • Upload speed: 460800 baud

Git Remote

  • Host: git.lago.dev
  • Repo: KodeDot-FTP-Explorer
  • Auth: service key token

Findings & Notes

  • SimpleFTPServer v3.0.2 supports SD_MMC on ESP32, passive mode, single session
  • SFTP not feasible on ESP32 (crypto overhead too high)
  • Vienna timezone string: CET-1CEST,M3.5.0,M10.5.0/3
  • FTP credentials: kode/kode
  • SD card uses SD_MMC.begin("/sdcard", 1) — the 1 means 1-bit bus width
  • LVGL v8.3.x API (not v9) — uses lv_disp_drv_t, lv_label_create, etc.

Status

  • Phase 1: Project setup & git
  • Phase 2: Backend (Wi-Fi + SD + FTP + NTP)
  • Phase 3: Frontend (LVGL UI)
  • Phase 4: Integration & polish