Getting Tiny core working with Arduino 1.6.3

The first time I tried to compile for an AT Tiny84 with Arduino IDE 1.6.3, it failed with a warning and an error.  The warning was “Third-party platform.txt does not define compiler.path.”  The error was “Error while compiling: missing ‘recipe.cpp.o.pattern’ configuration parameter”.  I gave up and used good old 1.0.5 ERW, and everything was fine.

When I chased it a little later, I found that while high-low tech had a tiny core for 1.6, the google code hosted Arduino-tiny I’ve been using did not.  The latter did have versions for 1.0 and 1.5, so I downloaded  When I tried that one the ‘recipe’ error went away, but the ‘compiler.path’ warning was still there.  It did compile, though.

I looked thru the platform.txt file for the main Arduino 1.6.3 install, and found this line:

When I changed the platform.txt file in the new tiny core by replacing the line
with the one above, the warning also disappeared.  While it would be nice if the Arduino-tiny kept fully up to date, at least my installation works (and with this note, I can rebuild it if needed.)


I copied the boards.txt I’ve been using for some time (with tiny84@8 MHz and a hack to make the tiny2313 entry work for 4313s) to the new tiny core directory, and my boards showed up fine.  But when I tried programming a Tiny84 with an ICSP header and my USBAsp programmer, I had trouble.

I found a very helpful pointer that to program using a programmer (rather than the bootloader), there is an option in the IDE under File->Upload Using Programmer.  Cool!  I saw it work once, but later it complained “Error while uploading: missing ‘upload.tool’ configuration parameter”.  When I added this line to my boards.txt in the tiny84@8Mhz block, it compiled and uploaded thru the USBAsp:

I added corresponding lines to the blocks for tiny85@8MHz and tiny2313@16MHz (hacked for 4313) as well.  So now I think my 1.6.3 environment is up to date and stable for my favorite tinys.

Posted in Tiny 85 stuff | Tagged , , , , , | Leave a comment

Analog joystick

Joystick2768I found this nice-feeling joystick for $2 at Goodwill, and thought it might make a good controller for an early demo of the LED wall display at the Northside Mini Maker Faire.  I’d originally planned to use a drum pad, but this is probably better.

As a non-gamer, I had no idea what the interface to this thing was, and it had absolutely no brand/model info.  But the discovery/learning process went well.  Googling “image pinout 15 pin joystick” got me well Inside2760on the way.  An ohmmeter showed analog resistance changes on the X and Y pins, though the buttons were a little strange.  Opening it up let me ring out the cable and see what was going on.  Seems nicely made.  Joysticks were 100K pots to +5 wired as variable resistors.  All the buttons went thru a little PCB that got +5 and ground and was mounted to the “Auto” switch.  Seems to provide ~6Hz square wave auto firing on the trigger and big buttons (not on other 2).  Here’s the detail:

DB-15 Joystick    function     DB-15 to      Arduino
pin   cable color              Arduino color pin
1     Whi/blk    +5V           Red           +5
2     Blu        Btn 1 (trig)  Ora           A5
3     Grn        X1            Whi           A4
4     Brn        Btn ground    Blk           Ground
5     -            
6     Ora        Y1            Brn           A2
7     Blk        Btn 2 (big)   Blu           A1
8     -            
9     -            
10    Red        Btn 3 (left)  Whi           A3
11    -            
12    -            
13    Gray       Speed         Grn           A0
14    Yel        Btn 4 (right) Grn           A0
15    -

Arduino interface

ArduinoAdapter2775I found an old DB-15 female in the junk box and moved a couple of  wires around to get red/black for power and populate the other needed pins.

The pots give ~65K to +5 when centered.  To get a reasonable analog voltage from them, I made a voltage divider from their pins to ground with 43K.  Seems OK.

Arduino+Interface2783I needed 3 analog inputs plus 4 digital inputs for the buttons, and +5/ground.  I could almost get away using just the Arduino header row with A0-A5 and +5/ground, and that neat connection was very appealing.  So I cheated:  I tied one button (right) and the “speed” pot both to A0.  To read the button, do an analog read and check for near 0.  To read the pot, if the analog value is very low, ignore it.  I wrote a little test code and it seems to work OK.

Overall, it was a pleasant little adventure, and for $2 (plus some time) I got a useful controller for the LED display demo that will probably also be a useful input device for some future Arduino projects.

DrumPad2787And a big plus:  It lets me get the large, clunker Harmonix USB drum pad I dug out of the spider hole at the space out of the house and back to the hole!  That earlier intended wall display controller does in fact work (well, the 3/4 of it that’s still there), as demonstrated by the older, free Drum Machine windows app from Andrew Rudson.  But the joystick provides what I need with not only less work but with a smaller volume of junk in the house – and that’s a win!

Posted in Miscellaneous | Tagged , , , , , , | 1 Comment

Bench camera mount

CameraOnHolder20150331_212132216I’ve often wished for stable camera mount above the bench where I take a lot of project pictures.  It needed to be quite flexible in where it could locate the camera, but still fairly rigid for say good registration of an HDR series.  After several months of intermittently mulling over lots of approaches, I ended up with something that’s simple, effective, and doesn’t add a lot of extra hardware to my overcrowded shop.

I found a $3 generic ball/socket tripod head on Ebay that looked like it would be useful, though I still had no idea what it would be mounted to when I ordered it.  We’re underway.

A main requirement was a quick-on quick-off clamp mount to the benchtop.  There’s a soft-jaw Craftsman vise I use for working on PCBs that lives under the bench.  It’s kind of clunky, but it’s effective and flexible enough to have earned its keep.  I finally realized that it could hold the camera mount with zero extra junk near the bench.  It’s not quite as rigid as I’d like, but it’s easily Good Enough.

A piece of 1×2 furring strip could clamp in the vise easily, but how do I attach the 1/4-20 female mounting hole in the tripod head to a piece of wood?

HangerBolt2781A hanger bolt was the answer.  Took a little tweaking to get the right length and the thumbscrew on the tripod head in the right place, but no rocket science.CameraOnAStick20150331_021552610  Works great.

