About two years ago, for no really good reason, I designed a 3D-printable setup for coupling those standard gearmotors to Lego bricks and axles, and posted it at Youmagine. Hardly anyone liked it or downloaded it.

Then, last week, Adafruit, arbiters of all things cool, highlighted a cute new product: a little injection-molded piece that connects standard gearmotors to Lego wheels and gears. Essentially my stupid little adaptor piece plus an axle built in.  So now I feel that my original idea was as blindingly obvious as it seemed to me. I was just ahead of my time and/or my implementation was crap.

Seeing their solution also made me think a little about design for manufacturing. My little cylinder was optimized for 3D printing, where leaving space out is easy and making long, skinny, precise and strong bars, beams or axles is a pain. Their socket-plus-axle is just right for injection molding, where molds for positive shapes is easy but making inserts for precise, deep straight holes is harder.

Oh, yeah, I still have those old RCX bricks lying around.

Posted in making, probably boring | Tagged , , | Leave a comment

Burning down the house by remote control

A few weeks ago I blew up my Octoprint installation by adding and deleting too many extensions at the same time. Before reinstalling, I thought it might be a good time to upgrade a bit.  So now there’s a cute little mostly-empty box sitting next to my Octopi. First item: the Pi is now powered from the 5-volt standby pin of the ATX supply that also runs the printer. Second item: a tiny proto board with a MOSFET that bridges the ATX supply’s power-on pin to ground — with the gate wired to the Pi — and another header that brings out the power-good signal so that the Pi will know what’s currently going on in ATX-land.

pibox1 pibox2

So now I can fire up an Octoprint browser window from the other end of the house, turn on my 3D printer remotely, and crank the hot end and bed up to whatever temperatures I want before printing something. Somewhere I also have a filament sensor, so wiring that to the Pi’s GPIO will be next.

It was all fairly simple, all things considered. I stole a 22-pin(!) ATX connector from an old mac motherboard hanging around in the basement and wired everything to that. Powering the pi meant soldering big wires to a micro-usb plug from Adafruit (whose technical info doesn’t include a pinout) — if I had it to do over again I probably would have just dissected a charging cable. And getting the power-supply plugin to work with Octopi took a few extra minutes because of the usual confusion over GPIO numbering (I thought I was using WiringPi notation, but nope). And when I cut the box I made a big hole in it so I could eventually screw the box to something, but for now it’s just hanging in midair.  Makes using the printer that much easier, though.

Posted in making, probably boring | Tagged , | Leave a comment

Cooperative Editing whether you want it or not

The last time I tried teaching some kids how to program arduinos, the room we were in had no wifi to speak of. Getting working copies of the desktop IDE onto half a dozen ancient underpowered windows laptops was a nightmare. As was trying to keep track of which kid was using which laptop, because of course all files were local.

So this time, with a bunch of desktop machines, the access point 20 feet away and even a bunch of ethernet drops, you’d think using the Arduino Web Editor would be pretty straightforward. Nope.

First, the widely-known (except to me) refusal of some Windows 10 machines to connect to some wifi networks. Our batch of 10 ostensibly identical machines (corporate donations of standardized hardware kindly re-imaged just a few weeks ago) had about a 50% success rate, measured by swapping out finicky boxes until we had a set that worked.

Then the wifi. Thanks to the bloat of modern web pages, even with a multi-megabit pipe and a perfectly adequate router, pages were taking the better part of a minute to load.

But what finally had me apologizing to the kids and promising to install (gah!) individual copies of the Arduino IDE on every machine was a more basic problem that I should have anticipated. Since I didn’t make separate accounts for all of the kids taking the class, the servers at Arduino central kindly merged all the traffic coming from 8 or so machines into one stream of commands to the editor.  Type it here, watch it come out there. Try to upload here, fail because you don’t have permissions for the USB port there. And so forth. And no, changing to different files for each kid won’t work either, because the name of the file you’re editing propagates too. (Ages ago, a researcher at Xerox PARC told me a story about the Pluribus, one of the first fault-tolerant multiprocessor machines, and the comedy that arose the first time administrators tried to update the operating system. What! One of the CPUs is seeing code different from the others? Quick, repair that code image by copying from backup and rebooting the offending unit!)

