Drawbot string plotter

The Drawbot, a ‘polargraph’ 2-string plotter inspired as a junkbox project by Bill Paulson at Workshop 88 in April of 2013, has been under on and off development and improvement ever since. While there are still a couple of upgrades being considered, it’s basically stable and works well.  The most recent of its 7 or 8 trips to maker events got a little post on the W88 blog here.
Many of its drawings can be seen here.

It currently consists of a 4’x4′ drawing area, usually hosting a 40″ tall canvas from a 36″ wide roll of paper mounted on the back.  The guts – electronics and the stepper motors and of course lots of LEDs – are all on a long wooden platform across the bottom of the machine.  The aluminum pen holder, suspended by two strings going over pulleys at the tops of the “ears” down to drums on the steppers, typically holds an inexpensive felt-tip marker and has a pen lift servo that lets it draw disconnected lines.

Here are some details of its life.

The junkbox spirit

Besides the fun of making it work, part of the motivation was that maybe the appearance of being made from simple, familiar pieces might inspire some kid to say “Hey, I could make something like that!”.  That drove many early design decisions.

With some real regret, we’ve lost many of those simple parts in a push to make it work better.  The Arduino Duemilanove with jumper wires coming out has been replaced by a dedicated Pro Mini on a slick custom PCB with the stepsticks and other parts on-board instead of parts hot-melt glued to the base board.  The original cardboard pen holder has finally given way to the nice aluminum and teflon one.  And a final death knell will be replacing the cheap steppers and their often recognized sewing bobbin drums with Nema 17s and probably turned aluminum drums.  But at least it keeps running better and better. <sigh>

Counterpoint:  It’s been pointed out that things that I – as an engineer – see as simple/approachable – like the cheap steppers from American Science and Surplus vs “real” steppers – are invisible to the kids I’m hoping to inspire.  And further, that I’m turning a blind eye to other critical parts:  Even back when it had a kid-recognizable Arduino, there was so much high powered software hacking behind it that the kid wouldn’t have a prayer of making it work by himself.  Yes, inspiring kids is a great and worthwhile goal, but I’m deluding myself about what parts are important to that goal.

Another colleague suggested that familiar things are important in perceived approachability.  The bobbins – which I only used because they happened to be a press fit over the gears on the steppers – probably accidentally carried a lot of weight in this area.  Yeah, the old cardboard-and-ziptie penholder was probably valuable this way, but I dumped that in the name of better performance, too.

I guess the bottom line in these arguments is that if I want to make something to elicit the “I could make something like that!” reaction, I need to design for that from the beginning, and not delude myself into thinking that some high powered toy that appealed to me will evoke that reaction in a kid.  Evoke a “Wow, that’s cool!”, sure – but not “I could make that!”.


– It was first shown at the Northside Mini Maker Faire in May, 2013.
– It probably went to the American Library Association later in 2013.
– It went to the Mokena Mini Maker Faire 8/22/15.
– Bill took it to a STEM event at Edison Middle School in Wheaton on 1/28/16.  It had an early pen lift mechanism, but it didn’t work at the show.
– I took it to StemCon at COD 4/30/16, with the pen lift working, and where it gained its first roll paper holder.  (Dumb:  Now it’s up high and pulls down over the top.)
– In considerably enhanced form, I took it to the Palatine Mini Maker Faire at Quest Academy on 5/21/16.
– It went to the Chicago Northside Mini Maker Faire 5/17 with new motherboard and IR comms to the pen lift. It performed poorly, significantly for not understanding new (7.10) software/firmware.
– It went to the River Forest Public Library Maker-Fest 10/7/17 with its new aluminum and teflon pen holder, modified Arduino firmware, epoxied bobbins, and freshly lubed steppers.  Worked very well.


Having the guts mounted together at the bottom was with an eye toward making a portable device that could (with some stick-on pulleys) draw on whiteboards.  Has never happened (yet).

The steppers – the original junkbox parts – were $2.75 at American Science and Surplus.  Way too wimpy for what we needed, they got an effective 2X torque boost early on by running a “2 part line” of string over pulleys on the pen holder.  A real nuisance to set up, that arrangement was dumped when we started running the 6V steppers from 30V and chopper drivers.  We kept the steppers from melting by adding a dedicated fan to each one.

Lubricating them every time we used it turned out to be essential to success.  Here’s in indication of the difference it makes:

Pen holder

A pen being dragged around by two strings requires some structure to keep it perpendicular to the paper.  The original, with 4 baling wire legs gave way early to a nicely made double-layer corrugated cardboard X, with little bits of teflon glued at the “feet”.  That kept the junkbox spirit, and worked pretty well for years.  After while it got upgraded with the first pen lift servo.  But its little feet got caught on the edges of the paper, and it eventually got pretty beat up.

The main driver for the new pen holder was that by having a ring touching the paper (instead of 4 discrete feet) it could go past the edge of the paper and come back with nearly no chance of getting caught.  I hoped it would be a little lighter, too, though I failed to weigh the old one before raiding its parts, so I don’t really know. 🙁

The 3D printing revolution came to help here:  I got a meter of 2mm ID teflon tubing for $2 on eBay – perfect for the ring!  It was of course for a Bowden extruder for 1.75mm filament.  Getting the aluminum wires that went thru the tube connected to the wires that held it to the pen holder’s aluminum angle backbone took some clever engineering, but it came out fine.

Practical stuff

Of course the machine is too big to put in my car to haul to events, so it has to come apart and go back together simply and quickly.  Some of making that happen was thoughtful design, some just practical packaging.

A Workshop 88 sign hung from the “ears” at one show.  Meh.

The ears position the top pulleys – where the string comes from – much higher and farther outboard than the upper corners of the backboard.  “Higher” is needed for the problem that when the pen goes up high and the string angles decrease, the tension in the strings – and thus the torque needed by the steppers – goes way up.  With no torque to spare, we sidestep the problem by never needing those angles – even with the pen at the top of the paper.  “Wider” helps drawing at the edges of the paper, where with one string almost vertical, we lose the needed horizontal component to move the pen.  By having the strings much wider than the backboard, we can draw very near the edges.

For the math to work right, it’s critical to know where 0,0 is.  An LED (powered with a 2032 coin cell) stuck part way thru a hole drilled just at the origin glows thru each new piece of paper to get restarted quickly.

While I stock up on cheap markers at Walmart before each show, it’s still helpful to stretch the life of each one.  Ten drops of alcohol works well to get one more life from a marker.

As the string winds up on the bobbin drums, their diameter changes in a way the math doesn’t expect.  Drawings get pointier out toward the top corners as the drums wind more string and get larger.  Getting rid of the “2 part line” pulleys cut the amount of string – and the diameter error – in half, which helped considerably.

But if the string winds unevenly – piling up at one edge – the problem becomes even more severe.  To wind uniformly on the drum, the string must come in very accurately perpendicular to the axis of the drum.  An early attempt to address this used big stiff wire guides to manage the string.  The later approach was to create adjustable mounts for the steppers.  That worked pretty well.

Winding all that string back up on the bobbins after a show is a pain.  I used a small electric screwdriver with a Philips bit covered in hot melt stuck into the bobbin hole at one showing – worked well.  The current version has a button at each end of the main board that just tells the Arduino to wind the string in.  Very nice.

As for the string itself, the most critical characteristic – especially with the long runs the drawbot has – is that it doesn’t stretch.  Braided fishing line is optimized for just this property, and it’s cheap and plentiful.  One down!


There’s a bunch of “long stuff” – electronics/stepper board, ears, back braces, rear prop – when the drawbot’s torn down.  Keeping it together – either for transport or storage – is a fine job for bungee cords.  Unfortunately one cord didn’t work, and 2 cords was awkward overkill.  I finally got around to making some loops of 1/4″ poly rope that fit just right with one cord.  Small stuff, but it pays of with every setup/teardown cycle.


An Arduino accepts ordinary gcode over a serial link, does the math to convert from X,Y coordinates to the L1,L2 length-of-string coordinates needed by the drawbot, plans the paths, and runs the steppers.  It also uses its EEPROM to store some config info.

When it first started drawing, the drawbot used a pair of Chinese L293D H-bridge modules borrowed from another project to drive the steppers.  Later, its custom PCB hosted (knockoffs of) Pololu’s classic A4988 microstepping drivers.  (An error in the Reprap Eagle library I used caused a lot of excitement when the drivers had to be installed upside down!  Some more in the Gory Details.)

To let the steppers cool down a little while still holding the penholder up, a simple circuit with a big resistor and a power transistor cuts the voltage when it’s not actively drawing.

At some point shortly after watching in horror as some error caused the penholder to sail gracefully up over the top of the board and fall down behind it, it gained an Emergency Stop switch in series with the power supply.  It gets used a lot in testing and debugging new artwork, as well as being a general power switch for the steppers.

The latest version also has 6 IR LEDs spread across the base and shining up to send pen up|down signals to the pen lift processor and servo on the penholder.  Optimizing that IR communication took me deep down a rabbit hole, written up here.  Sorry for the messy picture.  I should redo that. 🙁

And lots of LEDs!  Most every function – current polarity for each coil of each stepper, direction of each stepper, voltage reduction state, IR comms, fan current monitoring, even pen lift state on the penholder itself – has LEDs.  Of course they add great bling, but are also quite helpful in troubleshooting when things go wrong.


Dan Royer, at marginallyclever.com sells kits for drawbots, and has graciously made his code also available to others making their own drawbots.  The Arduino in ours has run various versions of his code since day one, and the laptop sending gcode to it has run Dan’s Makelangelo Java gcode senders as well.  Thanks, Dan!

Of course our hardware is different from Dan’s, so we’ve had to modify each version of his Arduino code to support our stepper drivers, power control, pen lift and other hacks.  And his code only supports straight lines (no G2/G3 arcs?!), so I had to add those in, as well as adding support for G55-59 alternate coordinate sets so I could put multiple drawings where I chose on the big paper.  I learned a lot about gcode interpretation in the process. 🙂

Next steps

Taking a final step away from junkbox, I’m planning on replacing the dear old Science Center steppers with “real” Nema 17 mount motors.  Their increased torque and finer step resolution should let me use much larger diameter drums (sadly losing the friendly sewing machine bobbins).  That should further reduce the “pointy top corner” problem, and maybe allow for shorter ears (lower, though just as wide).  I’m hoping it will also help with occasional missed steps I see now.

The real solution for missed steps in any CNC machine is for the gcode reader/planner to incorporate acceleration control.  Unfortunately, Dan’s code doesn’t provide this.  Fortunately, another common Arduino gcode/stepper driver, grbl, does.  And even more fortunately, someone has already put the inverse kinematics math for string plotters into a version of grbl!

And while grbl also supports G2/G3 arcs and G55-59 alternate coordinates, I’ll probably have to hack in support for my steppers, and certainly for my power control, pen lift and rewind buttons.  That should be doable.  Of course Dan’s gcode sender won’t talk to grbl, but the Universal Gcode Sender we already use on the Shapeoko does.

It should all be workable, but it will take another bunch of time to get it all implemented.

[And I suppose instead of just hoping the “real” steppers will magically improve things, I should do the testing on the current hod-rodded steppers so I know what their torque is to make choosing the next stepper a little more scientific.  Ugh.]  Done.  See here.

TL;DR gory details

I’ve pasted in some notes made along the way, many not cleaned up.  Also notes to myself about things to cover.  There’ s still a lot of work to finish these sections up.  Work in progress.

Pen holder

Work started in earnest by deciding whether to use 1/2″ or 3/4″ aluminum angle to hold the pen.  The 1/2″ clearly was big enough to touch the nice cheap Walmart markers I’ve settled on at the right place, but I went with the larger angle mostly to provide comfortable margin for holes to attach the strings and to give more surface area for gluing other parts on.  (Sigh – I had really hoped to aluminum braze the parts together, but I seem to be too reluctant to try it.  I have aluminum rod (from HF) and a new stainless steel brush bought just for the purpose.  It’s occurred to me while reading up on it that maybe you could “tin” the parts with the rod and then just sweat them together without worrying about the oxide layer.  But I’ll never know ’til I try, and I seem to be afraid to try. 🙁  )

Then came the sad task of disassembling the dear old cardboard and brass holder.  The IR receiver, pen lift servo and Li-ion cell will be reused on the new holder.  I apologized to the old holder with each removed part, reminding it that it had drawn a lot of really great pictures.

The very nice penlift servo used a brass tube soldered to the brass penholder angle.  That’s obviously not a good solution for the new one.  I replaced the otherwise perfectly usable aluminum bracket the servo was mounted with with one larger in the dimension toward the tube, and rolled the end of the bracket into the tube.  To do that, I crimped the aluminum tightly around a nail slightly larger than the sliding rod, then drove the nail out.  I suppose I could have just glued another piece of aluminum under the bracket and make the tube out of that, but I seem to have done a fair amount of extra work just to make it less ugly.

The old bracket was epoxied on.  I pried/cracked it off, gaining a data point on how well it held.  (Pretty well, and certainly well enough.)  I got a similar data point prying the IR receiver PCB off its aluminum bracket.  (Also quite good enough; all epoxy stuck to the PCB, not the aluminum.)  I removed the penlift’s Shapelock foot with hot water.  It was way bigger than it needed to be, and had to come off anyway to remove/reuse the coathanger linkage rod.

While I’d long envisioned pairs of stiff wires attaching each of 4 or 6 points on the teflon ring to the top and bottom of the central structure (forming nice triangles), I realized I didn’t actually have a plan for how the wires would attach. The aluminum angle that is both the main part of what grips the pen and the backbone of the whole structure is fairly busy and obscured by various parts, and it looked like it might be more awkward than originally imagined.  Time for a physical prototype to look at and turn around and poke at.  Some 18 ga baling wire unrolled and a scrap of angle with parts taped/glued on showed me most of what I needed to know.  Completely non-working, throwaway prototypes can be so useful!

While I’d long envisioned bits of the wire in the teflon ring being exposed for connection to the support wires, I had no idea how to actually accomplish that.  A critical requirement is a continuous, smooth bottom on the ring (OK, an exception is where it joins itself).  That means the exposed wires will have to peek out of an opening in the top of the tube.  A couple of practice runs on scrap helped a lot.  An unexpected lesson: use needlenose pliers with SMOOTH jaws!  That soft aluminum wire mars really easily, but its ductility is a boon to making those exposed loops!  I may have to figure out how to un-mar the wire to make it less ugly.  So much for function over form.

One issue holding the parts together to look at revealed was that the lens of the IR sensor was pointing about 180 degrees from where it needed to look.  I ended up just twisting it.  Despite appearances, those carefully hand-formed leads do not touch.

Since I chickened out of brazing the aluminum parts together, I used the fallback of (HF 5 minute) epoxy.  Spooked by  bits I’d read about bonding aluminum with epoxy, I tried to do very good surface prep.  I even wet sanded with epoxy for the servo.

