avatar image - a green paisley swirl bits all the way down
February 6, 2026
By: Nundrum

P.E.P.R. Codex

  1. 》P.E.P.R. Codex - The Control Interface
  2. 》Hardware
  3. 》What It Looks Like
    1. 》Screenshots
    2. 》3D Model of The Case
  4. 》What’s Next

》P.E.P.R. Codex - The Control Interface

P.E.P.R. Codex is the new name for the wrist-worn control screen for the P.E.P.R. jacket project. I have slowly been making progress on it and finally have updates worth sharing. Keep in mind that this is still under active development.

The Codex is supposed to integrate with the rest of the jacket as well as work standalone. Controls for the jacket were easy to envision, but the standalone mode had me puzzled for awhile. Then two things happened to help solve the puzzle.

First, I saw the OUI-SPY project and it was inspiring. Defensive BLE and WiFi scanning - that’s the kind of standalone capability that would give it a good cyberpunk feel.

The second happening was that I bought an electric unicycle. The EUC World app supports a few smartwatches but I wasn’t keen to buy one when I could just add some code to this project. The app exposes a web server that can be polled for info, which made integration possible. Now I can see speed and battery stats while in motion. Isn’t rolling around on a single wheel rather cyberpunk itself?

》Hardware

This is a Waveshare ESP32 with touch screen LCD display.

I picked it for the form factor and easy battery integration. Only real-life testing will tell if it’s too big. It has built-in audio but that is yet to be implemented.

》What It Looks Like

Visually, I went with a GUI design similar to my blog. At some point I realized that my Fountainvoid font could be exported to a format usable with the LVGL library that drives the screen. Imperfect, but I like it.

The background is animated. Simple trails of glowing hexagons drift across the screen. Alerts spawn more trails in brighter colors, and also show an alert badge.

》Screenshots

Moving from one screen to another is done by swiping.

This is the main, default screen showing time, date and alerts when present:

Main Screen

And here is the Defense screen for toggling BLE and WiFi scanning. There is also a log of the MACs found:

Defense Screen

》3D Model of The Case

The G-Shock GX-56 was the inspiration for this design, but overall it’s still rather basic. This is going to take design practice and many iterations. You can see the OpenSCAD rendering below. I hope that soon I’ll have more updates to share including a picture of the working Codex.

OpenSCAD model

》What’s Next

Perhaps the biggest item left to do is figure out how to make it attach to the sleeve of the jacket and also be independently wearable on the wrist. My best guess is velcro on a leather strap for the wrist, and then matching velcro stitched to the sleeve to mate with it.

After that, it’s mounting the Brain and battery, then running USB cables through the jacket lining to connect the Codex, Brain, and Matrix.

End-of-Transmission
Tags: platformio pepr jacket project
Clojure and D-Bus »

A blog by Nundrum

Links

  • @Nundrum on Mastodon
  • Clojurians Slack
  • Archives
  • RSS

Pages

  • Contacting Nundrum
  • P.E.P.R. Jacket Project

Recent Posts

  • P.E.P.R. Codex
  • Clojure and D-Bus
  • Clojure, Babashka, and Web CGI

Tags

  • re-frame
  • clojure
  • svg
  • async
  • interop
  • jna
  • cli
  • screensaver
  • platformio
  • font
  • babashka
  • utility
  • pepr jacket project
  • cyberpunk
  • clojurescript
  • selfhosting

Copyright © 2026 Nundrum

Powered by Cryogen