My office is too small for a mobile robot

4wbotThe bot itself is pretty small, but it really needs room to move around. Each gearmotor has a slightly different friction threshold in the gearbox, so at low drive they don’t match up at all. At higher speeds they match pretty well, but then the damn thing is halfway across the room in a few seconds, so programming maneuvers is hard. Even if it can start or stop in a fraction of a second, I can’t really see what’s going on when things change that fast. I could rebuild with those tiny geared stepper motors, but that would be stupid. (And yes, I’ll likely print up some encoders, but turning that information into low-speed motor control is not my idea of fun or simple. Does anyone know what happens when you power one of these gearmotors in reverse while it’s still moving forward?)

So instead I’ll just move the testing to a slightly bigger room, either at home or at Local64 (won’t people there be happy to have something scampering about underfoot). Once I get this thing turning reliably, I think it’s going to get a Pixy Cam so it can chase colored balls. And maybe even a gripper. By the time the driveway is visible again, the software might be ready…

Posted in things that don't work, toys | Tagged , , | 2 Comments

Meetings go so much faster when fewer people attend

Well, also when you have a basic consensus on what you want to do and most of what you need is fill in the implementation details.

The Montpelier Makerspace meeting at the library this afternoon was like that. (Yeah, we’ll probably change the name, but it’s good enough for a placeholder.) We were talking about which days and times the big meeting room in the basement of the library would be available, and one of the librarians just got up, went to the office and came back with the weekly calendar book that’s used to reserve space.  We’ll meet down there March 12 between 430 and 730, bring projects to show and talk about, plan a little more, and generally have a good geeky time. Then again March 26 and again April 9. After that we’ll see how things are going, who shows up, what kind of presentations people are interested in, what kind of tools and materials are most in demand, and keep doing something.

(I wonder what I should bring for a project — maybe some LEDs, maybe something mobile, maybe some displays?)

Oh, and my eggbot is now in the custody of the children’s librarian, which is probably a great place for it to see some use.

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

First rule of holes

I wanted to get something printed before this afternoon’s maker meeting, So when Repetier crashed (it does that on and off) I figured it would be no problem to just restart, reconnect and get the print going. Nerp. Apparently it left the printrbot in some kind of inconsistent state, because the first thing it did when starting the print was to go off the end of the Y axis and try to dig through the part of the platform right next to the heated bed. (That much in retrospect I can understand, because the hot end crashed into the edge of the bed before the inductive sensor, which is offset a bit, had registered anything below it.)

So once I got everything turned off and back on, and back in communication, and the printer homing where it ought to, that would mean ready to start the print, right? Nope. The digging also pried the hot end a fraction of a millimeter out of its mount so it ripped up a bunch of Kapton.

Fortunately, I’ve been in this place before, so I know how to patch the bed, and recalibrate the sensor offset for the hot end. Just not before the meeting or the 10-year-old’s school play.

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

Less is more

Yesterday I took off my cobbled-together insulation and installed the simple fix that Printrbot sent out — thank you! Since part of the installation process involved running the bed up to 100c to get the thermal expansion right for tightening the rails, I thought I’d take some data on the way, and I found some interesting results.

First, of course, the fix works, and well. The simple reflective sheet kills most of the heat loss from the bottom of the bed, and insulates the rails without getting bogged down in complicated fitting and patching.

However. (Yeah, I’m always going to be picking nits.) The thermistor is inside the reflective zone, so it will report the temperature of the heater, not necessarily that of the bed surface. During the installation process, for example, the thermistor reached 100C in 7 minutes. Temperature of the bed at that time: 43C. (Measured with a cheapo Sear IR thermometer that’s correlated reasonably well with a thermocouple in the past.)

Over the next 20-plus minutes I took a series of readings, finishing up at 30 minutes out when the bed temperature reached 85C. Oh, and the small wing at that point was about 53C. I wish I could figure out how to put a thermal break between it and the bed. (Tried to fit a piece of mylar, but there’s not enough room. UPDATE: made sure the bed was solidly attached, loosened the wings, put in some mylar shims, didn’t make any discernable difference.) The rails were about about 40C.