Of course when I got the  hanger bolt, I got an extra.  Unfortunately, it’s one of a kind, and doesn’t have a home in my parts/fasteners organization scheme.  In looking for a place to stash it where I’d have a prayer of ever finding it again, I was reminded of Wall-E’s dilemma categorizing a spork he’d found.

The whole mount system works very well, takes up little space, and cost very little.  When I finally figured out I could use that PCB vise, it took less time to build than I’d spent thinking about it!

Posted in Photography/Camera stuff | Tagged , , , , | 1 Comment

Damn Tribune “driveway delivery”

TheCulprit2643My snowblower has eaten a couple of newspapers, but this was the worst case ever.  And it’s all the fault of the Tribune’s stupid “driveway delivery” policy.  (OK, maybe not – see very end.)

Despite best efforts, I couldn’t pull the part jammed in the impeller out.  I brought it into the garage and rolled it over on its side.  After trying some more to pull the jammed paper out, I gave up and grudgingly figured I’d have to cut it out with a Stanley knife.

PartWayThru2652I cut away most of the large stuff so I could get to the place where it was really jammed.  But hundreds of slices later, I still hadn’t cleared it.  The remaining plug was a thoroughly compacted mixture of paper and plastic wrapper.  Slicing at it produced only very tiny fragments.

AlmostDone2650The clearance between the impeller and the housing is a little over 1/4″.  I tried screwdrivers and eventually a piece of 1/4″ steel bar and a hammer.  I tried forcing the impeller to turn with a judiciously applied 2×2.  I just couldn’t believe I couldn’t get it cleared out.  After a hour of work with the most useful technique being slicing millimeter sized shreds out, I finally prevailed.  Near the end, I wedged a screwdriver between a cleared part of the impeller and the housing as a lever and forced the impeller to turn a little.  If I had to design another tool to try to attack this specific case, it would be a hook to pull with.  Maybe 1/4″ steel rod a foot long and with a pointed hook bent at 90º or better.  Maybe I could have driven it in and pulled out much larger chunks.

Cleared2655BIt doesn’t look like there was any permanent damage.  The mixed good news was that by the time I was up and running, other good samaritans had cleared most of my sidewalks as well as the neighbors’ walks I usually do.



Update a few hours later: OK, this is just about the tool I wish I’d had.  It’s from some 3/16″ rod scavenged from some heavy wire racks I seem to have around.  Might even find use beyond the next snowblower-newspaper battle.

TLTR background rant

I understand the intent of the driveway delivery policy:  For a house set well back from the street with a long driveway, they want to set expectations that their delivery people won’t get the paper all the way up to the house – just to the base of the driveway.  That’s fine for the long driveway case.  But their idiotic bureaucracy has warped it into training delivery people to aim for the driveway – instead of the house.  The driveway to my detached garage is 60 feet away from the front door.  It takes absolutely no extra effort to toss the paper in front of the front door instead of  in front of the garage.

They delivered the wrong paper yesterday.  Using their very convenient online problem reporter, I clicked ‘wrong publication’ and asked for the paper to be delivered later.  It popped up a message saying it would be delivered “shortly”.  That was at 6:30AM.  When it hadn’t come by I dunno – 2PM?  I walked down to the driveway and verified it wasn’t there.  I went online again and asked for a credit for an undelivered paper, foolishly thinking the matter was over.  That was all well before the snow.

When I went out to do the driveway this morning, I had no reason to expect a paper under the couple inches of new snow.  I’d already picked up today’s paper – delivered as usual, right in front of the house.  And then WHAM!

Apparently the gears were still turning (slowly!) to get a policy indoctrinated driveway deliverer to deliver the makeup paper after I’d given up on it.  To be fair, if he’d delivered the now-unexpected paper right in front of the house, I still wouldn’t have been looking for it and would probably have hit it while clearing the path in the parkway in front of the front door.  So I guess the real blame is that the delivery was so late that I’d given up on it.  Ugh.

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

Clever flash diffuser

KleenexDiffuser2624bA flash diffuser is often very helpful, especially for some of the closeups of hardware I take.  The better-than-nothing hack I’ve used dozens of times is a couple of folds of Kleenex over the Canon SD600’s built-in flash.  It’s free and available, but not great.  Sometimes it flops in front of the lens, sometimes it covers the auto-focus helper LED, and based on some color shifts, I suspect sometimes a finger gets involved.

FrontView0792I recently ran across a great DIY flash diffuser on the Cameta blog.  While much more involved than a piece of Kleenex, the materials were still free, and since almost all my technical pictures are taken in the shop, it’s easy to keep it nearby.  It even SideView0797manages to leave the focus helper LED clear.

Built mostly of cut and folded white card stock custom fitted to the camera, its main clever feature is the use of a reflector near the tiny flash to illuminate a much larger diffuser.  Some aluminum foil tape provides the reflective surface.  This side view shows it best.

WholeThing2583To hold it all to the camera while aligning the tiny flash in the tiny PlasticIndex0799hole in the back of the reflector cavity, I taped some scavenged 17 mil clear PET packaging plastic to the back of the diffuser.  Between a hook over the side of the camera body and careful fitting of the top to butt up against a raised place on the top of the camera (under my thumb, not visible), it’s pretty easy to register accurately and hold in place.  For a little card stock, tape, and some time fiddling with it, I think this will become a valuable, standard part of my photo arsenal.

DiffuserDemo2615For the requisite with/without pics, these shots from the return duct cleaning project are about the best I have right now.  They show some improvement, but don’t really do the diffuser justice.  Maybe I’ll update them later.


Posted in Photography/Camera stuff | Tagged , , , | 1 Comment

“Sidewalk fertilizer” bag spout

I’ve been using 10-10-10 fertilizer as salt/traction improver for icy sidewalks for several years now and am very happy with the approach.  The milk jug spreader and the inverted half-jug filler funnel work great.

