Log in

No account? Create an account
Previous Entry Share Next Entry
My Projects
Here are some of the things I am working on. Some of them I have been "working on" for years, but I tend to have the habit of taking things one step at a time, sometimes with large pauses between the steps. Sometimes I get caught up in yak-shaving. So perhaps here are some of my projects I've recently taken steps on, or are planning on taking steps on in the near future:

* My electronic concertina

The step I've taken on this one is curious. For this project, I need push-button switches of a particular size: English concertina buttons are spaced in a 0.5x0.4 inch grid, and the buttons themselves are about 0.25 inches in diameter. So I needed push-button panel mount switches I could fit together that close. I found them at Radio Shack, and bought enough a few years ago to make a first cut at the project. The switches were perfect, but my woodworking skills weren't. The project got shelved until I had access to a laser cutter (which I now do).

The news came out this week that Radio Shack is in serious trouble. Management says they need to close 1100 stores to be lean enough to be profitable, and they need money to be able to properly wind them down. Their creditors don't want to give them the money, and are leaning towards liquidation instead. As such, my switch supply is in jeopardy, and I need to either buy up what I need now, or find a 2nd source. Previous attempts at 2nd sourcing were unsuccessful (Radio Shack does not list manufacturer part numbers in an attempt at vendor lock-in), and I can't seem to find the switches anymore in their catalog. Panic (well, a slow, fuzzy, background panic. Perhaps mild concern) set in, and a renewed attempt at 2nd sourcing was made.

I found the switches, or at least, similar switches, on Digi-key, and ordered a few this week so I could do a more direct comparison. They seem to be a match. The one concern I have is that I believe the long-lost data-sheet on the Radio Shack switches gave measurements in inches, while these are pure metric. The two may not be completely interchangeable, but if necessary, I'll just buy all 48 I need from Digi-key.

The next step is to laser-cut an end-panel to put the switches in to make sure they'll work. I can do that sometime next week.

* The Ithaca Generator Membership management app.

This is my first serious foray into Ruby on Rails development, and thus also my first serious foray into Ruby development. Over the past two years, we've sort of had an ad-hoc membership tracking method at the Makerspace for dealing with membership intake, tracking, etc. There isn't one place people can go to see who is, and isn't, a member, and when members ask me how much they owe, it's a bit of work for me to find out. And other issues. This is an attempt to help solve those issues and reduce some of the paperwork and data-entry hassles I have as Treasurer, as well.

skitten keeps asking me when it will be done. It will never be done, as is the nature of software. But it needs to be good-enough-to-start-using soon, as we've got annual meeting planning to do this month. I hope to have it in that state by next Thursday.

* A planetary-gear based clock

We've got a laser cutter now at the Makerspace, and fine intricate cutting of things like gear-trains is a perfect example of stuff they do well. Planetary gears are also a but unusual and neat to look at.

Planetary gears are co-axial and have lots of versatility. So, why not make a clock?

So I've been researching, designing, drawing, cutting samples out of cardstock to see how well it'll work, and iterating through the process again. I've gone through designs where the teeth of all the gears don't mesh, designs where the gears mesh fine, but they interfere with each other when rotated, etc. I believe I have a working design in mind, but iterate, iterate, iterate.

One thing I haven't been happy with is my process for creating gear forms, which leads me to a bit of yak shaving...

* A Python program to generate DXF files of gears

Did I mention before that I've been learning Ruby? Well, add python to the mix. Drawing involute gears by hand is possible (there are youtube videos on how to do it), but tedious and error-prone. Not good for fast iteration. But there are few free gear drawing tools out there.

I found one on Thingiverse written in Python which I've been using. It can generate gears that seem to work OK. Small gears (in tooth count, not size) are a problem in general, and my clock needs two gears with an 11:1 ratio between them, so I settled on 88:8 (the larger gear, for other reasons, also needed to be divisible by 4). The 8-tooth gear would mesh, but wouldn't roll without bumps with the gears it needed. So I needed a better gear generator.

Looking around for a better gear generator convinced me of a couple of things: the problem with small-tooth-count gears is a problem with small-tooth-count gears, and few gear generators will solve that problem. Going to a higher tooth-count was the only real solution. And the teeth generated by the Thingiverse script looked very little like any of the other teeth I was seeing online. They were much shallower, and not as pointy.

The script is very convenient, though, allowing me to generate all the various gears I need quickly and off-line. So I dug into the script.

I didn't like what I saw. Standard involute spur gears have several parameters which define their shape. Some of these, like pressure angle and module/diametrical pitch, fundamentally define the nature of the gear. Some of these, like addendum and dedendum have standard values based on the other parameters, but are tweakable for special cases, and so on. The script didn't allow some of these to be set, and used non-standard defaults for others, with weird ways to modify them. I wasn't even clear if, given what I could set, it would actually generate gears which were technically suited for each other!

So I've started rewriting it. I've got a modified version which produces more standard tooth shapes normally, but screws up badly for some cases. Unfortunately, some of those cases are ones I need. So I'm working on it more.

I also modified it to produce more information. As originally written, it just generated the tooth outlines. Workable, but to make it more useful I always had to load the gear into my cad program and add additional stuff, like pitch circles, center marks, etc, to make it easier to work with in a bigger design. But now that I was modifying the source code, I simply modified it to automatically add this stuff at generation time, saving me the work of doing it myself.

At the very least, I'm learning a lot about the math of involute gears.

I nearly got side-tracked onto a yak-shaving expedition to make a DXF library for Ruby, but I stopped myself.