Long time no chat! I fell into the classic “I’ll send an update when I’m done” trap, but I’ve just come to my senses and decided to publish works-in-progress:
I built an enclosure for a desktop CNC mill, which reduces the sound level from “deafened by shopvac” to “the guy across the street is vacuuming”:
The design is a box-within-a-box, with both boxes made from ¾" OSB and 2x framing, copious weather-stripping around the doors, and serious grab latches.
In hindsight, the box-within-a-box was probably too complex, so if I did it again I’d just go for thicker walls. I.e., use a single wall made of three glued-together ¾" OSB sheets rather than two ¾" walls separated by an air gap.
If you’re in the market for dampened sound, I highly recommend this book on home recording studio design, which is written by someone who actually understands construction and acoustics. (Spoiler alert: Don’t bother with egg crates.)
First, let me be clear that I’m not one of those nerds obsessed with custom mechanical keyboards. However, they are a great domain in which to explore novel materials and push my design-for-manufacturing and electrical engineering skills.
On the industrial design side, I’ve been toying with forms in bamboo:
and plan to explore cork (any of y'all have experience molding/forming it?) and slip-cast ceramics next. At some point, I may manufacture a small run of standalone numberpads for the, uh, hipster accountant market?
On the electrical side, I’m graduating from “baby’s first Arduino” 8-bit chips to more capable STM32 ARM microprocessors:
Turns out one can make a USB keyboard with very few components: The STM32F0x2 series can be clocked from the USB connection (no crystal) and has enough I/O pins to wire up key switches individually (no diode matrix).
Compared to when I made a cell phone in 2015, things are way more accessible now. In particular: great YouTube videos on CAD / CAM, on cheap + easy product photography, and on how to use the open source PCB design software KiCAD.
Beyond just accessible knowledge, one can now also order assembled PCBs in small quantities quite inexpensively. The numberpad PCB above cost $41 for 5 assembled copies, including parts and shipping (!!!) from SeeedStudio.
I’ve been exploring the feasibility of using computer vision to estimate physical geometry Basically, given an image/video containing known references (e.g., lines milled into a CNC spoilboard), how precisely can we infer unknown geometry (e.g., the position and size of a block of wood hastily clamped to the machine bed, into which we’d like to cut dovetails).
This outta be a much easier problem than photogrammetry (see Frank Howarth’s fruit digitization), but I haven’t been able to find much in the way of prior art.
(And yes, I did explore Apple’s ARKit, but tolerances seem to be on the order of a few cm, while I’m looking for something closer to 0.2mm.)
I suspect the real challenge isn’t in the computer vision bit, but rather in designing the user interface and concepts to support the end-to-end camera <-> CAD/CAM <-> CNC workflow.
I’ve been pairing on this with a friend, and since we’re both computer vision amateurs (we don’t even know Python!) we’ve had fun giving ourselves permission to liberally Google, copy-paste, and otherwise smash global variables together until things work. We’ve gotten surprisingly far in just a few cool-looking video chats:
Please let me know if you want to pair on this sometime — especially if you know about tracking user-specified geometry and integrating measurements across video frames.
There are a least a dozen blog posts to be written about the above projects — if you want to know more about anything, please let me know and I’ll write that post first =)
Other cool things off the top of my head since the last newsletter:
Makepad: Seriously fast and impressive immediate mode graphics in Rust. I often hear nerds whining about the web, too much abstraction, etc., but no blog post can be as compelling as an “existence proof” of 60 FPS animated text, graphics, and interactivity that know I’d never be able to pull off on the web stack.
At some point I’ll try dropping Electron from Finda and rewriting in the Makepad stack.
Speaking of fast live coding, check out Ekil Steenberg’s LOVE Tools Demo from 2009. Many nerds get lost in the “building tools to build the 3D engine to build their game” yak shave, but Steenberg actually finished and shipped their game!
(Endearingly, in the same way web developers build themselves tools that look like Sublime Text, apparently game developers build themselves tools chock full of transparency, animated zooming, and lens flares.)
18-part series on prototyping (in the machine shop, not in the computer).
Until next time!