I had a lot of trouble with epoxying the nut in place for the pen clamp.  Of course I sanded the Al with 80 grit or so, and then scratched the epoxy in with the tip of a screwdriver (sanding was difficult).  Unfortunately, the prep took too long, and the epoxy was way too far along when I assembled it.  Trying to build up fillets with the remainder of epoxy was near impossible.  I clamped the nut in place with jam nuts on the screw from the old clamp.  It seemed OK, but when I twisted the aluminum to set up for attaching it to the main angle, I heard the epoxy crack and the nut came off fairly easily.  Second try I wet sanded the epoxy in (Qtip wrapped in sandpaper).  I mixed up a little additional batch of epoxy and enhanced the fillets, and again clamped with the target screw.  Unfortunately, some epoxy must have gotten into the threads, and when I used a wrench on the jam nuts to get it apart, the nut broke loose.  I’m guessing that if I’d oiled the threads beforehand it would have been fine. Given the torque I applied with the wrench before the nut broke loose, it seemed well bonded.

For the third try, I wet sanded some epoxy onto the Al and wiped it off with a paper towel.  It was already fairly stiff.  The goal was to leave a thin layer of epoxy that had been sanded in to seal the Al.  Without giving that batch any more curing time, I mixed another batch and used that to glue the nut on.  I clamped as before – but with oiled threads!  Finally I built up nice fillets while the epoxy was still OK.  The screw came out of that with difficulty as well, but now I was clever enough to hold the *nut* instead of the bracket so as not to stress the glue while trying to get the screw out.  After picking bits of epoxy out of the nut’s threads with a pin, the screw moved pretty freely.  I think the nut is at least well enough adhered for the task.


Using the “I dunno – that looks about right” design approach, I decided the ring should be about 9″ diameter.  I cut the tubing for that 28 1/4″ circumference.

The wire needed that length, plus a little for the connection loops peeking out of the holes on the top of the ring, plus enough for all the runs attaching its connection loops to the pen lift angle backbone.  It would be more elegant if the wire were all one piece – but how to route it?  The baling wire proto above and a surprising amount of mental arm waving and sketches yielded a plan, and the fact that the 2 sets of holes on the backbone angle are 2 3/8″ apart let me compute the wire length for the 8 connecting segments.  Here’s the wire, cut to length (plus a little!) and threaded thru the tubing, with the connection loops formed.

The minimalist aluminum backbone angle really only has room for holes for the strings in one place, so I drilled them there.  I hope I can move the Li-ion cell enough to make that also be the balance point!  Update: Yes I could.  Balance is just as planned.


With 8 stiff wires connecting the backbone and ring, it’s wildly over-constrained.  That means the wires have to be exactly the right lengths.  I can easily see a crooked backbone or other problem.  The distance of the ring above the paper when plotting is pretty critical, and there’s not much room for adjustment after it’s all wired in place.

To address some of that, I attached the backbone rigidly to a jig/platform that keeps it at least: a) vertical (/perpendicular to the plane of the ring); b) roughly centered, if only visually; c) the right distance “above” the ring.  With the stop I hope to provide for defining the pen position (hmm – I guess that’s really the midpoint of the penlift travel), the bottom edge of the backbone should be just 3/4″ above the paper, so I made the support platform that thick.  Of course I had to drill a hole for the pen lift foot.  Pen foot travel puts it min 0.5″ and max 1″ below the bottom edge of the backbone.  Measured outside diam of ring is 9.25″, ID just about 9″.  I cut a piece of 3/4″ scrap to just fit inside that, marked it and drilled a hole for the pen lift foot.  I glued a square block to the base, and the backbone to the block (all hot melt, as this jig will have to come apart again soon).

Well, rats.  The top holes in the backbone are fine, but for the bottom holes, barely above the surface of the platform, the straight lines from them the wire must take to the attachment points on the ring go almost completely thru the wood!  Maybe I can cut grooves for the wires in the wood without cutting it completely apart.

OK, here’s the outline of the angle and the centerlines of the paths the wires need to take.  Yeah, yeah, the scribbled out ones are wrong.  And here’s the setup to cut the needed angled grooves.  Fortunately, one saw kerf is just nice clearance for the wires.  But to provide clearance for wires going thru the holes, the block that holds the backbone had to be moderately cut away.  Here’s the new one, taller and screwed (and wood glued) to the platform.  Wire bending time!

Well, rats. I didn’t think it thru well enough, and there’s no way to route the wires as I’d planned without going diagonally thru the pen (not a good thing).  OK, what if I recut the grooves so this one goes this way and that one… nope.  My head was fully engaged in having one piece of wire, but there’s really no reason it has to be that way.  And if I make it 3 pieces of wire, I can route them so they don’t interfere with anything.  But it was supposed to be one piece!  Shut up and make it.  It took hitting the chocolate for solace and courage, but I got started bending.

The platform/jig holding the backbone was a big help keeping things centered and square as I ran the wires.  When all the wires were in place (though without final crimping) I took it off the jig to finish up.  Unfortunately, I’d taken an easy way and ran the wires with just a 90 deg bend thru the holes rather than the 270 I’d planned.  After it was off the jig, I realized it would be a lot sturdier the other way, and redid 3 of the 4 holes.  (I’d already crimped and cut one of the original ends of the single wire, so didn’t have enough to redo that one.)  Lots more adjusting and finessing, and I got it so the ring was pretty flat on the ground with the pen lift at the center of its travel, and crimped and trimmed all the ends.  The wires are moderately nicked up and ugly, and the pen is considerably farther from center than planned (how did that happen?), but it’s fully functional.  Another step done!

Pen lift

The wires dangling from the pen holder in early 2016 to control the penlift had to go.  Bill proposed using RF; I proposed IR.  In a whole nother effort, I looked at increasing the range of the IR LEDs by increasing the current pulses thru them while decreasing the duty cycle (to avoid melting them).  That bit of unnecessary over-engineering got its own whole writeup.

The pen lift is triggered by hooks in Dan’s code that look at any Z value above some threshold as “pen up”, etc.  I hacked in a function to send the IR pulses to say “pen up” or “pen down” in a simple custom protocol, and called that from his Z value tests.  There’s also a button on the main board to toggle it manually.  That’s good if it gets into the wrong state (almost never happens) or to drop the pen for a moment to make a dot on the paper in case I need to find local 0,0 again for a drawing – like for switching pen colors if it’s missed a few steps.  Or to demo the pen lift. 🙂

The drawbot had gotten the mechanics of a pen lift – a servo on the penholder controlled by a local Tiny85 – in January 2016.  Here’s a clip of that penlift linkage.  Rather than lifting just the pen off the paper, it lifts the whole penholder up by pushing a foot encased in slippery Shapelock against the paper.  The original Shapelock foot was way bigger than needed; a much smaller one graces the new aluminum penholder.

At some point, it hit me that the aluminum tube I’d rolled for the linkage rod was way too long, and would never allow enough travel for the pen lift.  It was easy enough to cut it down, but embarrassing that I missed it to begin with.

While I got the old penlift linkage rod to work well with its new aluminum guide tube, there was a problem:  The way it’s mounted (the servo and especially the foot are below the pen), that rod is trying to fall out of the hole in the servo horn.  The fit is pretty free, and I’m quite afraid it will fall out in use.  So how do I keep it in?

If it were 5 times bigger, I’d drill a hole and use a cotter pin and washer.  Ideal would be a push nut, but I doubt I could find one just the right size.  I can’t heat it, as it’s millimeters away from the plastic horn.  I could carefully file a groove around it quite near the end.  That opens a couple of possibilities:  I could put a very small blob of epoxy on the end, relying on the groove to help it stay there.  A small washer would be what touches the horn.  Or I could try to make a circlip to fit it.  (I seem to think that more feasible than making a push nut, but still a big hassle.)  Or I could make a ring of wire to be held in place by the groove but extend well beyond the rod’s surface.  The bit where it was twisted to itself would also help hold the rod in.  In fact, by twisting 2 bits of wire together with their twisty ends diametrically opposite, there would be pretty nice symmetrical wings to bear on a washer between them and the horn.  None of those resonated with me.

But in fantasy walking thru a discussion asking for ideas on Slack, somebody might say “If it tries to fall out, how about making it come in from the other side so gravity helps rather than making it fall out?”  Well, gee, if I made a new one and bent it a little differently, that would work!  After finding and polishing up another piece of the 0.060″ coat hanger wire the original was made from, I started fitting it, but needed to rebend one bend – twice – and metal fatigue struck.  To avoid the same problem again, I made a prototype of 0.046″ baling wire.  Much easier to bend, and more forgiving.  Here’s the skinny proto and the working rod modeled on it together.  The new rod works fine, and can’t fall out.  Here’s the old and new rods (view from below pen holder when it’s in place).  Thanks, virtual W88 consultants!

Paper holder

Trying to cut a new piece of paper for each new drawing from a roll, and fighting with curling to boot was a hassle.  At STEMCON in April 2016, I added some bits to hold the roll of paper vertically on the back.  Much more convenient, but duh:  Why not mount it horizontally, right at the top on the back, so I could just pull a new piece of paper down over the backboard?  And if the roll were mounted the right way, going over the top of the board would actually uncurl it!  (Hmm – it looks like it might have used narrower – 24″? – paper and actually been pulled around the side, also uncurling it, at that show.)

By the Palatine Maker Faire in May 2016, the simple, effective new holder for 36″ paper was in place.  (I’ll get a picture next time it’s together – sorry.)  I made up a piece of aluminum angle that clipped over the top of the board as sort of a paper guide and to hold it down, but that wasn’t really needed, and so seldom gets used any more.  The paper holder is a great addition, helping turn the drawbot from a curiosity with a piece of paper taped to the front into a production machine for producing sheet after sheet of drawings.  All for a couple of pieces of heavy wire and 4 screws.  (And struggling thru several shows before it hit me how to do it.)

Cutting the paper off at the top when it’s full and ready to be hung up is a lot easier (and more professional-looking) thanks to some little coupon clipper paper slicer with an enclosed blade.  And after I figured out that I should take the tape off the bottom corners before I slice it off, it’s even less comical. 🙂

Pulling the paper down under the pen holder is awkward, but by the River Forest MakeFest I’d figured out that I could just park the penholder at 0,700 – dangling in the air above the backboard – out of the way, while changing paper.  On low power, the steppers still have enough holding torque to support it, and pulling the paper down is much easier!  Another step toward making it a production machine.

Artwork holder

Now that the drawbot’s getting to be a prolific picture maker, hanging its artwork has become an important part of displaying it.   In case my assigned table is out in the middle of the floor with no wall behind it, I’ve thought about making a large (8’W x 7’H?) frame out of PVC pipe (or 1/2″ conduit?) to hang stuff from.  Looks like there are PVC furniture fittings that might be useful.  Maybe with lightweight fabric stretched over it to pin stuff to?  Maybe use pins like these?  Maybe carry the pins always in case of fabric wall?  Since pages of drawings are 36″W x ~32″H, size the frame with that in mind.  That proposed (big!) 8’x7′ would allow 3 sheets wide by 2 high.  The drawbot puts out more that than at a typical show.  Maybe cut up sheets and just post the best drawings?

Many fittings would obviously not be glued for quick assembly/teardown.  Sensible might be to package up all the parts and leave it in the car to be fetched only if needed.  Should be fun to design, though it’s nothing but hot air at the moment.

Arduino software

tried to adjust for drum size changes – failed; interesting adding G2/G3; adding G55 was huge; how hard will hacking grbl be?

Stepper mounts

Took off the motors to: drill holes to make “hinges” in the mounting brackets; drill reliefs in the 1×2 for the nuts holding the motors to the mounts for greater travel for axis adjustment; drill a hole for easier application of lube to the back bearing.  Holes for “hinge” behavior should have been drilled in the first place – think I just forgot.  Small lesson:  taking the motor off the bracket was a good idea.  I left the first one on “to save time”; not a great choice.  Forstner bits would be good for the relief holes.  HF has a set for $10.  Don’t really want to go just for that.

OK – drilled relief for mounting bolts, nuts, and oil hole for back bushing.  Drilled lots of holes to make a “hinge”.  Banged on some of them to correct one bracket that was a bit too tall (for the wide dimension of the 1×2).  All back together again.  Aligned the bobbin axes for moderately more uniform winding.  Calibrated spool diams by drawing line x-300->x300 at Y300 and at Y-300.  Got pretty close.

Stepper fans

When I kicked the voltage up to 30V, I suspected the steppers were going to get hot.  Sure enough.  But how hot, and how hot is too hot, and how do I prevent that?

I glued a good old DS18B20 temperature sensor to a spare stepper and monitored it with an Arduino (what else?).  (Looks like the 1-wire pullup resistor was embedded in the header hot-melt.)  While running full speed (but unloaded), I watched the temperature.  I added a fan (looks like a 40mm) and a paper duct as about the most I could hope to cool it, and found the forced-air cooling was pretty effective.

From looking at stepper spec sheets, “real” steppers are often rated for 80C temp rise.  From nominal 20C room temp, that would let it get to 100C and be in spec!  I doubt this one is quite that robust, but with cooling, I could keep it well under 50C, so that should be OK.  I found some little 12V fans, and mounted them as close to the steppers as I could.  This one had a DS18B20 glued on while I was doing initial testing with an Arduino and 1602 LCD

With the stepstick set for 400mA (Vref=0.64V) it stabilized at around 48C.  With 300mA/0.48V, it did about the same.  Bummer.  After running a while (and stabilizing temp), after shut down to reduced current (not powered off) it cooled down to 30C.  Immediately after it was done, powering off increased the temp a little before it started to go down, further evidence that the fans help a lot.

Now the two 12V fans I had in series across the 15V supply will need a series resistor.  The motors are rated at 80mA, but measuring, we get:
6V  43mA
8V  50mA
10V 59mA
12V 66mA
14V 72mA
Shooting for say 50mA, I must drop 16V@50mA, or 320 ohms, but 0.8W!  And maybe I shouldn’t cut current lower, since I need the cooling.  So at 10V/motor, drop 12V@59mA or 203 ohms/0.7W.  So I guess I’m looking for 270 ohms, 1W.  Looks like a trip to Frys before I can fire it up. 🙁

The fans keep the motors under 50C while drawing, but they absolutely have to be running.  I put the two fans in series, and also in series with them put a green LED (on the bottom side of the PCB, peering up thru a thinned bit of PCB) with a resistor in parallel with it (on top of PCB, not visible here) to carry part of the 50mA going thru the fans.  That glowing part of the PCB is at once a 30V power LED and proof that there’s current going thru both fans.  A valuable after-design hack to the PCB.  <could use a better pic from the top>


The original Duemilanove with jumpers hanging from its headers was replaced with a simple PCB ~9/15.  It provided a mount for a Pro Mini, headers for the step/dir wires for the steppers and wire to the pen lift and a button to toggle the pen lift, and was a significant cosmetic improvement.  The power control / stepper cool-down circuit was on a separate bit of perfboard screwed down to the board on the bottom (green).  That was ugly, but functional (and fully in the junkbox spirit!).

