What is it?

Glad you asked.. it's a fully functional linux computer with:

  • A Raspberry Pi 4
  • Custom 36-key keyboard with 5 way directional buton based around an Atmega328
  • 4.3" DSI touchscreen display
  • PiSugar power controller with 5000mah battery

It runs for about 4 hours with general terminal use and is pretty useful on it's own, but you can hook up external monitors and other USB peripherals if you need more screen or typing space.

The keyboard runs QMK and interfaces to the Pi via USB, so it's fully configurable. I really like the Miryoku layout and use it on all my keyboards...so that's what the physical button layout is based around. The switches are Diptronic DTS63K tactiles with 1nm of actuation force. They look the same as the generic ones, but it's worth the few extra dollars as they feel so much better to type on. It's still a thumb-typing experience, but the limited number of keys and the well thought out layering system of Miryoku makes it a suprisingly useful keyboard!

Oh god, why?

Well.. it all started when I picked up the PCB's for the PICOmputer made by Bobricius. It's a sort of carrier board for the Raspberry Pi PICO that includes a keyboard using 6mm pushbutton tactile switches and a display. It's simple, but it really opens up some fun potential. I ended up 3d printing a case for mine and adding a battery with charging to make it a neat little toy to play with. Along the way, I was really impressed with how well the keyboard actually worked.. even though I didn't follow his advice and bought cheaper switches with higher actuation force.

When it came time to replace the Orange Pi based desktop PC I used at my workbench I grabbed the RPI4 I ordered early in the pandemic and had been hording. I was just going to put it in a boring case, but then I got to thinking about the PICOmputer and wondering if I could build a case with a screen and keyboard. I'd still use the computer with a monitor, keyboard and trackball at my desk most of the time, but I could grab it and have my workbench computer with me if I wanted to go hack at a friends house or makerspace.

So that's where the idea came from, and the rest was just balancing the screen size with portability and thinking hard about thumb-typing layouts....

Designing a tiny keyboard

I've built a good number of keyboards in my time, and even designed a couple. Most of the keyboards I've built rely on a pre-assembled Pro-Micro style controller, but I just didn't think I'd have the space to use that trick here. There are many good refrence designs for the basic AtMega circuit, and I can solder surface mount diodes okay, but I realy didn't think I'd have the skills to do a fine-pitch AtMega surface mount package without a lot of pain and suffering. It was then that I remembered the first keyboard I ever built.... the Plaid!

The Plaid is a really neat 4x12 ortho keyboard built using ALL throughhole components! It uses virtual usb on an AtMega328 which is one of the few AtMega versions availabe in a DIPP package. With this schematic in hand and information about the boot loader HSGW used, I started designing a new PCB.

It's a tiny keyboard

This is actually version 2... for the first one I thought I understood more than I did and left off the 3.6v zener diodes on the USB data lines. BTW, USB actually uses 3.6v signals! Who knew? I didn't know, so I thought the zeners were for overvoltage protection... They are not and many USB hubs/controllers won't work with 5v signal lines. So, you need those if you are using a 5v MCU.

Here's a good place to thank PCBWay for covering the cost of these boards. Liam reached out to me after seeing the Framedeck project with it's custom keyboard/trackball PCB and asked me to give PCBWay a try with my next project. I did, and they gave me a coupon to cover the cost, which was right nice of them. The PCB's are not overly complicated, but the pricing was in line with other vendors, they arrived...

Read more »