[GR3ML1N] — A compact, handheld cyberdeck built for chaos

I've built a few cyberdecks over the years. Pelican case jobs mostly, the knd that look great on a desk but are a pain to actually use in the wild. Too bulky, awkward power setups, not really something you'd pull out in a coffee shop without feeling like you're assembling a field operations kit. I kept building mechanical keyboards for a while after that but eventually I'd scratched that itch enough times that I needed a new challenge.

20260420_211103_438a49f1.jpg

The idea was simple: all of the fun, none of the bulk. Something genuinely handheld that I could use without a desk, whip out anywhere and not feel ridiculous doing it. I'm a child of the 80s. Grew up on Tron, Blade Runner, WarGames, the whole lot. But if I'm honest it was always the chaos creatures that got me. Small, mischievous, a little bit dangerous and absolutely not to be trusted around water after midnight. When I was hunting for a name [GR3ML1N] just clicked. It's small, it's cheeky and it has no business being as capable as it is.

After about a month of tinkering and an absolutely unreasonable number of test prints, here we are.

SYS:// HARDWARE

The brain is a Waveshare ESP32-S3 with a 2.8" touchscreen. "Why not a Pi Zero?" I hear you ask. Honestly instant on/off was the dealbreaker for me. I wanted something I could pull out and get straight to work on, not sit watching a boot sequence. The low power draw is a bonus too and the Waveshare board makes wiring everything up surprisingly painless thanks to it's onboard connectors for UART, I2C and battery and included wires.

20260420_211113_ba78dccc.jpg

The keyboard is fully handwired using 12mm tactile switches connected to a Waveshare RP2040 Zero running a modified version of ZMK that can switch between HID and UART mode. I went with tactile switches over proper keyboard switches to keep the form factor as compact as possible. They are (I won't lie) annoyingly clicky. Worth it though. You're probably asking why I didn't use proper mechanical keyboard switches. The main reason is the size. It would have pushed the board beyond what I can print on my Prusa Mk4S

The whole thing runs off a single 18650 cell and there are three USB-C ports: centre for power, right for direct keyboard access and left as a dedicated addon port for snapping in i2c modules without pulling anything apart. These are connected to the onboard devices using simple male and female usb breakout boards (they cost pennies from Aliexpress)

The enclosure is neon green translucent Prusament PETG. It looks faintly radioactive in day light and full on freaking glows if you point a UV torch at it. To give the GR3ML1N that awesome texture, I printed using just two top and bottom layers and the honeycomb infill. Finally, to give it some character, I designed some graphics to put on the board and printed them out on Waterslide Decal paper using my trusty Brother Laser Printer. A quick wipe off matte varnish locked them in and protected them from future damage.

20260420_211614_ef1927dd.jpg

SYS:// SOFTWARE

This is the bit I'm most proud of. [GR3ML1N] runs a custom OS built on CircuitPython. It's fully modular so apps live on the SD card with their own data meaning you can add new ones without reflashing anything. Themes are supported throughout and everything works with both touch and keyboard navigation.

Current apps:

  • Text editor
  • Chiptune keyboard
  • BLE scanner
  • WiFi scanner
  • Network clock
  • Test apps (touch, IMU)

The current apps (or Gizmos as I like to call them) are pretty basic and just built for fun, but the ESP32-S3 has enough grunt to do some pretty wild stuff. I hope to replicate some of the popular tools available for the ESPP32 platform, especially some of the more hackery type things like penetration testing and mesh communications via ESPNow or Meshtastic. I'm also thinking about giving it a "webserver" mode to allow quick and easy access of onboard data via simple web page hosted directly n the device (plus uploading new Gizmos).

SYS:// DISCLOSURE

I'm a designer not a coder. I did the architecture (how the OS is structured, how the modules work, how everything hangs together) but when it came to actually getting the hardware talking and the apps running I leaned heavily on AI to help translate ideas into working CircuitPython. I want to be upfront about that rather than wait for someone to ask. The thing works, it does exactly what I wanted and I built it. I still feel vaguely gross about using AI in my projects, but when the choice is getting shit done, or letting my ADHD get bored mid-way through a project, I'll take "x

CMD:// THE FUTURE

I'm really happy with this build, but I still have a few tweaks to make. Firstly the software. I have tons of ideas for new and cool software that wiil make this more useful. I also need to refine the model design a little... It's pretty good as is, but not yet ready for prime time. It has some quirks and I don't quite feel comfortable sharing with the masses. Soon though, I promise. I spent quite a lot of time building custom keycaps, but the Posca'd on keycaps don't quite feel right so I'm going to see about figuring out some legends for the next iteration.

I also want to integrate a few flexible green led strips so you can clearly see when this baby is powered up and ready to go.

SYS:// BUILD_YOUR_OWN

If you want to make your own, everything you need is here:

Happy to answer questions about any of it, hardware, software, the OS architecture, print settings, whatever. Drop me a line on Mastodon