But. It turns out that tipping the machine on its side is a really bad configuration for heating the bed, because that warm vertical surface is perfect for convection cooling. When I put the Metal Plus back upright, fitted some reflective insulation on the wings and put a piece over the bed while it was heating I got some nicer results. At 7 and a half minutes, when the thermistor registered 100C, the bed said 48. About 13 minutes to get to the 65 I usually use for printing PLA. It reached 85C 20 minutes out, and at 30 minutes it was at 93C. That’s much more plausible. And when my basement warms up (15C now) things will only get better.

Posted in possibly useful, probably boring | Tagged | 1 Comment

Printrbot Metal Plus thermal fixes

(UPDATE: See the next post for the fix that’s been sent out by Printrbot, which works a treat.) A lot of people have been complaining about the heated bed on the Metal Plus. The original design didn’t heat the bed very fast, couldn’t get seriously hot, and had to have bed temperatures fiercely tweaked because the actual surface temperature of the bed was about 15 C below the temp indicated by the thermocouple (which would mean that even if you could heat the bed to 100C-plus, you might not be able to crank the settings that high without modifying a bunch of profiles and software).

I did a bunch of things that have made heating much faster and brought bed temp much closer to the thermocouple number. Now Printrbot has announced that they’re shipping a fix kit, which is great — at least one of the things they’re doing is something I didn’t think to implement, and I wonder if I did anything they decided against.

The first thing I did was add heat sink compound to the heater plate — it was pretty clear when I disassembled the bed that even with a machined and smoothed recess, the plate wasn’t making good, uniform contact. (I thought about sanding off the flashy logo, which leaves air gaps where it isn’t, but didn’t bother.)

Next, a layer of thin corrugated cardboard on the underside of the bed, followed by a layer of reflective bubble wrap insulation. You can’t put the bubble wrap directly against the heater because it starts melting at about 85 C. I didn’t put insulation over the thermistor, so that it would be exposed to an environment a little more like the top of the build plate. And I also had to leave the bubble wrap off a strip on one side of the bed because the Y limit switch sticks up there. If I opened up the board and replaced the regular limit switch with a nano-sized version, bed temperature would be a bit more uniform.

plusunderside

Then I started in on the non-build-plate parts. The two “wings” on either side of the build plate were hitting about 30 and 50 C respectively, so I threw some more bubble wrap on them (just on top because the underside has clearance issues like the bed). And I took some ceramic insulating tape left over from when I was going to build new hot ends for my Cupcake, and used it as a spacer between the linear rails and the heated bed. The rails had been reaching 40-50 C as well. I think that thermal break not only improves heated bed performance but also makes the rails happier and slightly more precise. According to the email I got, the Printrbot fix will involve a thermal break for the “wings”.

Finally, because my basement is at about 15 C these days, I bent up a couple of pieces of aluminum strip and taped some 7-mil mylar to them to make an enclosed build chamber. Don’t know how much it really helps, but I’m sure it doesn’t hurt.

pluschamber

Next up: diddling the fan shrouds so that I can print ABS reliably without waiting for the all-metal extruders.

Posted in possibly useful | Tagged | Leave a comment

An organized workplace is a sane workplace

One of my New Year’s resolutions was to build a bunch of the kits that have accumulated in the basement over the years. Among them a cheap 4-wheel-drive robot chassis (well, actually the previous version, which will become significant in a paragraph or two). I had unboxed it and soldered wires on the motors months ago, so why not spend an hour or two following the instructions some more?

Lasercut chassis de-papered, check. Brass standoffs installed, check. Big rubber tires available, check. Four gearmotors bolted to chassis — oh, wait, make that three gearmotors. So I scoured the basement. Several times. Then I emailed Terry at Yourduino asking if perhaps they had a spare. Two days later the package arrived. Except the manufacturer had changed the design of the robot chassis to use gearmotors that have the electric motor in line with the gearbox instead of at right angles to it. And the gearbox is thicker than the original version and has mounting holes in different places..

