Ben's Blog

AI, electronics, I.T., web development ben November 12, 2025

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.

miscellaneous ben November 08, 2025

Protected: Made it to Space

This content is password-protected. To view it, please enter the password below.

Books ben October 28, 2025

Night Flight

Great short read. Saint-Exupery just has a unique sensitivity for describing life in a way that pulls out the child you buried under layers of adult responsibilities. And the story is a cool glimpse into the operation of the aéropostale and what it meant to fly then.

miscellaneous ben October 22, 2025

Protected: Arlesian House

This content is password-protected. To view it, please enter the password below.

3D modeling / printing, aesthetics ben October 15, 2025

Can’t Have Favorites

they both need to have their stereographic projector.

I.T., maniacal paranoia ben October 09, 2025

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.

agriculture, self sustainability ben October 08, 2025

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.

aesthetics ben October 05, 2025

Protected: Poyas out the Wazoo

This content is password-protected. To view it, please enter the password below.

3D modeling / printing, aesthetics ben October 05, 2025

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.

miscellaneous, plotters ben October 05, 2025

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.

Books ben October 04, 2025

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.

aesthetics, plots ben September 28, 2025

Freedom & Unity

I have a penchant for Vermont seals & coats of arm, and I found some good ones in some old books. I really like turning old engravings into large plots, these look great in person.

The new recursive inset fill algorithm is incredible and making me want to revisit previously hatched plots.

plotters ben September 28, 2025

Esther’s Plotter

I love it very much.

Books ben September 27, 2025

The Grapes of Wrath

I was forced to read as a kid, which made me despise books and go through school avoiding them at all cost. I can count on my hands the number of books I actually read. Half of which were when I met Nicole and took interest in the books she liked. It’s a sad fact, but literature eventually found its way via music with Brel & Brassens. I could at least enjoy some good prose but I still avoided boring paper for decades. Learning English eventually made me more interested in language. Lately I’ve felt like friends were getting something out of books that I wasn’t, and so that I should try again. I’ve also been interested in refactoring media habits, less algorithmically fed bite size outrage, and more human chosen focused & continuous.

How to pick a first book in decades, and not get burnt? Well I decided to stick to classics thinking they were well liked for a reason. The current economic context led me to pick The Grapes of Wrath by Steinbeck.

It took me a while to get through it, reading is really not natural and I need to establish the habit. And I loved it. I loved recognizing a uniquely American hardiness in Tom & his fambly. Nicole & I have observed well before this book that Americans have a particular way of going through hardships. Resigned, no push back, just acceptance and enduring. Sometimes, and that may be the latin in my own cultural mix, you kind of want to shake them and ask why they are just accepting things that could be pushed back on. This cultural trait is well illustrated in this book. It was rough to read at first and it took me a while to understand some of the words. The illustration of economic exploitation was also well received and helped me understand a pan of US history, and present state. Everyday economics here is objectively a lot more cutthroat than western Europe. This can be good or bad, much like unquestionably enduring hardships. More freedom to do great things, and more freedom for greedy predators to help you hang yourself.

I know it was a good book because it stays in my mind well after having read it. I hope I can keep fanning that flame going forward.

AI, I.T., web development ben September 27, 2025

RGB Playground

This is genAI’d, I have no merit. I just wanted this utility online somewhere easy in order to play with PWM RGB LEDs.

Click to pop out

nature encounters ben September 23, 2025

Territorial Turkey

(take note Canonical)

I seem to have stumbled on a turkey turf war, I wasn’t sure what I was hearing until I got close. And then again I wasn’t sure what I was seeing until from the chaos emerged 2 flocks going opposite directions. Clearly they had run into each other and weren’t having each other’s presence.

miscellaneous ben September 21, 2025

Protected: Climbing Trees

This content is password-protected. To view it, please enter the password below.

miscellaneous ben September 17, 2025

Energy Diversification

I hate to say it, but we have hooked on to the grid. Well, we have an outlet, outside, with nothing plugged in. The house and kids are growing, we use ever more energy and I have less time to implement. We still don’t have a root cellar which would be the perfect spot to keep batteries from freezing, and would trigger our investment in a good bunch of lithium. And so until then it’s only 3 batteries keeping us going, and really they do great, but in the winter with shorter days, more cover and colder weather, we have used the generator. And so the idea with having access to the grid is to replace that, and in general having one more option to fill batteries.

