Category Archives: DIY

Drive Nuts

Another bit of progress on the CNC project: Better drive nuts!

The design is attempting to avoid expensive, difficult-to-source, or chicken-and-egg problem machined parts. The biggest issues because of that policy come from the couplers which attach the lead screws to the motors, and the drive nuts which attach the axes to the lead screw. Because my leadscrews are 3/8-16 Unified Coarse thread, there isn’t a “proper” solution to the problem, as any professional mill would be using Acme or Ball threads for the leadscrews. Therefore it has been hobby engineering all the way on those parts.

The current couplers (with which I am becoming ever more unsatisfied; they slip badly on direction reversals) are constructed by seizing a 3/8” coupling nut onto the end of the rod, drilling a 1/4” hole through the rod/nut assembly, and drilling and tapping a hole for a set screw into the side of the nut to grab the flat of the motor shaft. Because the frame won’t accommodate Lovejoy-type couplers (the canonical solution for such things), I suspect the eventual replacements may look something like the nested fuel line couplers this and other similar designs employ. I don’t like the lack of stiffness in those configurations, but things don’t appear to be tightly enough aligned for the inflexible couplers, and the slippage problem will be a show-stopper for actually milling with it.

The old solution for the drive nuts was roughly-bent steel brackets, wrapped around coupling nuts. The theory was that the steel would be springy enough to pull things into alignment, and malliable enough to beat, bend, twist, or otherwise adjust the fit. In actual fact, no amount of adjustment could get them to align perfectly, and the springiness wasn’t enough to prevent them from contributing to the axes walking in their rails. That design was eventually abandoned, and no good alternative came to mind, so one of my collaborators and I performed one of the best techniques for mechanical problem solving; we wandered around a home improvement store until we found parts to make something that would work. The solution? — Pairs of Tee nuts (the kind with screw holes, not tacks), attached together with machine screws (adjusting the tightness of the screws controls the preload, which gives free anti-backlash effects), mounted in blocks of Trex (A plastic/wood fiber composite material), which is cheap, easy to obtain, and works similarly to HDPE (Which is to say, wonderfully. Think soft, forgiving wood with no grain). These seem to be better than the old ones, and (possibly with a bit of shimming) workable for a usable mill.

Check out deez nutz:
Rough-fit Outside the block (that is a bar of Trex stock next to it):
drivenutopen_sm.jpg
and one nut complete and sitting in place:
drivenutcomplete_sm.jpg
There is a fair amount of fiddly fitting and drilling to putting those together, but nothing too awful. The machine screws have been trimmed and the edges of the block dressed a bit with a file after the other one went together, so they look pretty solid. In addition to better nuts, the other good discovery is that I suspect that Trex will make excellent, low cost, easily available material to mill objects without any particular material constraints from once the machine is working, I just wish it didn’t have tacky looking faux-woodgrain molded into the stock.

Posted in DIY, General, Objects, OldBlog | Tagged , | 1 Comment

Cherry Jam

One of the better parts of having old DIY-ful hippie types for parents is getting do nifty things that people just don’t do anymore. One of the better examples is the yearly ritual of making jam from the North Star Cherry tree in my parent’s front yard. The tree was productive this year (and not so much last year) so we ended up making somewhere around four gallons of the stuff over two days last weekend.

Onward, to Jam Making pictures:
Pitting cherries, which is hand-staining and labor intensive:
pitting_sm.jpg
To make double-batch sized vats of cherries:
cherry_sm.jpg
Which get cooked down, sweetened, and thickened to make jam:
jam_sm.jpg
Which is then put into bottles:
jambottle_sm.jpg

Way better than the store bought stuff, and fun (if hot, tiring, and messy) to boot.

Posted in DIY, FoodBlogging, OldBlog | Leave a comment

DIY Molex Y-Cable

diymolex_sm.jpg
I think this thing might hold the record for the most times I used the phrase “Don’t do this” in a single fabrication.
It’s a 20-pin ATX Y-cable (for running two motherboards off a single power supply), built from two dead power supplies and a dead motherboard. The cables are available commercially, and if it works out will be ordered in bulk, but the research group needed a quick test cable, and all the necessary components were just sitting there in the dead parts pile…
The plan for these is to double up old Athlon (Thunderbred and Barton) machines on single power supplies, to reduce the number of power supplies (and total power budget. Related facts: 1. Switch mode power supplies are way more efficient when heavily loaded. 2. Power supplies and fans are by far the most fragile parts on disc-less machines) on a 128 node cluster built from scraps from KASY0 and some machines we recently inherited from the Computational Fluid Dynamics group in Mechanical Engineering. This cluster will be for testing network topologies (particularly Fractional Flat Neighborhood Networks), so the important thing is that it have lots of independent nodes, and not much else.

