RasPi 400: Adorable New Keyboard Computer

This is very nice, at least in principle.

Classic home computers – BBC Micros, ZX Spectrums, Commodore Amigas, and the rest – integrated the motherboard directly into the keyboard.
No separate system unit and case; no keyboard cable. Just a computer, a power supply, a monitor cable, and (sometimes) a mouse.

Hm, the naming is obviously after the Atari 400 (so 800 will be the 8GB model?), but they don't mention Atari. Well, the criminals now doing business as "Atari SA" aren't people you want to associate with. And these are English, who couldn't afford nice computers back then.

It's not really $70, it's $100 plus a monitor, because the cabling is unusual, you should not get the no-cables computer-only box. When I got my RasPi4 I had to email them to get my micro-HDMI cables (which they did supply), and the cheapo monitor is still terrible but I haven't found a good cheap replacement. The RasPi400 also doesn't have a power switch; the CanaKit set at least gave me an inline power clicker.

Having the keyboard & computer in one gets you much closer to a nice clean cyberdeck than the current maze of wires; there's no battery pack, but in most cases what you want is a small computer in your satchel you can set down, plug in, and work. I'm dubious of using a mouse with this in most space-constrained areas (machine rooms, or cafés—in the distant future when we can go back to cafés), but trackpads and trackballs are expensive, too.

RasPi4 is critically heat-constrained, the fan runs all the time on mine or it dies. El Regerino does a teardown and review, and the giant heat sink plate seems to solve the problem. I could probably justify getting this just to have silence! Or a fedi-pal has suggested the Argon One heat-sink case, which is a much cheaper fix.

Software's still an issue. Raspbian is a relentlessly mediocre Linux variant; I said earlier I'd switch it to BSD, but that hasn't happened yet. I should update to the newer "Raspberry Pi OS" and see if it's better. … Later: Not really. You can set some better scaling options now so it's not unreadable. WOO. (I shouldn't mock, scalable UI is really fucking hard, and they've got at least most of the stock software configured for it; notably Chromium yes, but not Firefox).

Dev tools are not great on RasPiOS. Ludicrously, they suggest Python, the slowest modern language on the slowest modern hardware. Their free "Create GUIs with Python" book uses a fat layer on top of Tkinter, which is awesome for portability, totally awful for going through now 3 layers to reach hardware. No. Almost anything will be better on it. As I noted, Gauche runs, it's fine for porting small tools, and has industrial-strength (and industrial-ugly) GTK.

A much better IDE will be sudo apt-get install vim-gtk3 (gvim runs faster than vim in lxterm, though it pulls in a preposterous set of dependencies)

Just as a sanity test ("maybe a 4GB, 1.5GHz, heat-constrained computer is OK for Python!"), I wrote a tiny 10 PRINT maze program in both. Gauche fills the terminal instantly; I can see the lines being drawn by Python, and it's even slower in any IDE. That's just one random number per char, imagine doing real work!

All their programming books and the new Beginner's Guide are up for free as PDF on their MagPi books page, or now in-OS from Raspberry menu, Help, Bookshelf. Looking thru the guide, it covers:

  • Hardware tour so you can identify ports
  • Software setup
  • Programming in Scratch for kids. As I was raised on BASIC and assembly, I roll my eyes at programming by drag-and-drop instead of interactive text editing, but Scratch isn't awful, just cutesy, bulky (a 10-statement program will fill a page of the book) and very slow.
  • Programming in Python. Thonny IDE looks OK, for what it is, with integrated REPL, tabbed editing, and debugger. But IDLE does as well; both use Tkinter, and are non-fun slow on the little device.
  • A starter chapter on using the GPIO, doing wiring, digital circuits, and Scratch to blink an LED. Then controlling the Sense Hat, which is maybe the worst peripheral I've ever seen. There's plenty of other small-screen interfaces or sensor devices that'd be better, surely.
  • Appendices on how to install software, and finally an extremely inadequate tutorial on using the terminal.

For $100, it's a cute little portable computer, but the way they suggest using it will make it seem like a 1K RAM ZX-80, not the reasonably fast secondary machine (or kid's first Scheme terminal) it can be if you're not working under multiple layers of mud.

Raspberry Pi 4 Setup

In my long-running cyberdeck-building saga, I've tried a few variations. Now trying the new RasPi4-4GB from CanaKit, Rii K12 keyboard, and a very cheap terrible Elecrow 10.1" monitor. When I first got the shipment, the MicroHDMI-HDMI cable was missing, but CanaKit quickly shipped me two, in case I want to run two monitors on my very tiny computer. And then when I got everything hooked up… nothing happened. Turns out, the recommended format tool formats SD cards in ExFat, and RasPi only boots from FAT32. OS X's "new" Disk Utility is awful but did let me pick the right option, copied NOOBS, and was able to boot Raspbian! Yay!

Protip with the Rii keyboard: Little radio adapter is hidden in one of the feet. Took me a bit to figure out why it wouldn't pair. It's a weird layout, keys are a little mushier than I like (I like either classic buckling spring IBM or Northgate keys, or the thin super-crisp "Apple Magic Keyboard" keys), but it's attractive, great for the size, and the trackpad works better than I expected as a real mouse; I do have to hit the left-click keyboard button sometimes to wake it up. I may or may not stick with this forever.

I won't be staying in Raspbian, I hate Linux more than anything, but I don't want to fight with setting up BSD on a new device just yet. What I'd love is if Haiku worked on it, but BSD is probably a saner choice.

Uninstalled all the stupid stuff that's preloaded. LibreOffice can suck it, 10 different "simple IDEs" can fuck off. Mathematica and Wolfram Alpha can stay. "vi" is actually Vim, but "vim" is not installed; anyway I won't be working full-time in Vim. Did an adduser, installed zsh and chsh to zsh; fucking Lintwats still use bash after all the security holes! After some advice from Mastodon, Geany seems tolerable as a GUI editor, and it's cross-platform, good option.

There's a Chez Scheme package, but it didn't install anything and apparently is long out of date. Chicken only has the compiler, not a REPL. But Gauche installs, the "gosh" REPL runs fine, and seems to have working GL & GTK+ libraries, which may be a reasonable way to make some GUI tools for it.

Chromium is the standard browser, which whatever man, but it keeps bugging me to sign in, and I will never do that. It plays Youtubes OK, which is likely to be 75% of its runtime. I'm kind of impressed the sound works and I won't touch anything about that except volume because Linux + sound = 9th level of Hell.

I loathe the very simplistic Windows-like wm it starts with, haven't seen any "setting" to change that, probably have to go fight config files and Raspbian won't be here that long.

Now I need to finish the keyboard box, so I can make this portable, but as just a little desktop computer it's pretty sweet, and my setup cost me $220 total (plus some earlier experiments).