User Tools

Site Tools


picoshell

PicoShell — RP2350 SSH Terminal Cyberdeck

A pocket SSH terminal built on the Raspberry Pi Pico 2 W. Native 80-column color display via DVI, USB keyboard, WiFi SSH client. Under €50. Runs for 15+ hours on a LiPo.

Think: cyberdeck disguised as a modern GameBoy with too many keys.

Concept

USB Keyboard → Pico 2 W (RP2350) → WiFi → SSH → your servers
                    ↓
              HSTX DVI → 80x30 color terminal
              (core 1, no PIO needed)

Two-phase approach:

  1. Phase 1 (thin client): Pico does keyboard + VT100 display. SSH runs on a Pi Zero 2W or any Linux box, connected via WiFi TCP. Also doubles as a serial terminal for headless boards.
  2. Phase 2 (native SSH): wolfSSH client runs directly on the Pico. No companion needed. Full standalone operation.

Parts List

Part Approx. Price Link Notes
Pimoroni Pico Plus 2 W €15 Pimoroni RP2350B, 8MB PSRAM, 16MB flash, WiFi/BT, USB-C
Adafruit PiCowbell DVI for Pico 2 €8 Adafruit HSTX DVI breakout, no PIO needed
5“ 800×480 HDMI IPS panel €20 Search AliExpress/Amazon for “5 inch HDMI LCD 800×480” 100×30 chars at 8×16 font. TFP401-based boards work well
USB OTG adapter €2 Any USB-C OTG cable For USB HID keyboard
SD card breakout (SPI) €3 Adafruit or any SPI SD module SSH keys, config, logs
3.7V LiPo 3000mAh + TP4056 charger €5 AliExpress ~15h WiFi active, days in serial-only mode
Total ~€50

Key Technologies

HSTX DVI (RP2350 native)

The RP2350 has a dedicated high-speed serial transmitter (HSTX) that outputs DVI directly. No PIO state machines consumed, no overclocking needed.

  • 640×480 @ 60Hz — 80×30 text with 8×16 font
  • 800×600 @ 60Hz — 100×37 text
  • 16-color text mode built into DispHSTX library (CGA palette, enough for xterm-16color: vim, htop, tmux)
  • 256-color or 65K-color graphics modes for full xterm-256color rendering
  • Framebuffer in PSRAM (~300-480KB), SRAM stays free for SSH/networking
  • Library: DispHSTX (docs)

PSRAM on RP2350

8MB PSRAM on the Pimoroni board. Enough for framebuffer + scrollback + SSH buffers.

Use Size
Framebuffer (800×600 8bpp) 480 KB
Scrollback (80×1000 lines + attributes) 240 KB
SSH buffers (wolfSSH) 100 KB
Heap / misc ~7 MB free

Gotchas (documented, workarounds exist):

SSH on Pico

  • wolfSSH — lightweight SSHv2 library, client + server, ANSI C. GitHub
  • pico-sshd — SSH server running on Pico W, proves wolfSSH+lwIP works on this hardware. GitHub
  • wolfSSL crypto has explicit RP2350 support (incl. hardware TRNG)
  • Key exchange (RSA/ECDH): ~2-5 sec on Cortex-M33. Session crypto (AES-GCM/ChaCha20): fast.
  • No existing SSH client project on Pico — this would be a first.

Existing Projects / References

  • PicoTerm — VGA terminal emulator on Pico (serial, 80×30)
  • PicoCalc — ClockworkPi handheld ($75 kit, 320×320 display, QWERTY keyboard, 8MB PSRAM, but only 40 columns)
  • PicoDVI — DVI output for RP2040 (predecessor to HSTX approach)
  • pico-window — Text windowing system with FreeRTOS
  • pico-serial-to-wifi-bridge — UART↔TCP bridge for thin-client approach
  • PicoVision — Dual-RP2040 HDMI board (overkill but reference design)

vs Alternatives

PicoShell uConsole PicoCalc
Price ~€50 ~€200+ ~€75
Wait Next-day shipping Months Weeks
80 columns Yes (DVI 640×480+) Yes (Linux FB) No (320×320)
Color 16/256 color Full 24-bit Mono/limited
SSH wolfSSH / thin client Native Linux No WiFi in base
Battery 15+ hours 2-4 hours Hours (2x 18650)
Weight ~100g ~300g ~200g
Hackability Bare metal, full control Linux, CM4 MicroPython/C
Display External HDMI panel Built-in 5” Built-in 4“

Status

Phase: Planning. Repository: https://git.reauktion.de/marfrit/picoshell (once created).

picoshell.txt · Last modified: by 127.0.0.1