Water softener leak

Wet socks told me about the water on the floor around the drain pipe from the kitchen and the laundry tubs, near the water softener.  It took moving a kitty litter bucket full of long scrap, mopping up the water, and toweling the floor dry before I found the leak.  It was coming from a brine tank overflow hose fitting I didn’t know about (or more likely, had long since forgotten about) on our Kenmore Micro Max 625.348460 softener.  Shouldn’t ever be needed, so was never connected.

It produced a juicy drop maybe every 5 seconds.  I put a container under it, and the wet floor symptom was fixed in the short term.

In the only slightly longer term, I plugged the softener transformer back in and ran a recharge cycle.  The water level was noticeably lower after that, as expected.  Interestingly, there were two definite scum rings inside the tank.  After the recharge cycle, water was at the lower one.  The upper one – 10 cm higher – was at the overflow fitting level, and clearly water had been at that level for some time (over the years).

But while I had the tank open to check the water level, I heard a regular drip.  Checked the overflow fitting, and it was dry (and the water level was way below it anyway).  When I put my head back into the tank, I could see ripples in the water with each drop.  Craning my neck a little, I found the source: the upper part of the softener (valves, timer, etc).  OK – maybe it’s slow enough to not overflow before the next recharge.

But now what?

I discussed the drivers and options with Lauren.  The main driver was reducing soap scum in the tub and lime deposits various places (including the humidifier pads).  Less dry skin and maybe nicer hair are additional plusses.  We get lake Michigan water, and while even softer (than lake) water does give the desired results, most people around here don’t bother with softeners.

a) We could join them.  The softener has been out of salt a lot of the time, (or unplugged) so if we just dumped and bypassed it, we’d see little change.  Free is a plus, but not a big concern here.

b) We could get a new softener (and be more faithful keeping it full of salt).  I couldn’t find a drop in replacement, so some copper piping would need to be done to match the new inlet/outlet configuration.  Not a complete show stopper, but I’d much rather have a drop in.  Yeah, I could contribute to the economy and hire a plumber to do it, but that’s a little embarrassing.

c) I could fix up the existing one.  Whatever the leaky part is should be fixable.  I’m sure its 15 year old resin tank is shot, but Sears Parts Direct doesn’t have the part.  I couldn’t find it in a quick search, either.  So a proper rebuild is probably out.

d) We could pass on a softener and get an electromagnetic descaler.  Those seem to have gone from “Snake oil!” to “Well yeah, they do reduce scale buildup, as they claim (except the ones that incorrectly claim to be a softener), but they don’t soften the water or get rid of the calcium and magnesium.”  So that might help a little, but probably won’t stop the soap scum.

e) We could switch from bar soap to “shower gel” or liquid “body wash”.  Those seem to be detergent based rather than fatty soap based, and so apparently greatly reduce soap scum.  Of course the detergent is said to be less friendly to your skin.

f) Oh yeah – we could squeegee the walls and tub and dry them off with a towel after each shower like some people somehow manage to recommend with a straight face.  Does anybody actually do that?  C’mon – I’m not a slob, but that’s just crazy talk.

Too many choices.  No decision was made. (Surprise!)

The leak

Checking a few hours later, I found the water level a couple of inches higher.  Rats.  I pulled the top off the unit (a couple of plastic spring clips) and could hear drips there, too.  There was a steady drip from the outlet connector.  That connection is a push-in plastic tube with an O-ring, held in with a big nominally finger-friendly black plastic circlip (red arrow).

Water was dripping from the bottom where the black clip went thru the outside housing to engage a slot in the push-in tube.  I used the shutoff and bypass valves conveniently provided, and tried to get the connection apart.  Unfortunately, the black clip broke when I tried to remove it.  The silver/gray part (green) threads onto the plastic push-in pipe, pulling a raised collar on a special copper stub up against an O-ring.  I took that apart first, but was dismayed at how much water was coming out of the “turned off” copper pipe.  I put my thumb over the end, and water very promptly sprayed out.  The valve on that outlet pipe (arrow) doesn’t seal well, even after being tightened with a pliers on the hand wheel.  Boo.  Fortunately, I’d put a big bucket under there.

The obvious thing to do was replace the O-ring on the push-in tube.  Sears didn’t have the 0900535 part, but did have a sub STD302213 pack of 5 for 5 bucks.  Fine – but nobody within 50 miles has it.  I found them (pack of 50?) at McMaster Carr, and I was just about to put an order in there anyway, so that would work.  But before I pulled the trigger on that, I thought I should at least look at the old one.

With the copper pipe disconnected, the rest of the black clip came out easily, and the push-in pipe also pulled out easily.  Its O-ring looked fine (though that doesn’t mean much) so I decided to give it a chance.  I wiped down that pipe and the housing it fit into, smeared them all generously with waterproof silicone grease and put it all back together.  If anything, the original leak was worse.

The fix

