Skip to content

Episode 29 - Kick Out the Jams

Welcome to the show

Published: February 2, 2026

In this episode, Tod and Paul discuss hacking Flock cameras, the Adafruit Fruit Jam, Neural Networks in CircuitPython, some bad 3D printing legislation, and more.

Follow the show on Mastodon or Bluesky.

We have stickers! Request a free sticker here. (US Only, sorry!)

Full transcript available here.

Listen to the podcast

Show Notes

Flock camera hacking w/ Benn Jordan (Tod #1)

Links:

Naya Connect Modular Keyboard Kickstarter (Paul #1)

The Naya Connect is the second product launch from Naya, who has a Kickstarter campaign for their new modular keyboard, the Naya Connect. They previously launched their split keyboard also on Kickstarter.

The Naya Connect features a low profile keyboard that's ultra thin at just under 15mm. But what's innovative about it is that it's modular, allowing users to customize their keyboard layout and functionality. You can choose from different expansion modules including:

  • Multipad - a 4x4 Macropad that can work as a number pad or anything you program it for.
  • An extra column of 6 keys, laid out vertically.
  • 4 different input modules to let you replace your mouse, including a trackball, touchpad, a dial and a floating joystick.

And what's really neat about all of these modules is they're made for both right and left-handed users with connections for reach module on either side.

It also includes Naya Flow, their custom software that allows you to program your keyboard layout and all of the modules.

If you're quick, you can jump on the Kickstarter as it has about a week left from when this episode is being released. Options start at about $180 and quickly go up from there depending on what modules you choose.

ESP32-C5 now in Xiao form (Tod #2)

ESP32 finally supports 5 GHz!

ESP32 chips and dev boards are currently the best way to do WiFi with microcontrollers, in my opinion. They're fast, have lots of memory, and rich built-in peripherals for driving displays, audio I/O, etc. And you can program them using the vendor supplied ESP-IDF SDK, Arduino, Micropython/CircuitPython, or even the super modern languages like Rust and Swift.

But the term "ESP32" is kind of misleading. It's not a description of a chip architecture, but more like a brand, more akin to the term "make" in cars. There are multiple chip architectures in the ESP32 family, with the more modern being RISC-V-based ones. It used to be saying "ESP32" by default meant "WiFi microcontroller" but now even that's now true, with the new ESP32-P4 chip that does not have WiFi (it has a lot of GPIO and seems to be good at driving bigger displays)

The problem with all the different variations of the ESP32 WiFi chips though has been they're all on 2.4 GHz WiFi. Even the very recent ESP32-C6 chip that boasts WiFi 6 support, only does that on 2.4 GHz. The 2.4 GHz frequency spectrum is the original that WiFi is on and is still great for longer distance, but 5 GHz is the norm in most home and office setups. To the point that some WiFi access points encourage you to turn off the 2.4 GHz side of things!

But there's now dev boards available using the ESP32-C5 chip. This is a dual-band WiFi 6 ESP32 that does both 2.4 GHz and 5 GHz. While both Espressif (maker of the ESP32) and Waveshare have had larger dev boards with the ESP32-C5, just recently Seeed is now selling a Xiao board using the ESP32-C5. This is great! If you already have a WiFi project using a QTPy or Xiao board, you may be able to just swap it out for the new ESP32-C5 Xiao and get your project on 5 GHz.

Oh and another cool thing about the ESP32-C5 is that it can support Matter and Thread protocols too. I suspect we'll be seeing this chip in a lot of home automation projects in the future.

Links:

Let's chat about the Adafruit Fruit Jam (Paul #2)

The Adafruit Fruit Jam was first released at the end of July in 2025 and went out to thousands of Adabox subscribers last November. If you haven't heard of the Fruit Jam, it's Adafruit's take on building a mini-computer using the rp2350b microcontroller. With all the extra GPIO in the rp2350b, Adafruit was able to add DVI out using an HDMI port, 2 USB ports for USB host to hook up gamepads, mice, and keyboards, a microSD card slot, and a StemmaQT port to add additional sensors.

Not only is the product innovative, I'm blown away by the community's response and all the cool software that is available to run on the Fruit Jam.

Using Native TensorFlow & PyTorch Neural Networks in CircuitPython (Tod #3)

A few weeks ago I came across an interesting blog post by Ashish Patil on how to embed native code versions of trained TensorFlow or PyTorch models into CircuitPython. If you're interested in machine learning or embedding native code into CircuitPython, it's a really useful read.

TensorFlow and PyTorch are both Python-based machine learning tools for building neural networks and other learning models. Normally these run on "real" computers, but we've seen TensorFlow models being run on embedded dev boards for several years now. (In fact, Adafruit made an "Edge Badge" version of their PyGamer board that could do TensorFlow-based voice recognition using TensorFlow Lite in Arduino)

These models are trained on a large fast computer and the resulting models exist as a blob of generated code with essentially a single function that takes an input and returns a result. This code is small enough to run on microcontrollers so there are several mechanisms to stick them into your Arduino code or whatever. But getting them into CircuitPython has been tricky. You can generate a pure-Python version of the model (and Ashish shows how to do this), but that runs pretty slowly.

Ashish's post gives a step-by-step process staring with training the model and converting the result to C with onnx2c tool. (ONNX or Open Neural Network Exchange is a standard way to represent machine learning models). This resulting C-code has no CircuitPython-specific code in it, so his next step of showing how to add this C code to CircuitPython is very clean and understandable.

There are several little niggly changes you need to make to the CircuitPython source tree to add new native code (it's frustratingly more than just sticking it your board's definition directory), but Ashish shows exactly all the files you need to change, so even if you're not interested in machine learning but are interested in adding native code to CircuitPython, this post is helpful.

Washington State's proposed 3D printing bills (Paul #3)

Washington State representative Osman Salahuddin has proposed two bills:

HB 2320 adds criminal liability around digital firearm manufacturing code and classifies the machines that make these parts as part of firearms law.

HB2321 requires any 3D printer sold or transferred in Washington after July 1st 2027 to include mandatory DRM that has blocking features that can detect a firearms blueprint. As Adafruit shared: “Printers would have to examine every file, compare it against a centrally maintained list of prohibited designs, reject flagged jobs, and be engineered to resist bypass by “users with significant technical skill.”

This is definitely something to keep an eye on, because if one state is thinking about it, I bet others will be too.

The language as it is proposed is too broad, and I’ll leave you with this quote from the Adafruit blog post:

“None of these controls stop “determined actors”. What they do is burden lawful users, destroy open-source innovation, and force proprietary stacks and cloud services, not safety.”

Wrap-up

Pau lives in the suburbs of Minneapolis, MN which is currently occupied by ICE. To help those on the ground in Minnesota, please visit StandWithMinnesota.com