Less great is managing the bag of fertilizer I refill the jug from.  Cutting a corner off for an opening and rolling it up and clamping it with a soon-rusty bulldog clamp to reclose it worked, but was ugly and unpleasant to use.

Spout2518I just ran out of fertilizer and had to get a new bag, so that was the impetus for finally making a much better spout.  I cut the bag corner just large enough to fit a cutoff large HDPE bottle with a screw cap.  I sprayed the outside of the bottle with an Elmer’s multipurpose spray adhesive before putting it in, but I expect the hose clamp would have held it together quite well even without the glue.

BagInActionBetter2553The first jug fillup was a much more pleasant experience than working with the rusty old clamp setup.  For simple and free, I think I’ve solved my sidewalk fertilizer bag management problem!

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

Bondic zipper repair

Before2457I’d never paid much attention to the implementation of the bottom part of a jacket zipper until my good jacket started to be hard to zip.  The “pin” side – that fits into the “box” on the other side – was sort of coming apart.  Crimped into one side of the pin was a bit of plastic reinforcement that went all the way to where it was sewn in.  That plastic had broken, and the underlying fabric was fraying badly.  The symptom was that it was harder than usual to get the loosey-goosey pin into the box to get the zipper started.

Short of trying to crimp on a new pin with new reinforcement, opening up the seam and restitching the hacked pin end, I couldn’t see a good fix.  Lauren asked if there weren’t something I could use to stiffen/reinforce the fabric.  Maybe!  The first materials that came to mind to reinforce the fabric were epoxy and the new UV-curable Bondic resin.  I decided to give Bondic a try.

I worked the resin into each side of the fabric, then exposed it to the UV LED provided.  NarrowSlot2484But the slot in the zipper slide is quite Smashing2468narrow, and the gloppily stiffened fabric had to be smushed down to have a prayer of fitting.  (It’s OK – they’re technical terms.)  I did two rounds of resin/cure on each side.  While other UV resins cure much harder, the Bondic After2474resin cures WithUV2476somewhat flexible, so the reshaping was fairly successful.  Here are both sides with the resin in place.  And, of course, the requisite picture of it fluorescing under the UV LED. :)

While I can get the slide over the reinforced pin, the pin didn’t fit into the box far enough for the zipper to start.  A little judicious trimming and further thinning got the pin into the box.

Together2482It still doesn’t feel as good as new.  I have better control of the pin thanks to the stiffened fabric, but the angle is off a little and it feels like I’m fighting slightly gummy gunk forcing the pin into the box.  Overall it’s not much better feeling than before, but I suspect it will last longer.  And it does still work!

Now to see how well it holds up.

Posted in Miscellaneous | Tagged , , | Leave a comment

W88 sign replacement

Somehow the sign in front of the space got damaged and came down – not sure of the order.  It lasted just about 4 years – pretty good for an experimental prototype outside in Chicago winters and summers.  I recovered the beat up carcass and since we still need a sign, did a quick and dirty makeover.  We really need a more permanent sign, though!

Front+Back2429Post mortem

The sign was originally a test of potential outdoor sign-making techniques.  With the dead sign in my hands, the first job was looking at how it had fared.  The old project notes did their job admirably, reminding me of lots of details and decisions in the original build.  In no special order…

  • The 0.004″ aluminum foil pan top channel did very well.  An initial fear that the sign would look silly without having it go all the way around was Grommets2416just, silly.  The channel stuck very well and apparently did its jobs of keeping water out and holding the panels’ top edges down very well, too.
  • The grommets were in fact brass rather than brass plated steel.  They held up very well and the panels showed no signs of leakage/drip stains below them.  Whatever had beaten it up over those years didn’t manage to rip out the grommet/aluminum/embedded wire hanger.
  • I kind of suspect the vinyl coated (steel) wire hangers failed and that’s how the sign came down.
  • The “Adventure paper” on the back didn’t do so well.  At the time of coming down, it had become rather brittle, and BackCracking2424cracked off in largeish pieces.  I tried to scrape it all off, but despite the cracking,  most of it was still pretty well stuck on.  I got some loose edges off, but that was about it.  It will look pretty bad on the refurbished sign, but it’s in the back and few visitors will see it.  Apologies to the others who live on that side of the sign…
  • The HP waterproof laser “tough paper” held up very well.  Somehow one panel had come off by the time I got it, but I had to work a FrontPeeling2422InkPeeling2423little bit to peel the others off.  Each of the  remaining panels came off completely intact.  The black toner was visibly faded, but more interesting was that the red toner peeled off in chunks – though only as the (now removed) paper was bent.  I expect it would have held out for another year or two still stuck to its backing.

Patching it up

Since it’s (again) only a temporary sign, I figured just a decent looking front side would do. I’d like to keep the job simple, and I don’t have any more of the brass grommets, so I decided to just make a new front on the old sign.  Yeah, the top will look crummy.

I don’t have a color laser printer at home, and I wanted to get the sign ready to put up on Thursday.  I could have printed on the Adventure paper with my inkjet, but after seeing how it fared and rereading the notes here, I gave up on having the sign for this Thursday in favor of using the nice HP stock and having Lauren laser print the panels at work.  (If only I hadn’t dawdled so much and started on this project just a day earlier, I could have had the sign done for Thursday.  Oh well, at least I’m consistent…)

I’m sure I can strip the old adhesive off pretty well, and the 3M Super 77 spray adhesive has proven itself for this application, so I’ll use that again.  I can peel up the aluminum channel, and presumably glue it back down.  It’s pretty beat up, but from the distance people see the sign, it won’t be too bad.  Its 1/4″ overlap of the top of the panels seems to have worked out pretty well, and I should be able to do that again.

TopEdgeOK2435The problem is at the grommets.  They hold the aluminum down such that I can’t peel it back to get the tops of the panels under the aluminum right there.  They were clearly put in after the panel and aluminum were glued down.  It’s only a problem for an inch or so, but that inch robs the end panels of their nice water shield.  Not sure what to do about that yet.  Do I undercut the grommet just so I can slide the panel under the aluminum?  And if so, how do I slide it in place with contact cement on both pieces?

