A powerful little music synthesizer with a classic look!
I have been busy and negligent in writing up my progress, but I wanted to show that I did finish the third test box, so here are some glamour shots of it. It looks pretty, but the internals are pretty hacky. Keyboard is still kinda not worky, but I'm making progress when I have time to work on it. I'll be doing more in the new year!
During the last month-and-a-half of my residency at the Supplyframe Design Lab, I didn't write many updates to my Hackaday.io page because I was actually working hard on the project and didn't have time for much else. So I am now going back in time and reconstructing events for your edification.
I always knew that I'd have to find some way to produce the keyboards, but this project is too small to send out to some company for injection molding. Molds seem to be $6-10k each, and I've got at least 10 plastic parts! So, I'm hoping to find a DIY solution. Fortunately, fellow Design Lab resident Bruce Dominguez is working on a project that is almost entirely about injection molding, so perhaps I can ride on his coat tails a bit.
We had a conference call with a fellow who is knowledgeable about injection molding, and learned some things.
Now, the design lab does have a Tormach CNC milling machine that we could use to make molds, so the idea of DIY injection molding is a distinct possibility!
There is also the possibility of making molds for resin casting as an alternative. I could make nice prints using the fancy Objet printer in the lab and then make molds from those to resin cast. I have questions about the finish and quality of that type of material, and not really any time to research it, so it will have to wait until I leave the lab.
After that call, Dan tried to convince the bosses at Supplyframe to get us an injection molding machine for the Design Lab, but it was declined. But my eternal cry is "I know a guy!" and indeed, I knew of two places that had some sort of injection molding machine that was possibly available for our use. One is well known to me, MAGlab in Pomona has had a machine for years that they never had running.
Also, Hexlab in Northridge has an even bigger, more elaborate machine.
I brought Bruce over to MAGlab, and we took measurements and rubbings of the holes for attaching material to the MAGlab machine. It turns out that Trent from MAGlab actually used to work at a company running that machine and had a wealth of information for us on injection molding. I'm very optimistic about eventually getting his machine running and making parts on it! Bruce thinks it will take a long time to get it to work.
So I went to HexLab and talked to Mike about their machine. Well, I tried to.
What I got, instead of a look at the machine and a tracing of their fixturing, was a detailed analysis of my business plan for the NanoEgg synthesizer, a critique of my production ideas, my pricing, pretty much everything. He suggested to me that I could have everything made in China for far less than I anticipated, and his company would be willing to consult for a very reasonable rate...
In other words, I got a sales pitch and then got booted out the door with some prices for "further consultation".
I dunno, didn't sound right to me. If somebody wants my business, I don't pay them for the sales pitch. They can make and present a plan to me with estimates and "not-to-exceed" prices. Maybe he is right on all of the things he said (or maybe not?), but it isn't a very good sales pitch to tell the customer that his product is doomed to fail, unless this is some kind of scare tactic?
The whole thing made me feel really depressed for a couple of days, but it caused me to think more about my company and what I am trying to do. I know the...Read more »
I've had lots of adventures in constructing the 2nd prototype of the NanoEgg synthesizer box, but I've been too busy working to write them up. I'll be sure to backtrack and cover those later, but for now, here are some glamour shots of the 2nd Prototype!
Next revision will have straighter keys, I promise!
Currently has screws sticking out of the bottom. That may change, eventually.
The rotopod in the back rotates!
More to come!
So, with a lot of help from the kind folks at Autodesk, the keyboard model was finally recovered in a way that allows it to be edited again. Yay!More test prints were made.
We tried a set of keys on Bruce's Make-It Pro. He is a whiz at 3d printing and has his machines impeccably tuned, so those prints came out a bit better than the others. This is hot off the press, so it still has a lot of sprue, but compared to the ones from the Rostock Max V2, it is very clean. This one looks like it is made of spiders!
After many experiments with using cookies and various jigs to print the black keys in two parts, I decided to print the keys right side up with support material. Here it is used from the bottom to show the support structure that Bruce was able to set up. I think he was using Cura for that, although we did play with Simplify 3d a bit for that.
Here is an earlier print on the Rostock Max V2, using Matter Control to generate the G-Code. The support material is a lot more solid....
When the 3d printed objects come off the press, they are very messy, and I have to work at them with a knife to remove all the excess plastic (aka sprue) to make a smooth-ish object.
Back to the print from Bruce's machine, I accidentally broke a key off in the process of trying to remove the support material, so I had to glue it back together. It turns out that superglue is actually the best thing for PLA plastic!
The keyboard was designed with small screw holes inside so that the white key and black key parts could just be screwed together. No more messing around with 3d printed cookies...
The keys from Bruce's printer were a tiny bit shorter than the other printer for no apparent reason.
I also did some experiments to see if the finish could be improved. With ABS plastic, one can smooth the finish by placing the model in a acetone vapor bath. Acetone is in fingernail polish remover, so is reasonably safe to work with. With PLA, the same thing can be accomplished with Tetrahydrofuran, but since I didn't have any of that, I had a different idea. Since the models are formed by heating plastic to a melting point of about 210 degrees F, I thought that by treating the model with heat, I could melt just the outside a little bit and make it smooth.
While heating can make it a little bit smooth, it also causes the model to deform quite a bit!
I had a full keyboard done in the wrong size, so I tried that with the heat treatment. As you can see, the keys bent quite a bit, long before the surface finish had any noticeable change.So, maybe not heat treatment...
Parametric modeling has so very much promise. Change a single value and your whole model updates perfectly! What's not to love!
So it is unfortunate that none of the software I've been able to try works reliably. I'm still fighting with Autodesk Fusion 360, and while it is nice in many ways, it seems to be bad at recalculating all of the dependencies in a heavily parametric model. So bad that it will crash on a fairly regular basis. When it isn't crashing, it is deforming my model in strange ways every time I try to update a parameter. I can do a lot of rework to get one parameter to work, and then the next one still breaks the model very reliably.
The only real advice I have to offer is to avoid trying to use constraints to calculate your sketches. By all means, use constraints like vertical/horizontal, coincident, perpendicular, and parallel. But avoid using "equal" on a long chain of items to get the spacing right, or midpoint. Instead, use "Parameters" to calculate the position using your own math, and just add a dimension to attach that value.
Be aware that "Offset" will use the value of a parameter, but not actually refer to it until you click on the dimension for the offset and add the parameter again.
The only way to have a sketch refer to something on a sketch or another body is to do a projection. The latest update seems to do this automatically, but it still is the same thing. Use these sparingly, especially when projecting edges from bodies, as I've noticed troubles with them not updating. It is better to project from another sketch than from an edge on a body.
Constraints applied to a projected line do not seem to propagate backwards through the history chain, which can be very handy in forcing it to update correctly. You can make layers of sketches, each fairly simple, that proceed from the projected output of the previous layer. Again, less use of projection is generally better, but this is one place that it might help you get around the terribleness of the recalculation engine.
Also, test your Parameters by changing them often and making sure the sketches and model respond as expected. It is a lot easier to fix the constraints as you do them than have to walk back through the history and try to change things after the whole model is done. Easier, and less prone to crash.
I have learned all of these things, and yet I still keep making the mistake of trusting the software to work. I am a fool.
Evidently I am now an unpaid, unofficial tester for Autodesk. Wasn't my intention. I just needed to use some CAD software. But nothing ever works perfectly... here are links to the various bugs filed, features requested, and questions asked I have posted since I embarked on using the Fusion 360 software.
So, I made a test print of the new keyboard model I made in Autodesk Fusion 360 the other day. In case you didn't read the last post, it looked kinda like this:
It took a few tries to get a reasonable 3d model out of the Rostock printers. It didn't like some text I had placed on the bottom of a few small parts, and I had set the resolution fairly high, so the extruder would sometimes clip the model and move bits around. 3d printing kinda sucks.
But after a couple of tries I had to leave the office, so I just let it go, and it came up with passable prints in the morning!
There were some strange artifacts, tho.
Some sort of "ghost wind"?
As always, I made separate models for white keys and black keys. The black keys had to be split into two parts because there needs to be a flat surface somewhere for 3d printing, so there is a top and bottom for each black key. I also added some parts to act as "cookies" or joiners to hold the two halves together. I had hoped for a friction fit, but it did not quite turn out that way, so I had to glue them.
The white keys could be printed as a single solid.
I added some cookies to hold the black and white key sections together too.
And I wrapped the whole thing in rubber bands to keep tension while the glue dried.
Already, I've found a number of things to fix, so chances are this print won't actually end up in a prototype, but it does help to check the scale of things.
Speaking of which., I was tired of having so much trouble with not having a good throw on the keys, I decided to disassemble a stack of toy keyboards and take down some metrics. Hopefully this helps me make something that it actually playable.
More to come!
I'm going to jump ahead a bit. The previous logs are for things I did weeks ago, but haven't had time to document yet. I'll get back to those, but I wanted to start sharing current events.
My 3d software suddenly stopped working, and nothing I could do was able to bring it back. After a few days of hammering on the PC trying to find the problem, I gave up. All of my work on the case, keyboard, knobs, etc. was tied up in that software, and without it, I can't really do much except keep printing the old models.
So, I have started over using the Autodesk Fusion 360 software. It seems to be free for companies making less than $100k a year, which means I'm probably 10x overqualified at current earnings. I looked at other software like OnShape (not quite mature, too limiting in the free version), Blender (completely incomprehensible UI, not parametric), Freecad (rage quit before I could determine how to do anything with it), Wings (not really suitable for this kind of work), Sketchup (doesn't make solid bodies, not parametric), and Fusion 360 seemed like the most mature solution that I could afford. The UI wasn't completely alien, and it *is* a parametric modeling program.
Granted, I don't actually know how to use the Fusion 360 software, and certainly it is not a 1:1 feature comparison with my old software, but I don't have a lot of choice in the matter but to dive right in.
After two days of work, I've managed to create a new model of the keyboard mechanism, by far the most complicated part of the project. Hopefully everything else will be easy now that this is done.
This design was done with an eye towards injection molding rather than 3d printing, hence the hollow keys. The back mounting block will probably have to be changed for the final tho.
I changed to have just one set of nubs for the pressing on the rubber contact pad switches. I am a bit worried that they might be too long and move too much forward and back when the key is depressed. I should probably try to do some simulation on that, but I'm just now determining how to use the software... haven't gotten that far yet.
The mounting block is currently much taller to eliminate wooden shims I had to use on the old keyboard. Also there is a notch on the end of the mounting block that allows for a more accurate fit, hopefully preventing the snaggle-tooth between the octaves I currently get.
One great advantage of this software is that you can use variables to specify the parameters of your model, and then change them and it will automatically update your model to match. The old software had this, but it didn't work at all.
For example, here I adjusted the white key length to be absurdly short... the model recalculated correctly!
I'm sure this will require some iteration, but this is the hardest part of the box to model, so hopefully I can have a complete redesign ready to go sometime this week.
Now that we have these wonderful 3d printed keyboard sections, and have mounted them in the case, we really need some way to electronically tell if a key has been pressed.
The plan is to develop a printed circuit board with traces that act as contacts, and use those graphite impregnated silicone rubber cups to bridge the contacts and tell if the key has been pressed. I've disassembled a lot of toy keyboards, and that is how it is generally done.
Since we have the Othermill here at the Supplyframe Design Lab, it seems obvious to make the board here rather than to send out for it and wait a week. So I designed the circuit board in KiCAD, a program I wasn't really too familiar with yet.
In order to make the contacts on the PCB, I had to lay out copper traces on the PCB so that the rubber pads could bridge them easily. To do this, I made a custom footprint, as if I was going to mount a switch on the board, but I didn't put any holes for pins, just the pattern for the contact. This was a bit tricky, because KiCAD won't let you draw on the copper layer in a component except by placing a surface mount pad. Well, I thought that was kinda dumb, so I drew it on another layer and edited the text file to change it to the copper layer.
So, the first switch pad I designed looked like this:
Looks nice enough, but there are barely 10 mils of spacing between the traces. While the Othermill can theoretically handle this, we had some trouble with it.
The 30 degree end mill that we used was supposed to be good for this, but somehow it didn't work out; all the traces vanished! So I adjusted the footprint for a wider spacing.
These have 20 mil traces and 20 mils between the traces, surely that will be good, right?
So we mill out another test. This seems better, right?
Still doesn't quite match what we drew, but maybe give it a go?
A schematic was made:
Diodes on each switch to prevent current from rushing up the wrong way and causing false triggers when chords are held.
The PCB had to be split into two parts because the Othermill will only do a 4" x 5" board.
Here is the front.
And the back:
The 2nd board was missing part of a trace for some reason, so some rework was done:
And the boards were joined together with 0 ohm surface mount resistors:
As you can see, when the Othermill routs a circuit board, it doesn't rout all of the extra copper away, just the area around the trace. If you mill the board with a small bit, the area around the trace will be very thin, as it is here. This makes it VERY HARD to solder without bridging a connection! It took me a very long time to solder one of the vias (which are not plated through, because the Othermill has no way to do that) and I got more solder around the via than on it.
So shop head Dan had a go at it.
In half an hour, we got maybe 6 of the 36 vias soldered, at which point I said "This isn't worth it, I'm going to redesign the board. It will be faster."
Here is the new board. Note that I imported a DXF of the key spacing to know how to line up the switch contact pads. The traces are a good 60 mils in most cases, and the vias and pads have large enough holes to work easily with a 1/32" flat end mill.
Meanwhile, Dan experimented with the Othermill and came up with a prescription that works:
We were also having some troubles with our mills not being quite up to spec, so when we did the 2nd PCB the next day it came out MUCH better! The board on the left is the earlier board, and the one on th eright is the later one.
Although the one on the left has nice large gaps around the traces, the switch contact pads have VERY thin traces. The board on the right is a much better balance and matches the design more exactly.The back of the board shows this as well.
Rather than waste a bunch of 0 ohm surface mount parts, I just bridged the connection between the boards with some solder.
Here is the fully populated board!
Note that I still...Read more »
When I last left off, I had just started gluing the first draft box together after laser cutting all of the pieces out. Here is the control rotopod sitting in the clamps.
Because we had some trouble printing the keyboards, we couldn't put it all together right away, so we did some test fitting.
Eventually, the other half of the keyboard finished printing, and I was able to glue that together. I found some tiny clamps that were perfect for holding it together while the glue dried! No more hairbands and giant bench clamps!
While the glue was drying, we did another test fitting.
Nice! This is really shaping up! That top cross bar is glued in, BTW, which I later decided was a bad idea. In hindsight, I think that perhaps that was supposed to sit on top of the side edges, not between them. I think I had some length problems when I tried to convert the 3d model to a 2d drawing for laser cutting, and I ended up having to sand a lot of parts to fit. Perhaps this was one I should have left alone...
Now, the design had lots of round corners and such, which were originally supposed to be cut on a ShopBot CNC router with 3d control of the cutting head, but since that wasn't available, we did it on the laser cutter. So there were lots of edges that were supposed to have been delivered rounded that were instead square. Since the lab's sander was not yet available, I took the whole thing over to MAG Laboratory in Pomona and used their lovely sander for hours until everything was super round.
Now, the rotopod is supposed to have a touch screen and a huge ton of knobs on it, which necessitates a fancy, shiny face plate. I decided to cut that out of acrylic. MAG Lab's laser cutter came in handy here.
Now, you might notice that the screw mounting holes at the edges are so close that they have merged with the edge. This is because the wood being used is not quite the 1/4" I spec'd, and so the holes have to be in kind of a precise place. Not the best. Also, the holes in the corners don't work so well after you have just sanded off the corners! So I just broke them off... they were kind of pre-broken off, anyway.
So, now I've got most of the pieces, let's do another test fitting!
Wow! That is really starting to look the part! It's so pretty, let's see that again!
Now, in these photos, the keyboard is kinda balanced on some blocks of wood. We can't really get an idea of how it is going to play until we actually mount it so that the keys don't rest on the front of the keybed. So I carefully drilled some holes and used screws to put it together.
It works! And using the thin plastic strip as a spring works as well as I had hoped! Oh, joyous day!
Next, I need to mount the rotopod to the back of the keyboard. I mentioned to Trent at MAG Lab that I needed a piano hinge, and he just gave me one! It was super long!
I ran into Machinist from 23b Shop while I was at MAG Lab. Since the band saw at MAG Lab was down, he let me go cut it on their machine!
So I took it down to 23b Shop in Fullerton and cut it with their cutoff saw! (Sorry for waking you up Bobby!)
Having a proper sized hinge in hand, I then had to drill some mounting holes.
And screw it together with the handy screws that came with it.
I carefully marked where on the hinge the edge of the keyboard should be so that it will be lined up correctly when I have to flip it over to put the screws in.
Carefully, screw it together, making sure the alignment is still correct.
Attach one of my touch screens to the back of the front panel.
Do a test fitting.
The rotopod even rotates, although the fit is kinda tight...
And here it is with some of the test printed knobs on it.
I still need the pitch and modulation wheel assembly on the left, so I printed that...
Note that there isn't really a good way to get the potentiometers into these. This is just a test print.
It didn't really fit because of the wood that I had added to the keybed to...Read more »