I manhandled the softener unit to alter the alignment of that push-in tube, and with the whole thing leaning back, the drip stopped!  I leaned it back and forced a piece of 1×2 under the front edge.  No drip!  I cleaned and dried out under where the drip was, and a couple of hours later it was still dry.  Success!  Well, OK – kind of half-assed, redneck success, but it will buy us some time to decide what we want to do long term.  During which time I can walk in that part of the basement without any wet sock surprises.

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

Adding audible alert to Panasonic answering machine

We’re pretty pleased with the new Panasonic KX-TGD530 answering machine/wireless phone system.  The 3 handsets (expandable, unlike the AT&T EL52209 it replaced) gives us matching phones for kitchen, bedroom, and computer room.  Matching means only one user interface to learn.

Unfortunately and much to our surprise, unlike the blaring AT&T machine, this one does not provide an audible indication when there’s a new message.  If we get home and don’t happen to notice the small blinking LED, we can go for days (forever) without knowing someone left a message.  I should fix that.  If I can get my hands on the LED leads, I’ll know when there’s a new message, and I can beep or whatever.

I’d already opened the unit up once – to solder in wires for a probably external battery (like I did for the old machine) so it can survive short/medium power outages.  (No battery yet – but the wires are right there.)

Inside is a main PCB connected by 2 heavy ribbon cables to another, single sided PCB that very obviously handles the display and buttons – including the LED that flashes to indicate new message.  Surely those LED leads are brought out on those ribbons, so I should be able to tack my new wires to the exposed ribbon ends, bring that pair outside, and play with them at my leisure.

I couldn’t see the trace side of the display board, but I should be able to light the LED with wires from my edge-of-the-bench LED tester (old dead 9V battery – maybe 6V? – and maybe a 470 ohm resistor) without hurting anything.

Finding the LED leads

Using a continuity tester and then an ohmmeter, I found one ribbon pin connected to power supply minus.  With the negative side of the LED tester on that, I watched the LED and brushed the + end of the tester lead against each other ribbon pin in turn.  Nothing!

Very surprised, I moved to plan B.  Maybe there’s an open collector driver and the LED is connected to +.  I found a pin connected to V+ and tried that way.  More nothing.  Plan C: I’ll take the dumb thing apart and look at the traces.

Murphy arranged for one of the screws securing the display board to be obscured by the main board, so that had to come off first.  Two screws – not bad.  Two more screws for the display board and I could look at what I had.  I tried the LED tester leads directly on the pads of the tiny (0605?) LED – no light.  Very surprising, but consistent with earlier observations.  Using a loupe, continuity tester and ohmmeter, I finally chased the plus and minus leads of the LED (polarity marked on the board – thanks!) to two ribbon pins.  Confident of that wiring, I soldered a pair to those pins, closed it all back up, reconnected the base to power and line, and called and left a message.  The LED blinked, just like always.  So far, so good.

First test:  I hooked my dear old logic tester to the newly brought out LED leads.  There was a faint flash of the Pulse LED, but the logic level showed always Low.  Yeah, I suppose that’s OK – the forward voltage across the LED isn’t really a valid logic High.  But still.

Brief aside on logic testers

I can’t believe they don’t make something like this go-to device – battery powered, no power switch – any more.  There are lots with 2 clip leads – presumably so power and threshold levels match the circuit under test – but for normal TTL or 3V or CMOS signals it’s so nice to just clip to ground and go!  In searching over the years, I’ve found used ones on Ebay branded Sanwa and Soltec – clearly the same device – as well as Vaco.  I don’t think I’ve even been able to find a schematic for making one.  Seems like such a sensible device.  But I guess I’m the only one who thinks that any more. 🙁  Yeah, yeah, I could design one.  But I do still have this last working unit…

First noise

So I made up a simplest-possible proto that should beep on an LED forward voltage and hooked it up to the new LED leads.  It beeped in time with the LED flashes.  When I disconnected it, the LED got a little brighter, but only a little.  Success!

Proof of concept DONE.  Strangely, I feel a little less pressure now to actually do the implementation.  Might just replicate what I did on a bit of perf board (using phone’s power) and stuff it inside.  Downsides are more beeps than necessary, and no way to silence it.  (Except, of course, listening to the messages.)  Or I could put a Tiny85 on the board, listen for flashes, and do whatever more genteel beeps I chose.  One could argue I should at least reconnect the little proto board and battery so if someone leaves a message before I get around to the final implementation, we’ll at least know about it.  Fine.

Can’t stop myself.  Clip leads were too ugly, so soldered 0.025″ pins to the LED leads, and to a 9V clip with an old “dead” 9V for power and wired it up.  And the darn thing started to beep.  WTH?  Then I realized:  There was an actual message on the machine from somebody – and we’d missed it because of the dumb LED-only alert!  Pretty good for its first day/second on the job.

OK – let me listen to the message.  Then I stumbled across a semi-fatal flaw:  The Alert/Play LED remains on as you’re listening to the message.  And so does the new beeper.  In addition to my thinking it was annoying and made it hard to listen to the message, I could project with very high confidence that Lauren would think the same, only much louder.  The attractiveness of putting a processor in the final version just went way up.

