2026-02-22
TL;DR: I partially built a second octave module and updated the host-side code to drive more than one octave at a time. To my surprise, everything kind of worked as I expected.
There isn’t much to say about the octave module build process because I’ve covered all the components individually in previous posts. Nothing really went wrong during assembly. It just takes a long time. I’ve listed the general procedure below.
I started writing that list thinking it wouldn’t be that long, but I guess there’s a lot to it. Each individual key’s hardware takes maybe an hour or two of attention from start to finish, but there are just so many keys that the time really adds up. This has made me a lot less excited about the project lately, but I intend to spend the next period or two working on making the system better at actually making music instead of expanding it further. Maybe that will help me reset.
I was planning to build a complete second octave, but I ran out of diodes halfway through. I’ll need to order more, although if I get desperate then I can salvage some from previous boards. I also forgot about the sanding steps on both the plunger extensions and the solenoid supports, so I’ll need to do that too. (That’s part of why some of the keys are sticking in the video above.)
The host-side code also got some improvements this week. I’d previously just been using it to control a single octave module with a hardcoded index, but now it can handle all eight, at least in principle. I was happy to find that it worked with the second module right away with zero debugging. Rust boosters like to say that “if it compiles, it works”, and I suppose this is an example of that. In the future I might refactor the code to use a thread for each module rather than hitting them serially, but I kind of doubt that will even be necessary.
I’m not looking forward to repeating what I did this week six more times—to say nothing of the fact that I already had a dozen solenoids already wound. In total I’m probably looking at 100 more hours or so of this kind of work just to build out the keyboard. I’ll have to be careful to spread that work out over a long period so I don’t resent it too much. Fortunately, I think now that I have more keys to work with, I can have some fun working on key dynamics to really dial in the driver logic.