To my amazement, I couldn’t find the files I’d printed the original panels from.  It’s not like me to not save files, even for a ‘temporary’ project like the sign.  I found a similar jpeg in the dropbox, but on looking closely, the font was considerably heavier – and so not quite as legible from a distance – as whatever was on the old sign.  I ended up creating a Word doc with a page for each of the 4 panels, with the text in 291pt bold Arial.  It’s not identical to the old sign, but very close.  I saved the file this time. :)

(next day) The laser printed copies on the HP “paper” look fine.  Based on my earlier reports of success taping all the panels into one big piece for the slightly scary you-only-get-one-chance application to the contact cement, I’ll try that again.

Final assembly

Debbie, a visitor from AISE, an Innovation Centre in Arusha, Tanzania planned to stop by to see the space WorkingOnSign6401_HDRFriday morning, so I gathered up all the parts and planned to do the final assembly at the space so I could be there to show her around.

After trimming the panels so the letters were spaced appropriately, I taped them up into one piece.  I notched the big panel for the grommets and bent the bottoms of the grommets up so I could scootch the panels under them.  That was a big help.

PrinterAsHelpingHand1677Unfortunately, Debbie couldn’t make it, so I was without the extra pair of hands needed to handle the large panel.  I used the Kossel 3D printer as a skyhook to hold the back half of the glued up panel safely in the air while I carefully aligned the front edge.  A couple of dry runs were, as always, very helpful.  Since getting the panels under the grommets – only ~1/8″ clearance – would be the tricky part, I chose to do that edge first.  JustGlued4729While not without a hitch, the approach worked, and the panel was applied with no visible wrinkles or bubbles.  Here it is immediately after it got stuck down.

After pulling the blue tape off, I burnished the panels down aggressively.  With no clear spray overcoat, I hope the seams stay sealed well enough.  While I was only marginally successful beating the grommets back into shape, the working space having them lifted provided was worth having them end up not well seated.  I bent the aluminum channel down as best I could to seal over the top edges of the panels.  Unfortunately, it’s completely worn away above the grommets.

I made up some oval split O rings from the nice heavy 7 ga steel wire to hang the sign from the eyebolts in the sign hanger outside.  Those should hold up a lot better than the green vinyl covered 12 ga wire that apparently failed with a stress crack after only 4 years.  :)

Clambering up on the ice covered plastic top of the dumpster under the signpost to hang the sign with no spotter was arguably dumb, but I got away with it.  (To my credit, I was actively evaluating my footing when I got up the first time to remove the remains of the old green wire.  If that attempt were scary, I claim I would have passed on the second trip up to hang the sign and use lineman’s pliers to close those heavy duty O rings.)

Jan 2014

Jan 2015

Jan 2011

Jan 2011

From the front, it looks a lot like the old one.  The back’s really ugly.  But it’s up and done!




Posted in Workshop 88 sign | Tagged , , , , , , , | Leave a comment

New handle for Wusthof Classic knife


Many years ago, when we redid the kitchen largely in white, we got a couple of Wusthof White Classic knives.  They were perfect (including fitting in with the decor), and were used daily.  But one day the #4066 3.5″ paring knife mysteriously disappeared.