But what am I gonna do until then?  I soldered a microswitch to a 7 position 0.1″ header for mechanical support and put its NC contacts in series with the battery.  And I put a label on to remind Laur (and me) to hold it to silence the beeper.  But the layout was awkward with wires on top of the switch, etc.  I ended up with the switch in series with the new LED leads, so at least it was near the front of the breadboard.  Not a great solution, but it should work until I get around to a more proper software-based solution.  Here’s the proto I hope will fly.  Fortunately, we don’t get a lot of messages. 🙂

Update 7/10/18:  The breadboard and microswitch got a fair amount of (mostly but not completely good-natured) flak about being ugly, but by promising that it was only temporary, it was allowed to stay.

We’ve come home to messages/beeping a couple of times since it was installed.  Main goal accomplished!  But the bit about continuous beeping as the message played hit home again.  And its end-of-all-messages cycle takes an annoyingly long time until it finally shuts the LED (and noise) off.  I guess the Tiny85 needs to only beep on flashing input signals.  OK – it’s just code.

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

Hacking reading glasses

This is part of the post-cataract adaptation saga.  I had a Technis Symfony toric IOL put in my left eye 4 days ago as the first of 2 cataract surgeries.  While I have concerns, I can certainly see better than without the lens.  This hack is part of exploring my new vision.  (Update:  more hacks at the end of this.)

The first thing I did was to remove the left lens from my “good” $$$ glasses – 8 month old progressives I wear when I’m out of the house, and always when driving.  That gave me something I could drive with and a sort of monovision so I could read labels etc at the store.  Worked pretty well – certainly much better than with the left lens in (or with nothing).  Yeah, looked kinda funny. Oh well.

Then I took a pair of single vision “reading” glasses – maybe +2 or 2.5D from my normal distance prescription – that I use for reading/bench/computer work at maybe 13″ and removed the left lens from those.  That provided a more extreme monovision for around the house that let me read (right eye) and still have some moderate distance vision – with the less-perfect-than-I’d-hoped-for left eye.  I used those at the computer, but got a headache after the first extended session.  I put a loose cardstock patch over the left side of the frame, and that pretty much fixed the headache.  Later, and in shorter sessions, I got away without the patch.  Brain may be getting over saying “WTF!?” and just ignoring the fuzzy eye.

I was a little concerned that I was teaching my brain to ignore the left eye when I used those glasses – which I did a lot.  And since the left eye wasn’t great anyway, that extra training didn’t seem like a good thing.  But in order for the left eye do any work at that distance, it would need a normal reader/magnifier lens.  Off to Walmart.

The donor glasses and measurements

I tried a few readers, and decided +2.0D let the new left eye see about right at 13″.  I chose a $6 pair with largish lenses to give me something to work with.  I popped one lens out (the wrong one, as it turns out) and when I held it over the missing lens of the good old readers, it seemed to do about what I expected.

Of course I’d need to set the PD correctly.  The glasses I’ve gotten from Zenni were ordered with 65mm PD, but since these were for closer work, I expected my eyes to be more converged.  Holding a ruler up to the centers of my eyes and looking into a camera about 13″ away, I took pictures that showed a PD of ~62mm.  Now I have a target.

To find the optical centers of the old and new lenses, I set up a laser diode pointing down at the bench, and marked where the beam hit.  Holding the lens near the laser, I moved it around so the beam hit the same spot on the bench as without the lens, and marked the spot the laser was going thru the lens with a black Sharpie.  As a double check, I moved the lens around and verified that I saw the shadow of the Sharpie mark when the spot was in the undeflected place.  With marks on the right lens of the glasses and the loose +2 lens, I was set for the next step.

Putting the new lens in

In an awkward maneuver requiring more hands than I had, I held the loose lens up to the frame and slid it back and forth so the 2 marked spots were 62mm apart according to the ruler I was holding with my left foot.  With a combination of trying not to let the lens move and a mental snapshot of about where it had been when the PD was set right, I marked the outline of the frame on the lens with a Sharpie in my third hand.  A double check showed the spots still about 62mm apart.  Good.

The lens didn’t completely fill the frame, but looked workable.  So how do I cut the lens down?  One corner just needed to be relieved a mm or so, so I put on safety glasses and took it tentatively to the belt sander.  The acrylic lens sanded away perfectly, and it didn’t feel at all like the lens was about to shatter.  I have no idea why I thought I’d know what that felt like, but I seemed to.  Removing the rest of the lens down to the Sharpie outline (maybe 1/4″ in places) was quick and uneventful.  I started shaping the edges so the front surface of the lens would fit into the concave inside of the frame.  A few cut and try iterations, and it was ready for final fitting with a file.

