No description
Find a file
2026-05-23 21:59:28 -06:00
.github/workflows ci: remove Node 20-only actions 2026-05-23 01:45:01 -06:00
launcher naming: publish rsCardputer standalone mode 2026-05-23 01:10:28 -06:00
lib/Crypto Reduce supply chain risk 2026-04-07 15:11:48 -06:00
partitions naming: publish rsCardputer standalone mode 2026-05-23 01:10:28 -06:00
src release: prepare v2.0.0 2026-05-23 21:59:28 -06:00
tools naming: publish rsCardputer standalone mode 2026-05-23 01:10:28 -06:00
vendor/rnode_firmware rnode: auto-arm first pairing window 2026-05-23 18:33:36 -06:00
.gitattributes build: integrate Cardputer Adv firmware family 2026-05-22 21:03:12 -06:00
.gitignore naming: publish rsCardputer standalone mode 2026-05-23 01:10:28 -06:00
LICENSE license: adopt AGPLv3 2026-05-05 18:30:39 -06:00
LICENSE-RNODE repo: migrate Ratcom to rsCardputer 2026-05-22 23:18:38 -06:00
Makefile naming: publish rsCardputer standalone mode 2026-05-23 01:10:28 -06:00
merge_firmware.py naming: publish rsCardputer standalone mode 2026-05-23 01:10:28 -06:00
partitions_8MB_ota.csv Initial release: Ratputer v1.0.0 2026-03-06 12:43:26 -07:00
platformio.ini naming: publish rsCardputer standalone mode 2026-05-23 01:10:28 -06:00
README.md rnode: enable Cardputer BLE by default 2026-05-23 16:46:48 -06:00

rsCardputer

Dual-mode Ratspeak firmware for the M5Stack Cardputer Adv.

Status Model License

Ratspeak | rsReticulum | rsLXMF | Downloads


rsCardputer turns M5Stack's Cardputer Adv into a local two-mode Reticulum device. On boot, the launcher lets you choose between:

  • Standalone: a Reticulum/LXMF messenger that runs entirely on the Cardputer Adv.
  • RNode: a host-controlled RNode-style interface for Ratspeak, Sideband, or other Reticulum clients over BLE or USB serial.

Both firmwares live in internal ESP32-S3 flash, with support for SD in the future to reduce flash usage. There are individual releases available for just Standalone or just RNode as well for those using pre-existing flashers or wanting just one firmware.

Contents

Hardware

The supported Cardputer Adv has:

  • ESP32-S3FN8
  • 8 MB internal flash
  • Built-in keyboard and 240x135 display
  • microSD support (32GB max), optional but recommended
  • SX1262 LoRa radio*

*LoRa capabilities are only possible with the Cardputer Adv LoRa cap (module), which they usually sell separately. Without it, the Cardputer will only have WiFi/BLE capabilities.

Flashing

For flashing with a pre-built firmware, use Ratspeak's flasher in a supported browser, and flash the device in just a few clicks.

To flash locally, connect the Cardputer Adv over USB and find the serial port:

ls /dev/cu.usbmodem*      # macOS
ls /dev/ttyACM*           # Linux

Then flash the merged image:

cd rsCardputer
make flash port=/dev/cu.usbmodem3101

Radio Presets

Preset SF BW CR TXP Bitrate Link budget
Short Turbo 7 500 kHz 4/5 14 dBm 21.99 kbps 140 dB
Short Fast 7 250 kHz 4/5 14 dBm 10.84 kbps 143 dB
Short Slow 8 250 kHz 4/5 14 dBm 6.25 kbps 145.5 dB
Medium Fast 9 250 kHz 4/5 17 dBm 3.52 kbps 148 dB
Medium Slow 10 250 kHz 4/5 17 dBm 1.95 kbps 150.5 dB
Long Turbo 11 500 kHz 4/8 22 dBm 1.34 kbps 150 dB
Long Fast (default) 11 250 kHz 4/5 22 dBm 1.07 kbps 153 dB
Long Moderate 11 125 kHz 4/8 22 dBm 0.34 kbps 156 dB

Host clients can change the RNode radio profile through normal RNode commands, typically in-app. Standalone mode also exposes radio settings on-device.

The supported SX1262 cap is an 850-950 MHz radio target. 868 MHz and 915 MHz are valid software profiles for that hardware range. 433 MHz requires 433 MHz radio hardware. You are responsible for operating within your local laws.

Standalone Mode

Standalone mode gives the Cardputer Adv a local Reticulum identity, LXMF messaging, LoRa operation, TCP access over WiFi, GPS time sync, contact/message storage, and on-device settings.

On first boot, Standalone mode asks for timezone - this is so the GPS-received time shows relevant to your timezone, it is not shared with anyone.

RNode Mode

RNode mode behaves like an RNode radio for any Reticulum client.

  • USB CDC serial carries the normal RNode KISS protocol.
  • BLE is enabled by default for phone/client reconnection.
  • Hold p or OK for three seconds to enter BLE pairing mode.
  • Hold b for three seconds to toggle BLE on or off.
  • Pairing mode times out after 30 seconds if no client connects.
  • The radio stays idle until the host client connects.

The RNode target self-provisions its EEPROM identity and firmware hash on first boot, so users should not need a separate rnodeconf setup step to clear config or firmware-corrupt warnings.

Build From Source

rsCardputer is a single source tree. Standalone mode, the RNode target, the launcher, partition layout, and package tooling are all included in this repository.

Install prerequisites:

  • Python 3.
  • PlatformIO.
  • arduino-cli.
  • ESP32 Arduino core and M5 libraries for the RNode build.

Install the Python tools:

python3 -m pip install platformio esptool

One-time RNode dependency setup:

make prep-cardputer_adv

Build all firmware images and package the release artifacts:

make package

Build targets are split so each component can also be worked on independently:

make build-launcher      # launcher only
make build-standalone    # standalone messenger app
make build-rnode         # host-controlled RNode target
make full-image          # launcher + Standalone + RNode
make standalone-image    # standalone merged image
make rnode-only-image    # standalone RNode merged image

Release artifacts are written to dist/:

dist/rscardputer-full.zip
dist/rscardputer-standalone.zip
dist/rscardputer-rnode.zip
dist/rscardputer-standalone-m5launcher.bin
dist/rscardputer-rnode-m5launcher.bin

Use the .zip files with the Ratspeak web flasher. Each zip contains a merged factory image and the web-flasher manifest for the Cardputer Adv. Raw .bin files under build/ are internal build outputs.

The *-m5launcher.bin files are app images for M5Launcher users who already boot through bmorcelli's Launcher and want to start Standalone or RNode directly from SD, without using the bundled rsCardputer launcher.

Flash the bundled launcher image with:

make flash port=/dev/cu.usbmodem3101

CI uses the same make package flow and publishes the bundled image plus both individual firmware images.

License & Contribution

Ratspeak's Cardputer standalone application, launcher, partition tables, and packaging tools are licensed under the GNU Affero General Public License v3.0 or later. See LICENSE.

The bundled RNode firmware under vendor/rnode_firmware/ is licensed under the GNU General Public License v3.0. See LICENSE-RNODE.

Standalone mode uses a custom fork of microReticulum, which was originally written by Chad Atterman.