Category Archives: DIY

Spiffchorder Progress

As I mentioned when the parts arrived, I recently decided I wanted to build myself a Spiffchorder to play with, and, more generally, play with the VUSB Stack, which provides software USB for most AVR microcontrollers, using a few cents worth of extra passive components. This seems to be an excellent generic solution to the “Modern computers don’t have hobby-accessible I/O” problem for most applications. I’ve actually been using a VUSB device for a while since my usbtiny AVR programmer is an ATTiny2313 running VUSB with some additional support chips and code.

When I ordered parts, Newark was out of suitably-packaged ATMega168 chips, and their larger (RAM/ROM), pin-compatible sibling the ATMega328p was so close in cost I would have ordered them anyway. There is a warning(#8) about -p suffix chips (stands for PicoPower, meaning some additional power staving features) and VUSB, but it seems to be a simple problem with naming conventions in the interrupt vectors, and is fixed in recent versions.
I’ve been grabbing an hour here and there to put it together over the last week. So far, I’ve already spent some time on one of my favorite activities…
spiffwork_sm.jpg
which produced a nice tight board (The back isn’t quite as neat, and the socket I ended up using suuccckkkks)
spiffboard_sm.jpg
which, as far as I’ve discovered, had only one assembly error (the pull-up network on D- was between ground and… ground because I counted wrong), which was easily remedied.
While I was assembling I also put together a half-assed first approximation keyboard to test with
spiffkeys_sm.jpg
Which will eventually be upgraded… I’m thinking something flexible that can be clipped to the outside of my left pants pocket, or flopped on a flat surface such that the clip maintains the curvature, but I really just want to play with it and see how (un?)comfortable it is to use a chording keyboard. Maybe I’ll get bored and build a key-glove, those always look fun (and useless).

Now for the real problems… even after I fixed the wiring glitch, and touched up the code (minor fixes to make it recognize the 328p and set the fuses correctly), I wasn’t getting anything when plugged into USB. I borrowed a 168 from another project (and transparently swapped in a 328p there) to test the vanilla code, and it resulted in a board that generates a stream of errors like

usb 2-1.1.3: new low speed USB device using ehci_hcd and address 15
usb 2-1.1.3: device descriptor read/64, error -32

when plugged into any of my various Linux boxes. I then decided to upgrade the VUSB version (the one the 0.98 release is built against is truly ancient), which only took a few minutes of tampering to set up the usbconfig.h (and Makefile) to work with the Spiffchorder sources and IDs. Unfortunately, this only fixed the 328p problem… it now does exactly the same thing as the vanilla 168 version, and produces a string of USB enumeration errors when plugged in.

My understanding is that -32 errors are usually something to do with devices that aren’t correctly handled by ECHI (USB2) mode controllers, but a device that requires you disable ehci mode on a modern computer is pretty much useless, and it doesn’t appear VUSB should have that limitation. This is my current working tree, it seems to be at least as sound as the distributed version; when I get it working I’ll ping the original author about the update, and replace these if it turns out to be a software problem. I’m going to hook it up to some instrumentation on campus tomorrow to see if I can find the problem, I suspect something screwy with the voltages on the USB Data lines.

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

SC’09 Video

I did a taped group-promotion and demonstration of the MOG Maze at Supercomputing last year, but we were never able to actually find the video posted online. I was doing an unrelated identity-management search while working on Ph.D. applications, and … here it is at techinsight.tv, with somewhat illogical search terms. Embedded below.

*obligatory listening-to-recording-of-own-voice cringe*

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

The best kind of box

newarkbox_sm.jpg
is the kind full of TOYS (or, well, toy parts).

This order has some bits and bobs (optoisolators, limit switches, etc.) for the never-ending milling machine project, a couple spiffchorders worth of parts (more on that later), and some spare ATMega328s, because they seem to be a universal solution to “medium” microcontrollers.

This is the first time I’ve made a personal order through Newark, their “We won’t tell you exactly how much this will cost to ship until you’ve agreed to pay” policy is more than a little customer-unfriendly for small orders, and their website is the furthest thing from user friendly… I AM an electrical engineer, and picking what I want there is a challenge. I made a couple mistakes in this order: I grabbed 15.24 mm (as opposed to 7.62 mm) 28pin DIP sockets (just not reading), and apparently not all 12×12mm MCDTS2 switches can accept the caps described as “Switch Cap; For Use With:12×12mm MCDTS2 Series of Multicomp Tactile Switches; ” because the ones I ordered sure as hell don’t have attachment points for the covers like the picture in the datasheet.

Otherwise, very satisfied. Low price, massive selection, and fast ship. I think I’ll add them to the list. For the curious, my parts usually come from DigiKey, Sparkfun, and AllTronics, which are broad, easy, and cheap respectively, although other vendors don’t have the cachet of the little red Sparkfun boxes.

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

MPW Environment

I just set up a BasiliskII disc image with System 7.5.3, MPW, and related goodies. It seemed like fun to have a vintage 68k Mac development environment to play in…
sys7mpw_desktop.png

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

T60p Repair

I opened up my old T60p for some repairs the other night, just posting to share what I did now that I’m reasonably certain it worked. The objective of this project was to do something about the relatively high temperatures and annoying buzzing noise coming from the cooling system. This particular machine is on it’s third cooling assembly (the assembly was replaced twice under warranty), and based on comments on from other owners, thermal issues and rattling fans are endemic to the model, mostly thanks to a few poor design decisions.
The surgery:

  • * Oiled (I used BSB Speed Bearings Lube, which is probably Sililcone oil with some adulterants to make it Shear thinning) the fan assembly, basically following msb0b’s guide. The only major deviation is that instead of cutting the aluminized tape, I just used it as a hinge and folded back the jacket. I also note that there is some foam insulation tape on my heatsink assemby, presumably added in later manufactured asssemblies to help with vibrations.
  • * Bent (compound bend) the heatpipe to lower the GPU section about 2mm, as some of the folks in this thread suggest. Basically, I put some thermal paste on the GPU, and bent and reseated until the contact area was appropriate. I was a little afraid bending the heatpipe would harm it (efficiency wise), or crack it from metal fatigue, but nothing was damaged and the contact is better. This is a logical fix- those thermal pads never provide very good conductivity, particularly where they are reasonably thick.
  • * Replaced the CPU thermal compound and GPU thermal pad with Arctic Silver Ceramique (my favorite for almost all thermal-conductivity needs). I left the thermal pad on the north-bridge intact, as there don’t seem to be any major thermal issues with that component, and the pad over it wasn’t damaged.

Based on some cursory tests, the system is running cooler (Both overall and CPU-GPU delta) than it did even with a new cooling assembly. Idle, I’m seeing 43/41c (5-10 degree reduction), and a half-assed “Stress Test” running SupCom for a few minutes only produced temps in the low 80s, with the GPU about 5deg hotter than the CPU– my recollection is that the GPU tended to be in the high 90s under similar conditions, and the CPU in the mid 80s. The big win is on noise; the irritating rattle is gone, and the fan is at most a tiny bit louder than a new one, based on a procedure I should be able to replicate for free.

The wonderful thing about Thinkpads is that they are designed to be mostly user-serviceable (Lenovo cooperatively provides the service manuals as PDFs online, and even allows FRU orders), and they are very common machines, so there are lots of other people playing with them and sharing their experiences, making things like Linux support and after-market mods particularly well explored and documented. Even with the slight design issue, the T60p was a solid machine for 3.5 years, and I far prefer serviceable and working well to being unserviceable and being “slicker… until it dies”. Speaking of vendors of unserviceable hardware, I’m considering setting it up as a hackintosh (at least on one partition) just for fun when I get some time…

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

HPDL Displays

I was fiddling with an old Logical PROMPRO-8 PROM programmer in the lab I teach in while waiting for one of the students to do something which required intervention, and noticed it had some really neat old character displays on it:
hpdl_sm.jpg
They are absolutely fucking captivating looking in person, in that “It isn’t clear what kind of light this is” sort of way, especially with the red filter lifted off so the dies are visible under the lenses. I was interested enough to closely investigate and make the unit go through some of it’s functions just to figure out what the displays are capible of, then asked the great google god to identify the design. I’m reasonably certian they are Hewlett-Packard HPDL HP-2416 displays (or one of their siblings), which are among the earliest single-die segmented LED displays, before the familiar (7- 14- or 16-) block arrangements became standard. Each package has four tiny 17 segment digits under individual epoxy bubble lenses, and an internal ASCII decoder, character generator, and memory, which should make them really fun and easy to interface. It looks like the division of HP that made the parts went to Aglilent when HP dismembered iteslf, and then was spun off as Avago with most of the other semiconductor buisness in 2005, although Litronix may have been making clones/second-source compatible parts in the 1970s as well.
…I sort of want to find some (which would mean NOS or pulls) to build a funky clock or RSS gadget or other useless status display, just to marvel at them. Sadly, it looks like that would be prohibitively expensive, as the later production drop in compatibles are “boring” 5×7 grids with similar capibilities, making originals exotic enough to be on the order of $20 a piece.

Posted in DIY, OldBlog | Leave a comment

Summer Projects

I haven’t been posting much lately, most of my time has been sucked up by a variety of summer projects, both personal and school related, and most of them haven’t been terribly externally interesting or photogenic.

Several of the projects derive from the research group inheriting a heap of hardware from the departure of the last member of UK’s Cluster Fluid Dynamics group, which we are currently in the process of sorting out. One part of the heap is 30 little Dell SX260s (cute li’l SFF Pentium 4 boxes from 2003 or so), and some associated server and network hardware. I’ve spent a couple afternoons building and configuring a portable (ish) cluster from the pile, and the result is PIK (Pentium/Intel Cluster in Kentucky, following our current naming scheme):
pikfront_sm.jpg
And check out my OCD wiring job:
pikback_sm.jpg
Unfortunately, six of the small nodes and one of the servers seem to be dead, all apparently due to bad capacitors… which is sadly entirely unsurprising on for hardware from around 2003. There is still a discussion if it would be worthwhile to replace the caps, it is apparently not too difficult on these motherboards.

On another front, I still haven’t managed to get my 500-some photos from Vienna sorted out; I think only a few of those will end up getting posted as they relate to other things — the urge to just shoot with a little digital and a large memory card creates a really unmanageable number of photos.

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

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