So of course — between other projects — I started designing a little printable adaptor that would fit the laser-cut slots in the chassis but still be able to mount the gearmotor so that its shaft would line up with the shafts of the other three motors. All this just because I wanted to get the fershlugginer kit assembled and off my work table.

Then this morning I was down at Local64 (because I had put a bunch of files in my Dropbox folder there to use at home, but not the one I needed) when I looked at the bin of random components and solderless breadboards underneath the 3D printer. I don’t know that there’s really any moral to this story.

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

Too clever is dumb

My nice new printrbot Metal Plus (of which more some other time) has a bunch of holes in the kapton film on the build plate, and it’s my fault. I was trying to be smart, but I ended up stupid.

At first, I was controlling the printer using Repetier, but Repetier 1.06 is only sort of stable on my old ubuntu box, especially if I get into unplugging and replugging USB connectors attached to a bunch of things that might plausibly be 3D printers. So I tried Cura, which is reputed to be much simpler and even (in the most recent version) has a profile already customized for the Metal Plus.

Either too simple for me, or too complicated, I’m not sure. But the important thing is that Cura does pretty much everything behind the scenes. Every time you move your model, or rotate it or whatever, it reslices, so that all you have to do is push the print button. Which I did, and after the loooong wait for the bed and extruder to come to temperature, the head did a nice little homing dance, moved to the middle of the bed, laid down a couple of perfect perimeters and then started trying to dig the nozzle down through the bottom of the machine.

borkedbed

I was gobsmacked enough (and wondering “maybe it knows what it’s doing” ) that it took me a while to find the “cancel printing” button on on the little print dialog window. And then, because Cura has no manual controls unless you enable a special plugin for them, the nozzle kept trying to dig itself into the bed while I tried all the places I imagined a manual control might be, quit Cura, fired up Repetier, connected to the printer and finally cranked the Z up a few centimeters. It doesn’t look like any major damage to the bed, just to the tape (which I can patch or replace).

Support at Printrbot was quick and friendly, but when the guy at the other end of the email asked if I could send the gcode file I was trying to print, I realized that I have no clue where Cura stores the gcode it prints from, or if it even stores it. It makes new gcode every time you touch the model, so where does that gcode go? I fired up Cura again and explicitly saved a gcode file with the model in (mostly) the same position as before. That file doesn’t have any obvious “mash the nozzle into the bed” Z moves,  but I have no idea whether that file is the same as the gcode Cura was trying to print from when things went awry. (Yes, it’s open source. I’m sure I could dig into the python and eventually find out how all the bits fit together. But then I still wouldn’t know for sure where the bug was unless I managed to put my model down on the bed in exactly the same way and then put another set of scrapes into the bed. Which I would prefer not to do.) Sometimes software that does everything for you does just a little too much.

So I’m off to the basement to snip and patch and see whether not-quite-so-smart Repetier will be able to print my file without messing up (in which case the problem is likely software) or I get another set of dings in the bed (in which case the problem is likely firmware or hardware). At least I know where the emergency stop button is.

Update: No, it turns out I’m the dumb one, and should have known better. The fancy software merely made it a little harder to figure out how stupid I was being. In short, when I cleared a filament jam by taking apart the extruder nozzle, I turned the tip 5/8 of a turn too little when reassembling, so that my Z offset was wrong by about seven tenths of a millimeter. Always recalibrate after putting things back together. (Albeit the recommended calibration method still would have led to a divot in the kapton, since it involves starting a print. I think instead you can send gcodes manually to command a safe height and measure it.)

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

30 years ago seems like yesterday