The Classic series was no longer available in white, so sadly, we did without.  (The Ikon is available in ‘Creme’, but that’s not white and we didn’t like it as much, and while the Classic was still available in black, that didn’t go with the kitchen and the other white knife.)  We got another white paring knife, and while quite serviceable, it just wasn’t the same.  I watched Ebay and Craigslist on and off for several years, but never found a replacement. :(

But you know, the handle is really just a couple of pieces of plastic somehow riveted on.  The important part – the beautifully made blade and tang are still readily available – just with black handles.  I bet I could make some white handles!  I found a used one on Ebay to play with for $17 (they’re $40 new).  It aged on the shelf for 6 months, and then I finally got started.  Maybe I can make it a Christmas present for Lauren!


The big question was how the rivets were done.  I found a Wusthof promo video on Youtube, and watched and rewatched the few seconds it devoted to the handles, but there wasn’t much there.  I measured the visible heads on the remaining knife, and they were just 1/4″.  That’s an unusual size for a German knife, but I’ll take it.  I think I heard the rivets were stainless steel, and so ordered a piece of 1/4″ stainless steel rod.

When I drilled out the first rivet, it was obvious that it wasHandlesBothSides2281aluminum, not stainless.  I drove it out, and it was a normal, 2-piece rivet!  I drilled the others out and pried the scales (handle pieces) off.  Although water had gotten in and caused some rust, things were generally in pretty good shape.  But I expected round holes in the tang, not those interesting post and socket connections between the two scales!

New scales take shape

The plan was to epoxy the scales on (probably to the horror of any real knife folks reading this).  That made the “rivets” really just cosmetic (but of course required, to look like the original).  Epoxying them in would be fine, and even add a little more reinforcement.

I got three pieces of 3/16″ white plastic – polypropylene, acetyl (Delrin), and uhmw polyethylene – from McMaster Carr to play with.  Somehow I heard polypropylene might be what they used, so that’s what I tried first.

You know, if I machined little islands on the new scales – less than half the tang thickness – to fit into those oval holes, I bet the scales would be a whole lot more Outlinessecure.  And I bet the Shapeoko 2 could do that!  I took a picture of the tang from straight above and quite high so as to avoid parallax problems, imported it into Inkscape, converted to SVG, added circles for the rivets, and mirrored it.  It apparently imported into Easel just fine.  I tweaked the depth of cut to drill out the holes completely, but just cut the rest down 0.04″.

HandlesOnSO2-0141I fired up the SO2 with its brand new Carvey-style auto Z touchoff, clamped a chunk of the poly down and clicked Start Carving.  It worked!

Well, almost.  The SVG had 2 paths for the handle outlines, 6 for the islands, plus 6 for the holes.  Apparently either Easel or I ShapeokoOutput2290bumped the top group of islands+holes down just a little.  You can see that they’re slightly closer to the handle outline than in the bottom one.  The tang fit pretty well into the bottom one, but required quite a bit of handwork on the top one before it fit.  Boo.

I’m mostly blaming Easel for that.  I selected the islands as a group while setting up the depths of cut.  Maybe I unintentionally moved them a bit while I was just trying to select them.  I’d consider blaming Easel for that for not having more hysteresis when selecting without moving.  Or maybe Easel moved the group by itself – sort of snapping to some invisible, secret grid.  That’s definitely their fault.  (I have some other evidence of that as well.  As soon as I do some more testing and reproduce it, I’ll raise it as a bug or change request with Easel.)

Hindsight shows the whole issue never needed to occur:  There’s absolutely no reason to have the outline of the tang even represented in the machining.  All that’s required are the islands and holes.  If I’d realized that, instead of trying for a quite precise fit, I would have made a much more generous outline.  Live and learn.

Starting to look like a knife

HandlesOld+New2312HandlesMostlyTrimmed2297I cut the pieces apart, carefully hand-fitted them to the bolster, and roughed the outline to match the tang.  Here they are posing with the originals they’ll replace.  To make it easier to rough sand/file the outline down, I temporarily bolted them on.   Much easier to work on both together, plus it provided a motivating, tantalizing preview of what it will look like.

It was Christmas Eve morning and I had to get it finished by tomorrow!  I hadn’t been AllClampedUp2313able to find any aluminum rod locally, so I had to go to the space to machine down some aluminum scrap for the “rivets”.  And the white marine epoxy I planned to use to help hide oopses took several hours to cure, so I better do that before I go.  I did some final trimming of the fitted surfaces, cleaned them with alcohol, mixed and applied the epoxy and clamped it all up.  Hmm – that’s more like off-white – but it’ll do.  Off to the space.

When I came back (with a slightly undersized 1/4″ aluminum rod – oops) the epoxy was mostly set up, but far from hard.  The package said 3 hours to handle, 12 hours for max strength.  I didn’t have that much time, so I decided to speed the curing along by putting it in the oven.  I dunno – how about 240F?  Fortunately I checked the specs of the plastic on McMaster Carr, and it’s only good up to 180F.  Oops – backed the oven down to 165.

When I pulled it out of the oven maybe an hour and a half later, the good news was that the epoxy was pretty well set up.  The bad news was that since I’d removed the clamps, the plastic had expanded and bowed, and was now a good 1/8″ away from the tang in some places.  (Sorry, no picture.  I was sad and mad and desperate and just started ripping it apart to see what I could salvage.)

The epoxy stuck admirably to the tang.  Fortunately, it was pretty easy and appropriate to file that off, so that cleanup wasn’t too bad.  The mixed news – good for recovering the scales, not so good for overall confidence in the epoxy holding the scales on for 10 years – was that since the handles were polypropylene, the epoxy didn’t stick very well.  Never saw that coming.  Boo on me.  But at least the cleanup went pretty fast.

Round 2

I’ve heard that flame-treating the surface of polyethylene – like just passing a propane torch over it – chemically alters the surface temporarily such that epoxy will stick better.  (See note on this at the end.)  It was worth a 2ndEpoxyInOven2319try with cousin polypropylene, so after the new round of dry fitting and cleaning with alcohol, I flamed the surfaces to be epoxied.  With time running out, this time I used all metal clamps and put it directly into the oven (at 170F).  I also put some aluminum plates over the scales, in hopes of keeping them straighter and tighter.

When I took it out maybe 4 hours later, it was fine.  The epoxy had set up very nicely and the scales were flat and in place.  All the rivet holes were plugged pretty solid with epoxy, but that should be easy to drill out.  It was starting to feel like a knife in my hand.


I’d trimmed the scales pretty close to size with a file, but it was getting time for more precise fitting, so I switched to sandpaper.  Just as I’d expected, the (dry) 100-150 grit paper got me closer to a good fit, but left a terrible finish, and ground dirt into the nice white handle.  I’d read up some, and it looked like wet sanding should work.  I’d never done any wet sanding, but had picked up some wet/dry paper – up to 3000 grit! – on the way home from the space.  I’d been of the opinion that anything beyond maybe 400 grit was only for nutcases.  (I was wrong.)

I started wet sanding with 220, and then moved to 500.  I was delighted and relieved that the finer grit and water actually left a clean (as well as smooth) finish.  But I could still see some file marks.  I understand the drill – back to the 220.  File marks gone – 500 – then 1000.  It was an interesting learning experience, and it was producing the results I’d hoped for.

So close

It was 6 o’clock Christmas morning, and I’d gotten thru 1000 grit wet sanding, and the knife was looking and feeling very good.  Better deal with the rivets before I do final polishing.  The bit of aluminum stock I’d turned at the space was uneven in diameter.  I’d gotten carried away making rough cut passes on the lathe, and forgot to check the size.  On the partial pass when it dawned on me that I should measure, the part of it not yet cut was actually very close to 0.25″, though the portion I’d done the last rough pass on was noticeably under that.  Overall the 2.5″ of rod had 3 different diameters.  I was going to have to hand fit each of the rivets.  Fine.

I drilled the epoxy out of the holes with a 15/64″ bit and started to play with the aluminum.  The thin part of the rod was quite loose in the holes.  I cut a piece a little longer than one rivet needed to be and banged on it lengthwise with a hammer and anvil.  Sure enough, it shortened and fattened up.  I was surprised that the ends were somewhat mushroomed rather than a uniform fattening.  But it fit better.  I’ll take it!  One down.

Almost2328I drilled the middle hole out to 1/4″ and started to fit the fattest part of the rod for the second rivet.  It was a little tight, and stuck.  I tapped the end of the rod on the anvil to knock it back out.  To my stunned amazement, one of the scales came off, with the rod still stuck in it.  I’d just been handling the knife a lot, sanding, dunking in water, and was very comfortable that it was now one piece forever.  But Not.

A little numb (and tired), I finished fitting the rivets, re-flamed the scale, and stuck it all back together (including the rivets) with 5 minute epoxy.  I have no idea how well it will hold up in real use, but I should at least be able to make something that looks decent for Lauren.  I had to keep reminding myself that this was essentially the first prototype, and I’d gotten much farther than with many first protos.  OK, if I have to start over (maybe with the Delrin?), I’ll know a whole lot more about how to do this.

RivetsIn2330After the epoxy set up, I carefully filed the rivets down flush with the surface of the handle, then (dry) sanded them so they’d (almost) pass a fingernail test.  It was sad to see the pristine surface the 1000 grit wet paper had left trashed, but now I had faith that the wet sanding would make it nice again.

So close – again

Back to the now-familiar wet sanding, and I could feel my technique improving.  This wet sanding stuff is OK.  I was up to 1000, maybe 1200, and it was time for our earlier than usual Christmas dinner.  I wasn’t going to be able to finish in time.  Boo.

After dinner I decided to show it to her in its handle-not polished, unsharpened, incomplete state (though it did have rivets).  Fortunately, to the eyes and fingers of someone who hadn’t been watching every scratch and rough place as it progressed from grit to grit, it looked and felt pretty nice.  Showing it at that point turned out well, and she graciously gave me full credit. :)  It also meant the self-imposed pressure was off, and I could take a very needed nap instead of running back down to the basement to work on it some more.  I should be able to finish it up tomorrow.