I rotated the lens a little to let it sit where it wanted in the places not designated for the final fitting.  I think that was a good idea, and probably avoided unpleasant surprises about having removed too much.  Of course since there was no astigmatism to worry about, the exact orientation of the lens didn’t matter.  A couple more iterations with a file, and the lens snapped in, and has been there ever since!

Do they work?

When I put them on, things seemed about in focus for both eyes, but the difference in magnification between the eyes was very evident in “swimming” movement when I’d turn my head.  No surprise, but duly noted.

I could vaguely see the center spots on the lenses, but had trouble matching them up.  Turns out when I was looking straight thru the centers of the lenses, the spots were so closely superimposed that I missed them.  That test passed with surprisingly flying colors.  I cleaned the heavily handled lenses and took a pic showing how the new lens doesn’t fill the frame.  Pretty close, though.

I sat down at the computer to write up these notes (while wearing the new glasses) and the big limitation leaped out:  The only way these are practically useful is when I’m looking right thru the lens centers.  Image fusion suffers a LOT anywhere else.  Interesting.

On the comment about having removed the wrong lens from the OTC readers:  I arbitrarily took the left lens out to fit into the other glasses.  If I’d taken the right lens out, it would have left the option of trying those readers as near-vision monovision, with 13″ for the left eye (new IOL plus the +2 reader lens) and my naked old right eye with its 7″ working distance.  Not a big deal, and fixable for another $6.

Hmmm – just tried it with the new readers upside down.  That worked well enough to let me see how it worked/felt – about as I expected.  Interesting, though not terribly practical.  Done.

It’s not clear whether these will be useful or whether I’ll pop the new lens out and use them one-lensed as they started.  I’ll post an update some time.  But it was an interesting experiment in any event.

Update a few days later:  Yes, they’re useful.  They served well for the week or two until the second lens replacement surgery.  Success.

Astigmatism

Update 7/10/18: (This is written after the fact, and the timings of various bits were intertwined.)  A refraction after the first replacement had shown (to the doctor’s disappointed surprise) that there was about 1.25D of astigmatism in the left eye.  I couldn’t see very well (20/60?) with that eye, and assumed (incorrectly) that it was mostly due to the astigmatism, and so was anxious to correct for it.  I was also in the early stages of struggles with readers.  I ordered a pair of cheap glasses from Zenni  ($15 including priority shipping!) with the needed cylinder in the left eye, and +2.0 sphere in both eyes, assuming correct vision in the right after it got its new lens.  I figured that would give me a good pair of readers, at least for starters.  They were in daily use as soon as they arrived, and have been a big win.

Hack 2: driving glasses

But what about driving?  I ordered a single lens blank – plano, but with 1.25 cylinder to fix the astigmatism.  An error at the vendor (eyeglasslens.com) delayed the order, but when it finally arrived,  I had 2 things: first, the lens to make some driving glasses; and second, a good way to see how much the astigmatism correction helped (including the angle).

It was a rush job, as we were about to drive to an out of town weekend, so no pics 🙁   I found an old pair of glasses (I have lots!) for a frame donor, and took both lenses out.  Holding the new lens up, I turned it until left-eye vision was clearest (+/- 10° ?) and marked the orientation.  (And of course with the lens rotated  90°, it’s noticeably worse with lens.)

I sketched the outline of the frame on the lens much as above, and again cut the lens down on the belt sander.  It’s acrylic, and that went pretty fast (leaving a LOT of white swarf on the sander).  A couple of iterations, plus grinding/filing the edges to a pointed cross section to fit in the groove in the frame, and I could put it in.  Not perfect, but fully good enough, and hasn’t fallen out in many wearings.

As a plus, those frames fit some old spring clip-on polarized sunglasses quite well.  I use the glasses every time I drive, and the sunglasses work very well when it’s sunny.

As for observing how much the astigmatism correction helps, the lens was a good tool.  While I played with it in my hand as soon as I got it (duh!), the best test was after it was mounted in the frame.  In the car, I could look at distant lettering with/without the glasses for an excellent comparison.  The bottom line for this one data point is that the 1.25D of correction makes not a huge improvement, but a clearly visible one.

(The astigmatism was only a modest part of the poor vision in my left eye.  An irregular swelling (CME) on the macula portion of the retina was mostly responsible.  That responded to a course of drugs (drops) over several weeks, and is all cleared up.)

First crack at interim glasses

6/11/18: This isn’t really a hack, unless you consider writing your own glasses prescriptions a hack.

Readers are a real nuisance.  Half-eyes on the bridge of my nose, readers that live on top of my head until needed, readers in pockets, shirt collars – none worked well all the time.  (And I’m not about to wear them on a chain around my neck.)  Let’s just get some bifocals I can wear all day and see if that works.  Of course we restart late in the year after Foulkes fires up his lasers and fixes what needs fixing.  But I need something stable until then.

