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
4.6 KiB
+++ title = "The basics" description = "The keys, the Launcher, the Status Bar and what happens the first time you switch the device on." weight = 1 [extra] tag = "Start here" screens = ["help.png"] +++
One key to remember
Fn + h, on any screen, lists the keys that work there. No screen names its keys: that key does. It works everywhere, in a text field too, and ? does the same whenever you are not typing. The arrows scroll the list; any other key closes it.
The list is for the screen you are on: in Storage it is the file keys, in a dialog it is the dialog's, in a text field it is the editing keys. Each list ends with the keys that work everywhere.
If you only read one paragraph of this guide, this was it.
The keys
The Cardputer's keyboard has no arrow keys and no Escape, so the firmware gives a few keys a second job:
| Key | Does |
|---|---|
| Enter | Opens or confirms the selected item |
| ` | Back: one step out of a screen, and out of an App |
| Fn + ` | Home: back to the Launcher |
| Fn + ; . , / | The arrows: up, down, left, right |
| ; . , / alone | The same arrows, as long as you are not typing text |
| Fn + h, or ? when not typing | Help: the keys of the screen you are on |
| Fn + p | A screenshot: the screen as it is, saved as a picture in /screenshots on the SD card |
| Tab | Switches view in an App that has more than one |
| Del | Deletes backwards when you type |
| opt then an accent, then a letter | Types an accented letter: opt ' e gives é |
While you type text (a note, an IRC line, a setting), ; . , / type their own characters and you need Fn for the arrows. The Status Bar shows opt while a compose is waiting for its letter.
The Launcher
The home screen lists the Apps. Move with the arrows, open one with Enter. Back inside an App returns here.
The Status Bar
A strip at the top of every screen: the name of the App on the left, and on the right, from the edge inwards:
| Shows | Means |
|---|---|
| the time | The clock, once Wi-Fi or a GNSS fix has set it |
[3] |
Unread IRC messages that mention you, or private ones |
97% |
The battery (in the warning colour at 15% and under) |
SD |
A card is in; the warning colour at 80% full |
bars and W |
Wi-Fi connected, with its signal; W? is searching; MON is the Wi-Fi radio in its monitoring mode, which pauses IRC |
SSH |
An SSH session is open, whatever App is in front |
VPN |
The WireGuard tunnel is wanted; brighter once the server has answered |
DBG |
The Debug Console is switched on (Settings → Debug Console); brighter while a PC is connected to it |
REC |
A GNSS Track is being recorded |
CAP |
A LoRa capture is being recorded |
L |
The radio is listening; it lights up for a moment on each packet. SW while a Sweep runs |
G or G12 |
The GNSS receiver is searching (G, dim), has a 2D fix (G), or has a 3D fix with that many satellites (G12) |
Toasts
News from a background service (an IRC mention, a Storage warning, an update that is out) shows as a short message over whatever App is open, and can beep and flash the LED. Sound & LED in Settings turns that off.
The first start
On a new device a short Setup asks four things, then never appears again. It also tells you about Fn + h, twice, and it is the only part of the firmware that names keys on the screen:
- Long name, up to 39 bytes.
- Short name, up to 4 characters.
- Radio region. Nothing will transmit until you confirm yours. EU868 is the supported region.
- Timezone.
The SD card
Put a microSD card in the Cardputer. Without one the radio, GNSS, Wi-Fi and IRC still work, but nothing can be saved: no notes, IRC logs, Wi-Fi scan logs, GPX tracks, LoRa captures, screenshots or saved Gemini pages. The Storage App shows what is on the card.
The firmware keeps its own folders at the top of the card (captures, gemini, gnss, irc, notes, screenshots, updates, wifi). You can use the card in a computer too, but those names are the firmware's.
The keys, as the device lists them
What Fn + h shows on these screens. These tables are generated from the firmware's own lists, so they are always the current ones.
{{ keys(scopes=["launcher", "everywhere", "dialog", "text"]) }}