(a few days later)  I’d cut my thumb and didn’t really want to soak it sanding, so I took a couple of days off.  When I got back to it, I went back and forth and even went back to 500 with a sanding block to get the rivets more flush.  The problem was always with dark particles from the aluminum sticking in the scratches in the plastic and making it look dirty.  I ended up with 2500 and even some Novus #1, but the effect was still there.  It got less pronounced as the grits got finer, but the final answer was judiciously sanding/polishing around the rivets to clean it up.  It never got perfect, but it did get done.  I think burnishing it with a fingernail was the last step.


Nicks2362When I received the used knife, it wasn’t surprising to find the blade in bad shape.  It had several visible nicks in the edge, so some serious material removal would be needed.  I used that as justification to get a Smith’s 4 stone diamond precision (DFPK) sharpening system ($50).  Rods screwed into the stone holders keep SmithsSharpenerthe angle constant, and should keep the nice blade from looking like it had been sloppily sharpened.

As soon as I got it home I tried to use it on the little Victorinox knife I always carry, but the blade was too small to fit in the clamp.  I can come up with something to make it work, and I will some day, so this initial fail won’t count much against it.  (See update.)

(a few days later)  OK, it’s all done, and I’m pretty much a fan of the Smith system.  I started with the coarse diamond hone and took quite a bit of metal off to get the nicks out.  I had watched a bunch of videos on sharpening – mostly with this or it sister Lansky system – and found near religious advice about counting the number of strokes on each side and making sure they were identical, or even guys saying the guys advising 10 strokes on one side 10 on the other were wrong and it should be 1 on one side, 1 on the other.  When the grinding is measured in minutes rather than strokes, some of those comments seem extreme.

I went thru the coarse and fine diamond hones, trying to keep the grinding on the 2 sides balanced.  But I ended up using a fingernail to feel for the burr to decide which side needed the last few strokes.  Using a loupe, I found the last inch or so near the point was still very dull even after what I thought had been uniform work with both hones all the way to the tip.  Some more concentrated work fixed that pretty quickly.

The clamp did leave a mark on the Wusthof blade, as well as on the white (painted??) blade on the white paring knife it replaced.  I took the fine diamond hone to the clamping surfaces and found the likely culprit.  I doubt it will leave any more marks.  Too bad I wasn’t clever enough to do that before I sharpened the good knife.  Live and learn.

While I could feel and hear the difference between the coarse and fine hones, it was a startling step to the Arkansas fine stone.  It was clear that this was a polishing tool.  That too was very welcome.  My old Spyderco SharpMaker is nice for polishing, but the consistent angle plus wide range of grits available make the Smith’s a much more powerful and versatile tool.  And the white knife is really sharp as it goes into service.  (Several other knives got dramatically improved as well.)


(12/30/14)  I’m completely happy with how it cuts (as I expected all along), the handles haven’t fallen off yet, it looks acceptable to the casual viewer and feels very nice in your hand.  You can still see dark smudges around the rivets, and they don’t pass a fingernail test like the ones on the real knife do.  Careful inspection shows some irregularities at some seams, and you can Done+OtherKnife2388see epoxy in more than one place.  The color of the plastic is noticeably cooler than and not quite as bright as the handles of the real Wusthof White Classic it lives next to.  But it’s fully satisfactory and officially in service, the interim white paring knife has been retired (though sharp!), I’ve learned a lot, and the project is Done!

Note on flame treating polyethylene

Wow.  I read up a little about flame treating, hoping to learn whether it helped polypropylene as well as polyethylene.  The flame treatment’s action of increasing the surface energy of Low Surface Energy materials like PE and PP allows the epoxy to “wet” the surface better, and thus adhere better.  It’s not specific to epoxy – it allows the surface to be wetted better by any liquid.

Well, that should be easy to test.  So I took a polyethylene cutting board (cheap source of 3/8″ HDPE stock from Walmart) and played the flame from a propane torch over a strip in the middle for a few seconds.  When I ran water over it, the water beaded up and rolled off just as you would expect – everywhere except where I’d played the flame.  In that area, the water sheeted and wet the plastic.  It was completely unmistakable.  I tried it on a piece of the PP I’d made the handles from, making a video clip as I did, and the effect was very clear on that as well.  Here’s the clip.  Wow – it really works!

The one additional step I’ve run across (but never tried) is wet sanding the still uncured epoxy into the (flame treated) surface to get it even more intimately in contact.  I’d really like to do a decent set of tensile strength tests, with enough samples to get a handle on the statistics, a few surface treatment styles, and a few epoxies from HF 5 minute cheapie to G-Flex.  Some real experience with epoxying polyethylene would be quite valuable.  Might even be worth writing up for Make:.  Great – like I need another project on the list. :)