The latest refractions from Foulkes (bless his patient portal for making all visit docs available!) showed +0.5D sphere in both eyes, along with the 1.25D cyl in the left eye.  I had some +2.25 readers, but the old +2 Zennis seemed a little better.  So I ordered new Zennis with +0.5 on top, and a 1.5 add to get back to the 2.0 the old Zennis demonstrated to be about right.  And of course the cylinder for the left eye.  Those should make distance a little better, bring all the intermediate in a little, and of course provide readers always at the ready.  (Might need to learn to be careful the add doesn’t cause me to fall down the stairs, tho.)  $55 with priority shipping.  Might get here before Kirkwood.  Will update when they come.

Posted in Vision stuff | Tagged , , | 1 Comment

Repair of Keith Rubow RF Remote transmitter

This (~12/11/17) is the fourth repair of this device – I can’t believe I didn’t record the others.  The $75 device is a 6 button “garage door opener” and USB receiver designed to control music playback software for “tape group” square dances.  It works very well, and with its macro capabilities to insert keystrokes into a window’s stdin, it’s very flexible.  <add lead pic when I get home>

The symptom was that the buttons – especially the most-used Pause/Play, but others as well – were very flaky, often requiring many presses and movements of the whole transmitter to function.  I even swapped the battery (though I was confident the one in place was good) with no improvement.  The most recent was at a C2 lesson session in Crown Point.

When I got home and took it apart, I couldn’t find any bad solder joints.  A continuity check demonstrated this time that the antenna was intermittent.  I had replaced the antenna before, with a much heavier stranded wire, though it only lasted what – a year or 2?

I figured it was solder wicking into the wire inside the insulation that made it fragile, but carefully cutting the insulation off, it was clear that mechanism was not the problem.  It was just ordinary fatigue where the wire exited the case (or very near by).  The heavier wire had 7 strands.

I used a thinner wire this time, but with many more strands, thinking that would be more flexible/forgiving.  I couldn’t find much online to bear that out, though.  I wasn’t very worried about the actual solder connection, but did want to minimize the possibility of solder wicking.  I wouldn’t be surprised if I have to repair this yet again some time, but this joint seems fine.

A quick test showed that the button worked reliably again, so I expect it will work for another couple of years.  For reference, here’s the hank of speaker wire I split it out of.  I’ll change my behavior to leave a longer length coming straight out of the case before I tuck it into my shirt going forward.  Hmm – I wonder if I should make a little strain relief of UV cure resin?  Even if that spanned both halves of the case, I’m sure I could crack it off to change the battery.  There’s a flex version of the Solarez stuff.  Maybe a tapered coating of that?

History

The first failure was a broken antenna connection at a dance in Mike and Shelley’s basement several years ago.  Thankfully Mike had a soldering iron and I was able to fix it there (and continue to dance!).  I think that was also when I started carrying a spare 2032 cell for it – just in case.  That also inspired a decent electronics repair case that lives in the car but gets thrown in the suitcase when we go away without the car (like this trip), though it might have been a year or 2 before I actually made up the case.  Alcohol, glue stick/lighter, duct tape, baling wire in addition to hand tools.  Two sets of those little (3mm?) hex bits merged, and it’s pretty complete.

The second fix was (sourcing and) replacing the Pause/Play button itself.  That didn’t help, as the problem was a broken antenna wire.  I think I put the original switch back in, but in any case did put the original key top back.

Since the switch didn’t fix it, I replaced the antenna with a considerably heavier wire.  That was the wire that had broken this time.

Some place in the repair history, I seem to think there was a problem with a solder joint (probably other than the antenna) that I think was fixed by resoldering that joint.  Sorry I don’t remember any more detail (and didn’t write it up!).

And this repair 12/17, is the most recent (so far).

Gordon’s transmitter failure

I used Gord Whitson’s remote at a basement session in the activity room in Pharr, Texas on 2/2/18, but it was so flaky I eventually gave up and just controlled the music from his laptop’s keyboard.  It felt very much like a broken antenna wire – OK at the beginning, tho only if I held the antenna just so, but it got worse.  It seemed like pressing the wire back toward the case (which I imagined allowed the broken conductors inside the insulation to touch) helped for a while, but soon even with that I couldn’t make it work.

I offered to take a look at it (since I had a soldering iron in my suitcase), and took the transmitter and receiver back to the hotel.  When I opened it up, the PCB was quite different from mine, though the outside looked identical.  His (presumably newer) board had a nice strain relief designed in.  To my surprise and dismay, a careful continuity check failed to show any evidence of an open antenna wire.  Though the range was considerably less than mine, it was much better than when I had used it at the dance, though only if I held the antenna just so.

I had to admit defeat, and returned it unmodified.  Can’t be the wizard every time, I guess. 🙁

Button protector

Not related to the repairs, I feared a little that the transmitter buttons might get jammed pressed and drain the battery when it was stuffed unceremoniously into a bag.  To avoid that, I made some careful measurements, laser cut some acrylic, and heated and bent it to fit around the transmitter.  That new case is a pleasant slide on friction fit.  Thin spacer strips pretty much guarantee the buttons can’t be pressed while the case is in place.  I’m quite pleased with it, and will post a picture as soon as I get home.

