Files
roro9stack/site/content/guide/basics.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

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:

  1. Long name, up to 39 bytes.
  2. Short name, up to 4 characters.
  3. Radio region. Nothing will transmit until you confirm yours. EU868 is the supported region.
  4. 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"]) }}