Driven by wanting to get rid of that power thing and to use the nice compact A4988 stepstick stepper controllers, freeing up the clunky H-bridges for their original project, a new PCB was born.  By the time the board was made in May 2017, the drawbot was mature enough that most of its control needs were known and could be included on the new PCB, including IR LEDs for penlift comms.

While I was installing the initial components on the new board, there was a big problem:  The A4988 stepsticks were somehow backwards!  (It was one of those interesting cases where something is so wildly wrong that it couldn’t really be that way.  You have to re-evaluate all your assumptions, recheck all the details and figure out how this could possibly have happened – in addition to being slapped in the face with the fact that your project is completely broken.  And then you have to figure out how to fix it!)

It turns out the Eagle footprint for the stepstick modules was backwards/mirrored in the reprap.lbr Eagle library.  I could work around it by removing the pins from the modules and reinstalling them on the other side of the board.  After I inverted the pins on the stepsticks, they seemed to be fine.  (I marked a corner of each and each socket with white-out.)  The current set pot is not accessible, and cooling may be an issue, but it worked.

The pin inversion process started with cutting away the plastic band that held the pins together on each side (as that was quicker than trying to pull it off).  Clipping short ends of the pins off close to the board then made it easier to unsolder each one.  A solder sucker cleared all the holes.  Installing new pins on the new side was then easy. 

On the off chance I’d need to recall the procedure for inverting the pins, I wanted to document it.  Of course when I started this unholy hack, my focus was on doing it without damaging anything, rather than documenting the process with these nice pictures.  So I set up to take pictures as I prepped a third, spare stepstick.  Murphy seized the opportunity, and as I was finishing up, I realized I had removed the pins from an already modified stepstick, not a new one.  The picture above of pulling a pin after unsoldering it shows that too clearly.  Rats.

The new PCB seems OK, tho it had a hairline open on the ground trace to the penlift button.  I included a small loop of bare wire on ground to provide a convenient ground connection, and used it a couple of times during initial testing:  Logic probe, neg side of temp power supply, ground for simulating button presses.

The red and green LEDs that show polarity for each coil are wildly different efficiencies.  The reds have 8.2K series resistors, the greens 1K.  I slipped up on installing the first set, swapping red and green.  While I’d pictured red closest to the screw terminals, it really doesn’t matter, so I just did the second set the same wrong way.  But when I tested them, the reds were WAY brighter than the greens, despite my efforts to balance them.  That’s when I realized each color had the other’s resistors.  Bummer.  It was either hand unsolder/resolder the eight 1206 resistors (hmm – didn’t think of the hot air station!) or unsolder/resolder the LEDs.  I chose the latter.  I’d been double checking LEDs and polarity along the way, and when I finally got them in right, they all worked, and the brightness was quite well balanced.

Setting the reference voltage that determines the current limit on the stepsticks was a little scary at first, since the pot was now inaccessible under the board.  But all you need to set the reference is Gnd and Vcc.  Vref is from the slider on the pot, so a meter probe there works fine.  And in an uncharacteristically sloppy move on Murphy’s part, Vcc and Gnd are on adjacent 0.1″ spaced pins!  Since my standard low voltage power connector is two adjacent 0.1″ pins, finding a nice color marked female with open leads was as simple as scrounging around on the bench a little.  So while I do have to remove the stepstick module to change Vref, it’s pretty easy once it’s out.

Also note:  Doing this with a bench supply was sort of OK, but since the real life reference voltage is a direct fraction of the 5V supply in place while it’s running, it may not be as accurate as you might hope.  (Or be sure to match the bench supply accurately to your run-time source.)

All 3 buttons (2 rewind, on-board penlift toggle) work.  They just have Atmel internal pullups, but there’s not a lot of noise, so that should be OK.  IR comms works.  I went thru the polarity of the various connections in the series loop of 6 IR LEDs to get them installed right.  (Worked first try!)  Having the pink LED in series with the IR LEDs to see when IR current flows was a very nice touch.  Putting a resistor in parallel with it so it didn’t have to pass the 50mA pulses the IR LEDs saw was good.

Stepper, more upgrade 10/18

(writeup is work in progress)  I got a couple of 37 oz-in NEMA 17 steppers from a group buy at W88, and ordered some brackets and 30T pulleys for the 5mm shafts.  I planned to grind the teeth off, but didn’t, and they’re fine.

Shortened pulley stepper mounting “ears” to take advantage of stronger motors and still respect limiting cases top center (angle too shallow requires too much torque) and bottom corners (stepper must be outside so there’s a H component) by:
– lowering steppers to where I guessed they would still work for drawing at top center
– extrapolating string in that case, since any motion along that line wouldn’t matter for the top center limiting case
– drawing the line from bottom corner to old pulley position “because that worked”, and any motion along that line wouldn’t matter to the bottom corner limiting case
– chop/remount ears to be at intersection of those lines

Stepper drum axle alignment was off, so string piled up (on outside edge).  Sighted with a square, also did stepper location v pen holder mount location, came to believe I needed the brackets to tile backward at ~3.2º.  Held arm at correct angle with a measured block underneath, ground end on sandpaper taped to table.  Looks good.

Redid electronics mount (no stepper mount stick) with screws that fit into slots in back board for slide-on, no tool assembly.  Nice.  Cabled steppers with phone station wire, 2×4 0.1″ headers for twice current capacity, and mounted females at corners of electronics board.  Built/cabled a dedicated USB-TTL serial adapter and mounted it.  Found solder joints under 24V screw terms were bad; fixed.  Overall pretty good.

Had to hack Arduino code (still Dan Royer’s, modified) for steps/turn, microsteps, new ver # (JW4).  Got reacquianted with my custom D codes (D7, D3, D55) and of course G54 to locate artwork where I want on the paper.

After a few initial stumbles, it seems to be working very.  Even with the 33V supply, the motors don’t get very hot (so far!).  I’m leaving the grbl update for later.  This works, and has enough brute strength to not really need acceleration control.

Plan is to show it at Norther Illinois Mini Maker Faire Oct 27.  I’m working on artwork now – rather than desperate hardware work.  Yay!


UV cure resin to lock tie-down loops

I made some nice loops out of braided nylon rope to let one bungee cord fit nicely to hold the “long stuff” together.

I was afraid the knots might come loose, so I slobbered some cheap Chinese UV-cure resin on them.  It’s half an experiment to see if that’s a good way to hold  a knot in place.  While the old 18650/UV LED flashlight seems to work OK, I used a new 3W 365nm LED.  That worked maybe a little better.  Interestingly, the new stuff doesn’t fluoresce under UV like the Bondic resin does, so the clear resin barely shows up in the pic.   Don’t know if Bondic puts fluorescent dye in for some bling or practical reason, or whether it’s intrinsic in their resin.



One of the first things I’d like to draw and hang up at a maker event is a resume for the drawbot.  (Hasn’t happened yet.)  A picture of the applicant is customary on a resume, and the (planned) one started with a line picture of the drawbot.  But as soon as I first saw it (thanks, Rachel!) I wanted to use makerblock‘s cute drawing robot instead of line drawing of mine.  I wrote to Jay and he’s graciously allowed me to use it (with attribution).  Thanks, Jay!


I think it would be really cool to have a resident artist who could create line art caricatures of people by tweaking software generated cartoons from live photos – and have the bot draw them.  That could almost be a money maker somewhere.  Has absolutely nothing to do with the drawbot, but since that’s what’s holding the pen, I suspect people will eat it up.  Posted that to W88 list, got ZERO replies.  Some day.

Tool chain

I’ve come a long way with Inkscape.  Most recently, I found reference to a mirroring feature in Live Paths I thought would be useful, but it’s only available in 0.92, and I was running 0.91.  Of course I upgraded. 🙂  But Create Tiled Clones and Path Effects provide some very powerful effects.  I’m strongly considering doing a class on basics at the space.  There are so many tricks like the align/distribute thing, grids, guides, snapping, sizing by entering values – I think I could do a real service to anyone trying to learn about the tool.  Great – another project. 🙂

Path->Linked offset creates a _new_ path and lets you inset/outset it.  Watch out for jaggies if your original path has anything non-smooth.  It rounds sharp corners inside or outside, depending.  Useful for creating fill sometimes.

Eggbot Contributed Hatch Fill extension is pretty good, but you have to futz to get what it makes to be part of your path.  Path effects->Hatch(Rough) is cool, but converts the existing path to squiggle.  If you want outline path, dup it first.  Click node tool to see handles to change spacing!  Note that it generates multiple hatch paths if there are multiple overlapping fill areas.

I finally got the Gcode Extensions-> Path to Gcode pretty much working, but it required many steps of editing the gcode it produced to not run afoul of Dan’s implementations (Java and Arduino).  So I dug into the python scripts that implement it, and after many hack to that, I have a gcodetools.py that generates code that will run directly on the drawbot – a huge time saver.  I cut lots of corners – only works for Path to Gcode (not Engraving, Graffiti, Lathe); no tool change support; no comments; removed a leg that (only) occasionally generated a Radius-format arc command; probably more.

For that to work most seamlessly, there are modifications to the default orientation points needed.  In Orientation Points, set Z-Surface to 50.9, Z-Depth to 50.  In Path to Gcode Preferences, be sure to put a suitable file name in, and set Z safe height to 90.  I think those (along with the hacked gcodetools.py) are sufficient to generate working gcode first try.

So I guess steps are:
– Create artwork – apparently must be on a layer, but I don’t understand that requirement.  Some times it complains, other not.
– A reasonable size to get 9 images on the paper is 250x250mm.
– If you want it centered on 0,0, make a very small circle and center it (X and Y) on your artwork with align/dist tool.  Group it with them (probably multi-select works) and drag it so the small circle is centered on the bottom left corner of the document outline.  Then ungroup and delete the extra circle.  Don’t do Document Properties->Resize Document to Selected!  select the whole target artwork and drag it so it’s centered on the lower left corner of the document.  Fine tune by making sure both the top arrows (for vert resize) and the right edge arrows (for horiz resize) are centered on the edges of the document outline.
– Highlight the paths you want to generate gcode for.  (For multiple colors, do each as a separate gcode file, separate name.)  Must be _paths_ – might need Path->Object to Path).
– Do Extensions->Gcode Tools -> Orientation points.  Set Z surface 50.9, Z depth 50.  Close that dialog.
– With inkscape 0.92, double click the orientation points object, then select the right hand one.  Be sure to get the arrow, not just the text!  Assuming millimeters, set X=100 (prob was 354 or so) in the boxes at the top.  It will overlap and be ugly, but it will work.  UPDATE:  I just tried it 10/3/17 and the orientation point was at 354,0 but said 100,0!  Had to change it to 354,0 and then it worked.  Huh?  Also retried with 0.92.3 10/10/18 and also had to change to 354,0.
– Do Extensions->Gcode Tools -> Path to Gcode.  Set nice file name, path.  Set Z safe height to 90, units to mm (though I think that doesn’t matter any more).  Probably check Sort paths to reduse [sic] rapids.  Be sure your desired paths are still selected.  Select Path to Gcode tab or it will complain.  Click Apply.
– After some popups including setting a default tool, it should leave a representation of the gcode path (red for lines, green/blue for arcs) on top of your artwork.  Select it with object tool, [drag it away,] and delete it.
– Check out your new gcode!  Only F param is on second line.  It’s hard coded in gcodetools.py; change it if needed.
– New gcode plugin: Laser  – maybe unicorn?

There are also artwork notes in drawbot\artwork\_ReadmeArtworkTechniques.txt.

I could probably pick up a bunch of stuff from a session of youtube searches on “inkscape tips”.

Sound bites

A possible way to add interactivity to the drawbot would be to plot Lissajous-like figures from a mic audio clip from a visitor.  She talks, sings, makes whatever noises into a laptop app that creates some sort of Lissajous figure, adjusting/redoing ’til she likes it, and types in her name.  I need: an app to generate an interesting path from a few seconds of audio; and an app to generate gcode from that path.  The kid gets to pick a pen color, and the drawbot plots it (with name).  I bet there’d be a line to play.  Afterwards, cut the big page and give each kid her “work of art”.  Maybe version 17 would support multiple sub-paths/colors.

Vine and flower

Assume say 9 spots on a sheet and fill the first 7 spots with whatever drawings.  Create a green vine with leaves that weaves around the drawings, starting growing out of the newly drawn Groot down in one corner,  ending in a flower in say top left ninth.  Changing pen color for the flower would be a great finish.

User manual

OK, let’s start to collect stuff.  Not a bad time, since I haven’t used it for a while.

Overview list of topics:
– setup – mechanical: pieces needed, assembly, on a table, on floor, tools
– setup – software: software needed: makelangelo, gcode viewer, inkscape,other?; organizing gcode files; software dimension inits
– setup – electrical: power; estop switch; serial cable; LED indications; penholder connections, penholder power switch; charging
– operation:
– setting origin: G20, D7 sets current position to be 0,0.

Connect serial cable and make sure Windows sees it.  Fire up Makelangelo java app.  Grab bottom edge and open up terminal window at bottom (but don’t cover HALT – you may need it!).  Click CONNECT, choose serial port.  Should get orange hello from Arduino in terminal window.

SETTINGS:  We’re a Makelanelo2+.  Machine width (with new NEMA steppers) 1600mm; height 2060 mm; pulley diam: 22.8 cm.  Paper is really about 900×900, but I seldom tell it it’s that big.  Setting size to 280×280 give good visualization of the typical 1/9 of paper artwork pieces (if no G2/G3 arcs).  Margin is only used by Makelangelo’s Generate Artwork stuff.  Pen Max speed and Draw speed are in steps/sec (not /min).  Max might limit max speed, but maybe not.  Draw speed is if you don’t ever give it an F command before doing a G0 or G1 (or G2 or 3).  Pen angle is sort of hard coded at 90=up, 50=down.  Lift delay of 60 seems to work OK.

ADVANCED STARTUP:  Right after Arduino init, the origin is set to a point high off the board.  Never try to do anything (like jogging!) until you’ve told it somewhere more reasonable as the origin!  The “real” origin is the lower LED – right in the middle of the paper.  The 36″ paper is about +/- 450 mm from the center to edges.  Using that, you can make a rough guess at the absolute coords of where ever the pen happens to be as you’re setting up.  For example, if it’s in the middle of the lower right quadrant, that’s about X200 Y-200.  You can always enter a G92 with those values and things will be close enough for the jog controls to work (assuming you’re in G54 and G21!).  Once jog controls work, you can get to where you need to go.

Connect 33V stepper power brick.  It might be possible to upset it (requiring power cycle?) if you touch wrong ends of connector even briefly.  Put little finger pad up under ESTOP switch and make sure it’s it its uppermost position.  (Either middle or bottom is OFF.)  Green LED should come on and should hear fans.  Blue LED should be on.