Posted in Computers, DIY, Objects, OldBlog, School | Leave a comment

User Time Logged In

A lab I sometimes do computer work for asked for a mechanism to account how long each user spends logged in on some *nix (Linux and ancient Solaris) boxes. I don’t know of a “proper” solution, so I did things the UNIX way: I wrote a stupid little awk script that parses the output of last -R to get a minute total. This isn’t a terribly clean or safe script, but it does “just enough” input sanitizing, and seems to work. Some (Linux) boxes I have access to appear to clear/archive/rotate wtmp on boot, so it doesn’t help on those.
Does anyone know of a better way to do this? Is there some utility I’m forgetting? Is this script dangerous in some way I’m not thinking of? Script follows:

#!/bin/sh
last -R | 
awk '
{
	user=$1;
	uselength=$9;
	
#	Check line format
	if (NF != 9) {
	print "Line " NR " discarded, " NF " entries. (Reboot messages, etc.)"
	}
	else if( $NF == "in"){
	print "Line " NR " discarded, still logged in."
	}
	else{
	
	logins[user]++;
# These times are (Days+Hours:Minutes)
	parsedtime=0;
	gsub("[()]","",uselength);
	split(uselength, sptime, "[+:]");
	parsedtime+=sptime[1]*24*60;
	parsedtime+=sptime[2]*60;
	parsedtime+=sptime[3];
	logintime[user]+=parsedtime;
	}
}
	
END {
	for (i in logins) {
		print i " Logged in " logins[i] " times, for a total of " logintime[i] " minutes";
	}
}'
Posted in Computers, DIY, General, OldBlog | Leave a comment

The Ugliest Little RepRap Stepper Driver

I’ve been playing with my CNC Mill project a little bit in some “spare” time(= time I should be working on things for school, but can’t focus), and just got my third RepRap Stepper Motor Driver v2.3 working after some replacement parts and judicious green-wiring.

I bought three drivers as kits, because they were cheap and well regarded, but the boards are largely surface-mount, and the first attempt to populate them didn’t go well, thanks to distorted lead frames and UK’s shifty surface mount equipment. With a little bit of hand soldering to fix lifted pads, I got two of the three boards going, but one of them …ignited… when tested because of a lifted ground on the main IC. The bad board has been sitting in it’s bag waiting for me to do something about it for most of a year now, and the other night I realized I could probably remove the chip, order a replacement Allegro A3982 from one of the electronics suppliers for a couple dollars, and try again. Pulling the chip by hand lifted four pads, but left it looking workable, so I picked up a pair of spare chips from DigiKey (who, for a pleasant but startling change, only charged me a very modest shipping fee).

My replacements arrived earlier today, and I couldn’t resist taking a crack at it. As the title suggests, this resulted in a UGLY but working driver board (click for larger):
redwire_sm.jpg
Check out the run of magnet wire across the bottom of the board, up through a via, and then under the pad it goes to. That is some quality fabrication (also, I checked, that path never carries much current, so magnet wire is OK). The other fixes are all relatively easy (and large-current) runs across one side of the board.

This time, instead of catching fire and destroying an IDC cable, connecting power and my supremely ghetto-rigged test circuit (a 555 timer set up to generate a pulse train on step, and some buttons and switches to control direction and enable) resulted in a smoothly turning motor. Success. I’ll probably only have to make one more small electronics order (remember that melted IDC cable…) and all the drive electronics will be together to run it from a EMC2/Linux box.

The hangup now is the connections between the axes and the drive nuts: my old bent-steel-sheet brackets were not square enough, and were causing walking and uneven tension and all manner of badness, but I haven’t managed to design a replacement I’m both satisfied with and able to build/source. If anyone has an idea for mounting a 1.25” long, .56” flat-to-flat hexagonal coupling nut to a metal panel 1” away from the rod the nut rides on, which will take large lateral torque and remain square to the rod, let me know. I have a half-baked plan with some modified heavy L-brackets, but there must be something better.

Posted in DIY, Electronics, General, Objects, OldBlog | Tagged , | 1 Comment

NAK Build Party

buildnak.png
My research group will be building our new (smallish) research supercomputer NAK:(NVIDIA Athlon XP cluster in Kentucky) on Friday, April 16, 2010 from 10A to 4P in FPAT672. UK students and other interested Lexingtonians are invited to come help with the build, so if you would like to play with the guts of a big cluster, you will be welcome at the (re)Build Party.

If you can come up with a better phrase (with a better acronym) for the “NoBuPAG” principle discussed in the machine description, that will be really welcome too.