Update:  Sharpening small Victorinox

ClampingVictorinox2401I went back and found a simple way to clamp the small blade of the Victorinox in the sharpener.  (It sharpened up very nicely.)  A little scrap of thin corrugated cardboard kept the blade from sliding back in the clamp.  The problem (without that spacer) was that even if the clamp jaws were perfectly parallel with the blade taper, if the blade moved back at all it got looser, then completely loose.

ClampAngle2407The clamp is (very appropriately and even elegantly) designed to accommodate tapered blade spines.  The screw near the blade acts as an adjustable pivot for the clamp to fit various blade thicknesses/tapers.  ForMoreTaperedBlade2405(Yeah, it’s a single adjustment to deal with two separate variables, so some user savvy is required.)  The clamping action is done by the back screw.  It was annoying humorous to see redneck reviewers complain about not being able to tighten the front screw to clamp the blade.  Well, duh – that’s not what it’s for.

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

Cheap USBASP knockoff programmer

MyGoodCable1394I’ve been using the Arduino ISP programmer sketch, an Arduino, and one of my mini shield cables as my AVR programmer for a couple of years now, and that’s been pretty satisfactory.  There’s always an Arduino around, it works, and it’s essentially free.  I felt no need for a dedicated programmer.

But when I ran across a USBASP knockoff on Ebay for $2.29 (and of course free shipping) I couldn’t resist.  Unfortunately, it had the ‘other’ Atmel standard programming cable – the 10 pin version.  Everything I have – including Tiny85 boards – is 6 pin.  Fine – the cable shouldn’t be hard.

Pinouts6+10HackedCableThe pinouts of the two connectors are readily available.  But it turns out there’s a really nice Inventable on making such a cable, complete with an excellent picture that tells just about everything you need to know.  The author suggested using little scraps of wire to fill in the unused positions in the 10 pin header, which seems to work well.  Warning: this pinout doesn’t work with this programmer!  See update below.


My programmer came with a 10 pin cable, and I think I cut one end off and reused the connector for the 10-to-6 pin adapter cable that lives in the programmer now.  That’s not a great idea, since the insulation displacement clips in those connectors are really designed for one-time use.  But it was in keeping with the cheap programmer.  And it works :)  The 6-pin end is marked with whiteout on pin 1 as is my custom.

But avrdude didn’t like it

Unfortunately, the first time I tried to use it with avrdude, I got this error warning:

avrdude: warning: cannot set sck period. please check
for usbasp firmware update

Fortunately, that’s an eminently googleable string, and Google did not disappoint.  Many thanks to this nice article by Roger Clark that told me everything I needed to know.  The latest code comes directly from USBASP originator  Thomas Fischl’s site (thanks for the great work, Thomas!).  I’m running usbasp.2011-05-28.tar.gz.  The critical not-so-obvious tidbit is that there’s a jumper (JP2 on mine) that must be populated to reflash the ATMega8A.  Interestingly, you program it over the same connection that it uses to program its target chips.

ReprogrammingTheProgrammer2079Of course you have to have an AVR programmer to program it.  And I do :)   My old standby did a fine job of (re)training its replacement.

Once that was done (and the J2 jumper cut) avrdude stopped complaining, and the programmer seemed to work just fine.  I reburned a bootloader on an Arduino, and verified that I could check the signature on a Tiny85.  Great!

Not so great

While I was working on a hacked version of grbl for the W88 Shapeoko 2, I threw the new programmer in my bag since I knew I’d need it to burn grbl on the SO2’s Uno.  (Grbl overwrites the bootloader, so every time you want to install a new version, you have to have a programmer.  The grbl code is available as a hex file – which you need a programmer to install.  It’s also available as a library that can be compiled and downloaded with the Arduino IDE.  But that requires a bootloader, and you have to have a programmer to burn the bootloader.  So you need a programmer no matter what.)

I pulled out my new toy, plugged it onto the ICSP header on the Uno and tried to burn a bootloader.  Fail.  Couldn’t even read the signature on the ATMega328P.  WTH!?  Fortunately I had another Arduino, and scrounged a programming cable from the first Thotcon badge stuff.  That worked fine, so I was able to do the night’s grbl work.  But what was wrong with the programmer?  (It was my cable’s fault:  See update.)

When I got home, I tried the USBASP clone on a couple of AVRs.  It worked fine.  Back to Google.

It’s a matter of speed

That ‘sck’ referred to in the original error warning message is the SPI clock rate the programmer uses to clock data into its target.  And if the speed is too high, some chips won’t program (as was apparently the case with the Uno – but it wasn’t the Uno’s fault).  It turns out there are two ways to change that speed with USBASP.

The first way is with yet another jumper on the programmer.  On mine, it’s marked JP3.  When that jumper is in place, the programmer runs with a much lower clock rate.  It takes noticeably longer to program with it that way.  But at least it works!  Later observation showed that jumper slows the clock from ~1.5MHz to ~5KHz.

The other way is from the avrdude command line.  The -B bitclock option (you know – the one it thinks you meant when you screw up trying to set the -b baudrate) lets you specify it directly in μsec.  Avrdude gui avrdudess sets -B to 0.5 for 1.5MHz SPI clock and 20.96 for 32KHz.  Looks like USBASP only supports specific clock rates, and uses the one closest to what -B requests.

Anyway, after I put in a push-pull switch for JP3 (you can see it in the picture above) and connected the pins, the programmer talked to the SO2’s Uno fine.  (The slow clock jumper is not needed with a valid cable.  See update.)

I’m sufficiently sold that I bought a second one (cost me $2.59 this time!) so I can keep one in my box at W88.  Now that I know about JP2 and JP3, have the latest firmware and know how to make the cable, it won’t be hard to set it up as a reliable tool.

Update:  Signal level warning!

