Tim Hatch

Weblog | Photos | Projects | Panoramas | About

Squashing a bug 17 Jul, 2010

I spent half of yesterday tracking down a particularly pesky bug that’s existed since before I started working here. There was a big workaround that I added a year ago that fixed the symptom because we didn’t see root issue, and that workaround broke yesterday. In the end it was a one-line fix, and the bug was caused by f calling g(a1, a2, a3, a4) which then did a4.append(...) and f had a local variable that referenced a4[-1]. It felt a little bit like the proverbial piano tuner (f is 200 lines and g is 170).

Fix totals section (and others) on multi-customer receipts

 CHANGELOG         |    2 +-
 src/parser.py     |   24 ++----------------------
 src/rparse.py     |    1 +

That sort of diffstat makes me happy.

A potential ball chain pulley 17 Jul, 2010

As promised yesterday, I’m experimenting with a new kind of ball-chain pulley. It’s based around the center hub of thermal receipt paper rolls — a throwaway part that I have an excess of at work (and assume is standard world-wide). It has 12 sections, made out of a thin plastic, and and 4.4mm chain fits well if you make notches for the balls to sink into (see photos). I also got some smaller chain to fit, but it makes much weaker contact points on the end grain.

The plastic comes in black, white, and neutral but I don’t yet know what it’s made out of. It’s 79.5mm long, with an outer diameter of 21.6mm and inner diameter of 11.75mm. It’s easily cut with hacksaw and shaved with a hobby knife, and drills somewhat self-center (they avoid the section barriers).

End view of the spool

I’ve tried deforming (making it oblong) by hand, and it springs back; if you put a chair leg on it, it can get permanently out-of-round though. To test out whether the pitch worked out right, I made this jig with hand-drilled holes. The chain slips off occasionally so I’d need to make a hole-drilling jig to get them perfectly aligned along the length before an actual test. I’m still looking for a good way to mount a 5mm-or-so motor shaft on it as well. The wing-nut with some thread locker works well enough on threaded rod.

Chain wrapped around drilled holes

Cartesian Robot Progress 16 Jul, 2010

I’ve started once again to work on my goal of building a RepRap which started almost three years ago when I was still in Texas. When I was there, I built half a McWire bot with Jesse’s help — the frame, and X/Y axes were finished when I moved and Palmer contributed parts from a BfB extruder.

McWire with Z axis built

Last weekend, I finished out the Z axis, with some minor changes. I went with locally-available U-channel aluminum which was thinner (1/16” vs 1/8”) than the rails ordered from McMaster. During cutting, I also managed to introduce some scuffing on the running surface which I mostly sanded out. I hope these won’t affect the friction of the PFTE bearings (but if it does, I found the 1/8” U-channel in the meantime).

The hardware mounting the Z-axis is a mix of imperial and metric, with lots of washers adapting for different size parts — mainly because I ran out of metric parts from my initial order, but also because it’s difficult to find 5/16” machine screws with a bevel head suitable for countersinking. Ace Hardware doesn’t carry any 5/16” with a bevel here, Home Depot has them but only in specific sizes, OSH only carries them >2” long, but I managed to find the best selection at the tiny San Andres Hardware on Micheltorena (they’re slotted, not phillips like the rest, but oh well).

I have a completed set of early RepRap electronics so I’ve run some quick tests and all the stages move as they’re supposed to. Excessive torque on the Z-axis will knock the nut out of the pipe clamp, which makes me wonder if it will also move over time and require re-homing even with lower torque. Next on the list is to finish some extender cables so I can put all the stepper controller boards in one place. I’m using 18-ga sprinkler wire for the stationary X and Z axes, but some super-flexible 16-ga speaker wire that Berto had leftover from a project for the Y axis (which is the only motor that moves during operation).

I’m using the stock leadscrews for now (1/4 × 20 stainless allthread) but intend to move to an alternate drive system after I get the electronics hooked up and a couple of test millings. The primary ones I’m considering are:

  • ball-chain, which I’ll cover in an upcoming post
  • wooden auger, although I’ll need to unbox my drill press
  • larger (3/8” or so) allthread, since it’s coarser (16 tpi vs 20)