Not Spectacular but Definitely Specular
I watched Steve Mould’s video of Specular Holograms a while back, and it wasn’t until a cool student wanted to borrow my tabletop plotter to try it that I realized it was within reach. The plotter approach didn’t work, it really wasn’t designed to take the friction of a carbide tip etching surfaces. But its software stack is easily portable to anything with 2 stepper motors and a “tip” based action. So I thought it’d be a cool Christmas project to turn an old Creality 3D printer into something capable of etching specular designs.
And well, the results are mitigated so far, but I’m getting somewhere with a moving glint effect.
I need to tune the machine to barely touch the medium, and figure out model creation. Moving a tip is easy these days, unsurprisingly though there are a lot more intricacies to uncover to get good results.
Dragon of UV Light
I tried for years, it wasn’t meant for plotters so I had to figure out a way to make it work. Lara‘s usual incredible work. UV ink is definitely the medium for it.
That’s a Wrap
Robotics 2025 concluded with 2 kids having built the small Etch-a-Sketch plotter after 5 sessions, and an extra one to just consolidate and draw. There isn’t much to say other than it went like a charm. I’ve added onto the Inherently Programmable Pi so they could have a basic HTML interface to their machine, I have yet to publish the update. This solution I feel is a bit of a game changer for engaging with robotics. At best it lowers the bar significantly for uninitiated learners; at worst it’s just darn convenient to get to work on your Pi project anywhere. A few years ago I’d promote it on a few online communities, these days I just don’t have the will to do much of anything online, but I really should.
Playing with the RPi Etch-a-Sketch
I’m recreating the small SketchyBot for an electronics/robotics curriculum. It’s a perfect opportunity to let kids play with it.
Works Entirely Too Well
And by this I mean it works as well as any dip pen I’ve ever played with, which is to say not great (but it’s fun at least).
Turns out most ballpoint pens’ tip & ink reservoir fit perfectly inside a turkey feather. So the kids will be able to rock their turkey pen at school.
Massive Stove
I almost didn’t run this one, it ended up being my magnum opus. It took ~180 hours and 8 pens. Unfortunately, even though I have strict protocols for marking pens which aren’t full, I had it go over the week end with one that had been used before and ran blank for a bit. It’s ok, these monster plots come with imperfections.
I found the image in a 1902 edition of the Sears catalog where they sold it for $14.95. I consider it an expression of culture, from a time when anything we created came with ornaments. It shines all the more in a modern building with very clean and sanitized architecture.

