(It was about time I interrupted a never ending pile of drafts with something)
So, for a bit more than a month I’ve been attending a seminar on VHDL microcontroller design.
One of the workshops involved doing some simple exercises on eval boards. While the overall instruction set is small (fits on less than a page) the idea of programming and then assembling the sources using pencil and paper wasn’t very appealing at the moment.
It sure is a fun way to keep the mind fresh but given time constraints I couldn’t cope with such a long debugging cycle.
And… The obvious path was to build a tool.
I reused parts of python-lx200 because smart data structures and dumb code are nice. Most of this could be implemented with M4 too, perhaps for another code golf session.
A couple of years ago I’d probably tried to use Bison and Flex but doubt that I could manage something like this in just a handful of hours during the weekend.
There are some rough edges but as it is it supports labels, variable definitions and emits a valid IHEX file. I made a couple of dumb mistakes but they were really evident when looking at what Quartus made of the output file.
I’m quite proud of the result, I don’t know when was the last time I had so much fun doing a one off project, even if it wouldn’t be used anymore after the seminar.
After spending a great part of the other day refurbishing a nice chuck I set out to fix some of the problems on the drill press.
The whole quill tube has a lot of play but turns out there’s a set screw loose that just makes it better.
I chucked a short section of precision ground bar and set up a dial indicator while I ran the pulley with my hand. The run out was around two tenths of millimeter. Tried again after moving the jaws and applying more force but the result was the same.
Some fumbling and a big hit with a punch removed the chuck from the shaft. There were some patches of light corrosion on both surfaces.
Even so, a dial indicator on the drive shaft showed a wobble of a couple of hundredths. That’s more than good for a machine like this.
But looking closer inside the chuck the taper it had machining marks, like concentric ridges. I didn’t know better when I first assembled it and assumed they were for improved grip or something.
I started the motor and lightly kissed the shaft with fine sandpaper, first 800 and then some 1200 grit until it was smooth to the touch.
Then I painted it with a sharpie and installed the chuck again. This time I noticed it was kind of a loose fit and sure enough when pulling it down only some parts were inked.
I held a drill on the vise and with a paperclip and progressively fine sand paper removed the roughness inside the cone. Now there are ink spots more or less evenly distributed and the indicator registered about 15 hundredths.
Long time ago I was waiting for my turn to use the weighting scale on a scrapyard when I stepped over something curious.
Inside a sturdy chunk of mud there were the remains of an electric drill but what got my attention was the keyless chuck. I asked at the counter and got it for free.
It slept for some time on a shelf until I found it again cleaning. It resisted a civilized dismantling intent so I bathed it overnight in a mix of gasoline and paint thinner.
The front came out easily and looked good enough given it’s history except for a couple of spots with tool wounds and corrosion with significant missing iron. Seems it had been passivated on the inside.
There’s a two hole pig nut on the back and that one gave more trouble. I first tried with a round nose pliers and then a punch but it only made things worse.
I used a heat gun to clear any remnant of gasoline, hoping that it would loose the threads but no cigar. So I welded a piece of scrap and with that I managed to pry it.
Compared to the rest this part looked much better. I expected a ball bearing but there was only a hardened steel ring instead.
I padded a couple of beads on the body and after a bit of careful grinding it’s like it never spent time buried.
Now I only have to fix the horrible amount of run-out and play of the drill press.
Long ago I won a lot of used tools at an auction. Among them there was a small two ton jack.
Overall it was in fair condition but the lever was really hard to move, so I left it with other low priority things to repair.
Upon a closer look the smaller piston was bent. I chucked it into a vise and tried to loose the nuts but they were firmly stuck.
I cleaned the base with a rag and wire brush and then welded it to a piece of iron channel. I love 6010 rods. I also learned that whatever was used as hydraulic oil catches fire with ease.
Laying on the floor with one foot on it I used a big wrench and a hammer, this time succeeding in getting it apart.
It doesn’t seem like much but this small curvature made it almost impossible to pump:
I decided against straightening because with the tools I have at hand it would be very certain that I’ll scratch the good part of it and thus completely ruining the jack. So I cut the bent parts with an angle grinder.
Just by chance the parts that were badly out of shape are almost the same length as some ground rods I have from a textile machine.
The plan goes like this: drill and tap the remains of the original piston, make the rod hole bigger and use a long bolt to hold them in place.
I used the cutouts and some small welding rods from the trash to make a new cross handle.
I’m very proud of that weld, the ripples and profile are very smooth and consistent. But I had to grind it flush.
This is before the final assembly, now I can operate it with a single finger.
Quite a while ago (in the last century nonetheless) my idea of a productive day entailed writing a lot of code, measured by size in any suitable metric.
Lately I’ve been writing less in volume but I realize that I spend a greater time thinking about the problem at hand as a whole and that it happens mostly in the background while I’m doing something else. By the time I’m again at the workstation everything falls into place.
Also, when stepping aside and contemplating whatever I engineered I can’t help to feel anything but pride. Perhaps except for the documentation I build things from the get go thinking of what I would like to have were I a library user, on terms of building blocks.
During the last two weeks I built a library to parse a protocol called LX200 used to control telescopes and I can’t be happier with the result (for now it’s at https://github.com/telescopio-montemayor/python-lx200 ). The first one was a roller coaster, due to some other issues I went back to a night owl schedule and I can’t remember when was the last time I had such prolonged and intense periods of flow. I also taught myself asyncio.
It’s terse, concise, and (mostly) well structured. My former self would’ve made a mess of a state machine tied together with pages of if statements that worked, for sure, but was a pain to extend or correct. Of course looking down the path and leveraging years of experience this things seem obvious now.
A couple of days ago I started to learn FreeCAD, mostly for its FEM analysis mode and to build a couple of construction plans.
I made another part of the cable trays for our comms closet. Initially I wanted to use FreeCAD for that but at the end it was faster to do a bit of trig and sketch the cuts on paper. It’s held in place with a couple of rivets. I also added a layer of pvc to shield the cables from the metal edges. Fits like a glove.
I also started to build a steel support for one of the walls. We made a big opening for cables and I’m a bit uneasy about the lack of support.
These doors were waiting a long time to be installed. Now this looks a bit more professional than before, except that on the opposite side there’s a chunk of wall missing and a lot of dust on the new hole to feed another cable tray.