I am dead worried about complacency, I really don’t like the idea that it’s right there waiting to be used and easy. In reality, the last car we bought should have been electric. We didn’t have the capacity to “fuel” one though, it would have been nice to have had the grid option then. I still very much have the intention to fuel one with the extra solar array that’s been sitting in the shed for a while now, but at least if push comes to shove, we can still get the car now and experiment with increased solar later. That is one thing about home grown solar, with change comes a transitional time of experimentation and learning lessons the hard way. Which is a bigger deal when talking about mobility (AKA me waving my hands explaining to Nicole why her car doesn’t move).

Another hard truth is that we’ll never have enough storage to run AC in the house through the night. We’ve done wonders with running it during the day, taking a cold shower in the evening, and fanning cold air in at night. If you give us a Summer like 2025 every year, no problem. Seared in our memory though is a brutal heat wave which lasted for days and offered no respite at night. We want to be better placed to tackle future heat waves, and the grid means having the option to run AC through the night.

The house is still solar and autonomous, the grid is only an extra decoupled input we can tap into when it makes sense. But we’re no longer as off grid anymore. I’m confident we’ll keep growing our array and experimenting, I’m genuinely curious about all things solar.

aesthetics, AI, plots ben September 16, 2025

Plots

I’m plotting again after an August hiatus. The new Gondola Plotter is super quiet, so nice! I’ve made a few refinements to the software stack of course… The usual.

I found a bunch of really cool engravings in some very old books I found in the abandoned house. These books are worthy of some discussion on their own much like the old vinyls, but this isn’t the time.

I got ChatGPT to make me a few SVG handling tools that are really incredibly well done and will help me shed some of the apps I was using. With SVGs there really is not a single app that does all the things, so I drag a collection around just to use 1 or 2 of their function. AI is helping me write scripts to explore algorithms and replace more trivial functionality from apps.

Case in point: this super cool recursive inset fill algorithm to turn fills into something a plotter can do.

I’ve been wanting to write this one for a while, but I knew it’d take me a good few days to nail it. That got turned into 30 minutes with AI. Jaw dropping. I love the effect as it echoes a lot of bored fillings of shapes I’d do as a kid getting bored in class. The cookstove above is filled with it, but it’s far too dense at this size and so it really looks like a actual fill rather than a particular effect.

A lot of my tooling these days is Python which has good libraries for handling SVGs. I used to dislike Python for their dumb purist move from 2.7 to 3 which wasted everyone’s time, and because they had managed to reimplement library hell. But I have to say venv is a successful redress to the later.

apple, self sustainability ben September 16, 2025

Protected: Cider ’25

This content is password-protected. To view it, please enter the password below.

agriculture, self sustainability ben September 16, 2025

Keeping it Soft

A day spent on a tractor is a day well spent. Not really doing anything with this field yet, just keeping it open.

self sustainability, solar power ben August 21, 2025

And the AC to DC Converter

Just found that out, this is starting to be a very expensive lightning strike.

electronics ben August 17, 2025

Looks Like the Temp Sensor

also got EMP’d. That’s kind of crazy to think about. I suppose this isn’t the most reliable electronics but it kind of gets you thinking about what else could be affected. Or what we could lose with a closer strike.

Posts pagination

← Previous 1 2 3 4 … 52 Next →

This blog is solar powered

Interactive

Handwriting Capture
Mandalagaba
IPv6 link-local to MAC converter
IPv6 MAC to link-local converter
Markov Text Generation
Markov Word Generation
Markov Music Generation
Duplogrifier
Flood Fill Algorithms
Homestead Metrics
RGB Playground
Web Games

Categories

  • aesthetics111
    • plots54
    • specular holography6
  • Books3
  • I.T.202
    • 3D modeling / printing21
    • AI6
    • all out geekery36
    • electronics27
    • homestead automation6
    • maniacal paranoia25
    • plotters49
    • unix / linux29
    • video games4
    • web development29
    • web games3
  • Lego / Duplo67
  • life in the U.S.42
  • miscellaneous202
  • nature encounters114
  • old vinyls3
  • organs2
  • self sustainability560
    • agriculture105
    • apiculture38
    • apple20
    • building131
    • canning3
    • crochet6
    • foraging6
    • hunting10
    • maple syrup47
    • poultry39
    • preserving2
    • solar power28
    • water23
    • wood84
  • trip to a new life6
Theme by Bloompixel. Proudly Powered by WordPress