Use buttons at outboard IR LEDs to take up some slack on strings so penholder is about in middle of paper.  In data entry line at bottom of terminal, enter D7 (=G92 X0 Y0).  Use jog controls to move pen tip to high LED behind paper.  Enter D8 (=G92 X-20 Y330).  Machine now knows where it is and geometry should be good.

Use jog controls to move to origin of where you want a drawing.  Need to know if this drawing is centered on 0,0 or orig is at bottom left corner.  Enter D55 to set G55 coord system and set its origin at current loc.  At this point the coord system should be good to go.

Click Open File, click bottom (NGC) file type selector, navigate to file, and accept.  You should get a representation of the file on the visualizer.  If it has arcs, there will be scribbles – just ignore them.

Turn IR receiver on penholder on with small slide switch (having made sure Li-ion cell is charged).  Up is off – sorry.  Should get a red-green cycle of penlift and LEDs, ending with pen up (green).  Insert pen so tip is ~1/16″ above paper and tighten clamp screw.  (I should put a stop in for this!)  At this point, you should be able to click Start and get your plot!  If it’s multi-color, choose the next file, change pen, and do it again.

WARNING!  When you’re in G55 coord system, the jog controls DON’T WORK RIGHT!  DON’T USE THEM!  G91 doesn’t work, so don’t even try to jog by entering commands that way.  Unless you’re CERTAIN what units the drawing left, do a G20|G21 before trying to jog with G0 commands.  Must give absolute destination in local coord system.

HINT:  After you set the local origin, you might want to drop the pen tip and bring it back up (2 presses of the Toggle Penlift button by the green LED so you know where it started.  Might be helpful if you have to restart, or just to check after a G0 X0 Y0 after the plot for missed steps.

TO GET BACK TO NORMAL:  Enter G54 to go back to the standard coord system.  That and a G21 will make the jog controls work as expected again.  It’s EASY to forget you’re in G55 or in inches!  If you do, the pen holder will launch off for parts unknown, requiring a quick ESTOP and starting all over.  Maybe I should add another D-code to do both.

CLEVER PEN HOLDER HANGER:  If the penholder is some above Y0, you can put the hanger in place and kill power (ESTOP) and the holder will gracefully start to fall and be caught by the hook.  Works really well once you see it.  Hang the hanger on the top edge way over to one side when not in use.

– D3: go to local 0,0 (G0 X0 Y0)
– D7: set current location as origin (G92 X0 Y0)  Only do this as a crude starting position or when the pen is right over the lower LED hole if you want the machine to work right.
– D8: set current loc as where the upper LED is (G92 X-20 Y330).  Normally only used when the pen is actually right at the LED.
– D9: go to high LED loc (G0 X-20 Y330)
– D55: switch to G55 coord system AND set 0,0 as current loc as 0,0 in G55.  NOTE THIS IS D55, not G55!  G55 won’t set origin!
– G45-G59: set the work coord system.  This is reflected as “tool N” where N is (G5x param-54)
– M114:  print current loc, tool, offset etc

CHANGING PAPER:  When one sheet is full and it’s time for another:
– Move the pen holder up out of the way by being sure you’re in G54, then manually entering G0 X0 Y700.  Guide it over the top edge.  It dangles, but is stable.
– To remove the old paper, FIRST remove the tape from the bottom corners/edge.  THEN run the paper cutter across the top to slice the paper off.
– Pull new paper (which has flipped back over the top, but is easily reached) down over the top edge of the backboard to help uncurl it.  I leave the bottom edge 4-5″ above the controller board.
– Tape at least the bottom corners.  I usually put a piece at bottom center, too.  I haven’t put anything on the vertical edges since the new ring penholder.
– Type G0 X0 Y300, but don’t hit return until you’re in position to guide the penholder by hand back over the top edge.  You can let go as soon as the pen (lift) is on the drawing surface.
– Tape drawing to refrigerator (or…).

– The yellow LEDs flanking the Arduino are last direction.
– The green LED in lower left is in series with fans.  No fans, no LED.  Assuming fans are OK, it’s basically a 33V power indicator.
– The pink LED front center blinks when an IR command is sent to the penholder.  It’s in series with the IR LEDs, so if it blinks, the IR LEDs flashed.
– The blue LED near the power transistor is on when power supply is in idle mode, off when steppers are fully powered.  When blue is on, 33V power goes thru the 65 ohm resistor at the back, so steppers have enough current to keep the penholder in place (and click when you force turn them), but let the steppers cool down.  If you hit ESTOP, when the blue LED is on, the steppers aren’t going anywhere any more.
– The red and green LEDs by the screw terminal strips to the motors are current presence/polarity on each of the motor’s 2 phases.  Not useful, but enjoyable.

– The button near the green LED toggles the pen lift.  You can press it (twice) to make a dot at the current position (presumably an origin).  Might be useful to reduce damage if a pen lift command is lost and it’s scribbling when it shouldn’t be.
– The buttons on the small PCB with the outboard IR LEDs are motor windups.  (There is no powered unwind.)  Useful after an ESTOP to get the penholder back somewhere near the middle, and during teardown to wind up the string for transport.  Needs 33V power and 5V to Arduino, but doesn’t need anybody talking to the Arduino.

NOTE that even if 33V is connected (and ESTOP is up/ON) the motors don’t get any current until there’s 5V to the stepsticks (which means to the Arduino as well).

Since the java app defaults to opening My Documents, consider putting your artwork one dir under that, or somewhere else you can get to it quickly.  Maybe have all the known good artwork in that top folder, and a sub folder for test stuff, or imperfect stuff, or older versions.  When people are waiting for you to make it draw something, you don’t want to have to dig thru directory structures.

Posted in Drawbot | Tagged , , , , , | 1 Comment

Fridge water leaks and stuff

We’ve had a lot of instances of water leaking into the basement from the fridge.  This details the latest instance, with what I can recall of others.  All the problems could be stopped dead by disconnecting the water line that feeds the icemaker and the thru-door water, but we use and like both features.

Main water line

The first leak was when the plastic water line to the fridge failed maybe a year after it was installed ~1999.  I might have replaced it with another new plastic line followed by another failure – not sure.  But then I replaced it with copper, like the installer should have done in the first place.  There’s even a sign on the back of the fridge that says DON’T USE PLASTIC WATER SUPPLY TUBING.  IT WILL AGE AND LEAK.  Too bad the installer ignored it.  I left a generous loop in case we had to pull the fridge out again.  Wise move.

Ice maker leaks

In February of this year (2017) there was a leak in the (factory) 1/4″ plastic line from the (outer more) solenoid where the copper line comes in to the icemaker.  I think it was the second time the loop at the beginning of the run – right under the solenoid – had cracked.  The poly tubing was fine for most of its run, but brittle right there by the solenoid.

I think I found enough slack in the line the first time to just cut it back and put it back into the nylon compression nut on the solenoid (date unknown).  The second time (2/17), I replaced the lower couple of feet with new poly, and joined it to the original line with a compression union in the middle of the back of the fridge.  I would have replaced the whole tube, but it’s got a funny crimp connector at the top that I didn’t want to mess with.  I even put a tag dating the repair on the union!

I was very surprised to find that forgotten tag when I pulled the fridge out for this latest leak just 8 months later.  The failure was in exactly the same place: in the tight U-bend right after/below the solenoid.  But how could brand new tubing fail that quickly?

I suspect the fridge has been running way hot for quite a while.  I recall during the February repair that the fan was turning very slowly or would only turn if I gave it a good spin by hand.  I fixed that, too (see below).

For the icemaker tube leak, I decided to replace the bottom foot or so that gets hot with copper tubing.  Unfortunately, both the 1/4″ IPT male threads on the plastic solenoid valve and its mating compression nut are plastic, and I’m not comfortable trying to get enough compression to seal copper.  So I used a short run of new poly tubing from the valve to a compression union on the copper.  That 3″ piece is essentially straight, with the U bend where the failures have all occurred made in copper.  I’m hoping the reduced bending stress on that little piece of poly will let it survive for many more years.  We’ll see.  Here’s the whole copper part of the new icemaker run.

Cleaning the fan motor

I really think the failures – especially the second one – were significantly accelerated by excessive heat.  I doubt the fan has been working at all for the past months.  I’m amazed the refrigeration even worked without the fan.  The fan would turn if I spun it manually to get it started, but it was gummy and slow.  Looking for the part (WR60X187) on eBay gives 2 families of hits: ones for ~$50 with a black wire pigtail, and ones for ~$140 with a 3 pin connector built in – like the one in the fridge has.  I’m not willing to cut and splice wires even to save close to $100 when the right part is available.

But I wanted the fan to work now, and the fridge was pulled out, so I took it out to see if I could improve it.  The motor looked almost monolithic in the videos, but when I had it in my hands, I could see it had aluminum caps pressed on both ends.  It took angled blows with a cold chisel to budge them, but once started they came off fairly easily.  Sorry for no pics of the chisel technique.

The back (away from the fan) had a lot of felt pads.  The shaft was held in with a spring nut.  I brute forced it off, hoping to be able to remove the armature, but even with the nut off it didn’t come apart.  Given that hindsight, I should never have messed with the nut, though its removal did allow the shaft to move farther, which helped clean the old lube out.

I started with normal machine oil, and did a combo of spinning and sliding the shaft in and out, hoping to “pump” old gunk out.  After a little work, I did 2 or 3 applications of Tri-Flow.  While its main benefit is suspended teflon, the base is still a light oil.  That seemed to help a lot in loosening up the old gunk.  I repeatedly saw dark liquid coming out around the shaft, as the shaft moved more and more freely.  After maybe 10 minutes of working it (ending with normal machine oil), it spun nicely as I expected it to, and I put it all back together.

It spun up under power just like it should, but made a little cyclic noise. I figured neither Laur nor I would stand for that for long, and was about to order a new motor.  I was busy (getting music ready for a dance) and put it off.  We’ve both sat in the room with it now, and while audible, it’s probably a noise we’ll get used to.  I’ll probably put off ordering that motor for a year or two – we’ll see.  But I’ll bet the fridge is a lot happier with that fan running again.  The icemaker leak and fan cleanout (and trips to the hardware store) took most of a day, but the fridge is back and functional (except for the door water).

Second leak

There was a slow leak – a drop or 2 a minute sometimes – on the vinyl tubing leading from the door water solenoid (inner more) to the poly tubing disappearing into the innards.  That tube was under inappropriate stress, and the leak was right at the connector.  It looks like that original poly tubing might have failed some time in the past and the cut off bit replaced with vinyl, though I don’t recall doing that.  (But there have been a lot of leaks, and I don’t even remember what I had for breakfast!)  It turned out the fittings were both bad.  The tubing was more like 3/8 (0.35″ OD), but they were 5/16″ fittings.  And there were no inserts in the tubing!  Unfortunately, I thought it was 3/8″ tubing, and got some of that and a compression fitting (with insert).  Wrong.  So I made a capped off stub so it wouldn’t pour water on the floor if I accidentally tried to get water thru the door, and put the fridge back in place for the night.  (I tried to just get the wires off the solenoid, but failed.)

Over the next couple of days I got a 5/16″ compression fitting, spare 5/16″ inserts and both vinyl and poly 5/16″ tubing.  That should be enough to replace the (inappropriate) 3/8″ vinyl with 5/16″ new tube.  Finally pulled the fridge out again and fixed it.  I chose to use a big, gentle loop of vinyl tubing (5/16″, as it should be).  Seems fine, tho with low pressure and only on when water is drawn thru the door, it was probably never a significant part of the problem.

Water sensor

A bigger part of the problem was that I really wanted to put in a water sensor this time, and pulling the fridge out is a real nuisance.  And I didn’t have the sensor yet.  If I didn’t do it now, it wouldn’t get done – exactly like last time.

I had an old sensor PCB (from 2011) that had a transistor on board that didn’t work well.  I replaced the transistor with a good old 2N2222, with a 1K (!?) pulldown on the base that seemed to work pretty well.  It was functionally a normally open switch, with just 2 wires coming out, to be put in series with a battery and piezo (or similar).  I planned to have it local, with battery and buzzer in the kitchen, but ended up fishing the wire thru the water line hole in the floor so the guts would be in the basement.

I knew where the low place was from patting my hand around in the puddle when I first pulled the fridge out this time, and thought I’d put the sensor there.  Unfortunately, that was exactly where the back roller of the fridge sat!

To get a low enough place to be sure it would get wet without getting run over, I cut the flooring out next to the hole.  (Ugly, but c’mon, it’s just behind the fridge!)  The new light colored flooring was apparently just put down over the old much darker stuff.  But after I cut thru the two layers down to the underlayment, I had a perfect nest for the sensor.  I held it down with a 1.7 oz chunk of iron from a disk drive magnet.  While I couldn’t test it in place (as drying would probably take days), I’m pretty confident it will work. (Sigh.)

I’m not sure what the leakage current will be (and don’t have one of Dave Jones’ cool μCurrent low current adapters), and am a little afraid of killing a 9V even when it’s not wet.  Hey – how about just using the 12V bus from the HA net?  No data – just the power lines.  Battery backed – no worry about a fraction of a mA.  But then it hit:  I’ve gone far out of my way to make sure that bus is never referenced to ground.  Yeah, the sort of isolated wet wood’s not ground like wet basement floor cement, but still.  Nice try.  (The plan for water sensors on the floor is to use an optoisolator and maybe a couple of AA cells on the sensor side.  But now I’m worried about those going dead from minor leakage.)  OK, maybe a 12V battery?  And maybe with a low battery alarm?  Or maybe just another dollar 12V wall wart from Goodwill (or some other DC supply with a real transformer).  More hassle, but at least it’s in the comfort of the basement.  So nothing connected yet, but at least the sensor – the hard part – is in place.

Water filter replacement

Not a leak, but this seems like the best place to record it…  I put a cheap inline water filter into the fridge water line many years ago – probably motivated by smelly ice cubes.  (Didn’t help that.)  This isn’t the one, but the layout is the same: horizontal, press-in no-tool 1/4″ fittings on both ends.  Expected lifetime was maybe 6 months; probably stayed there 6 years.

When I wanted to replace it (low water flow?) around 11/29/16, I realized I’d have to turn the water off (or have a small flood).  Boo.  (Yes, there’s a valve, and I used it.  But it’s a clamp on saddle valve and I hate messing with those once in place.)  So I sprang for a more expensive Whirlpool twist-in cartridge job that allegedly can be changed without turning the water off.  Fine.  Here it is finally in place.  Cartridge is a WHARSF5.

But to get the tubing out of the old press-in fittings, you need to press on the inside part of the fitting – which I couldn’t easily do for the old filter.  So I made up a little tool to push on just the part than needed pushing on.  It worked acceptably, and I got the filters exchanged.  Of course the new filter has the same push-in fittings, but with luck I won’t ever need to remove it, especially since I have no idea where the tool is.  🙁

Looking back at the pics I took at the time, there’s a video clip of bubbles coming from a piece of 1/4″ poly tubing in a bucket (but no notes file).  I vaguely recall that I tried to be a good kid and flush the air out of the new filter before putting the outlet side tube in place, but had problems:  With a scrap of old poly tubing going from the filter into the bucket, I ran way more than the volume of water the filter could possibly hold thru it, but kept getting bubbles in steady state.  I think the problem turned out (after a lot of head scratching, cussing, and recording video) to be a small crack in the old poly tubing scrap that entrained air as the water flowed thru.  “But it doesn’t matter if it’s a crappy, cracked old piece of tubing.  All I’m trying to do is direct most of the water into the bucket!”  Wrong.

To facilitate flushing the air out next time (without having it go all the way to the fridge), I should have put a tee with a capped stub in the line from the filter to the fridge.  I suppose I might do that when I change the filter next – if I can find the tool to remove the press-in fitting.

For reference, fridge is GE Profile 24 model TPX24BRBB WW   Ser num: ST200700

And yet another leak

6/12/18: A week or two ago I saw a small puddle on the basement floor in the neighborhood of under the fridge.  I mopped it up; it came back.  Seemed to be dripping from a slightly different place.  I think I had just emptied the ice maker bin, so multiple icemaker cycles had probably been running.  A little later, a towel from the pile under where the leak usually is was damp.  Damn.

While hooking up some kind of alarm to the water sensor – which has been in place for months – has been on the list, the bare wires are still hanging there.  Yeah, I’ve been busy, but the sensor was in place and its wires were right there.  I put a Li-ion battery, 470 ohms, and an LED in series with the sensor wires.  The LED lit one way.  That probably meant the sensor was wet.  No surprise, but probably means the sensor works.  (Wrong.)

So I finally pulled the fridge out (more and more of a hassle as its rollers make permanent dents in the soft vinyl flooring).  I could see white calcium water leak traces on the tubing that supplies the icemaker, but no water.  (Maybe a leak at the plastic compression fitting at the bottom of the solenoid?)  I tried to cycle the icemaker (with Lauren moving the bail and observing in the ice bin), even waiting around a little in case there were some timer cycles, but no luck.  Tried again later, and Laur described the bail being moved slowly up and back down by some motor, but still no water cycle.  Pushed the fridge back part way so we could at least open the door and get thru the kitchen.

A few hours later, I saw a big (3 oz?) puddle on the floor.  Pulled the fridge back out, but couldn’t see any water on the tubing.  (Having my near vision gone after cataract lens replacement didn’t help.)  I pulled the plumbing a little further apart, and after considerable struggle, disconnected the connections to both solenoids.  Excellent: now I could put the water-thru-the-door wire on the icemaker solenoid and cycle it at will.

Lots of water leaked after the first one second cycle.  After a surprising amount of mopping, drying, feeling and cycling the valve, I finally located the leak.  It was in the brass compression coupling connecting the remaining short plastic tube from the valve to the recently installed copper tube beginning the path to the icemaker.  I tightened it all, and it still leaked – quite a bit.  I tightened some more (and further hand tightened the white plastic compression nut under the valve), and it seems to have stopped.  It didn’t feel like the threaded fittings were about to strip, but it was torqued way more than I think compression fittings are supposed to need to be tightened.  But it doesn’t seem to leak. 🙂

Squeezing into the space behind the fridge, I pulled the still unconnected water sensor out of its little below-floor grade home.  Its well didn’t feel wet, and neither did its surface.  I connected the same battery/resistor/LED test setup, this time looking at the board and getting the polarity correct.  The LED didn’t light until I pressed a wet finger to the sensor pad, and then barely convincingly.  When I inverted the leads, the LED did light.  Oops – wrong conclusion earlier.

I scrubbed the cruddy copper surface and wiped it off, so I hope it’s in good shape to sense water if/when it appears again.  I don’t know what I’ll do for electronics to connect to the wires from the sensor, but at least now I have something to go on.  I put the sensor back in place, this time with the whole weight of its hold-down bearing on it.  I hope I do better hooking up at least an audible alarm to it this time.

I’m also considering leaving the back panel off.  The fan exhaust would obviously be happier with less obstruction, so that’s good.  I’m not sure whether the padding behind the compressor is for sound insulation or heat insulation.  Let’s hope it’s sound.

Posted in Home Repair | Tagged , , | Leave a comment

Basement Watchdog Big Dog transformer failure

We got home from Heartland 10/15/17 to BWD beeping.  When I went down to look at it, I saw the red LED for Power Failure on, but my first goal was to stop the damn beeping.  Unfortunately, the alarm wouldn’t reset with either button.  Rats.  Having gone thru a couple of other backup systems, I figured by buying the biggest, baddest $500 system, I was safe for a while.  Wrong.

There had been a BIG rain the day before (6″ in 24 hours).  The HA system reported the sump ran a max rate of ~55 cycles/hr, and thankfully there was no water on the floor when we got home.  Very unfortunately, motivated by wanted the beeping to stop, I noticed the “power failure” LED, but was too distracted to check for others, so I don’t know whether the “pump was activated” LED was on.  So it is possible the main 1/2 HP Zoller couldn’t keep up and the BWD float activated and ran the DC pump and kept us dry (until it failed).  I really wish I knew whether that had happened.

AC was good at the prongs of the plug in the socket.  AC fuse was OK.  Opened unit up.  Got 124VAC at transformer primary, zero at secondary.  Secondary showed < 1 ohm all connections (apparently center-tapped).  Primary was open.  Front panel showed battery at 100%.

There’s some brownish, very slightly sticky residue on the tops of horizontal plastic plates in the transformer, consistent with stuff melting out, though I don’t know whether that’s what it is.  I suppose if the pump were cycling and heavily running on AC that the transformer could have gotten hot, although that’s supposed to be OK and within normal operation.  Nothing was hot when I got there, and it didn’t smell “hot”.

Nominal warranty is 2 years from purchase.  Pics of the installation were EXIF dated 1/23/16, and show the open box.  I can’t imagine I had it around for very long before installing it, but I can’t find ANY evidence of how it was purchased.  I couldn’t find any $500+ purchase from HD (where I suspect I got it) on the Chase bills, and no check in the checkbook (though I have no idea why I wouldn’t have used the credit card).  I found the original manual, with no date or price, and with the warranty card still blank.

What to do next?

With no proof of purchase, even though it should be under warranty, I’m out of luck.  I’ll call Glentronics and hope I can buy a transformer.

There are multiple versions – gray front panel, black panel, 12-120C.  Somebody has a used black panel one they claim is in excellent working order (no pump) for sale on Ebay for $150 free shipping.  There’s also one in the same neighborhood for $150 on Craigslist – probably the same one.

Next step analysis

I called Glentronics to see if I could buy a replacement transformer, and got past the person who answered the phone and said the Big Dog didn’t have a transformer (!?).  Someone in the support department said they couldn’t sell the transformer, but I could bring it in for repair for probably ~$100.

So my choices are:
a) Drive 45 min each way (twice!) to bring unit in and fetch it back, pay ~$100 and be back where I started.
b) Buy the $150 used one.
c) Just buy another whole new frigging system for $500.
d) Just buy another whole new frigging system, (send in the registration!), and if the transformer is the same, swap it, return it after a year or something, and get a new replacement.  Sort of cheating, but only because I failed to send in registration the first time.

