I wanted my PicoCalc to be able to reach out and touch other computers, and the first step is a proper terminal. calcterm is a VT100 (with its VT52 mode) that talks over a serial line, on a 64x32 screen.
The nice surprise is how much “real” software that opens up. Plug the PicoCalc’s USB-C into a Linux box, give it a login on the serial line, and vim, less, top, htop and Midnight Commander all run properly, in colour, with line drawing. Midnight Commander in particular is a good fit: typing long shell commands on the PicoCalc keyboard is a chore, and mc’s arrow-key file panels and F-key bar save most of it.
Two serial ports: the USB-C socket (through the PicoCalc’s own CH340, so just a cable), or GP4/GP5 on the side holes for real RS-232 through a MAX3232 board. The README has the wiring, including the reversed TX/RX labels on the common blue HW-044 boards.
F1-F10 go to the host.
Alt+F5 opens a setup menu (port, speed, format, flow control and so on), with a one-letter shortcut on every line. Settings live in /calcterm/calcterm.cfg, following Blair’s folder-per-program suggestion.
Alt+F4 takes a screenshot to /screenshots.
A terminfo entry (calcterm.ti), so Linux knows exactly what it can do.
It’s an alpha: I’ve used it daily for a week, but on one PicoCalc (Pico 2 W) against one Linux machine. Next up is an 80-column mode with a 4-pixel font, then telnet, SSH and an FTP client.
It’s built on Blair Leduc’s picocalc-text-starter and picocalc-shell; thanks, Blair.
Bug reports, screenshots and “it doesn’t work with my router’s console” stories are all welcome, here or as GitHub issues.
calcterm 0.3 is out: file transfer by ZMODEM, over the same serial line you’re logged in on.
- `sz file` on the host sends a file to the PicoCalc’s card (into /calcterm/files); `sz *.sh` sends several.
- `rz` on the host opens a list of the card’s files; pick one and it’s sent to the host’s current folder.
- Esc stops a transfer at any point and leaves you at a clean prompt.
The host needs lrzsz (Ubuntu has it). It’s meant for scripts and config files: about a second for 10 KB at 115200, a minute and a half for 1 MB. A file of the same name is replaced without asking, both ways.
I’m waiting for a version with telnet and ssh. The main thing is that it needs to be stable. Am I correct in understanding that I can currently connect a device like a Raspberry Pi Zero 2W via USB-C and just use it, without needing any adapters or anything else?
Nearly. The PicoCalc’s USB-C socket is a USB-to-serial chip (a CH340), so to the Pi it looks like a USB serial device, the same as plugging in a serial adapter. Two things to know:
The Pi has to be the USB host. On a Zero 2 W that means its data port (the micro-USB marked USB, not PWR) with a USB OTG adapter or an OTG micro-USB-to-USB-C cable. A plain charging cable won’t do it. Power the Pi from its own supply.
On the Pi, the PicoCalc shows up as /dev/ttyUSB0 (Raspberry Pi OS has the driver already). Start a login on it: sudo systemctl enable --now serial-getty@ttyUSB0.service, and set calcterm to the USB-C port at 115200. The README has the rest of the Linux set-up, including the terminfo entry and a udev rule so the login comes back when you unplug and replug.
If you’d rather have no USB at all: the Zero’s own serial pins (GPIO 14/15) are 3.3 V, the same as the PicoCalc’s GP4/GP5, so three wires (TX to RX, RX to TX, ground) and calcterm’s GP4/GP5 setting work too.
Telnet is next: calcterm 0.4, over Wi-Fi, should be out in a few days. It’s been in daily use against Ubuntu here, and ZMODEM file transfer works over it as well as serial. SSH comes after, along with a Bluetooth keyboard. On stability: it’s still labelled alpha, but it’s what I use every day, and anything you find I’ll fix.