Created on the Spot
I remember an epiphany I had as a kid downloading mp3s at a friend’s house who had DSL while I was still on dialup. You could download music faster than you could listen to it, and the infinity of it blew my mind. To say that AI is leaving my jaw on the floor on most days is an understatement, but maybe what I’m realizing today is it’s potential for creating faster than you can acquire. It’s not just that I’m having it write programs that replace a ton of apps I’m dragging around for only a thing or 2 they do well. It’s that at the time I need a program, it might be faster to make AI produce it from nothing than to otherwise acquire it.
The family’s been into Solitaire and Minesweeper, tons of sites, tons of ads, looking looking, bleh. Fuck it, I’ll just have AI make me one.
Inherently Programmable Pi
I’m teaching a small robotics class, we’re making the small Etch-a-Sketch plotter. Just a couple of kids, good eggs from the 5th grade X,Y coordinates class I teach every year. I’ve already done similar classes in various contexts, it’s a ton of work but very rewarding. One thing I always seek to improve is my Pi image management. Depending on the kids & material, we’ll go through some Linux CLI, or I won’t even want them to touch Linux but we’ll still have to click through some things to get going on Python to control GPIO pins.
What I’ve been wishing for for a while, is a Pi that’s always online everywhere, with the quickest way to get to just Python. Hopefully something web based so you don’t need anything other than your old faithful browser to start throwing code at GPIO pins.
Introducing IPP, the Inherently Programmable Pi! An image you can download, or build.
Step 1 – Python Forking Web Code Editor
And so step 1 is obvious, I want the Ace web based code editor, preset to Python settings, and served by the very Pi it’s meant to write code for. With a few buttons for running code, stopping it, and checking the output.
AI made that a breeze to code, it always blows my mind how well it understands even convoluted assignments. There’s some pretty gnarly stuff going on there. Python runs a web server that serves a coding environment that can fork another Python process, and kill it with varying degrees of prejudice when it won’t go away on its own. I want this packaged a a single Python file with all the bits and pieces bundled in. AI got all this with little help.
Step 2 – Zerotier & Public Bridge
For step 2, I want the Pi to be easily accessible online, no matter what crazy wifi it’s connected to. For this we’re using Zerotier, and an online bridge that is publicly available to forward traffic into it. In my case this is done with Traefik and a Docker container dedicated to forwarding into Zerotier. I unfortunately can’t offer this part of the stack with the image, but you can at least specify a Zerotier network ID as a tunable when building it.
This way, no matter what Wifi network your Pi is connected to, it will always be available via a public URL.
Step 3 – Local Wifi when Nothing Else
I wanted to take the script that turns PlottyBot into a hotspot if it’s not connected to the internet and modernize it for the newest Rapios (Trixie). I also want the web interface to let you connect to existing Wifi networks. This way you are either in a spot with no Wifi, and your Pi spawns a local one which doesn’t route to the internet but you can still program. Or there is pre-configured known internet Wifi within range and your Pi connects to that.
Of course AI yet again turned a multi-hour endeavor into a 30 minutes one. Well, it did mess up some fundamental things but still, I was spared hours of grinding.
Step 4 – Easy Imaging
Finally, I want to create Raspios images with all this and a few tunables baked in. No booting each one to install stuff & tune it for each kid. For this I’m using something I built years ago for mounting *.img files and tweaking them. It’s a Docker container you can pipe an image file into and out stderr comes the customized image. This might be worth its own post, I’ve used this for years to great effect, but that’s beyond the scope of this post. The point is it’s available to use, and here’s how:
Build Your Own Image
First download & decompress the latest Raspios:
wget https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2025-10-02/2025-10-01-raspios-trixie-arm64-lite.img.xz
unxz 2025-10-01-raspios-trixie-arm64-lite.img.xz
Then download & decompress this project’s files to tweak it with:
wget https://ben.akrin.com/downloads/ipp_2025-11-11.zip
unzip ipp_2025-11-11.zip
Finally, create your customized Raspios image with:
sudo docker run --rm -i \
--name=raspi-image-customizer \
--cap-add SYS_ADMIN --privileged \
--device /dev/loop0 \
--platform linux/amd64 \
--cpus="1" \
--memory="500m" \
-e HOSTNAME=mypi \
-e HOTSPOT_WIFI_SSID=mypiwifi \
-e HOTSPOT_WIFI_KEY=raspberry \
-e ZEROTIER_NETWORK_ID="<ZEROTIER_NETWORK_ID>" \
-e PIPASSWORD="raspberry" \
-v ./ipp:/data registry.akrin.com/raspi-image-customizer:latest < 2025-10-01-raspios-trixie-arm64-lite.img 2> ipp.img
–cap-add SYS_ADMIN, –priviledged, and the loop0 device are necessary to mount a file as a disk inside the container.
HOSTNAME is evident
HOTSPOT_WIFI_SSID & HOTSPOT_WIFI_KEY are the settings for the local wifi network that the pi will spawn when it has no known networks to connect to.
ZEROTIER_NETWORK_ID is optional, if specified the pi will join it first chance it gets (when connecting to a managed wifi that routes to the internet).
PIPASSWORD is the password for the pi user, careful SSH is enabled in this image.
You can burn the resulting ipp.img to an SD card. The first boot will be longer than the subsequent ones as stuff gets initialized, but eventually you’ll see a new wifi network pop up. Connect to it, and point your browser to http://hostname.local or if that doesn’t work http://192.168.50.1, you will see the coding web interface. Now that might be enough for your to start coding, but if you want you can click on the wifi network icon at the top right to specify a standard network to connect to. And if you do so, I recommend you have a way to “follow” your Pi, either via Zerotier, or because you manage that network and are able to see what IPs devices get assigned. And if you setup a Zerotier forwarder on top of all this, your pi essentially becomes online to the world the minute it’s on. Now that isn’t just convenient, it also significantly lowers the bar to start coding with kids.
Or… Download a prebuilt one
Here’s the link.
parameters used for building it are:
HOSTNAME=ipp
HOTSPOT_WIFI_SSID=ippwifi
HOTSPOT_WIFI_KEY=raspberry
PIPASSWORD=”raspberry”
No Zerotier, but still everything else.
Update Hell
Software is steadily becoming more dictatorial. It gives us fake choices like one does to a child to trick them into behaving, with a so called dark pattern to make the “right” decision obvious. I’m pretty sure I’ll be going back to Linux soon.
If update prompts spoke the truth:
I don’t mean to particularly pick on Apple, that’s just the template I used.
Christ on a bike, can I do anything?
We’ll harass you until you click the button, It’s our gift to you!

“For now”, you’ll comply eventually.
Peaches?
We’ve had bad luck with peach trees dying in the past, mainly due to us not removing all the buds as they are establishing themselves. One of the dead trees went again, bellow the graft or so we thought. So I removed all the buds this time, but there were so many I missed a few. And well, they turned into small peaches :). They’re delicious, just small. We didn’t think we’d be picking peaches in October.
Stereographic Projector
I had to make one: https://www.thingiverse.com/thing:2094215. Projection is shorter range than I was hoping for but it’s still fun and gets the kids thinking.
Bis Repetita
Second deployment of Laser Portraits at a public event. It was a lot busier this time around, and totally fun as previously. Also very stressful until a few portraits are behind me. It doesn’t matter how much I test and check, something always goes wrong but I got it all figured out just in time. I’m also refining the formula for how to present and interact with people. The PewtyBots performed all evening without missing a beat.
The Stranger
This is why people hate books. It’s not meant to tell an interesting story, it’s an exercise in the absurd by the author. I only finished it because it was short and I thought something must happen eventually. The dude doesn’t even get his head chopped off at the end. I picked it because it’s a classic and I heard a journalist I like talk about it as a life altering book. I don’t see it in the least. Nicole told me Camus is responsible for the stereotype of “ennui” as seen in Inside Out 2, makes sense. This book has zero purpose, it’s written to be boring and it’s quite effective in that regard.
Do I feel any shame being the uninstructed critique of renowned authors? Not at all, this book sucks.
Esther’s Plotter
I love it very much.



























