Posted in Square dance | Tagged , , | 1 Comment

Trivial zero clearance table hack for belt sander

I’ve lost a couple of small pieces to the innards of the belt sander by having them sucked down between the belt and the table.  Inspired by various zero clearance inserts/whatever from Matthias and Jimmy DiResta, it occurred to me that a very quick and cheap zero clearance arrangement for the sander would avoid or greatly reduce the problem.

Just put a flat piece of sacrificial wood on the table up against the belt – not even clamped down.  For the small work that is the problem case, it works pretty well.  Not profound, but a simple technique where a bit of scrap greatly enhances what you can safely do with the tool.

I’m hoping having written this and maybe running back across it from time to time will remind me of this simple, effective technique.

Posted in Miscellaneous | Tagged , | Leave a comment

Audible DIScontinuity tester

Sometimes I’m trying to check a cable – often a thin audio coax – for an intermittent open.  I could hook an audible continuity tester to it and listen for the noise to stop momentarily, but a less annoying and more obvious test would be a DIScontinuity tester.  It would make no noise until the wire under test became disconnected.  An audible indication would be better than just an LED, as the tester’s eyes and concentration could remain on the wire he was manipulating looking for the bad place.

Such an instrument could be made with just a transistor, resistor, and a piezo buzzer.  The wire under test overrides the base pullup and keeps the transistor (and the noise) off.  This is basically a boolean tester, and is off as long as the wire is << 10K.  That’s probably a fine solution, at least most of the time.

Here we go

A more properly over-engineered solution that might detect changes in resistance on the order of a few tenths of an ohm might be built as shown.  If we chose to limit the current thru the wire arbitrarily to say 100mA, using say my usual bench Li-ion cell as the 3.6V power source, we’d need about 36 Ω as limiting resistance.  If we split that in two, both ends of the wire would be close to 50% of the supply voltage.  If we used, say a Tiny 85’s analog input as a sensor (using the default of the power supply as the reference), that would put the ends of the wire comfortably in the middle of the A/D’s 1023 count range.  (Reason for a Tiny:  A full Arduino at 16MHz is slightly out of spec at 3.6V, though most work fine.  Of course there’s no need to power it from a Li-ion cell.  But an Atmel (including a Tiny) @ 8MHz is fine at 3V.)

If the Tiny’s code averaged a bunch of A/D readings at init time (done with the wire already connected) it would have a good idea of the voltage to expect at the top of the wire in non-fault conditions (probably saving it as a float).  The actual values of the resistors don’t matter, so no precision parts are needed.  (They just need to not drift over short times.  At 0.1A^2*18Ω=0.18W there’d be a little heating, so a very conservative approach might be to use 1/2 or 1W resistors.)

If the wire were, say 1 Ω, we’d have a voltage divider with 19/37 (0.5135) of the supply voltage at the test point shown.  If the wire’s resistance changed by say +0.1 ohm, we’d have 19.1/37.1 (0.5148), for a change of 0.25%, or about 2 counts in the 1023 count A/D’s view.  That’s at the ragged edge of what we could reliably see, so a few tenths of an ohm should be visible.  Averaging a bunch (20?) of readings (at well under 1 msec each) would get rid of some noise while still allowing pretty fast response.  Update:  Hmm – I suppose that 0.25% change should be taken of the ~500 counts the non-fault analog reading would be, not the 1023 counts of full scale.  That’s 1.25 counts, even more on the ragged edge, though averaging more readings might help.  So a few tenths of an ohm is probably still possible.

A likely source of noise/inaccuracy would be the connections between the clip leads and the ends of the wire under test.  Some care would need to be taken to not disturb them much during the test.  Of course restarting the Tiny to get a new baseline is easy.

The output indication can be anything – it’s just code.  With a small speaker, a tone with pitch dependent on A/D difference from the initial condition could be made when the value exceeded some threshold.  Replacing the speaker and cap with a piezo buzzer, it could give a boolean indication of exceeding a threshold, or a series of beeps with rate determined by how far the A/D reading was from the threshold.

All hot air for now.  I guess I should build one and try it out.

Posted in Tiny 85 stuff | Tagged , , | 1 Comment

Class D amp lockup

The very nice class D amp I use for driving speakers for basement square dances has locked up a couple of times, with the worst at Crown Point during C2 lessons with the terrible Moger recordings.  It’s happened once or twice in Skokie.

The first time it happened, it was a mystery.  I could see the audio player counter incrementing, indicating it was playing – and sound should have been coming from the speaker.  But it was silent.  Eventually, in desperation, I pulled the plug on the amp, waited several seconds for the amp’s LED to go out, and plugged it back in.  And the music came back!

When it happened recently in Crown Point, I tried the power cycle trick, but plugged it in too soon and it didn’t work.  We took a break, I messed with it under less pressure, and a longer unplug brought it back.  My hardware isn’t supposed to fail during a dance.  It did always seem to occur when there was a loud pop when I unpaused the music.

