Something actually useful

Our dishwasher is getting to be a certain age. And the plastic parts are showing it. Especially after one of the youth tripped over a cat and onto the bottom rack. When the wheels fall off they have a really unpleasant tendency to lodge against the heating element and melt/char. It stinks up the whole interior.

pegSo I fired up Openscad and my cheap plastic vernier calipers. First, a peg to hold the remaining wheels in place after the old pegs failed. I am kinda proud of the divot that lets the peg bend inwards, because it’s straightforward openscad code (possibly even amenable to turning into a module) rather than something with polygons (I hate polygons). Less proud of the overhang at the top of the peg, which would have been steeper. But with the cheap plastic calipers I wasn’t really sure of my measurement.


For the wheel, I just combined measurements of the existing wheel with the peg design, and presto! The result is a one-piece part that probably would have been hard for the manufacturer to injection-mold cheaply. carousel_dwinplace Speaking of cheaply, the cost estimator on my octoprint installation figured the price of 4 pegs — made out of recycled PETG from the late, semi-lamented Makergeeks — as something like 48 cents. Even factoring in the 20 minutes of design time, I think I may have beaten the $36.98 for an OEM replacement (you can only buy the whole carriage) online.

(And if your dishwasher is suffering similarly, you can check the files at Youmagine.)

Posted in possibly useful | Tagged , | 1 Comment

Posted without comment

No, that’s not a trick of perspective
Posted in things that don't work, Uncategorized | Leave a comment

Failing to fail

I’ve been working on and off with Blinkinlabs’ BlinkyTape and pixels, which means also with their nice little app PatternPaint, which lets you create little light shows to download to their LED strands without all the annoying number-fiddling that is LED images on Arduino.

But when you have an LED strip with controller built in you have a few obvious potential problems. First, each of those LEDs can draw up to 50 milliamps when cranked up full, so about 3 amps for a 60-chip tape. Put the wrong pattern on there, and good luck talking to the controller chip over a standard USB port while it’s trying to draw all that current. Second, you need a really reliable USB protocol that can handle transmitting and receiving data while the microcontroller is running flat out handling the pretty blinky part. Third, some computers’ USB drivers and hardware are rock solid, others (many macs, for instance) are garbage.

So start by splicing extra power connectors onto the back of the blinky tape (extra points for avoiding ground loops) . Then find out that the usb connection still works only a few percent of the time, for various reasons including serial-driver bugs in the version of the Qt framework it’s built with. Here’s where it gets interesting, in the sense of the curse:

The latest version of PatternPaint is supposed to have improvements to the USB stack, including a fixed serial driver and a protocol that is more willing to retry when things go wrong. But the appImage of that latest release segfaults when run on all of the machines I have access to.

Yes, you read that right. The format that’s supposed to have all the bits and pieces its app depends on nicely built in to a custom file system leads to an executable that segfaults. (But not on all machines, because it wouldn’t have passed its release testing.) So it turns out that appimages do rely on a bunch of libraries in the underlying operating system, and in the couple of years since PatternPaint was actively under development some of those libraries have gone away or moved or been altered in some incompatible way.

So it’s time to start building from source. Download a current version of Qt and fire up the compilation script. No luck. Apparently the dependencies on a previous version were real. (or not, as we will later see) The version specified by the Blinkinlabs instructions isn’t even on the list of recently-obsolete versions you can download, but it is in the Qt archives.

Still no luck. But a few searches on the error messages tell me that some libraries that used to be present by default in Debian/Ubuntu are no longer present in recent versions, hence also not in the debian-derived BunsenLabs OS that I’m using here (because it’s what we’ve got at the school where I hope to deploy this insanity at some point.) Download the right version of mesa-dev and jasper, and try again. Still a failure. Turns out I’m supposed to have installed linuxdeployqt in the same directory as I’m compiling from.

So now everything chugs through endless pages of messages, and success is announced! I even get the request to post my appimage so that everyone else can use it. But no. right after that there’s an error message that tar cannot stat something for some reason and the whole process has failed. And the only way to figure it out is to start digging into the guts of the linuxdeployqt appimage or its source.

I’m about to declare defeat — or at least post an issue — when I decide to look into the build directory and see if I can at least figure out what tar was trying to package up. There’s a PattenrPaint.blah.blah.tar that’s empty — sad! — and there’s a file called PatternPaint.2.4.1.blahblah.appimage.

What the heck. Yes, I click on it and it’s a perfectly good appimage. Doesn’t segfault, brings up the splash screen. Talks to blinkytape on machines where the previous version wouldn’t. I have what I need, I just have this really uncomfortable feeling that that final error message is really supposed to mean something and I should find out what.

Posted in probably boring, things that don't work | Tagged , , | Leave a comment

Lasercar Lives!

I know it’s not much, but the new version is ready for coding. It knows how far it is from obstacles (in front), it steers, it goes forward and backward. And it does it all in python. Code and current SVGs on Github any day now.

