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

7.0 KiB

+++ title = "Questions and answers" description = "What the firmware does and does not do today, what it talks to over the network, and how to run, update and fix it." template = "guide-page.html" [extra] toc = true +++

Which keys work on this screen?

Press Fn + h, on any screen: it lists the keys that work there, then the ones that work everywhere. ? does the same when you are not typing text. The screens themselves never name their keys, so this is the one key to remember. See The basics.

Can I send messages over the mesh?

Not yet. The LoRa Scanner listens to Meshtastic traffic and shows what it hears, but nothing is transmitted. A mesh messenger is the goal and is planned in two milestones, one for receiving and one for transmitting; it waits for a second node to test against.

Is this Meshtastic?

No. roro9stack is its own firmware, written from scratch, which aims to be compatible with Meshtastic on the air. Today that means the Scanner can read a Meshtastic packet's header. The project isn't affiliated with or endorsed by Meshtastic or M5Stack.

Does it ever transmit on LoRa?

No. The radio is receive-only in the current firmware. Nothing will transmit until you have confirmed your region in Settings, and the region's limits (frequencies, power, duty cycle) will bound anything that does.

What do I need?

  • an M5Stack Cardputer ADV: that is the device the firmware is built and tested for;
  • the Cap LoRa-1262, for the LoRa Scanner and GNSS only: the other Apps do not need it;
  • a microSD card, for notes, logs, tracks, captures and saved pages;
  • Wi-Fi (2.4 GHz) for IRC, Gemini and updates.

Which regions are supported?

EU868 only, today. Setup asks for your region once, and the radio does not transmit until you confirm it.

Why do I need Chrome or Edge to install it?

The browser flasher uses Web Serial, which Chrome and Edge have on desktop and Firefox and Safari don't. Without it, the esptool steps on the Install page flash the same file from a terminal.

How do I update it?

Three ways, all with the same signed update file: from the project's releases on the device itself (Settings → Firmware), from the SD card, or pushed over Wi-Fi from a PC. See Updates and Install an update from the SD card.

Is it safe to update? What if it goes wrong?

A new firmware runs on Probation: if it crashes, restarts, or cannot get Wi-Fi back within 3 minutes, the device returns to the previous version by itself. If a confirmed firmware crashes 3 times in a row, it starts in Safe Mode with only Wi-Fi and updates, so a fix can be installed without a cable. And an update that is not signed with the project's key is refused before anything is written.

Can I run my own build?

Yes: it is open source (GPL-3.0). The device only accepts updates signed with the key that its firmware was built with, so a build of your own, signed with your own key, is flashed once over USB (the README explains it); after that, your own updates go over Wi-Fi or the card. Releases from this project are signed with the project's key.

Does it phone home? What about privacy?

The firmware contacts the project's server once a day, to see whether a new release exists: Settings → Check for updates, on by default, only when Wi-Fi is up and the clock is set. It installs nothing by itself, and you can switch it off. Besides that, the device talks to what you ask it to: the IRC server and Gemini capsules you open, DNS servers (9.9.9.9 and 1.1.1.1 by default) and time servers (pool.ntp.org and time.cloudflare.com by default), all of which you can change. There is no account, no analytics and no telemetry.

It listens on the network only for what you switched on: the port that receives signed firmware updates, always; the Debug Console, the card shared with a browser and the VPN, only while you have them on. The SSH App connects out to the server you name and listens for nothing.

This website sets no cookies and has no analytics, loads nothing from other sites, and its server logs keep only a masked part of visitors' addresses. The Install page asks the project's own server for the latest release.

Why does IRC disconnect when I update, or when I open a Gemini page?

A secure connection takes about 52 KB of the 107 KB the device has, and IRC's takes about 40 KB. Both together do not always fit. See When a connection says "not enough memory".

Can it use a VPN?

Yes, WireGuard: one tunnel to one server, set up by copying the client's .conf to the SD card and importing it in Settings. It can carry everything, or just the VPN's own subnet. See VPN.

Can it log in to my server?

Yes, over SSH: the SSH App is a terminal on another machine, with a password or with a key the device makes for itself. vim, top and less work. One session at a time, and not at the same time as IRC: there isn't the memory for both.

How do I copy files to and from my phone?

In the Storage App, press w: the device serves a small web page to any browser on the same Wi-Fi. Scan the QR code it shows, type the code, and upload or download. Nothing to install. See From a phone.

How do I take a screenshot?

Fn + p, on any screen. The picture goes to /screenshots on the SD card. See Take a screenshot.

The network doesn't work: how do I find out why?

From the device itself, in the Shell: ifconfig, ping, nslookup, port and traceroute. When the network doesn't work puts them in order.

Do I need an SD card?

For the radio, GNSS position, Wi-Fi tools, IRC chat and Gemini browsing, no. For anything that is kept, yes: notes, IRC logs, Wi-Fi scan logs, GNSS Tracks, LoRa captures, saved Gemini pages and update files. See Find your files on the SD card.

How big can a note be?

Any size the card has room for. The editor only keeps the part around the cursor in memory, so a megabyte of text opens at once. A long note is rewritten when you leave it, which takes about a second for each 450 KB. See Long notes.

Why can't I rename or delete some folders?

The firmware keeps its files in the top-level folders of the card, and /gemini/cache and any file being written right now are protected. What is inside the top-level folders can be changed. The Storage App says why when it refuses.

The upload can't connect, or the port is missing

Try a data cable, put the Cardputer in download mode (hold G0 while plugging in USB), and see When flashing fails.

Something is wrong, or missing from this site

Write to the issue tracker or to contact@roro9stack.net. Security problems: the address in the site's security.txt, and please not in the public tracker.