small-computers Category

2 Articles

'Tenet' project start

12 Jul 2022

categories: small-computers
tags: rpi

I’ve had an idea kicking around for a while, to make a raspberry-pi-based netbook. Two years ago I was playing around with thermal receipt printers for another project idea and I was also starting to learn stenography. I got the idea to build a netbook for stenography. Some kind of steno netbook. I’ve taken to calling it tenet.

I regained interest in the idea when I saw the ShaRPiKeebo on CrowdSupply. This powerful little device has a fantastic screen. I got to see one up close recently when a friend showed me her new Playdate console. I’m not particularly keen on the keyboard the ShaRPiKeebo comes with, but it’s so close to my use case that I bought a couple of the PCBs and backed the project. In the meantime, I also picked up some of the screens on breakout boards from Adafruit!

So, what’s the use-case, what’s the pitch? I want this computer to be small, portable, solar-rechargeable, and daylight-readable. It’s for writing and light programming away from a desk, possibly even off the grid. It could be used in a pinch for sysadmin/on-call tasks, or some kind of terminal-based email or chat, but its main use case is for writing. Am I a writer? Do I know what writers want? Why am I asking myself so many questions instead of building small computers?

Image: a bunch of computer parts, loosely arranged. Read below images for more descriptions

Ok, what about components?

Image: A Keyboardio Atreus keyboard. 44 keys arranged in a split-monoblock, columnar orthogonal layout.

The keyboard I’m starting with is the Keyboardio Atreus. It is small, thin, light, and a little more ergonomic than other 40% boards. I say “starting with” because it has a couple of shortcomings for this project: it won’t work for a full steno machine because it would need one extra column on the right side, and for more weight and space savings I should use a board with Choc switches and keycaps. But the Keyboardio Atreus is more than up to the task of being the board for the prototype computer.

Image: A 2.7-inch 400x240 SHARP Memory Display, on an Adafruit breakout board. Shown here with a Raspberry Pi 4 for scale.

The other part tied for first place in user interaction is the screen. These Adafruit SHARP Memory Displays are 2.7" on the diagonal, and have 400x240 pixels. The display is monochrome, with no back- or front-lighting. They communicate with the Pi over I2C, so some custom software will be necessary to use them as a monitor.

Image: A 3-cell lithium ion polymer battery, connected to a circuit board that’s hooked up to a small solar panel.

Powering it all is a 3.7V battery from Adafruit. I’m not sure it’ll suffice for the printer but we’ll get to that shortly. I’ve got this hooked up to a circuit that accepts DC power from a solar panel or USB-C power. I have no idea how long the thing will last on a single charge. I guess once I get it running we’ll find out.

Image: Two thermal receipt printers, one in a blocky enclosure and the other cut apart, to become longer but less thick.

The icing on top will be a thermal receipt printer. I hope that this could operate in a few modes. The first is standard, to tell the computer to print a file, and have it come out the top. The second would be to have the terminal print its buffer line-by-line as it scrolls above the top of the screen. This second use case is challenging to achieve, but fulfills the destiny of this modern-day typewriter.

Image: An alternate view of the receipt printers, showing how the long thin one uses part of its original enclosure.

I’m not sure yet which shape of printer will be best for the computer as a whole. Honestly it will probably have to come with its own supplemental power supply too, because these need 6-9V to print reliably. Lots of experimenting with shapes to do. Which brings me to the next component: the enclosure.

Image: All of the above parts, stacked as densely as possible.

My first idea for an enclosure was a kind of backwards laptop: when closed the printer and screen would lie flat, above the Raspberry Pi and battery cells.

Image: The same as above, but now a hand is holding the screen and long/thin printer angled up 80 degrees from horizontal

Upon extending the hinge, the printer and screen come up. It was my first idea about what this should look like. I was hoping to evoke something of a spiral-bound memo pad that flips open in a similar way.

Image: The above parts, this time using the bulkier printer, arranged in a cube-like shape with the screen forming an angled face at the front.

Once I had all the parts together on the table (notably the bulky battery cell), I found another arrangement that’s a little less complicated, as it has no moving parts and does not require redesigning the printer’s enclosure. Is it sufficient for the computer? Is it better? Nobody knows the answer.

As I write this, my ShaRPiKeebo PCBs are on their way here from France. I have a few ideas on how to experiment with the Adafruit boards to make those displays work, and I have some CAD work to do to get these parts to stick together more permanently.

Yours in Unnecessary Small Computers,

Canary v1

22 Jun 2022

categories: small-computers
tags: 3dp circuit-python i2c rp2040 stemma

Recently my partner bought an LCD resin 3D printer. That was kind of the last straw for a risk that has been growing in the last few months. I already had a filament 3D printer (so far just for PLA, but who knows!), and several weeks ago I hooked up a kegerator with a carbonation system. Oh, and all of these share the same airspace as my office.

The risk we’re concerned about is a buildup of VOCs, carbon dioxide and carbon monoxide. To mitigate this, I wanted to build a device that can sense these things, display their levels on a readout, and potentially make a loud noise if they go over a certain threshold.

Are there consumer devices that also do this? possibly. Are there even fancy filter fans that can show you what’s in the air on your smartphone? also yes. But this sounded simple enough to prototype that I could spend a little extra money on the parts and then have fun putting them together. (Also, I couldn’t find a consumer-grade device that would measure carbon dioxide, so I wanted to start there).

The main board I chose for this is the Adafruit Trinkey QT2040 (guide). I didn’t have a lot of criteria to match. I mostly wanted it to be easy to get running, and use I2C for the connections. Trinkey is easier than easy. Anything Adafruit makes that works with their Circuit Python libraries is very approachable, code-wise. And this board is based on the RP2040 chip, which is more than powerful enough to run the code I need.

It also happens that Adafruit maintains a hardware spec called “Stemma QT” that transmits I2C signals over premade JST PH wires (youtube intro). Trinkey has Stemma QT (hence “QT2040”), and a lot of the sensor breakout boards that Adafruit makes also use Stemma QT.

An Adafruit Trinkey RP2040 QT

The star of the show is the CO2 sensor: that’s an Adafruit SCD-41 (guide) photoacoustic “true” CO2 sensor. It measures temperature, relative humidity, and CO2 (in parts-per-million). It transmits all of this over I2C, using Stemma, once every few seconds.

An Adafruit SCD-41 sensor package

For an interface, I’m using a monochrome 0.96" I2C OLED Display (guide) with 128 x 64 pixels. Later I may switch to something like a SHARP Memory display, for low-power use.

A monochrome 0.96

I had a Pi-Fan laying around from a past project, and figured the sensor wouldn’t do much good without a continuous supply of new air.

A DC brushless “pi-fan”

Finally, I 3d-printed a frame for all these parts to screw (or hot-glue) onto. The first attempt is always a little kludgy, but I really like it! Without further ado, here’s my first take of a CO2 sensor:

The full CO2 sensor device, powered off

The full CO2 sensor device, powered on

The code and 3d-printing files are available at

Final Bill of Materials:

Next time I come back to this, maybe I’ll add a speaker and “hush” button, or CO and VOC sensors, or a battery for portable use!