12/27/14  While trying to set up the USBASP to support PDI to reflash the 3.3V Xmega processor in my cool little $20 Xprotolab USB oscilloscope (see update), I ran across this excellent post by Ketturi Fox.  He warns that when you change the JP1 jumper from 5V to 3.3V on a version of this programmer with Lcsoft Studio on the silk screen, it changes only the Vcc voltage on the output connector .  It doesn’t change Vcc to the processor chip on the programmer, so it still puts out 5V logic levels – out of spec for most 3.3V chips!

My USBASP looks otherwise identical to his, so I looked at the SCK output level with JP1 set for 5 and 3.3V.  Sure enough, the output levels were 5V either way (though the Vcc voltages did follow the jumper as expected).

In addition to patched code for USBASP and avrdude for PDI support,  KF kindly OutputLevelFix2335provided a fairly simple fix to the output levels: run the onboard proc from the JP1 output by removing a fuse, adding 2 air wires, and cutting one trace.  I applied that fix to mine, retested the output voltage levels, and they now follow the 5V/3.3V jumper (as they should have in the first place).  Thanks, Ketturi!

So now my knockoff USBASP is even better.  Hmm – guess I better add that mod to the W88 programmer when it comes as well.

Update: W88 version is slightly different

TopView2370NewTraceCutOK237612/30/14:  The new one arrived today and I did the mods.  Although the top silkscreen said the same thing, the actual board layout was at least slightly different:  The trace feeding the regulator and the +5 side of the voltage select jumper that needs to be cut comes around the bottom edge of the board.  It’s circled in red.  No biggie; it just provides another opportunity to be righteously indignant about somebody changing something without changing the version number. :)  (The cut/patch circled in green was a mistake – oops.)  Otherwise, the firmware update worked, the output signal levels (as well as Vcc) follow the jumper, I made up another 10 pin to 6 pin cable, and all seems to be fine.

Update:  Corrected  cable wiring

My original programmer – with my original 10-6 pin cable - didn’t work with an Uno.  It was my fault:  the cable pinout was bad.  The very nice Inventables article chose to pick up GND from pin 4 on the 10-pin side.  That doesn’t work here, as they’ve used pin 4 for something else.  Here’s the pinout I ended up with – which  picks up GND from pin 8 and works.  Using pin 10 would have worked as well.

6-pin    10-pin
 1  MISO  9
 2  VCC   2
 3  SCK   7
 4  MOSI  1
 5  RST   5
 6  GND   8

CorrectIcspCable2413After I made up a new cable with that pinout, it worked on the Uno at 1.5MHz just fine.  I still need to make up another cable with the correct pinout for the W88 programmer.  (Done.)  The real question is why the first cable ever worked at all.

I found this schematic for a knockoff USBASP in a nice user manual put AC-PG-USBASP_03_LRGtogether by for a USBASP they sell.  Hats off to them for providing actual documentation.  That’s a nice way to take advantage of low priced Chinese stuff, add value, and provide a product.  I’m not certain this is exactly like the one I have, but it has the regulator and voltage select jumper, and pins 4 and 6 ohm out appropriately to CPU pins 31 and 30, so it’s pretty close.

Update: PDI programmer and more cable stuff

The firmware update nag messages for my Xprotolab Plain oscilloscope caused me to find Ketturi Fox’s excellent page on upgrading a knockoff USBASP for that purpose.  The AVR Xmega processor in that scope doesn’t support the good old ICSP programming interface, instead requiring the Programming and Debug Interface (PDI).  I boldly tried KF’s plan, but it involved 3 separate steps:

  • Update USBASP firmware to support PDI
  • Update avrdude to support PDI (at least on USBASP)
  • New cable for PDI

He provided source and strongly recommended recompiling both the USBASP and avrdude code (more trouble than I was willing to take), but provided binaries for both (with warnings).  I updated my USBASP (but not the W88 one), and it still worked for ICSP, so I hoped that was OK.  I downloaded his avrdude.exe, and despite his warnings that it had been compiled on a 64 bit machine, it seemed to work on my 32 bit machine for ICSP.  And how hard can the cable be?  I made up a cable from scraps from the ribbon cable box.

It didn’t work with the Xprotolab’s Xmega, with a not very helpful message about the target not responding.  I pouted and put it all aside.

While trying to figure out why the USBASP wouldn’t work with Unos (via ICSP), I stumbled upon evidence that the ground connection was somehow bad (maybe it worked if a scope ground was connected?).  Chasing deeper, the pin 4 on the 10-pin USBASP interface that the Inventables article used for ground is one of the serial lines, both in the Protostack schematic and Fischl’s original schematic.  (What are those serial lines used for?  This post on avrfreaks indicates “for future implementation”.)

So my (first) cable is bad.  OK – I verified that pin 8 really is ground, and set out to redo the 10-to-6 pin ICSP cable using that ground pin.  Unfortunately, while disassembling the 10-pin end (originally from the 10-to-10 cable that came with the programmer) I broke a part.  Digging around in the ribbon cable box I came across a 10-pin connector with a suitable length of ribbon cable already attached.  Great!  But on closer inspection, that ribbon only had 9 wires – pin 10 was empty.  Since I didn’t need pin 10, I went ahead and made a new cable with that as the 10 pin end and a hand-made funny-wired 6 pin on the other end (since I stock 6 pin connectors).  That cable worked (including with Uno).  So I’m in good shape for ICSP.

But then it occurred to me that the cable scrap I’d made the PDI cable from came from that same box.  Checking, sure enough – the PDI cable only had 9 wires!  I’d missed that, PdiCable2409and while making up the special PDI cable, I counted from pin 1 for some wires and from “pin 10″ for others.  Pins 7-10 were off by one!

(After another dumb mistake in counting wires from the pin 10 end) I moved the top 4 wires over by one and lo and behold – the hacked avrdude/USBASP could see the XMega32A4U on the Xprotolab scope via PDI!  I burned the updated firmware from Gabotronics, and the upgrade nag messages stopped.  I won!  Much of the payoff was that I could finally put the scope back in its box and put it away.  One more half-finished project not staring me in the face!

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