So I haven’t decided yet: Install the desktop IDE everywhere and then make kids sit at assigned computers for the rest of the court so they can find their programs, or run a bunch of ethernet cable around the classroom and establish Arduino Web IDE accounts for all the kids (none of whom might possibly do anything foolish with them). Or maybe some horrific combination of the two.


Posted in possibly useful | Tagged , | Leave a comment

The finicky details are the easy part

For someone coming from a woodworking background, 3D engraving by laser is as far opposite from carving as it’s possible to get. Not just the medium — multiple machine passes from a specially-prepared bitmap — but also the understanding of what works well and what doesn’t.

When you’re carving something by hand, more details means more work. Every dot or vein or step is another set of moves with the knife/chisel/gouge/whatever.  Another chance to screw up. Every change in contour from flat to rounded to sharp is a change of tool or technique. Another …

Laser couldn’t care less. Dark area in the bitmap representing your picture? Crank the power up and vaporize more material. Light area? Crank the power down. Start at the bottom left (for my glowforge, at least), move right to the end of the bottom-most line of the picture, return to the left, move up a tiny fraction of an inch and do it again. It’s all just a raster.

In fact, complicated images may look better when laser-engraved than simple ones. When you’re working with a sharp blade, slight variations in your materials don’t generally matter a lot. The cut goes where you tell it. So if you want a smooth flat contour, you just make one. Working with a laser, those same slight variations mean that a little more or a little less material will be blasted away for the same combination of speed and power. Unless you sand or otherwise go over the surface to fix things afterwards, flat surfaces will never quite be flat. (And if you have to hand-finish everything, why did you use the laser?)

More fun yet, the laser itself can induce slight variations in about-to-be-zapped material because heat leaks from the area you’re cutting to the material on either side. So even uniform stuff like acrylic can respond non-uniformly to a 3D engrave. For example, one of my first attempts at a Vermont statehouse (depth map processed from an old model in the Sketchup warehouse).


You can see how the surfaces that should be flat are more than a little bit rough.


But an image with a lot more detail and a lot more sharp transitions between shallow and deep comes out looking better, because the signal swamps the noise.


(this one is based on a Green Man model at Thingiverse.)

Oh, and one other thing. Wood chars. And the deeper you cut with a smallish laser, the more charring. But you can clean that up with one final pass at high speed that takes only a cardstock-thick layer off the engrave. And it’s really cool to watch the surface go line by line from dirty to uniformly clean.

Posted in making | Tagged | Leave a comment


gf1My laser cutter arrived a few weeks ago. It’s pretty cool. Partly because I’ve been anticipating it for the better (worse?) part of two years, but mostly because it’s just there.

I’ve used a laser cutter before, and this was the workflow:

  • Find a free time slot at the nearest makerspace, 45 minutes away, that matched my schedule
  • Arrive, sign in, turn on laser (but not compressor or exhaust system)
  • Transfer my design to the PC attached to the printer and open it with Corel Draw
  • Use the funky Corel plugin to set up which lines and areas would be scored, cut or engraved with which power/speed/etc
  • Put my material in the laser, making sure it’s tight against the stop bars.  Use joystick and guide block to adjust focus.
  • Transmit job to cutter, fire up compressor and exhaust system — good thing the proper order is printed on the boxes — and press big button to start job.

It wasn’t that much fun, and it was not conducive to experimentation. If I screwed something up, it would usually be weeks before I could come back.


  • Make a design in Inkscape or draw something on a piece of paper or cardboard.
  • Turn on laser cutter
  • upload design to web-based UI or put it on the bed and hit the “trace” button
  • Put material in and position the cut/engrave on the material
  • Select speeds and powers
  • push glowing button