Thoughts and considerations:
– The possibility exists that the transformer is not the only problem with the existing unit.  Possibly that problem is what caused the transformer to fail, and a new transformer would be a waste of money.
– Reviews are generally favorable.  Some have complained about the battery water level sensor not working.  The rod in the 12-120 was too long, and I took corrective action, so those might not be relevant if the rod problem is addressed.
– Looks like a nice build when taken apart.  From cost and weight and fact that this is top of the line, I would expect it just work for a long time.  (Which is presumably why I didn’t bother to register it.)  That is an argument in favor of the $150 used option.
– It’s possible it failed doing exactly its job of helping the main pump when it couldn’t keep up, but there’s no way to know. 🙁  Arguing against that is that the controller shows the battery at 100%.  If the backup pump did in fact kick in to help the main pump, the timing would have to have been exquisite to burn out the transformer helping, but not burn at least some of the battery continuing to help after the transformer failed.  After the failure, there was obviously no topping off the battery.
– In the past, the pumps of battery backup units have failed, presumably largely due to salt water in the sump.  If I buy a whole new unit, I get a known new working control head plus a spare pump.  I’ve had trouble sourcing replacement pumps, so that’s an interesting option.  But since the water softener now discharges to the sink and not the sump, pumps may not corrode and fail that way any more.
– If I take either b) or c), I can measure the output voltage of the transformer, and presumably get a replacement from another source.
–  The additional hassle of driving it up there and back was an interestingly strong argument against having them fix the original unit, tho that’s the cheapest way back up.

A DAY LATER:  I decided to get the $150 used one from eBay.  It’s on its way.  (And I replenished Paypal.)

10/20/17:  New used Big Dog arrived, very nicely packed.  (Where did they get that industrial strength bubble wrap?)  It has a black front panel and quite different insides.  Several heat sinks, and I think fewer relays.

Measured transformer output voltage:  Open: 31.5VAC;  with 7.7 ohm load (4.0A): 30.8V .  Don’t know yet if it’s interchangeable with mine, but it looks the same.

Pump connector is the same, and battery lugs have large enough holes for the battery terminals (unlike the last one).  The water level sensor rod (red) is different length than the old one (yellow), both with and without the sleeve I added to put the tip of the old rod where I thought it should be.  Made new sleeve for the new sensor, so it should be same as before, for better or worse.  The protective plastic? tube around the float switches is broken exposing the PCB with reed switches, but that’s not a big deal, as I’m using my old one.  Spliced that in with wire nuts.

Unfortunately, it didn’t seem to work.  Got ready for polite discussions with seller.  Alarms wouldn’t clear; said battery problem with 14.2V on battery.  Tried several orders of connecting power, pump, battery, but no joy.  Left it for a while, but same.  Finally saw a line at the bottom of the front panel about holding test/reset button ’til 3 beeps (~20 sec) after changing battery.  (Not present/needed on gray panel!)  I did that and the alarms stopped.  It went into some test mode for maybe hours (battery discharge/charge cycle??), but eventually settled down and is giving normal looking indications.  It says battery is only good for 6 (of 7 max) hours continuous pumping, but maybe that’s so.  But I have a working, stable system.

I called Glentronics a second time and spoke with a helpful knowledgeable guy.  He said the gray panel units were newer and better, and they didn’t really repair the old black panel units any more.  He also said the transformers were the same, and offered that they were rated at 20A.  I guess I think Glentronics is OK.

The Glentronics call helped me decide what to do next.  I’ll pull the transformer out of the black panel and put it in my gray panel.  Of course the first question is whether anything besides the transformer has failed.  I made up 3 male-female 1/4″ spade lug jumpers and patched the working transformer to the gray panel unit.  It came up and everything seemed to work.  Hooked it to a small 12V battery and it appropriately indicated battery problem.  Pump failure and water level fail LEDs came on appropriately.  Shorting the float wires kicked off a pump cycle.  When I connected it to the real battery it settled down and showed no alarms.  (I did discover that if the “pump activated” LED is on, switching Pump Activated Alarm mode  Off and and back On clears it without invoking a dumb pump cycle.)

All went smoothly until the last connection for the transformer primary.  The old (gray) transformer had one male and one female spade, but the “new” one had 2 females.  WTH?  I cut the male off the old transformer and spliced it onto the new one.  Spliced the float back in and tested it – OK.  The wire nuts I had were a little too big, so I twisted in (and clipped off) an extra piece of stranded wire for a more solid connection.  Seemed to help.

So $150 later, I have a presumably fully working system (with the newer gray panel and guts), plus a carcass that could be pressed into service if I had a 28v? center tapped 20A transformer.  And I didn’t have to drive to Linconshire twice. 🙂

Posted in Home Repair | Tagged , , , , , | Leave a comment

Shapelock protective case for Laur’s Prius fob

We had a quite unpleasant and mysterious problem with the Prius’ alarm sounding (lights and horn) when we parked in a quiet neighborhood front of some friends’ house.  (For a square dance.)  We got stuff out of the trunk, but when I locked it, the alarm went off.  I opened the trunk and it stopped.  Closed and locked and it started again.  Opened it and it stopped.  Lauren had gone into the house by this time.  I snuck around the car and used a touch pad on a door handle to lock it – and the alarm stayed off!

I went in the house and verified that the panic button on my remote clicked and lit the light.  I went out a few minutes later to check it out, but it worked exactly as it should.  I could lock and unlock, and by press and hold, start the alarm.  Another press turned it off.  Uncomfortable, I went back in to dance.

No alarm when we got back in the car later, but when we got out in the garage at home, it went off again.  Lauren went in the house, and I played a little more.  I couldn’t get it to sound again.  I googled and read various posts about false alarms on Prius, but nothing really clicked.

At some point later it dawned on me that while I perceived myself as the driver, and my fob as controlling the car, the car didn’t care whether it was my fob or the one buried in Lauren’s purse.  We took hers out of her purse and the alarm never sounded again.

The fix

I’m quite confident that something got wedged against the panic button of her fob and caused the problems, though I can’t prove it.  She’s carried Prius fobs buried in her purse for many years, and this is the first time there’s been a problem, but I wanted to make sure it would be the last.

A Shapelock case with some kind of dome over at least the panic button should do.  I started out making raised forms over the buttons, cut out of thick cardboard (poor choice), hot melt glued over the buttons.  I cut a piece of paper to what felt like about the right size for the sheet of plastic I planned to form around the fob.  That would provide a visual size guide later.

I merge leftover scraps of SL and press it into thin sheets so it will remelt quickly.  Not that I’m going to pull out a caliper as I’m forming it, but it looks like around 0.050″ thickness flexes nicely but is still sturdy.  I rolled out a blob of SL to about the right thickness with a thick tumbler, and cut it to about the right size rectangle with a kitchen scissors while looking at the paper template.

It was so thin it cooled substantially while I was cutting it, so I dunked it back in the hot water.  It folded over and stuck to itself, and I had to start over.  Not a big deal.  In addition to the large rectangle I planned to wrap around the fob, I cut another smaller rectangle to go over the panic button so its cover would be thicker and stiffer.  A try or 2 later, I had a Shapelock wrapped fob.  I didn’t want to run cold water over the fob, so I stuck it in the freezer for a minute.


No cigar

Nice try.  One of the cardboard forms came out nicely, but the SL stuck thoroughly to the other.  Don’t use cardboard for this.  The raised part over the panic button (after I clawed the cardboard out) was perfect: a smooth dome definitely strong enough to do the job.  The cross section was visibly thicker than the rest.  Unfortunately, the case didn’t wrap around enough, and didn’t stay on as I wanted.

I cut the case up and remelted it for another try.  (That’s one of the greatest things about Shapelock!)  This time, I used polyethylene covers for the buttons.  Instead of fighting with two pieces of soft plastic to make a thicker part over the buttons, I just cut a small piece to cover them and pressed it in place.  It cooled off pretty much while I was wrassling the larger piece to wrap around the case, but I think they still welded together OK.