About half of the solderless breadboard is still available for more sensors, servos, motors and so forth. Also for a level-shifting chip if there’s a 5-volt part that absolutely won’t talk to a 3v3 controlller otherwise.

Almost all of the parts are laser-cut (I stole the front wheels and axle from a copy of the earlier 3D-printed version. Cutting time on a Glowforge is about 10 minutes.

Yes, this is as boring a video as you would expect
Posted in possibly useful, toys | Tagged , , | Leave a comment

In praise of useless information

About a year ago, back when we were still doing laser night at Local64, C did a nice backlit laser-cut sign for me to put in the door downstairs, using a font that wasn’t properly speaking a stencil but still kept all the interior bits of letters attached. About a month ago I started thinking about getting around to making a similar sign for the maker space at Pacem, so I asked him if he could remember what font he’d used.

No clue. And thanks to the move it wasn’t on any of our machines any more. So how to find it? (Remember that when you upload a file for zapping by the Glowforge you have to convert all your text to paths, because the servers don’t know anything about fonts.) No likely sites in browser histories. No luck at all with font-comparison sites (which basically image-processed away the single-stroke feature that made this font so distinguishable).

OK, so the title probably gave it away. I looked inside the original SVG file with a text editor, and when Inkscape converted the text to a path way back when, it obligingly left style information for that path telling what font it had once been rendered in, and a “label” property with the original text. Gosh all hemlock. I don’t know if that stuff was there to support undo, or because it’s simpler to leave it there than to delete it from the nodes in the file, but that’s what the software does.

Oh, and the font: Library 3AM, by designer Igor Kosinsky , to whom my thanks. I think for the next sign I’m going to use the “soft” version. If only there were italics…

Posted in possibly useful, probably boring | Tagged , | Leave a comment

Let There Be Light

I remixed an old openscad christmas tree design to include space for a coin cell and an LED. Coincidentally I have a bunch of green LEDs lying around — their light gets through the plastic a lot better than the white ones.

I made one with space for a regular 2032 coin cell, and one with space for a rechargeable 2450 (which doesn’t last nearly as long). You could remix again for AA or AAA, but then you’d need a real circuit instead of just sliding the cell into the space between the two leads of the LED.

(Caution: the space between the LED  and the battery has to be longer than you think, or else the negative lead will bend so that it creates a short between the negative face of the coin cell and the rim of the positive face. Good thing coin cells can’t deliver much current.)

You’ll also need to put sticky tape on the back side of the coin cell to pull it out or use pliers with some kind of insulation, because it turns out those little so-and-so’s are slick and hard to pull out by hand. Or maybe I’ll fab some nonconductive tweezers…

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

Coming soon: Lasercar

It takes a 21st century laser to return motorized widgets to the medieval era.

I’m redesigning my basic robot car for the Glowforge — partly for convenience, partly just because I can. The laser cutter is way faster than a 3D printer for design iterations, even if the design itself  is more complicated and tends to need glue.

The two big issues for the wheel were getting all the interlocking parts to actually interlock, and getting a good fit with the standard gearmotor shaft. With the 3D printed version, you have to add an offset to the size, because the printing process tends to make holes smaller. With the laser-cut version, you have to subtract the offset because of kerf. (But of course the kerf isn’t uniformly predictable when cutting small objects, because the laser head doesn’t get up to full speed when cutting tiny little arcs and line segments.) It was nice being able to do a new test part in inkscape, upload it and have the result in a minute or two.20191019_1641544938995840075715437.jpg

It took three tries to get the hub cutout  just right, and a couple of iterations for the size of  the hub, which has to clear a locating pin on the motor. (I could get it smaller if I wanted to play with the axle pegs, but no obvious reason to do that.)

Oh, and that score on the inside of the wheel, which might want to be a bit deeper, is so that I can slip in a little ring of cardboard with optical-encoder slots cut out of it. I discovered last year with the 3D-printed version that some ostensibly opaque plastics don’t block enough infrared light to trigger an optical sensor. Oops.


You can see in the next picture how the laser-cut wheel compares to the 3D printed one, and get a rough idea of the 3d-printed body (which uses a half-length adhesive-backed solderless breadboard to provide structural strength). The laser version will use the wood for strength because it doesn’t take any more time (or plywood) to cut a stronger undercarriage.Replace 3d printing with laser for strength and build speed.

I’m going to need that additional strength because of a seemingly unrelated change, namely switching the programming language from Arduino to CircuitPython. Which means also switching from 5 volts to 3.3, only my inventory of sensors and motor driver chips and all that stuff is still 5-volt. So I need room on my solderless breadboard for some level switchers and voltage dividers, and even with the smallest practical controller board I’m going to have to use a full-length breadboard. On the plus side, I won’t have the battery hanging way out on each side.

I’e been doing all this work, btw, at the recently opened Pacem community makerspace, so I’m hoping to get a bunch of other folks interested in having little robot cars zipping around and interacting with one another. With a laser cutter, there’s also plenty of room for customizing and decoration.

Posted in Uncategorized | Tagged , , , | Leave a comment

Maker Faire day 2

Huzzah! Today we were inside and had decent wifi. Bill started right up and connected with no problem, and we spent the day cutting and engraving for curious onlookers.

The exhaust went out one of the Coach Barn’s venerable windows, with some scrap corrugated cardboard to block the rest of the opening and another custom-bent cardboard piece to hold it away from the building and point the exhaust outwards. (And thanks to the CMF staffer who reassured Shelburne Farm folks that no cinders or burning debris would be coming out of the exhaust hose to set their historic structure ablaze.)

We gave away a bunch of Glowforge “Gift of Good Measure” keychain dongles, and also developed a pretty good workflow for cutting random drawings for people: I handed the mark — er, deeply interested technophile — a sharpie and a piece of plain square tile to draw something simple on. My son (the purple-haired one at the laptop) scanned the tile with the bed camera and set things up for engrave and cut, and then we zapped the image onto a piece of baltic birch. A squirt of spray cleaner and a wipe with a paper towel later the tile was ready for the next victim.

During a little bit of off time I also tested 3D engraving on baltic birch. The stuff does a great job of taking different shades of color under variable power, but as for variable depth, nuh-uh. Too much char, too little variation, weird texture. So next show (if there is a next show) I’ll be taking along some solid wood as well.

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

Glowforge at Champlain mini maker faire

Today was “education day” at CMF, which meant hundreds of kids coming up and asking about the laser cutter in the courtyard of the barn.

(Oh, and that tent in the background with all the kids, that’s Ben Matchstick and his amazing cardboard pinball kits. Much more fun than a laser.)

For most of them, alas, all I got to do was show them stuff I’d alread cut and explain that Bill was not getting along with the barn’s wifi. I got there about 9, and it wasn’t until noon that the bits deigned to flow properly.

But I was still impressed with how interested a lot of them were (from littles in first or second grade all the way through high schoolers). Lots of the kids knew what a laser cutter was, a few schools have got them, and about half a dozen teachers talked about their efforts to do fund-raising or get grants for a laser. (I gently pushed the glowforge because — when it is talking to the internet — it just works, and because teachers and students already know Inkscape and other basic drawing programs. And then there was the kid whose school has a Really Big Laser: he described it inching along cutting metal, and the fun things you could do with same.)

Tomorrow, with luck, I’ll be in a part of the barn with a better signal (maybe even three bars of wifi). And I’ll have an assistant, so I’ll be able to visit the wonderful food trucks instead of snatching bites of a bagel between explanations of how lasers aren’t just really bright lights.

Posted in going places | Tagged , | Leave a comment

Unexpected Consequences of my Crowdfunding Addiction

I admit it. I’ve been trying to cut down. But still things I funded years ago come around to bite me.

My current rathole is a certain “internet-connected” keyboard. It lets you light up particular keys to tell you things you would otherwise have to look at on-screen notifications to find out, and it clicks real nice too. I ordered it, and eventually it arrived, and I gave it to my kid because he’s the only one in the house with a windows machine, and there were no drivers for using the keyboard on a Mac.

Even more eventually the mac drivers were available for download, so I took the keyboard back, only to discover that “available” didn’t mean “stable”. It’s a nice keyboard, and I like being able to look at my function keys and try to figure out what it thinks tomorrow’s weather will be, but I don’t like my mac crashing every few hours or even every few days.

So I moved the fancy keyboard over to my linux box (where the drivers are stable) and fired up the mac with some random garbage keyboard from the basement. (Suddenly no crashes for weeks at a time, but lousy keyboard.)

Then the kid and I were browsing the free pile at the local used computer shop, and found this PS/2-to-USB adaptor. Aha! I could use my indestructible old Dell QuietKey (ha!) which had been languishing unused because of its PS/2 plug. Oh, but wait. When my mac is asleep, I wake it up by hitting the shift key (because I don’t want to inadvertently type something that could have consequences). The combination of QuietKey and adaptor does not transmit the shift key, or at least not in a way that wakes my computer. So I’ve been keeping that garbage USB keyboard from the basement over in a corner of may desk just so I can wake my computer up when it goes to sleep.

Until the other day, when I had a brainstorm: I don’t need a whole other keyboard, I just need a USB device that can transmit a keystroke. There are only about half a dozen Teensy microcontrollers of varying vintage in the basement, and they do faux keyboard (and mouse, and joystick) just fine. So, after wrestling with the Mac’s anti-support of USB for Arduino programming, and a few ins and outs of how USB keyboards actually wake things up, I now have a passive IR sensor connected to a teenyy 2.0 that wakes my mac up whenever I wave at it.

And to think: if I didn’t buy unreliable crowdfunded gear none of this would ever have happened.

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