Files
roro9stack/site/content/howto/sd-files.md
T
twislaandClaude Opus 5.5 6b71aace4f
CI / build (pull_request) Successful in 2m22s
Site / build (pull_request) Successful in 10s
SSH client: a terminal on another machine (#2)
The SSH App opens one session to a shell, over libssh (LibSSH-ESP32 5.10.0)
on mbedTLS. A server is trusted the first time on its fingerprint, and a
changed key is a warning with Cancel selected. The password is typed each
time and kept nowhere; or the device makes itself an Ed25519 key, whose
public half is shown, written to /ssh/id_ed25519.pub and printed by
`ssh status`.

lib/term is the terminal: what a shell, less, top, nano and vim send, with
sixteen colours, scroll regions, the alternate screen and 100 lines of
scrollback. Five text sizes with Ctrl and + or -, from 60x20 to 26x8, told
to the far end. The session goes on when the App is left; SSH shows in the
Status Bar. `ssh user@host` in the Shell opens the App.

Also:
- Keys that aren't characters carry Shift, Ctrl and Alt. The terminal needs
  it, and it makes Ctrl+Fn+up/down in a note and Shift+Tab in Gemini work
  from the real keyboard.
- IRC doesn't try to connect under 60 KB free: started with a session open,
  its TLS handshake took the heap down to 236 bytes.
- libssh's own curve25519 is left out of the build (scripts/libssh_filter.py):
  libsodium's has the same names.

Costs 292 KB of flash and about 50 KB of heap while a session is open; not
started under 75 KB free.

Docs: guide page, how-to, FAQ, home page, Status Bar, SD card folders, the
memory how-to, README, glossary, N1 notes with Q254 to Q266 and the checks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EhqxQ49eCju4CzKYNjZzwT
2026-10-08 04:38:36 +02:00

32 lines
2.1 KiB
Markdown

+++
title = "Find your files on the SD card"
description = "Where the notes, tracks, captures, logs and saved pages are written, so you can take the card to a computer and use them."
weight = 2
[extra]
tag = "SD card"
+++
Everything the firmware writes goes in a folder at the top of the card. To get at it: look at the folders in the [Storage App](/guide/storage/); or [open the card in your phone's browser](/howto/phone-files/), with nothing to install; or switch the Cardputer off, take the card out and read it in a computer.
| What | Where | Kind of file |
|---|---|---|
| Notes | `/notes` | `.txt`, named after the first line |
| GNSS Tracks | `/gnss/tracks` | `.gpx`, named by date and time |
| LoRa captures | `/captures/lora` | `.pcap` |
| IRC logs | `/irc` | one text file per buffer and day |
| Wi-Fi scan logs | `/wifi/scans` | `<date>.csv` |
| Gemini Saved Pages | `/gemini/saved/<host>/…` | `.gmi` |
| Gemini bookmarks | `/gemini/bookmarks.gmi` | gemtext |
| Files saved from Gemini that are not text | `/gemini/downloads` | whatever they were |
| Update files | `/updates` | `.ota` |
| [Screenshots](/howto/screenshot/) (<kbd>Fn</kbd> + <kbd>p</kbd>) | `/screenshots` | `.png`, named by date and time |
| The public half of the device's [SSH key](/guide/ssh/#without-a-password-this-device-s-key) | `/ssh/id_ed25519.pub` | one line, for a server's `authorized_keys`; safe to copy anywhere |
| A VPN configuration waiting to be imported | `/vpn/wg0.conf` | you put it there; delete it once imported |
## Rules worth knowing
- **Eject first.** A file being written (today's IRC log, a Track or a capture being recorded) is not complete until it stops. Stop it, or switch the device off, before you take the card out.
- **Notes are yours.** You can edit them on a computer and they show up on the device; the clean-up never offers them for deletion.
- **Don't rename the top-level folders.** The firmware looks for them by name.
- **Logs stop at 90% full,** so the remaining space is kept for captures. The [Storage App](/guide/storage/)'s Maintenance shows what is using the card and clears old logs and captures, after showing what it would free.