I made a macro keypad with 3D-printed switches(incoherency.co.uk)
incoherency.co.uk
I made a macro keypad with 3D-printed switches
https://incoherency.co.uk/blog/stories/3pct-keyboard.html
9 comments
You mentioned the contours on top of the keycap being an issue. A good fix for that is tilting the keycap forward 45 degrees in your slicer. This does require supports but the top finish looks so much better. The tilt technique combined with your filament should look very good.
I caught the same issue, from a slightly different angle. Using key caps with that much protrusion surface will render them unsanitary in a relatively short time due to dead skin deposits, which will cure and fill the ridges. It’s not great from a health point of view. From what I remember when I was doing 3D printing, an acetone cloud bath could help to achieve a more glossy, thus more sanitary finish.
Incidentally glossy finish on porcelain-ware for plates, bath tubes, toilet bowls and sinks are specifically for this reason — gloss is achieved when the surface is flat to a defect rate smaller than the wavelength of visible light, which also gives bacteria and organic matter very little to hold on to.
Incidentally glossy finish on porcelain-ware for plates, bath tubes, toilet bowls and sinks are specifically for this reason — gloss is achieved when the surface is flat to a defect rate smaller than the wavelength of visible light, which also gives bacteria and organic matter very little to hold on to.
Usually acetone doesn't work so well on the PLA the author is printing the keycaps in. There are other sprays or things you can apply to PLA for a good effect though - I'm betting any of the things used to make PLA food-safe would work here.
Those contacts will oxidise almost instantly. From running morse keys for years, you need gold or phosphor bronze.
Thanks, I will keep an eye on this. Do you reckon gold plating would suffice or is it likely to get worn away?
Gold electroplating can utilize some relatively nasty chemicals such as cyanide and cobalt but some ways are more safe than others. You could more easily and inexpensively nickel plate it with household materials (and a nickel plating layer is often used as a flash layer for gold plating anyway.)
Simply tinning the copper with solder would likely be the easiest option although I couldn't say how durable that would be against contact wear over very long periods of time. I'd suspect just as durable as nickel or gold plating would be...
Simply tinning the copper with solder would likely be the easiest option although I couldn't say how durable that would be against contact wear over very long periods of time. I'd suspect just as durable as nickel or gold plating would be...
I wasn't suggesting I'd gold plate it myself, I meant I could just buy gold-plated wire, as long as it would be sufficiently durable.
Yes, hard gold plating is pretty durable. Take a look at the plating on PCIe card and DIMM contacts. Or just about any high quality connector.
Switches have an advantage over these connectors in that they touch rather than slide. So wear and tear is much less of a problem.
Switches have an advantage over these connectors in that they touch rather than slide. So wear and tear is much less of a problem.
Gold plating wont cut it. It is a very thin layer of gold around the copper and it would wear out pretty fast.
I'd recommend bronze.
Might give more flexibility to move to optical sensing and avoid the contact issue entirely.
It would. I think a common option is to use magnets and hall effect sensors. If you use an analogue hall sensor, you can even make an "analogue" switch that can have a different effect if you push it just a little bit compared to pressing it the whole way down.
Neither of these satisfy me, because in my eyes if you're using an off-the-shelf sensor of some kind, you're not really making a switch, you're just putting a little mechanism around another type of switch. Making the contacts out of cheaply-available material is important to me, although it's hard to really articulate why.
I'm trying to do this from as close to "first principles" as possible.
Neither of these satisfy me, because in my eyes if you're using an off-the-shelf sensor of some kind, you're not really making a switch, you're just putting a little mechanism around another type of switch. Making the contacts out of cheaply-available material is important to me, although it's hard to really articulate why.
I'm trying to do this from as close to "first principles" as possible.
Would it be hard to make a buckling spring switch? You’d need to use a pre made spring but that does not feel like cheating :). Those switches have a fantastic feedback and sound.
We need to stop at some point though. Do we need to make our own wires? That's surprisingly difficult to achieve.
Considering it's a personal project, one can choose where to stop. Sounds like they've chosen to draw the line at making their own switch mechanism.
Unfortunately, some optical key switch designs may be patent encumbered: https://aimpad.com/patents/
I wouldn’t worry about those ones at least.
I read through the claims of the US patents, and they’re essentially describing “turn the arrow keys into a joystick”. US8717202B1 explicitly limits the mechanism to a light-and-mirror sort of arrangement (thus, optical switches). US8922399B2 is a broadening of the former patent, removing that limitation (which weakens it a lot because it’s not describing a concrete implementation but an abstract idea), and thus I think it would be claiming other forms of analogue switches (e.g. magnetic) too. Either way, there are a number of products on the market that, if would be infringing these patents (unless their manufacturers licensed the patents).
Besides all this, I don’t believe individuals need to worry about patents if they’re doing things for themselves only.
But beyond that, I would be quite happy to ignore the Aimpad patents because the concept was not novel, and prior art exists. https://www.youtube.com/watch?v=gEwDImE0DU4 was in 2012 and I haven’t gone searching any further. Taking the broader ’399: the project in that video is, I believe (I haven’t watched much of it, more just read a few comments about it and skimmed it), prior art for claims 1, 3, 5, 6, 10, 11, 12, and maybe others. For the rest, claim 2 is a supremely obvious extension of claim 1. Claim 4 is obvious and shouldn’t be patentable anyway. Claim 7 is… “what? how else could you possibly do it?”, viz. obvious. Claim 8 is obvious (as in, if such noise is a problem, of course you’re going to do this, it’s been a standard technique on input devices for many, many years). Claim 9 is stupid (“slap the rest of the keyboard on it”). I think there’s a good chance you could get the patents cancelled (that is, without waiting to be sued and getting a court to rule) if you wanted.
(Although I wrote a fair bit of detail here, I’m in no way expert on patents. I’ve just picked up a few things over the years from public news and reading, when related things have interested me. Do not trust my conclusions here to reflect how USPTO, courts, or any other relevant bodies will look on things.)
I read through the claims of the US patents, and they’re essentially describing “turn the arrow keys into a joystick”. US8717202B1 explicitly limits the mechanism to a light-and-mirror sort of arrangement (thus, optical switches). US8922399B2 is a broadening of the former patent, removing that limitation (which weakens it a lot because it’s not describing a concrete implementation but an abstract idea), and thus I think it would be claiming other forms of analogue switches (e.g. magnetic) too. Either way, there are a number of products on the market that, if would be infringing these patents (unless their manufacturers licensed the patents).
Besides all this, I don’t believe individuals need to worry about patents if they’re doing things for themselves only.
But beyond that, I would be quite happy to ignore the Aimpad patents because the concept was not novel, and prior art exists. https://www.youtube.com/watch?v=gEwDImE0DU4 was in 2012 and I haven’t gone searching any further. Taking the broader ’399: the project in that video is, I believe (I haven’t watched much of it, more just read a few comments about it and skimmed it), prior art for claims 1, 3, 5, 6, 10, 11, 12, and maybe others. For the rest, claim 2 is a supremely obvious extension of claim 1. Claim 4 is obvious and shouldn’t be patentable anyway. Claim 7 is… “what? how else could you possibly do it?”, viz. obvious. Claim 8 is obvious (as in, if such noise is a problem, of course you’re going to do this, it’s been a standard technique on input devices for many, many years). Claim 9 is stupid (“slap the rest of the keyboard on it”). I think there’s a good chance you could get the patents cancelled (that is, without waiting to be sued and getting a court to rule) if you wanted.
(Although I wrote a fair bit of detail here, I’m in no way expert on patents. I’ve just picked up a few things over the years from public news and reading, when related things have interested me. Do not trust my conclusions here to reflect how USPTO, courts, or any other relevant bodies will look on things.)
Thank you for the very detailed and thorough response! I should note that your prior art video uses hall effect sensors instead of an optical mechanism. I've also seen that method used by others on reddit, and remember hearing that it might not be as accurate as optical switches.
Search google for optical keyboard switches, they are easy to 3D print. They have clicky designs and just sliders for quieter operation.
Best to buy gold plated wire off the shelf for your design. Solders nicely as well!
I played with gold electroplating pens but they are nasty.
I played with gold electroplating pens but they are nasty.
Gold plating is used a lot in electronics contacts to prevent corrosion, it's a pretty proven method that should work just fine without wearing away easily. As far as I understand it, the gold chemically bonds to the metal it coats, so it's not easy to wear it away.
I've been undertaking a similar project, using an ESP32 currently for testing, also have an Arduino Micro Pro to test yet, during lockdown/furlough. I'm hoping to customise and sell them on Etsy, I've sold code + 3D prints before, but I'm just taking time to get the PCB right before I get my first ever board printed. Aiming for hot-swappable switches and some LED magic.
It's a good project.
If you print a lot, here's my project using which you can create tons of cheap filament:
https://medium.com/endless-filament/make-your-filament-at-ho...
If anyone can contribute diameter control algorithm, please let me know!
If you print a lot, here's my project using which you can create tons of cheap filament:
https://medium.com/endless-filament/make-your-filament-at-ho...
If anyone can contribute diameter control algorithm, please let me know!
Is it the control algorithm you're after, or an output diameter measurement technique? You don't mention how you're measuring the width at the extruder die or after the freeze bath.
Hello! I've dual axis laser micrometer which has a sampling rate of 100 of times per second.
I can use microcontroller to read the measurements and want to dynamically change the puller roller speed. (It's a geared down stepper motor)
Pinch roller (puller) is very simple, it uses steel rollers which have sandpaper pasted (with epoxy) on it for gripping fimament - it can pull with force of 10kg before it slips.
I want to achieve tolerance range of +/-0.02mm in diameter
I can use microcontroller to read the measurements and want to dynamically change the puller roller speed. (It's a geared down stepper motor)
Pinch roller (puller) is very simple, it uses steel rollers which have sandpaper pasted (with epoxy) on it for gripping fimament - it can pull with force of 10kg before it slips.
I want to achieve tolerance range of +/-0.02mm in diameter
Where is that micrometer mounted? The problem you're going to have (which I'm sure you're aware of) is that if it's after the freeze bath, you're miles away from where the thickness is actually determined. If the speed of the rollers makes the filament go through the bath at 1m/s (say) and the bath is 2m long, you can't react to any deviation in the temperature of the plastic as it leaves the nozzle (for instance) any sooner than 2 seconds later, and any drift has had that long to cause a problem. That way lies an oscillating system, unless you're quite careful.
The way you've posed the system, my gut feeling is that your problems are going to come down to reaction time. Once a problem manifests in the system, how quickly can you a) detect it; b) react; and c) have that reaction take effect?
There are three things I'd look at. The first is to make sure the entire path of the plastic until it has set is tightly temperature-controlled. You can't have breezes varying the temperature of the plastic before it enters the bath, so you want a PID-controlled warming tube to control its descent into the bath. Similarly you need to control the temperature, depth, and turbidity of the bath so that the length of time the plastic is less-than-fully-solid is tightly controlled. If you do that, you've got a chance that you've controlled the physics of the filament well enough that quick deviations will be damped out, and slow drifts get picked up by the micrometer.
The second is mounting the micrometer as close to where the filament enters the bath as you can get it. That's the point that's as close as you can get to where the plastic's frozen and the thickness is determined, so there's as little lag as possible between where you're measuring and where you're having an effect. That will let the system react to much faster deviations than it would be able to otherwise.
Third, I'd make that bath as short as possible. The length of filament hanging in the bath will act like a spring, so when the rollers speed up to try to thin the filament out, that acceleration will be blunted as the filament lifts up into a shallower catenary. You can compensate for this in the control system, but it's better not to have to. In fact, if you could get rid of the need for a bath by instead rolling the filament immediately onto a chilled metal roller close to the extruder die, that might open up other possibilities, but that ends up baking stresses into the filament which you might not want to deal with.
The way you've posed the system, my gut feeling is that your problems are going to come down to reaction time. Once a problem manifests in the system, how quickly can you a) detect it; b) react; and c) have that reaction take effect?
There are three things I'd look at. The first is to make sure the entire path of the plastic until it has set is tightly temperature-controlled. You can't have breezes varying the temperature of the plastic before it enters the bath, so you want a PID-controlled warming tube to control its descent into the bath. Similarly you need to control the temperature, depth, and turbidity of the bath so that the length of time the plastic is less-than-fully-solid is tightly controlled. If you do that, you've got a chance that you've controlled the physics of the filament well enough that quick deviations will be damped out, and slow drifts get picked up by the micrometer.
The second is mounting the micrometer as close to where the filament enters the bath as you can get it. That's the point that's as close as you can get to where the plastic's frozen and the thickness is determined, so there's as little lag as possible between where you're measuring and where you're having an effect. That will let the system react to much faster deviations than it would be able to otherwise.
Third, I'd make that bath as short as possible. The length of filament hanging in the bath will act like a spring, so when the rollers speed up to try to thin the filament out, that acceleration will be blunted as the filament lifts up into a shallower catenary. You can compensate for this in the control system, but it's better not to have to. In fact, if you could get rid of the need for a bath by instead rolling the filament immediately onto a chilled metal roller close to the extruder die, that might open up other possibilities, but that ends up baking stresses into the filament which you might not want to deal with.
> The switch fits in a 14mm square hole (apart from the protruding wires), which is the same size as a Cherry MX switch, but the total height from the bottom of the switch to the top of the keycap is almost twice as large, about 45 mm vs 25 mm [...] This directly translates to increased keyboard height, so it would be good to cut this down as much as possible. I should be able to lose 2 mm from the wire support at the bottom of the switch, and another 1 or 2 mm in the height of the leaf spring attachment, but there's no way it's going to be as thin as the Cherry MX.
It's a nice concept but the design of the switch doesn't intend this project to replace your keyboard.
A nice design nevertheless :)
It's a nice concept but the design of the switch doesn't intend this project to replace your keyboard.
A nice design nevertheless :)
Don't get me wrong, I'm heavily into the custom keyboard scene. PCB design, lots of tiny soldering, 'crazy' ergonomic layouts with only 36 keys and lots of layers and other tricks.
Still. Why would you want to print your own switch mechanism?
Still. Why would you want to print your own switch mechanism?
Fun/learning. This is actually quite a sophisticated engineering challenge and there is a ton of stuff to be learned. I would love to do this if I had the time.
There is a yak, and it is furry.
For the uninitiated: https://en.wiktionary.org/wiki/yak_shaving
1. Any apparently useless activity which, by allowing you to overcome intermediate difficulties, allows you to solve a larger problem.
I was doing a bit of yak shaving this morning, and it looks like it might have paid off.
2. A less useful activity done consciously or subconsciously to procrastinate about a larger but more useful task.
I looked at a reference manual for my car just to answer one question, but I spent the whole afternoon with my nose buried in it, just yak shaving, and got no work done on the car itself.
1. Any apparently useless activity which, by allowing you to overcome intermediate difficulties, allows you to solve a larger problem.
I was doing a bit of yak shaving this morning, and it looks like it might have paid off.
2. A less useful activity done consciously or subconsciously to procrastinate about a larger but more useful task.
I looked at a reference manual for my car just to answer one question, but I spent the whole afternoon with my nose buried in it, just yak shaving, and got no work done on the car itself.
I view projects like this along the same lines as maintaining classic cars. It a fun and rewarding project, and you learn things along the way.
The same reason people build and fly model airplanes even though it would be impossible to transport a financially viable amount of cargo on them. It's fun.
Neat project - next time make one with only ctrl, alt, and del.
Inspiring! This would be an awesome punch-and-roll macropad for voice actors... well, this particular voice actor anyway. I currently use a 10 key pad with tape covering all but the three keys I want to press.
One possible improvement would be to include space for mounting a diode. Many mechanical switches can house a diode to simplify PCB layout for NKRO keyboards