Files

48 lines
1.9 KiB
Markdown

# 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
- `DisplayManager``init()`, `update()`, `setBrightness()`, `getTouchCoordinates()`
- `SD_MMC``setPins(clk=6, cmd=5, d0=7)`, `begin("/sdcard", 1)` (1-bit mode)
- `SimpleFTPServer``FtpServer 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