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

CircuitPython for early hardware exploration

I’d expected the software side of using CircuitPython chips to go more easily than coding in Arduino, but what I hadn’t really expected was for the hardware side to go more smoothly as well. It’s early yet, and most of what I’m doing is converting existing 5-volt projects, but being able to paste code into a REPL and just run it makes the initial round of testing so much easier.

I’ve got a Trinket M0 (I think it was one of the free offers) plugged into a solderless breadboard, and when I want to see whether something works I just wire it up, twiddle the pins or call the library, and get some results. It’s faster than edit-compile-run for Arduino code, and I don’t make nearly as many stupid typing mistakes in Python. (The trinket isn’t that useful for any of the projects I want to do, so using it as a test harness is win-win.)

I don’t know whether CircuitPython will be fast enough for some of the projects I want to do — a lot depends on the libraries and on those cute little decorators for emitting real code. And on chips that have DMA channels…

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

The short happy life of a Popup Makerspace

We’re out of empty offices at Local 64, so it’s time to pack up the laser cutter, the 3D printer and all the other toys. if you build it, it turns out most people are too busy to come. Six months of mostly weekly laser nights garnered maybe a dozen or two visitors. Half a dozen of those came back for additional sessions, and two people commissioned honest to goodness jobs that brought in some return.

One of the people who came by multiple times wanted to do a project — and we wanted to used him as a tester for a simple course in using the Glowforge without burning anything down — but he has a day job that takes most of his time, so three months after his first laser night he had only one tiny test file to show for his efforts. And that one caught on fire.

Winter in Vermont: also a problem. It’s no fun sending out a flurry of notices telling people about an event, only to end with a cancellation a few hours beforehand because of that pesky eight inches of evening snow on the way. (And even more of a problem for people with kids, because they’ve got hockey, skiing, snowboarding, almost anything to do but sit in a room learning about lasers.)

Lessons for next time, assuming that there is a next time? Biggest one: way more promotion. Notices on local social media will bring in some people, but not enough. More events, targeted at a broader ranger of people. Events with food and drink. More flexible scheduling. Workshops, also flexibly scheduled. Location? Good question. I know some people reported they couldn’t find us up on the back of the second floor. More variety? Sure. All that means it can’t be a one-person operation (which we knew already, but that involves even more scheduling, which see above…)

Posted in things that don't work | Tagged | 1 Comment

Micro maker space

How small can a makerspace be and still be useful? That’s what we’re going to find out. My friend Lars has decided to devote the spare office at Local64, the downtown co-working space, to making. First in, my Glowforge, on more or less permanent loan. Next, a 3D printer and a sewing machine. After that a microcontroller lab, with all the various wired and wireless boards everybody has been collecting for the past few years.  The space is a little less than 20×20 feet, so it’s not clear how much additional stuff will fit without crowding out the people.

On the one hand, we have the advantage of Local64’s conference room and other spaces (and their community of artists). On the other hand, people work here and expect reasonable quiet and breathable air, so there are some things we just can’t run — say an uncovered CNC router or an unshielded welding rig.

What else should be going in this space?

Posted in making | Tagged | Leave a comment


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