On the way home, it occurred to me I might be able to get a quicker power cycle by pulling the connector between the power brick and the amp, although that still wasn’t a proper solution.

Feature, not a bug

As I read the datasheet for the TPA3001 amplifier chip on the cheap Chinese amplifier module, I found the answer:  When the chip detects an output short – or, presumably some overload – it goes into shutdown mode.  A power cycle will reset that, but so will a shutdown cycle using the shutdown pin on the chip!

That pin is in fact brought out on the module I have  (as “K”).  I managed to reproduce the lockup/shutdown a couple of times on the bench (playing the nasty Moger recordings LOUD and rapidly pausing and unpausing.  Shorting the pad of the shutdown pin and the conveniently placed adjacent ground pad, it came back to life.  A couple of cycles of that convinced me I could undo/reset the lockup with just a button across those pins.

Recovery, not protection

I suspect the real problem is that sometimes the random place in the music when it unpauses is such a large voltage swing away from where it was when it paused that it triggers the lockup.  (Maybe involving a cap in series with the signal somewhere?)  Maybe I could provide some crude diode limiting on the input in the PCB.  I investigated some back to back BAT-85 Schottky diodes, but (with 1K in series) they’d only clamp to ~425mV PP.  That’s probably consistent with the 0.25V I measured with DC at 10mA.  The Windows tablet I use didn’t seem to be able to put out more than ~250mV PP, so I gave up on that.  If I could find some 150 or 200mV diodes, I’d try adding them.  So I guess we just go with a reset button.

(I did order some 1N5817 Schottkys, which might fill the bill.  It looks like there’s more variation in Vf than I might have guessed!  I also ran across some specialty “smart diodes” like the LTC4412 and SM74611 which gate a MOSFET to provide effective Vf of ~25mV in the narrow power supply uses cases for which they’re designed, though they’re not useful as general replacements for Schottkys.)

I considered a small tact button (on wires on diagonally opposite pins for mechanical symmetry/strength) soldered directly to the K and G pads, but it would have been awkward to solder them into the amp module if they were as short as I’d like.

Working on the amp board was kind of awkward, as I had to stand up to do it.  Not a big deal, but I always sit at the electronics bench. 🙂

I found some other tact switches, and with the PCB unscrewed from the speaker cabinet, I could see solid ground pour large enough for the switch.  I drilled 4 holes for the pins (of which I used 3), and isolated one pin.  Two soldered to ground were fine.  An air wire from that isolated pin to the “K” pin, and we were in business.  A new interconnect pin connected the “K” pad on the module to the conveniently located “just-in-case” pad (which previously went nowhere) on my PCB.  I had to shave down the button top to clear the 3.5mm input jack but that was easy.  A quick test showed it worked.  It’s clearly a workaround, but if the amp locks up again, fixing it is just a button press away.

I should also take away the lesson of reinforcing the conservative approach of having provided pads on the PCB for the shutdown pin even though I didn’t expect to use them.

Update ~12/4/17: The 5817s came in, and the same test showed they clamped at ~328mV, so they might provide a little protection, and it looks like they can’t hurt.  I did a crude job of adding them under the PCB.  I expect they’ll live there forever, maybe never being called on to conduct.  Or maybe silently preventing a lockup.  We’ll probably never know.

Posted in Square dance | Tagged , , | 1 Comment

Drawbot stepper torque measurement

To measure holding torque on the old Science Center steppers, I attached an aluminum arm to one of the drums, keeping it as close to where the bobbin was epoxied to the shaft’s gear as I could.  I notched the aluminum for the center of the drum, and attached it with a 4-40 machine screw.  As there was almost no clearance between the nut and the motor, a judicious assortment of washers made sure the screw didn’t stick thru the nut.   Since the holes in the front and rear bobbin ends were offset (what??), getting the screw started in the nut was considerably more of a challenge than I expected.

With no power and the 16cm arm just resting on a little digital scale, I saw 5.6g force (ugh – yeah, I know) due to the weight of the arm.  With full power (cooldown resistor shorted) and slowly lifting the scale and watching for the max value (yes, it went back down after the max), I saw 23.0g, for a component due to the stepper of 17.4g.  At 16cm, that’s 278 g-cm or 3.85 oz-in of holding torque.  (Yes, the attachment of the bar is backwards for testing this way.  I’d originally planned to use a weight hung from the arm, but changed to the scale at the last minute.  Fortunately, the screw was tight enough that it still worked.)  Now I can shop for replacement steppers with a little science behind my selection!

And even more, with all the yak-shaving done of setting up, designing and doing this measurement, cleaning up, trying to resuscitate my new laptop – blown up setting this test up – giving up and ordering a replacement (at least it’s Black Friday!), and analyzing and documenting the problem with barrel connectors that led to its demise (here), now I can finally put all the drawbot junk that’s been cluttering up the family room for way too long away and out of sight.  Yay!

Posted in Drawbot | Tagged , | 1 Comment

Dangerous barrel connectors or
Why the cost of the Drawbot just jumped $200

Not all coaxial barrel connectors are created equal.  The male on the top is the one that was on the 30V drawbot stepper power supply before it blew up my new laptop.  The yellow one is what’s on that supply now.

I never thought much about these ubiquitous connectors until now.  In fact, I was slightly prejudiced against ones like the yellow one, with their wimpy internal wires/prongs for connection rather than the nice robust tube of the top one.  Now I understand.

The drawbot supply – a repurposed laptop switcher – has a 3 prong plug, and is ground referenced (which is the real problem).  I’d grabbed that male with the nice tube from the drawer and spliced it on in the common center-positive configuration to match the female pigtail from the drawbot, and have used that setup many times to drive the drawbot.

Unfortunately, that nice robust tube extends out and is in fact the frontmost surface of the plug.  Unless you’re very careful, that +30V-with-respect-to-earth-ground center conductor will bump into the front ring of the female.  That ring is ground on the drawbot – including to the USB serial port connected to the computer.  Unfortunately, that computer was my good new laptop, with its 3 prong power supply plugged in ensuring that it was grounded.

The path for the brief encounter with +30V thru the laptop is unclear, but it wasn’t just a short to earth ground.  The laptop went black, never to power on again.  (Yeah, I pulled the battery and held the power button down for a long time, and as many other power permutations as I could come up with.  It’s dead.)

Thinking about it, I’ve seen other cases where plugging in barrel connectors caused unexpected crashes, although this is the first time I can point to hardware damage (or understand what might have happened).

Taking a quick look thru the connectors I could find, it seems that the exposed center pin is pretty common.  In fact some look like they are made that way on purpose (red circle).  I found only one of the tube contact ones that apparently went out of its way to recess the tube so it was safely behind the front surface (green circle).

The takeaway is that males with the center pin exposed – particularly if it’s the outermost surface – can be dangerous, and should be shunned, or at least treated with special awareness and concern.

It’s an interesting, if sad observation that despite all this, packrat that I am I’m not throwing away the murderous end I cut off of the drawbot supply with its center pin exposed, and I’m not throwing away all its brothers, either.  But at least I won’t donate them to the space. 🙂  I will, however, try to remember about them.  (Yes, those are labels inside the bags.)  To ensure I won’t be tempted to use the dangerous ones, I just ordered another cheap bag of the “yellow” kind , and I’ll donate some of those to the space.

Update a couple of hours later:   I was troubled that the cable from the power supply brick had 3 wires disappearing into the heat shrink where I’d spliced in the (bad) male connector.  Was one earth ground, and I’d tied it to negative, and if I’d left it alone the supply would have been floating and none of this would have happened?  I’d spliced the yellow connector on leaving the original splice intact, so the only way to know was to cut the heat shrink to inspect the old splice.  (Well, wrong, but…)

The third wire had not been connected.  I rang it out, and it was clearly not directly connected to earth ground, so at least it wasn’t my fault. 🙂  But what was it connected to?

Looking at the label on the supply answered the question, and even provided a nice diagram of which conductor was which.  If I’d just RTFL, the question would have been answered, fears allayed, and I wouldn’t have had to have a dumb wrap of electrical tape covering the +16V wire exposed when I cut back the end of the heat shrink.  Oh well.

Update the next day: Thanks to a Slack post from Rick Stuart, I found an HP service manual for the blown ProBook 430 G1 and its same-model replacement.  Also a treasure trove of laptop manuals here.

And a further update on earth ground and the power supply:  I just rang out the ground pin on the supply.  While it was connected directly to the negative side of the barrel connector, it wasn’t connected to neutral.  I think that means if I somehow cut off or disconnect the 3rd prong, the supply will be floating, and any future ground loop problems will be avoided.  Interesting.

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

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!”.

Showings

– 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.

Steppers

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.

Electronics

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.

Software

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.

 

TEFLON RING
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.

 

RING-BACKBONE CONNECTION DESIGN REALIZATION
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. 🙂

NEW PEN LIFT LINKAGE
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>

PCBs


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.

BACKWARD STEPSTICKS
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.

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.

 

Resume

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!

Caricatures

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

ARTWORK NOTES
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!

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.
– 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!
– 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?
– 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

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=0,0

STARTING OUT:
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 (full ears) 1676mm; height 2616mm; pulley diam: 9.5cm.  Paper is really about 900×900, but I seldom tell it it’s that big.  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 80 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 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.

SETTING UP FOR A DRAWING:
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).  Should get a red-green cycle of penlift and LEDs, ending with pen up (green).  Insert pen so tip is ~1/8″ 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.

SPECIAL D COMMAND LIST:
– 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 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…).

LEDs:
– 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.

BUTTONS:
– 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).

FILE MANAGEMENT:
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 , , , , , | Leave a comment