This one was much better.  Although the poly covers came out easily,  the SL stuck to the fob way more than it had the first time.  (Oil washed off?)  By the time I’d pried it off, the SL case was kind of sprung, and didn’t stay on well.  I trimmed it up (the vision of wrapping a neatly trimmed rectangle of soft plastic around the fob for a nearly manufactured looking case remains elusive) and dipped the most sprung part back in the water for only a few seconds.  That let me reform it just as I wanted (if uglier).  When it cooled, it was again seriously stuck to the fob.  Huh?

Anyway, it came out great.  It’s a little bulkier that I hoped, but OK.  The protective domes over the buttons look about perfect, and the case snaps on and off satisfyingly.  And I’ll bet we don’t have any more mystery alarm events.

Posted in Miscellaneous, Shapelock stuff | Tagged , , , , , | Leave a comment

Fixing a krubow RF Remote receiver

The USB cable of Les’ RF receiver broke one of its wires to the PCB inside, and resoldering it was difficult/beyond his skill.  He bought a new one (his 3rd!) and brought me the carcass.

The cable had pulled out so far the shield showed, and it was sort of held in with electrical tape.  The stub of the broken white wire on the PCB was very inaccessible, as it was embedded in what appeared to be epoxy.  Huh?  I broke the exoxy out, cleaned the holes in the PCB and cut off and re-prepped the cable end.

To my amazement, I couldn’t get the shield to accept solder at all.  As I tried to re-implement the clever mechanical approach of splitting the shield in two before soldering the other 4 wires, I realized why it had originally been epoxied:  Without being able to solder the shield, it was almost impossible to keep it in place.  I epoxied it, about as Keith had done originally (though I didn’t embed any of the other wires).  I’m guessing he soldered the other wires first, then put the shield thru the holes and epoxied it.

To provide a strain relief (so maybe I wouldn’t have to repair it again) I planned to embed the cable in Sugru.  And to help keep the Sugru in place, some .030″ baling wire rebar was installed.  (Its inside ends were epoxied in place.)

The rebar provided the additional benefit of a nice clamping place for the second bit of strain relief: casting the stub of the cable inside in epoxy.  (No, the case was not expoxied shut.)

Here’s the finished strain relief.  It looks and feels nice, and with the rebar hidden inside, I expect it will last quite a while.  Oh, yeah – the electronics work again, too.

Update ~10/21/17: Well, it was Les’ fault.  We had a C2 session in Skokie, and for the second time, I didn’t have all the parts for the remote control button.  I even knew it – but couldn’t find my receiver.

I’d forgotten that I’d used the leftover Sugru to make a strain relief (no rebar) for my receiver, and had put them both on top of the stereo receiver in the family room as a warm place for them to cure a little faster.  I picked up Les’ receiver and delivered it the next day, but completely forgot about mine.  Slowly – over a couple of hours’ driving to and from Skokie – I thought I might have done something like this.  And sure enough, there it still was!

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

Focaccia slicer

Lauren wanted to made sandwiches out of a round focaccia loaf for an unusually long square dance session.  The question was how to slice it in half neatly.  Plan A was to firmly support both ends a long knife horizontally half a focaccia loaf height above the counter and slide the loaf back and forth past it.  Unfortunately, we didn’t have a knife long enough.

Armed with the “half a focaccia loaf” measurement of 2.6cm and a sturdy Wusthof knife with a flatish handle, I scrounged around in the scrap box and found something with a smooth bottom and just the right thickness.  I drilled the holes for the zip ties at an angle so I’d have less material to remove to recess the zip ties so the bottom would be completely flat.  Here’s the slicer ready to be tested, err, used as designed.

The smooth bottom of the block slid nicely against the counter top, and the knife did its job admirably.  The first loaf was sliced about perfectly; the second showed just the kind of small discontinuity you’d expect cutting thru something with a tool not long enough to cut in one pass.  But it was still completely acceptable.

Here are Lauren’s sandwiches.  They were both beautiful and very good.  She cut each into 8 wedges, with a bamboo skewer in each wedge to hold it neatly.

You can see the shim needed to make up for the slightly curved handle in this “after” pic.  Another successful junkbox quickie!


Posted in Miscellaneous, Uncategorized | Tagged , , , | 2 Comments

Kidde P3010CU false alarm

Our Kidde P3010CU combo smoke/CO detector started to beep and speak “Fire” this morning.  A pretty thorough search of the whole house revealed no smoke, no fire.  Still a little spooked, I considered apologetically calling the fire department, but noting that the Kidde i9010 ionization smoke detector mounted right next to it was not alarming, I held off.  (Neither was another P3010K-CO two half-floors down, but I’d forgotten about that one.)

I fought a couple of battles with its alarm “Hush” feature before I could get it to shut up reliably.  IMHO, the user interface it presents is quite flawed.  When you press the button (which does not present a tactile “click” so you know it was pressed), usually nothing happens.  The blaring alarm and voice saying “Fire” continue as if nothing happened.  Hush mode apparently only takes effect after any beep/voice warning cycle in progress has completed.  Only then does it speak “Hush mode activated”, start a 10 sec LED blink cycle and stop making noise.  Of course by then you’ve probably pushed the button several more times, and it may be that an even number of presses toggles hush mode off again.  (Murphy also does his best to maximize the probability of that.)  The spoken info and LED blink pattern are quite helpful, if you can ever get them to start.  On the plus side, the piezo is pretty well sealed to the front of the device, so putting a thumb (or some duct tape) over it quiets it down a lot.  I was pleased that I’d opted to get both this photo smoke detector and an ionization one.  And I was pleased I’d spent the extra 10 or 20 bucks for one that speaks.

It says if both fire and CO are present, the fire notification takes precedence.  I had psyched myself into thinking I might feel a little woozy, so started looking for CO.  The furnace is in A/C mode and has electronic ignition anyway, so shouldn’t be a source.  The only other gas device is the water heater.  Its flue was cool, so I turned on a hot water tap to force it to cycle on.  I was standing in front of the heater when I heard it fire up.  The flue got hot to the touch in just a few seconds.  Seemed to be working, though with CO it’s probably hard to tell.

I took the detector outside in the clear, sunny 60 degree fresh air, but it kept alarming.  I left it on the front step for a couple of 10 minute hush cycles, and it kept alarming.  I took it to the garage and blew it out with compressed air, and it kept alarming.  I considered taking it to the fire house, but by then I was pretty convinced the device was just broken.

I called Kidde customer support, and after an annoyingly long hold, spoke to a pleasant rep, “George”.  After explaining the situation, he took my name and address and said he’d send a new one (10 days or so), and that they didn’t need the old one back.  When I asked how often that happened, he mumbled something not very helpful.  When asked if blowing it out again/some more might get it working again, he replied that it might, but there was probably just something lodged in the photo path.  I thanked him and said good bye.

Hmm – I read the user manual and it said not to put it close to an attic fan – but that’s right where it’s mounted.  Is that because the fan whisks smoke away too fast, perhaps making it less sensitive?  Or because it is likely to blow junk into the detector and cause false alarms like this?

Now what?

I felt a little naked with no CO protection, but at least we still had the ionization smoke detector.  I can’t keep pressing the hush button every 10 minutes for ever.  Should I activate the no turning back death/deactivate switch on the back?  There was one clip visible from the back that looked like I might be able to open it up, so I tried that.  After releasing it and its three brothers, the unit opened neatly.

The cover holds the piezo and speaker.  The lithium cell was unsurprising.  I didn’t know what to expect for the chemical CO detection cell, but this must be it.  The only mildly interesting bits were what looks like a glass diode mounted up off the board and marked “R55”, and the fact that they’d flowed wax over many (but not all) of the components.  I figured I could at least scavenge the little speaker (but fortunately hadn’t cut the leads yet).  While I had it open, the hush cycle ended and it started alarming again.  The click-less spring contact in the middle was obviously the hush/test button, so I pressed it and started a new hush cycle.

And then there’s the photo sensor chamber.  The top is held down with 3 easily released clips.  I opened it up and noticed with interest that the slitted walls were shaped to provide a sort of swirl pattern inside the chamber.  Or are they just light baffles? The LED and photo detector were clearly visible.  That looks like a barrier directly between them, so maybe it works by IR scattered off smoke particles.

It started alarming again as soon as I opened the chamber.  The optical dark provided by the removed chamber top was obviously wildly violated, and each time I’d start a hush cycle, it would abort the hush just as the manual said it would if there were very dense smoke.  That was annoying, and I’d taken my pictures, so I put the chamber’s cover back on.  It clicked in place reassuringly.


And then it said “Hush mode cancelled”.  And didn’t alarm any more.  Huh?  I ran a test cycle, and as advertised, it played 2 cycles of 3 beeps and “Fire”, and 2 cycles of 4 quick beeps and “Warning, Carbon Monoxide”, and then it was silent.  Had the wildly out of spec light on the detector forced it to reset or recalibrate or something?  I put the main cover back on, and it seated with a satisfying click.

I lit a match (with considerable difficulty: maybe I should get some fresh matches!) and when it went out blew some smoke at the sensor.  It alarmed in seconds, with 3 long beeps and “Fire”.  I pressed the hush switch (only once, having learned that lesson) and saw a little blink.  Though I don’t think I heard the voice message, it did go into the 10 sec blink pattern that indicates hush mode.  I promptly blew the unit out with compressed air.  It continued blinking for a couple of minutes until I pressed the button again.  It said “Hush mode cancelled”.  And it remained silent.  Does smoke detection actually work again?

I started up the 4 stroke Craftsman lawn mower (don’t know how much CO the Prius puts out) and held the detector in the exhaust stream for several seconds, but to my great surprise got no alarm.  I pressed the button for a test cycle, and got 3 long beeps, “Fire”, 3 long, then 4 short, “Warning, Carbon Monoxide”, 4 short.  It ended maybe with one more very short beep.  I held it in the running mower’s exhaust stream again for a good 30 seconds, but nothing.  I used this test on a CO detector before and had no difficulty triggering it.  I can’t believe the mower isn’t spewing substantial CO, so now I have no confidence in the detector’s CO side.  Yeah, I opened it up, but wasn’t aware of doing anything that might interfere with the CO side – and it passed its internal test.

I’ve put this one back up for now, but I’m glad a new one will be here soon!

Update 9/13/17:  As promised, I received the replacement Kidde P3010CU on 9/2, and promptly replaced the old one, using the old mount uneventfully.  Today (9/13) I got around to redoing the CO test, just for the warm fuzzies.  I held the stack of 3 detectors – old and new 3010CUs and the the 3010K-CO from the family room – in the exhaust stream of the 4 cycle mower for a good minute.  To my utter amazement, none went off.

I started the Prius and as quickly as I could, before the catalytic converter heated up, held the 3 detectors in its exhaust stream.  To my further amazement, first one, then a second went into fire alarm mode!  After a minute or so, the engine shut off, as expected.  Between my surprise at fire alarms and a lot of noise (two sets of 3 beeps and at least one saying “Fire!”), I didn’t properly note which detector was doing what.  At some point shortly after the engine shut off, I’m certain I heard at least one set of 4 quick beeps – the CO alert all of them use.

I pressed the terrible “hush mode” buttons, with even less success than expected, and blew all 3 out with compressed air in the garage.  The noise subsided, but the new 3010CU kept up its fire alarm.  Each time I’d press the hush button (well, at least many times:  that button still gives the appearance of being terribly unreliable) it would say “Hush mode activated” and be quiet.  But only briefly: in a few seconds it would go into loud alarm mode again.  That’s consistent with its described behavior in the presence of dense smoke.

It was in the house by then, and I blew it out again with lower pressure air in the shop.  Still the same behavior.  Does the 3010CU have a “stuck in fire alarm” bug?  I whacked it lightly against the heel of my hand.  And it stopped!  Coincidence?  Who knows?  But at least the racket has stopped.

Several minutes later I pressed the button on each to trigger test mode.  The old CU and the K-CO responded with the expected test noises.  But the new CU did not.  I set it next to its elder twin and watched two flashes from the older one and none from the new.  It’s supposed to flash once/min for the first 10 minutes after a test – then once/10 min.  But now I can’t get anything out of the new one.  Major bummer.

The way forward is very unclear, but I put the K-CO back up in the family room and the old CU the the main upstairs hallway location.  Humpf.

Update a couple of hours later: Wow.  Having nothing much to lose, and with the unusual data point that I’d jarred it just before it shut up permanently, I opened the new detector.  I forgot that inserting the pick/release tool outside the foam strip around the outside edge left little/no evidence of tampering.  I hope that fact had been relegated to “should never need this again” status.  Again, I hope to never open one of these again.

I looked first at the power switch.  It was a little to the right of center (as oriented in this picture).  Looking at the label directions on which way to turn to shut it off, it seemed like “to the right” was the off position.  I moved it a little to the left (like by the amount of slop allowed by the white plastic operating dogs flanking the handle) and it beeped!  Maybe it said to press the test button – not sure.  Encouraged, I moved the switch and the white plastic operating mechanism all the way over to the left, which I presumed was ON.  Silence.

There also seems to be interaction with a white tab in the mounting slots that would probably be moved when you first twisted it into place.  A little incredulous, I moved it all so the switch was in the center of its travel (as in the picture above).  It beeped and then for sure said “Press test button” (or close).  I did (using the exposed contacts in the still open device).  It beeped and probably went thru a test cycle of fire and CO.  Great – it looks like it works again!

And then it went into fire alarm.  The first step was to get some duct tape to cover the piezo so I could stand to work on it.  I pressed the hush button (once) several times, and each time that it worked (most) it continued the alarm noise cycle in progress, then finally deigned to say “Hush mode activated”.  A few seconds later it started alarming again.  Bummer.

Now pretty desperate, I recalled that the old one somehow reset after I opened the smoke sense chamber.  I opened that, inspected it (saw nothing), blew at it, and closed it up again.  (All the while pressing the button contacts frequently for a few seconds of quiet.)  No change.  Opened it again, blew it out again, held it more in the light, closed it up.  And hush mode stuck!  I waited a minute or two, put the main cover back on and pressed the button again.  “Hush mode cancelled”.  It’s been quiet ever since.  I ran a test cycle several minutes later, and that performed exactly as expected.

More confident than before that I’d actually somehow fixed it (reset is more like it) and that it was probably working fine again (and relieved of the darned noise), I turned my attention to the unexpected “only center on” switch position.  Fortunately, I happened to have another of the same model of detector which seemed to be working, and whose switch had never been touched. 🙂  I opened that old one back up, and found the switch right in the center of its travel!  That’s the picture above.  Wow.  I wonder if it’s a real 3 position switch, with left=battery disconnected; center=battery connected; and right=detector disconnected and a short/resistor across the battery to render it safe.  Hmm – in not obvious but vaguely appropriate places (for a crowded board) OFF, ON, and DISCHARGE appear in the silkscreen, in support of the 3 position switch theory.