NAK will provide a testbed for continuing research into building tools for performing useful compute work on GPUs. It presents a different model than the conventional GPU as an attached co-processor to powerful compute nodes model, which has thus far proven impractical to program for. Instead, NAK treats the nodes as “Nothing But Power And Ground” (and a network interface…), and will be running all of the heavy compute on the GPUs themselves, through a mechanism extended from our MOG project.

Posted in Announcements, Computers, DIY, General, Objects, OldBlog, School | Leave a comment

Gettin’ my Buildycrunk On

4371527607_34f777200c.jpg
I’m getting my Buildycrunk on, so are all these people. You should be too.
I’ve seen coding, grading, knitting, antenna fabrication, card games, board games, and all kinds of awesomeness.

Posted in Announcements, DIY, General, OldBlog | Leave a comment

Buildycrunken #2

Collexion (check out the bitchin’ new webpage, courtesy of nuex), along with our friends at Third Street Stuff and Coffee, are holding Buildcrunken #2 on the evening of Feb. 19th at Third Street Stuff.

Last time was amazing, and many excellent things were accomplished. Everyone rest up, come up with something to hack on, and show up; a grand time will be had by all.

There will probably be more detailed information online shortly; I am slightly out of the loop because I missed last week’s Collexion Lunch (due to allergies), and this week’s Wednesday Collexion meeting due to to sticking around, keeping the lab open, and helping some of my kids finish up tedium lab week in EE281 (where we make the kids design and build something that takes at least 4 TTL chips, by hand).

Posted in Announcements, DIY, General, OldBlog | Leave a comment

Reference Manager

I’ve decided I need to start using a reference manager utility. My old system of keeping a text file full of BibTeX entries in a folder with pdf’s, with an extra “file:” field for the file name of the document is a little crude, and starting to break down as I get large piles of documents for some topics.

Because my PSY562 class this semester is largely using readings from HFES journals, I’m going to use the pile it generates as a testbed to find something I can use generally.
My requirements for a reference manager include:
* Accepts and Emits BibTeX Citations
* Capable of linking citations to files
* Storage format which is (roughly) human readable
* Easily transported database
* FOSS
* Works on Linux
* Limited dependencies (I’d prefer to avoid Java or Qt)
* Works without network connection

The most widely used solution, EndNote, fulfills very few of the above (plus, interoperability dickishness, but fortunately there are lots of projects to make reference managers floating around the ‘net that seem promising. Unfortunately, most of the promising ones are dead. The best of the actively-developed bunch seems to be Referencer. Referencer is a C++/gtkmm app (so it plays nice with my XFCE4 environment), with a Python plug-in system (Should I ever choose to use it), reasonably limited ties to the various non-GTK gnome libraries, and stores it’s records in XML. It looks remarkably close to what I want, and has some features I didn’t know I wanted (preview icons, tags) that are pretty useful. I think it’s going to be a keeper, but would love to hear what other people are using.

Posted in Computers, DIY, General, OldBlog, School | Tagged , , , | Leave a comment

Kentucky Touch screen / Natural User Interface meeting

Earlier tonight I attended a sort of open-access seminar on multi-touch user interfaces, catalyzed by an EE senior design group working with Awesome Inc. to create a large multi-touch wall for the outside of their space. The attendece was wonderfully diverse on account of the announcement hitting the professional, academic, and hobbyist communities in Lexington (more events need to propagate like that!). Attendees included several members from the Lexington IEEE chapter (co-opted as a chapter meeting), a number of local creative types, many students from UK, and several other interesting folks.

The discussion centered around the CCV effort of the NUI group, and was fairly solid, although I would have appreciated a bit more technical depth. I actually ended up dominating a couple conversations on account of being better read in the area than most of the other attendees, and don’t consider myself particularly well-versed in multi-touch display technology. I still don’t really understand TUIO, I was rather hoping someone there would be able to explain it.

One small downside, I still get the uncomfortable feeling that everything said or done at Awesome is being sucked in and analyzed as a potential source of financial gain. The culture there always seems exploitative (or at the very least commercial) instead of communal, which is very unfortunate, as they have set up a nice space, and seem to be attracting interesting events.

I really am attracted to open-access, discussion based topic seminars like this, and would love to see more of them happen. There are lots of good efforts to bring that sort of thing to Lexington, from a seminar series Dr. Finkel is attempting to arrange this semester (based on students and faculty giving short presentations on neat things they have found), to Collexion and Dorkbot’s regular meetings. This is not the first time I’ve been after this sort of thing either, for a while the UK LUG was running some decent events in this vein, in particular I remember a successful LUG event on PyGTK, but the LUG is several years defunct…again…because those of us who were active didn’t have time to keep it going on our on (and be students), and no one else stepped up. I think some of the short-form lecture series like ignite have had events here as well, but those have never seemed as useful to me.

Posted in Computers, DIY, Electronics, General, Objects, OldBlog | 1 Comment