Okay, no, it seems like 30 years ago. 20 years ago seems like yesterday. My spouse has wanted a Macquarium for years, and maybe three or four years back she got an old mac on ebay. And finally the other day she was down in the basement with the 10-year-old (who knows his way around a Torx set) opening the case. Then yesterday evening after dinner he and I went back down to pull apart the circuit boards. (First he tried to puzzle out some of the names on the inside of the case, asking all innocently questions like “Who was Jef with one ‘f’ Raskin?”)

macparts

If I read that motherboard serial number right (and the 1983 copyright date) it would have been in the first few thousand built, back around the time my office got one for review, long before there were printers.  Whoever owned this mac must have liked it a lot, or else been in a particular sour spot between early adopter and actually able to afford a new computer on a regular basis. Because they kept the machine around well after there were newer models to choose. On top of that motherboard are not one but two expansion boards (with a couple of jumpers soldered ever so delicately to the legs of chips on the mainboard). I have no clue what one of them does; the other appears to increase RAM to the then-magnificent level of 512K (that would be 48 single-inline-pin packages in six banks of eight each).  The board also has sockets for another two banks of DIPs — a potential megabyte in total? I spent years doing real work on machines way less powerful than this.

Oh, and the clock runs at 15.667 Mhz. A Teensy 3.1 with an SPI memory chip and a tiny LCD display backpack would beat the crap out of it. A raspberry pi or a beaglebone black would outcalculate a whole campus full of these machines. No wonder the 10-year-old sometimes asks if there were dinosaurs around when I was a kid.

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

Artifacts inspire people

Yesterday afternoon I was at Generator again. I had a not-really-useful breadboarded toy with me:

My first Arduino, stuck down on a ding&dent Sparkfun protoboard holder, with an Adafruit quad alphanumeric backpack wired in by I2C.

rangefinder1Lidarlite1

Those wires with the little P-Touch labels that wind around the back lead to the cool part. That’s a miniature laser rangefinder (lidar) from the folks at Pulsed Light with an accuracy of about an inch over a distance up to 200 feet (that’s a couple centimeters up to 60 meters for the rest of the world). And a bunch of modes for measuring speed, tracking multiple targets and so forth that I haven’t even started on…

I just snarfed the demo code from github, ripped out the part that reports distances every few milliseconds by serial monitor, and spliced in the Adafruit demo code that writes characters to the alphanumeric LEDs. (And even though the lidar and the LEDs use two completely different I2C libraries, they play perfectly well together.)

It’s not like this breadboard is useful as a real rangefinder. You can’t really aim it, it has a USB power cable hanging off the side (to a clearance Radio Shack 1500mAh power pack). The lidar is held on by one screw, and I printed a completely bogus little cover to keep the optics from getting mashed when I put the thing in my pack. But it has blinky red lights, and you can point it toward random things and see how far away they are, and everyone who saw it took a deep breath. And their eyes lit up with ideas.

Oh, by the way, the space Generator is in is apparently just short of 30 meters long.

Posted in Uncategorized | 1 Comment

Soldering under a microscope is weird

But I think I could get used to it if I had to.

I was at Generator this afternoon, and I forgot to bring my 4X magnifier clip-ons, so I had to use the binocular scopes at their soldering stations instead. I would have liked it better if there had been easily-usable vises and clamps — I ended up just putting the board I was working on down on the table and using the baby articulating vise as a hold-down.

The straight-down perspective was particularly strange, and with the limited field of view I was constantly:

  • moving away from the eyepieces
  • putting on glasses
  • figuring out where my field of view was
  • taking off glasses
  • looking through eyepieces and trying to maneuver iron and solder into view

After a while I figured out how to hold the iron at a decent angle without getting my hand in front of the lens. This was my first time with a digital-display Hakko, and I think it has a slightly harder time maintaining temperature than the one I have at home. The solder was very fine-gauge, but it still really didn’t want to melt.

It was really cool, though, watching the solder wet first the pin, then the plating around the through-hole. And when the joint was right the whole molten area turned the color of the circuit board. And although the field of view is way too small when you’re just running up a bunch of headers, I could totally do surface-mount with this rig.

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