I found a post here (about an i12060ACA) mentioning that Kidde support told her to “… hold the ‘Test’ button down for 2 sets of three beeps, then release. This resets the alarm. ”  I wonder if this is a common undocumented feature?

Terminally infected with the thoroughness bug, I did an actual smoke test on it.  (The matches from the mostly-full carton dated 10/10 that had been sealed in a ziplock bag lit much more reliably than the ones (probably from the same carton) that had been sitting in a parts drawer for some years.)  It took a couple of matches, but it went into alarm, and hush mode activated and shut it up.  I blew it out well with compressed air and hit the button again.  “Hush mode cancelled.”  I’m now confident enough that it works that after I put it back up on the hallway ceiling I’m going to forget about it.  And I suspect the first one is also quite functional.


The specs for CO detection mention times from 4 to 240 minutes, so maybe my expectation of triggering an alarm in a few tens of seconds was inappropriate.  It seems to me the previous successful testing might have been on a dedicated CO detector that had a concentration display.  Maybe I just noted that the display showed more CO.

In any event, I can get a can of spray CO (!?) designed for testing CO detectors for 12 bucks on Ebay.  I’ve read that each test desensitizes/ages the detector, so testing is a double edged sword.  And I don’t think I’ve ever read anybody saying the detectors last over 7 years (OK, except implicitly in the advertising for the 10 year units.)  But it would at least give some warm fuzzies that these detectors I’d opened up still functioned for CO.

I ordered a can.

Update ~10/25/17: I never received the can of CO, so contacted the seller thru eBay.  Though I indicated I still wanted the product, he promptly sent a full refund.  Yeah, I got my money back, but what I wanted was the CO tester!  Bummer.

Update 11/19/17: I woke up at 6AM this Sunday to “Beep beep beep”.  I followed the noise downstairs, walking directly under the (silent) new replacement Kidde P3010CU in the upstairs hallway, and then directly under the (also silent) P3010K-CO in the family room.  As I got closer to the noise, I could hear it speak “Fire” between triple beeps.  Following the noise led to the old, originally failed P3010CU sitting on a shelf in the basement.

Dumbly holding the annoying noisemaker in my hand, it soon occurred to me thru the morning fog that I could push the “hush” button.  Of course it didn’t shut up, but then recollections of past experiences came back, and I gave it one firm push at the end of a beep/speak alarm cycle.  I don’t know if it had occurred to me that maybe the button is only polled at the end of each alarm cycle.  Anyway, it said “Hush mode activated”.  Good.

And then it started alarming again.  I played the game with the button again, and eventually got it back to hush mode.  I turned it around ’til I found the black plastic smoke sense chamber and gently blew at it a few times.  I pressed the button again, and got “Hush mode cancelled”.  And silence.

After  it appeared to have come to its senses (and passed a basic match-smoke test) after the initial event, I couldn’t stand to just kill it (with the disable/discharge switch on the back), so it was just literally put on the shelf.  And once again, the device failed with a false positive to some non-olfactible stimulus.  But at least this time it had the decency to (at least appear to) recover with a simple ventilation.

It’s back on the shelf now, silent, future unknown, but trusted less.  Kidde did exactly the right thing by promptly replacing it.  I guess such false positive failures are pretty rare (which is a good thing!).  But at least this one is chronicled here.

Final fail

7/6/18:  The alarm went off with a false positive in the middle of the night – just enough cycles to get me out of bed, but not enough to verify what the heck was making that noise.  Then a couple of nights later, it did it again – but this time I caught it in the act.  Now what?

First, make it shut up!  Using what I’d learned, I pushed the button just at the end of an alarm cycle, and it said “Hush mode activated”.  Good.  Started alarming again.  Bad.  Same dance again – same result.  OK, put some tape over the dumb piezo.  That’s better.  I popped the clips and opened it up.  A little manipulation, and I got the switch back into the OFF position.  Noise stopped.  Good.  Checked cell voltage – 2.95V.  That cell’s blown some of its energy making noise all those time, so it’s probably not worth saving.  Now what?

Went back to bed.

When I got back to it (days later), the plan was clearer:  Scavenge what’s worth saving, toss the carcass.  But what about the cell?  Yeah, the responsible thing is to discharge it.  With sadness, I moved the switch to DISCHARGE, wasting whatever energy was left in the cell.

Here’s the mechanism that manages the switch, with the moving part highlighted.  The dogs that move the switch are marked in red; the ratchet that ensures you can’t ever turn it back on after moving to Discharge is in green.  Left is Off; right is Discharge.

The label with instructions on final discharge is still intact, as I moved the switch by hand with the case open.  The tab that moves the switch from Off (as shipped) to On is just visible under the tabs that hold it on the twist-n-lock mounting bracket.

I pulled the 3 wire piezo, as well as the speaker – with its fragile clear film cone.  It was marked as 8 Ω, but a test with a 1KHz signal showed more like 20-40 ohms.  Go figure.

Anyway, the multiple false alarms sealed its fate.  Since it wasn’t an ionization sensor, I didn’t expect disposal warnings, and found none.  Into the electronic recycle box.  RIP.

Another damn Kidde false alarm

8/12/20:  This time the P3010K-CO smoke/CO, no voice alarm went off in the middle of the night (why is it always in the middle of the night?).  Woke me up, took longer than it should to figure out where the damn noise was coming from.  Would have been easier to figure out if it had been one of the talking ones.  Put some duct tape over the piezo.

Failed to remember that the button would ‘hush’ the alarm (tho only if you pressed it at exactly the right time).  Remembered the latches would let you open it.  Forgot that going in outside the foam tape was easier/less mess.  This one had a label over the break line between the halves, so was harder to get apart.

When inside, found the familiar 3 position switch, turned it to ‘off, not installed yet’.  Blessed silence.  Blew at the smoke chamber, turned it back on and it alarmed immediately.  Turned it back off.  Remembered that you could pop open the smoke chamber.  Did so, blew it out (just by mouth), closed the chamber back up, turned it on, and it was OK.  Of course it went thru its boot-up tests.  I suspect it’s fine again.

The installation note said it was installed 12/14, so it had managed to stay quiet for almost 6 years.  There is a note on the back that says to vacuum or blow it out annually.  I suppose what I just did sort of qualified as that.

Did a smoke test with it reassembled.  Took 4 matches, but it went into alarm.  Never managed to make ‘hush’ work.  Blew at the smoke chamber to clear.  After 10 or 15 seconds of blowing, it shut up.  I think it works.  I’m not even very inclined to try to call Kidde.  I’ll talk with Laur about it.

There is a very useful new takeaway:  At least in this model, if you put a screwdriver thru the marked place on label on the back and turn it away from the marked ‘OFF’ place, it peacefully turns it back to pre-installation OFF – and of course doesn’t kill the battery.  There’s no apparent latch to prevent that.  I did try to move the white tab the mounting process uses to operate the switch, but failed at that.  Don’t hesitate to do this.  Nobody cares if that paper seal is broken, and it’s fast and easy!

The bad news is that I doubt I’ll remember that the next time one of them goes off in the middle of the night. 🙁

Update 11/2/20: The damn P3010K-CO (no voice) went off again, waking me up again.  And again, I didn’t remember that there was a ‘hush’ button.  (Though even if I had remembered, I don’t know whether, half asleep, I’d have remembered the timing of the narrow window during which it might actually work.)

When I looked at the back though, I did recognize the torn paper seal over the ‘switch of death’, and remembered enough to turn it the opposite way from OFF.  Ahhh, silence.

I blew it out with compressed air and turned it back on.  It took two tries before I figured out that the immediate alarms after turning back on were its boot up tests.  There were wimpy chirps before and after the test sequence of 2×3 beeps and 2×4 beeps.  Then it settled down.  I didn’t even do a smoke test this time.  I think it’s happily back to functioning as normal.

I was going to take a picture of the ‘switch of death’ seal and add instructions to turn it the other way – back to ‘not installed yet’ – but it seems I’ve already done that.  So it looks like we’re done until next time.

Update 8/1/21:  Another (smoke) false alarm from the P3010K-CO (no voice) in the middle of the night.  I remembered the hush button, but it didn’t seem to help for long.  Most thankfully, once again the torn paper showing the undocumented “OFF – not yet installed” position of the switch of death silenced it.  It sat for most of a day before I got around to opening it up and very aggressively vacuuming all around the outside of the black optical chamber.

When I turned it back “ON”, the boot alarm sequence documented above sounded, then it was silent again, flashing the LED normally.  Again, no smoke test performed.  I put it back up, mostly annoyed, but with moderate confidence that it probably still works.  Yeah, false positives are better than false negatives, but what a pain.

And yet another Kidde False Alarm

8/18/21: The stupid Kidde P3010K-CO detector gave a false alarm again.  Fortunately, this time, it occurred during the day instead of the middle of the night.  Unfortunately, we were out and found it wailing after we’d been out for much of the day.  It shut up as expected by turning the plastic screw slot away from the position marked “OFF”.

Don’t know how long it had been sounding – burning thru its little Lithium cell – but it was down to 3.08V when I opened it up to vacuum it out.  It was installed 12/2014, so it’s almost 7 years old.  Sounds like time to replace it.  It did chirp when reinstalled, but didn’t do an automatic 2×3 + 2×4 beep boot sequence.  It did give proper test results when triggered by holding button until it chirped, so I think it’s operational again.  It should run long enough for me to investigate what to replace it with.  It’s not likely to be a Kidde.

And another

8/27/21: Again, at least the P3010K-CO had the decency to sound its false alarm during the day, instead of the middle of the night.  I vacuumed it out – just from the outside, not taking it apart.  It was quiet for a few minutes before it sounded again.

I turned the switch to the ‘not yet in service’ position.  I’m angry, as I hoped it would at least grant me some more time before I had to make a replacement decision.  But No, Kidde failed me yet again.


9/4/21:  This is the end of the line for the P3010K-CO.  After the most recent false alarm, I bought and installed a new USI MIC3510SB.  It’s one of the few 3-way devices, with photo and ionization smoke detectors, as well as a CO detector.  I wasn’t very happy with a no-name (or at least unfamiliar name) device, but it was top rated by Consumer Reports.

I mostly wanted to replace the Kidde with something decent.  I had to face decisions about hard wired detectors, and smart ‘connected’ devices – presumably Z-wave, as I’m planning on going that way.  But I wasn’t willing to dig in very deep.  This will presumably work acceptably until I have time/energy to think thru a final system.

I clicked the device’s  ‘death switch’ to OFF.  The only thing I found worth scavenging was the piezo.  But now the decision is made and that one won’t blare any more false alarms.


Posted in Home Repair | Tagged , , , , , , , , , | 26 Comments

Hot melt glue gun timer

I use hot melt glue a lot, but the warmup time is a problem.  I turn the gun on, go away to do something else while it warms up, and may or may not remember the pending glue job.  I’ve found the gun on 2 days later.  Not good.

I solved the main safety problem a couple of years ago with a mechanical timer.  Now the switch on the gun is always on, but it turns off after 10 minutes or so whether I remember to come back and use it or not.  Of course when I run across the incomplete glue job an hour later, I have to start all over.  An “it’s hot” notification would be very helpful.

While there isn’t easy feedback from the gun when it’s hot (yeah, a current sensor would work), open loop timing is good enough for the task.  Sitting around and observing when the gun was up to temp gave the critical info: a little under 4.5 minutes.