If I screw up, I figure out how and redesign or just run the job again with new settings. And since I can use it often, I don’t forget how to work the software or the hardware between times. The 12-year-old has used it to make chachkes for his chess club; one of his friends came over and drew some monsters to cut out of cardboard. It’s easy.

My main complaint is that I am not worthy. Having it doesn’t endow me with new artistic or engineering skill, or even a working knowledge of multiple CAD programs. So that part is going to be a slog, but at least the incentive is there.

Oh, and another complaint: it only cuts through things like acrylic and wood, a maximum of about a quarter inch thick.  No aluminum or steel or granite. (But it does have some really cool low-power capability — when I was playing with a design for a bookmark, I engraved my tests on a piece of 20# copier paper without even leaving a mark on the back.)

More later.

Posted in making, possibly useful, toys | Tagged | 2 Comments

Arduino on Windows: not ready for prime time

I’ve been teaching a little middle-school mobile robot workshop at the 12-year-old’s school, and it’s been a mess. The kids did pretty well assembling the bots and wiring them up, but clearly I needed to spend much more than the couple hours of software prep per hour of workshop time that I’ve been doing.

My first mistake was downloading the newest version of theArduino IDE from the Windows App Store, like it says on the Arduino download page. (I needed that instead of old trusty 1.05, because I’m using Adafruit Metro Minis, and the board definitions come in via a Board Manager url.) Two sessions gone there, as maybe 1 out of 5 times we got a successful compile of even the Blink sketch. A few web searches later “Oh, yeah, they bundled a component in the toolchain that’s incompatible with Windows 10, and haven’t updated it yet.”

Fixed that by downloading from the main site and cloning the installer to half a dozen laptops, and Blink mostly started working, but nothing else did. Instead of failing with an error message the compiles just dragged on forever. Another session lost.

Sudden inspiration, and I deleted the Ardublock tool from all the machines, because who could possibly want to use graphical programming for middle schoolers who don’t like to type. Compiles now completed, but slowly.

Last monday I finally got to the point where we could consider uploading programs larger than an example sketch. Oops, a couple of the laptops didn’t have the Adafruit board definitions. Should be easy to download, right? Except this is a school, so the wifi is a bit wonky. And every time the wifi blipped out the IDE responded by freezing and a requiring a kill signal from Task Manager. Did I mention that these are consumer-grade laptops with woefully underpowered USB ports, so that every time a kid plugged their bot in without first disconnecting the tiny little gearmotor the Port menu greyed out and we had to restart the IDE again to get USB connectivity back?


Posted in going places, probably boring, things that don't work | Tagged | 3 Comments

Buy extension cords, not wire

When you’re in the sticks, your supply options are limited. That’s why the other day I bought a couple of extension cords instead of the bulk wire that was right on the other side of the aisle at the hardware store. I needed some 16-gauge and 18-gauge wire because the 14 and 12 I had wouldn’t fit into the terminal block of the gadget I was building.

The 16-gauge 2-conductor bulk wire, aka lamp cord, was 69 cents a foot. So was the 18-gauge. So was pretty much every other %#% bit of bulk wire they had on the shelf. The 15-foot 16-gauge extension cord was $6.99, and 8-foot 18-gauge was 4.99. And I have some nice plus I can splice in somewhere if I need them.

It makes sense from the store’s point of view, because most of the time for them the cost isn’t so much the wire as the employee getting the spool down from the shelf, finding the wire cutters, measuring out the length, and probably engaging in a little conversation to make sure the customer isn’t going to appear in tomorrow’s newspaper. But for me, with cutters and crimpers and strippers galore, it’s way easier to do my own. Of course if I needed a longer wire run than the extension cords allowed, I might have to fall back on the bulk stuff. But if I needed a longer wire run and was planning on using lamp cord, that would probably be a sign I was doing something wrong.

Posted in making, possibly useful | Tagged | Leave a comment