Fifteen lines of Arduino code (plus a couple of #defines) on one of my general purpose ATtiny85s and a little piezo buzzer gave me a timer that beeped once when the gun was hot, twice one minute later, 3 times another minute later, etc.  The dollar 5V wall wart from Goodwill that powers it is plugged into the same outlet as the gun, so the mechanical timer turns them both on at the same time.  OK, wrapping it all in blue painter’s tape is pretty crude packaging, but it works.

Putting the buzzer near the basement door increases the chances I’ll hear it even if I’ve left the basement.  It was put in place 11/14, and works absolutely great.

When I upgraded recently from my drooling old Dremel 1200 glue gun to a Tec 805-12, warmup time dropped to just about 2 minutes.  The old Arduino code was still safely in my sketchbook, so changing one #define and adding a couple of comments, and it was good to go again.  I discovered with pleasure that power to the Tiny was plugged into the unmodified ICSP header, so reprogramming it was trivial.  It works great again, and the reduced time ’til that first beep is icing on the cake.

Posted in Tiny 85 stuff | Tagged , , , | 2 Comments

Repair attempt of Grohe Quick Coupling

While in the middle of repairing the kitchen sink drain plumbing, I noticed a fairly significant leak under the sink.  OK, I’d failed to tighten one of the new plastic drain couplings in between repair sessions.  Fine.

But that didn’t fix most of it.  More observation found that it was coming from the source end of the flexible hose going to the faucet’s pull-out spray head.  Our Grohe LadyLux Plus faucet features a quick-connect (“Quick Coupling”) between the valve assembly and the hose to the spray.  This is a standard Grohe part, and for $30-40 I can get a replacement of the plastic end of the connection.  We have the yellow one (46 318000).  Installation is trivial.  And the leak is still small enough for a tray under the sink to catch it all.

I’m cheap, but not that cheap.  Send in a little money, get the part on the doorstep, 5 minutes work and Done.  I don’t have much problem with that.  Of course as several reviewers have commented, it’s pretty expensive for a plastic part.  And the part’s not damaged, and might be fixable.  It’s worth a try.  (So to be clear:  The motivation is maybe 20% cheap, and 80% “I can probably fix this.”)

The actual seal is an O-ring inside the plastic part.  It’s barely visible in the picture; feeling it with a probe was what convinced me of its existence.  (Just a guess, but that 25 cent part is probably all that’s needed in 90% of the repairs.)  It fits against the smooth outer surface of the male end coming from the valve.  A leak in a seal like that is often due to the crud and lime of the ages.  I’m a little surprised that no one mentions crud on the surface of the male part in discussions of repair by replacing the plastic part.

The repair plan

So the plan is to swab out the inside of the plastic part with Lime Away to get rid of the calcium deposits on the O-ring, clean the outside of the male part, and put ’em all back together with waterproof silicone grease.  Here we go.

Looking inside the plastic part, there was clearly some sort of device, but several commenters said the yellow (and green) versions don’t have a flow restrictor (though other colors do).  I vaguely recall that I might have removed a flow restrictor from the spray head end when it was all new, but I’m not sure.  And I could blow thru the plastic part both ways, so it obviously wasn’t a check valve.  But as I poked around with a Lime Away soaked Q-tip, that inside part seemed to move – and be spring loaded.  After some cleaning, it went from brown and crud-encrusted to pretty blue and white plastic parts.  And once cleaned out, it turned out to actually be a check valve!  A sensible (high end) feature – so the water in the hose doesn’t drain out when you disconnect the hose.  I rinsed it all out well, and called that done.

I scrubbed down the metal male part with a very well worn green scrubbie (couldn’t find a white one) soaked with Lime Away.  I tried to twist around the pipe rather than rubbing along its length, in case I introduced any scratches.  Unlikely, but…  It certainly looks cleaner, but the green ring of crud seems to remain.  I wonder where that hits with respect to the O-ring.

A significant part of the hope of helping it seal is a nice slathering of silicone grease.  Another Q-tip with that (on both surfaces), and it was ready to reassemble.  Done.

Fingers crossed – let’s see how it fares!  A couple of hours and a round of dish washing, and it’s still dry.  An update will follow.

Update 9/13/17: It’s been over a month, and no leaks.  I’m going to call this one a success and Done!

Update 12/13/17:  Well, not done.  It leaked some more. 🙁   I ordered the Grohe part ($34/free on eBay) and installed it 11/28/17.  I did do one more round of cleaning of the male fitting, put silicone grease on again, and the whole replacement was the 5 minute job I expected.

I put a shiny black plastic tray under it with grains of table salt in the low places.  It’s been in place for a couple of weeks now, and the salt says there have been no leaks.  I think it’s really Done this time.  (Of course I thought that before…)

About the only explanation I can come up with for why the new part worked is that the rubber in the new O-ring is newer/more live.  If that’s the case, replacing just that ring should have worked.  I probably could have gotten the old one out, if destructively.  And I could probably have managed to force a new one into place.  But I didn’t want to have to try to spec and source the part.  And with mud on my face from the first failed attempt, the 5 minutes and $34 was an acceptable cost for being Done.

Posted in Home Repair | Tagged , , , , , , , | 9 Comments

Resurrecting Pogo HA server (and replacing a BGA chip!)

I got a watchdog email shortly before we left for the April Adventure weekend (email: 4/20 6:45P) about datafile and camera pic being older than the 1260 sec threshold.  I couldn’t get it running the morning before we left, so didn’t start real recovery efforts until 4/24.


I couldn’t ping or ssh to the box, so I power cycled it.  (Yeah, that’s a little harsh for a Linux system – but I didn’t have many choices.)  Nothing.  I looked around for backups, and found one – from 6 years ago!

I uncabled the box (power, 485 net, ethernet) and brought it out so I could plug into the 3.3V serial console pigtail I’d installed early on.  It didn’t boot as expected, so I tried to look at the system thumb drive.  The main Win10 PC, jimsdellmini (Ubuntu) and Gparted on the red kitchen laptop all did not detect that there was a thumb drive plugged in.  They did see the USB device (like with lsusb), but no storage drive.

I found a very similar 4GB Microcenter drive (with silver laptop Clonezilla on it) and in desperation decided to try to swap the flash chips to try to recover the files, hoping it was the board or controller chip rather than the flash chip that was bad.

Here are the boards, and the back sides with the flash chips.  Oh no – they’re BGA!  Looks like the boards were set up both to take a second flash chip and to take either BGA or leaded (TSSOP?) chips.  Thanks for these using BGAs, Murphy.  Not.


All work below was with air:3 and heater:8 and a smallish (0.198″OD) tip on the AUYOE Int 906.  I worked with the chips and boards on a firebrick.

First I unsoldered the good chip from its card with hot air.  Took a couple of minutes, but seemed successful, and gave me a little hands on practice with the hot air.

Then with vague hopes that the bad drive might just have a bad solder joint, I reheated that board, hoping to reflow the bad chip in place on its original card.  When I tried that in jimsdellmini, it still did not show up as a memory device (though it did show up in lsusb).  Nice try.

Then I unsoldered the bad chip from its card.  I put the good chip on the bad card – no prep, no reballing, no cleanup.  I reheated it, purely guessing at the time.  I watched closely, but never saw it move or recenter.

When I plugged the bad card with the good flash into jimsdellmini, the OS found the device and I could see the files from the flash (old clonezilla files).  Plugging it into the Win10 PC, that could see it and its files as well.  Wow – I just successfully resoldered a BGA chip!

Encouraged, I cleaned off the bad chip with flux and solder wick, and ran a ball of (leaded) solder across it, providing what looked (to eyes that had never seen one) like an appropriate reballing.  I cleaned the previously good card with flux/wick, put the reballed bad chip on it, then heated it to reflow.  Watched, but never saw it move.  Did wiggle the board a little a couple of times to try to help it find home.  After I let it cool, the chip seemed well adhered, so presumably at least some solder melted, though I can’t be at all certain all the balls did.  But I’m hoping the extra prep increased the chances of good soldering compared to the first (good chip, bad board) try – which worked with no extra prep.

When I put the good board/bad flash in jimsdellmini, lsusb could see it, but it didn’t appear as a file system.  The Win10 PC could see the device, but no file system as well.  Nice try.  🙁

Despite efforts to take good notes, either I screwed up multiple times or the USB ID moved with the flash chip (which is very unlikely).  Boo on me.  But I eventually did enough retries comparing lsusb output to convince myself I had done what I intended (like not putting the bad chip back on the bad board), and that it really didn’t work.

In any event, I’ve done all the due diligence I know how to do, and so can completely give up on trying to resurrect the files from the old working drive.  Bummer, but with closure.


OK – I’m now confident I’ll never get the files back from the original thumb drive.  Time to move on.  I had a backup tar from 10/6/11 (!), and with the notes here untarred it to a random 8GB drive from the thumb drive box.  It booted, and thanks to the serial console, I got it sort of running.  I think the ftp password to the Godaddy host had changed, and the IP of the AT&T first router had changed, and probably some other stuff.

But its (6 year!) old 485pollB.pl talked to the existing HA nodes, got data from them, and pushed it to the Godaddy host.  We’re back on the air!

Well, sort of.  All the camera stuff was implemented after that backup, so had no hope of working.  And the graphs didn’t update like they used to.  I feared the data format had been updated somehow, and the parser on the web host was looking for something that wasn’t there any more/yet (and that I had zero recollection of).

Several weeks later (6/20/17), I dug around trying to figure out why the graphs didn’t update.  Between looking at the code and finding and reading the note on “Home Page Speedup”  I slowly realized the poll perl script on the Pogo not only ftp’d update data, but invoked (with wget) the graphs.php script on the host that actually updates the graphs.  After a few stumbles I put that into a new 485pollC.pl and got it working.  Now the graphs update automatically again – yay!


First on the agenda is a workable backup method.  I don’t remember whether I had a backup script on the old drive, but at least there’s a good start in the project notes from the last painful rebuild.

I copied and touched up that script so just running “gobackup” in perl/backup will (presumably) make a backup tar file and put it on the main PC as F:\pogobackup.MMDDYYYY.tar.  If I can just remember to run that when I make a change (or maybe put it in a cron job)!  To that end, I put a banner in the motd saying “IF YOU TOUCH ANYTHING HERE, UPDATE THE BACKUP!”  And after 485pollC.pl was actually running graphs.php, I kicked off a backup. 🙂  A backup file appeared on the main PC, but I haven’t tried to put it on a new thumb drive.

Maybe make a watchdog that checks sums on some main files and sends an email backup reminder if they’ve changed?  What files?  Main perl files, hosts, rc stuff?  Should all data like credentials be hosted in a single file and read by the scripts?  Here’s a first crack at a list:

in /perl:
in /etc:

Update 7/15/17:  Woo hoo!  I think I got a first hack of the camera working again!  A first problem was that the main disk on jimsdellmini – which hosts reading from the camera – was completely full (and I couldn’t figure out what it was full of).  I dug some more and removed several old kernels and the associated stuff in /lib/modules.  Now I can at least work on the machine.  Hmm – that machine’s not backed up at all.  But it’s still running, and the old scripts are still there.  I plugged in an external hard disk, but it didn’t seem to see it.  I plugged in an old 1GB thumb drive and got it mounting to /media/CameraDrive.  Steps 0,1.

Looks like ~/perl/gosnaps reads from the camera, gets snapshots and puts them in /media/CameraDrive, then calls putpic to send latest to the Pogo.  Putpic ftps the latest to <ftproot>/pics with its timestamped file name, removes old latest.jpg, and copies the latest also to that filename.  Of course it needs an ftpd running on the rebuilt Pogo – which it wasn’t.  Got that running, but putpic doesn’t supply any credentials.  Added user jim to the Pogo, and some flag somewhere allowed auto logging-in of ftp.  I made a symbolic link in /srv/http to /srv/ftp/pics/latest.jpg, and I could see it in a browser looking at the Pogo.  It works!  Steps 2,3 done.

The main 485pollC.pl script already has stuff to implement regular (5 min) ftps to the GoDaddy host, so I copied one of those blocks of code, and after way more playing with the autoftp.pl it uses than I cared to do, got that set up to push the latest pic to the real host.  And that seems to work, too!  Of course, the nice go485 script that used to pkill the old 485poll and restart it somehow stopped working, presumably with one of those kernel updates.  I can’t yet see how to pkill it, so must manually kill 2 processes and then manually restart it.  But at least go485 now prints out instructions on what to do.  And I even kicked off a backup with the new 485pollD.pl in it!  Oh, but /etc/rc.local still started 485pollC.pl.  Rats.  But at least now doing the additional backup to capture that was easy.  I suppose I should untar it to a new flash drive and test it.  One more thing on the list.  But now I get pictures!  Steps 4,5,6A,6B done.

And the terrible displays recently on the home page turned out to be 2 instances of 485pollC.pl running.  (The old go485 script hadn’t killed the old one.)  Fixed that.  Wanted to clean out the data in datafile.csv, but decided to just let good data accumulate and fix itself in 5 days.  Cleaning the intermixed data was harder than I hoped. 🙁

But I did hack in an init in the power outage section of graphs.php that should stop the long-standing problem of displaying one phantom outage every time I’d trim datafile.csv.  Seems to work now.

Update 7/19/17:  Looks like the woo hoo on getting the camera stuff working was premature.  Yeah, it worked, but several hours later it stopped, with error messages on jimsdellmini about no space on device.  Yeah, the thumb drive is only 1 Gig – but c’mon, it it can’t be full yet!  And df showed only 4% used!  Tried touch abc – no space on device.  Same, as root – no space on device.  Deleted the 171 pics, and it all started working again.

Turns out there’s a limitation on FAT 16 (with which the 1GB thumb drive was formatted) on number of files in the root directory, and if the file names are long the limit is hit much more quickly.  I guess “snap07-19-23-59.jpg” qualifies as a long name.

I suppose I could have tweaked a couple of scripts and stashed the image files in a subdirectory, but I just reformatted the thumb drive ext2 with fdisk.  Works fine days later.  There’s also a daily cron job that clears out files older than 24 hours, so it should work for plenty long enough.  (Turned out to be older than 30 days.)

Update 8/18/17: The random 8GB thumb drive I rebuilt as a Pogo system disk failed.  This time I schlepped the new HP laptop over with a 3.3V USB-serial cable and plugged it in before I did anything else.  Nothing.  I power cycled it and got a shell from flash – no USB boot.

Put the thumb drive in the main Win10 PC, and with ext2explore.exe copied the very latest 485pollD.pl, which hadn’t been saved to a backup tar yet.  Yay!  Everything else should be OK in the latest tar file.  I hope it works – I’ve still never actually tested it.

Tried fsck on the thumb drive in jimsdellmini, and it gave a zillion errors.  Let it run – twice – but couldn’t read the drive when remounted.  Took 2 tries, but deleted partition table and recreated with fdisk, then put new ext2 fs on with mkfs.  Copied latest tar over, but oopsed and untarred the 2011 tar instead.  Took a LONG time.  Discovered what happened when I tried to replace 485pollD.pl – and it wasn’t there.  Carefully did rm -rf on the thumb drive (another LONG time), then started to untar the right file.  SLOW.  Gave up with ctrl-C.  Jimsdellmini wasn’t happy with that, and never really unmounted the drive.

Put in a brand new 16GB red Microcenter USB3 drive, fdisk‘d a new partition table, new mkfs, and untarred the right file.  Much faster, as expected.  Plugged it into the Pogo, and with laptop still connected, watched it boot.  Success!

No house pic, tho.  Finally killed a days old ftp process on jimsdellmini.  A few minutes later, a good pic had propagated all the way to the Godaddy host.  Yay!  Looks like all the scripts on the Pogo do in fact start on boot – and the backup tar works!

I hope the brand new thumb drive lasts longer than the 8GB fold-flat credit-card drive from some patent law freebie I used last time.  And why do these things always happen the night before I have a long drive to a weekend?

Update 8/30/17:  I’ve been fighting on and off with being out of storage on the “camera drive” on jimsdell mini.  It’s been running that 1GB thumb drive for a while, and just failed again.  Thankfully the “house picture old” watchdog fired and sent email.  Turns out once again the drive was full (but really, this time).  There’s a cron job purging files matching a find -mtime +30 (days), but that wasn’t aggressive enough for this tiny drive.  After I manually deleted several days’ worth of pics, it started working again.  How many days’ worth will the drive hold?  It looks like nite pics (B/W) are ~26KB, while day pics are more like 110KB.  Doing an ls |wc  on /media/CameraDrive gave 10586 files, while df showed 658048K used.  So that averages about 62KB/pic.  At 24*30 pics/day, we burn about 45MB/day, so the 1GB drive should hold around 22 days of pics.  I changed the cron job to -mtime +15, so it should take care of itself now, and run around 30% free.  We’ll see.

Update 1/5/18: Checked /media/CameraDrive and it was at 68% used, just as predicted. 🙂


  • I’d really like to move the camera stuff to the Pogo, if I can.  The old (and newly current)  system uses jimsdellmini to get images from the camera and push them to the Pogo, which eventually pushes them to the host.  I think the two reasons I originally used another machine instead of hosting all that on the Pogo were a) a concern that the somewhat compute-intensive image processing burst might interfere with the serial polling of the HA nodes, and b) not wanting to have the HA system bouncing while I tried to get it all working.  But if I integrated the camera stuff into the main poll script rather than as a separate process, I could avoid interfering with the serial polls.  And I’d get jimsdellmini out of the critical path and more usable for other stuff.
  • And of course implementing a more rational database – like RRD? – has been on the list for a long time, but that’s a pretty big deal.
  • It would often be helpful to have an easy way to add annotations to any of the graphs/data sets to comment on special things that happened.  That will probably wait until a more final database is implemented, but who knows?   Update:  I could make each power outage line a link to a (password protected) page that would prompt for a comment.  Prepending exactly the posted outage line (timestamp and duration) to the comment, maybe with ‘;’ delimiter, the comment line would be appended to a comments file.  When printing the outage lines, I could grep out any matching lines from the comments file.  Maybe.
  • And I’d really like the water meter reader to work again.  I even looked at it a few weeks ago and could see that the optics could still be aligned on the red spinning arrow, providing enough brightness variation that I’m surprised the phototran couldn’t see it.  Maybe it’s just a drift/reset the bias thing.  Update: Looks like the city’s going to replace all the water meters, so the clever-but-not-clever-enough-to-keep-working optical telescope will soon be completely obsolete.  More here.
Posted in Home Automation | Tagged , , , , | Leave a comment