Low profile Beamspring project

manisteinn

28 May 2019, 00:23

Image


After getting a 3278 last year I wanted a more portable version, while it does fit in my backpack it's not ideal for travelling. :)

My goals
- 1:1 reproduction of the mechanism (excluding the large coil spring)
- No reliance on existing parts
- Low profile (different return mechanism)
- MX/Beam mount (smooth beam/selectric caps are my favorite)

Thoughts on silo beam
I started before I was aware of any reproduction effort, perhaps I'll end up preferring that switch when I get a chance to try it. For me there are a few drawbacks:
- no beam/selectric cap support
- complicated custom PCBs (5 parts per switch?), for capacitive sensing it's just a pin header for the sense board.
- click decoupled from actuation, for linears analog sensing seems nice though.

CAD
repo: https://github.com/manisteinn/beamspring-cad
- The original switch was modelled in FreeCAD 0.17, I'm planning to refine the model.
- Lower profile assembly requires recently released FC 0.18 and a2plus addon. Actuation can be simulated using the included macro.
- Beam keycap is parametric but finicky, top angle and YZ offsets can be adjusted as well as dish shape. The reason for the cuboid cutout is the initial SKCM version I did.

Assembly overview: https://gfycat.com/DazzlingFearlessCapeghostfrog

Initial print demos (enable sound):
Click demo/abuse: https://gfycat.com/ShallowNippyGlobefish
Rear (unevenness is due to the kinked beamspring): https://gfycat.com/RightGlisteningIndianabat
Image gallery: https://imgur.com/a/dX2BbpP





Thoughts/progress on each component



Housing/slider
My board was missing a few keycaps which I modelled, 3dprinted and later resin cast. I've done the same for the original housing and slider. So far I've only 3dprinted the low profile version in ABS, after smoothing all sliding surfaces it's not too scratchy and quite robust.

The lower profile housing and slider is based on the original model, with unchanged actuation related dimensions but two smaller coil springs (SKCM orange) positioned in the corners opposite the beam. It's 21.4mm from PCB surface to bottom of keycap, the original is ~36.7mm. I used M2x8mm flat head (laptop) screws for slider>beamspring and housing>plate attachment which seems to work fine.

I currently don't have a housing "lid" but instead use the top plate for alignment/mounting. There are currently only circular plate holes so no routing is required, the two alignment holes eliminate original manual alignment issue.

I'm considering a rigid top mold with inserted threaded/linear rods to increase accuracy and limit wear, the deep pillars of the original housing stretched and eventually ripped the mold. Initial test piece was promising.

I'm also considering dampening, the rubber pieces from dampened SKCM could work for actuation (flyplate up + slider down), landing pads are also an option. PCB/plate could be dampened for the return.
Image

Beamspring
After accidentally kinking it during measurement I neutered a single original slider. I haven't done any further research but spring steel sheet etching might be viable


Flyplate/beamspring attachment hook
Laser cut stainless steel SMT stencils (conveniently the same thickness) could be used for testing, JLCPCB rejected my drawing with 156pcs crammed into the default $6 stencil size due to "too many holes", I'll try fewer on my next PCB order. The bending could be done with a 3dprinted jig.


Capacitive plate
A resin cast (PU) test piece with metal shavings mixed in triggers consistently. The shape is easy to cast and the volume is just 0.35ml. For consistency a whole-keyboard batch with proper powder can be premixed.


PCB
Commonsense controller + custom board.


Plate
Lasercut acrylic for testing, likely PCB or metal for final


TODO
- Mold for housing/slider
- Look into beamspring etching/other processes
- Order hook sheet (SMT stencil)
- Dampening for both flyplate and slider, possibly PCB/plate surfaces


I'd appreciate any input, particularly on lower force springs or alternative return mechanism.

User avatar
adamcobabe

28 May 2019, 01:25

Very cool. I'm loving the attention beam springs are getting in the community lately.

The mount for the Selectric keycaps seems potentially fragile if it's going to be make of plastic. MX mount example you made seems super solid, though.

Lbibass

28 May 2019, 01:58

Wow. This is some great work! I can't wait to see how this progresses. I for one would be very interested in some low profile beamsprings!

User avatar
SneakyRobb

28 May 2019, 04:49

Whoa! This is really cool and a neat design. I had thought that there was a large area in the middle of the switch that could just be removed and you managed just that. Very impressive

manisteinn

28 May 2019, 07:19

adamcobabe wrote:
28 May 2019, 01:25
The mount for the Selectric keycaps seems potentially fragile if it's going to be make of plastic. MX mount example you made seems super solid, though.
Absolutely, I'll save those for casting. I fully expected the MX one to break during the abuse, I was surprised.
SneakyRobb wrote:
28 May 2019, 04:49
Whoa! This is really cool and a neat design. I had thought that there was a large area in the middle of the switch that could just be removed and you managed just that. Very impressive
Thanks! While the spring cavity of the original is quite deep there is indeed some empty space. Mine's actually ~2.6mm above the point where the beam collides with the roof due to the springs and travel distance, still room for improvement :)


Just added a couple of comparison pics to the gallery.

User avatar
SneakyRobb

28 May 2019, 16:51

Spoiler:
manisteinn wrote:
28 May 2019, 07:19
adamcobabe wrote:
28 May 2019, 01:25
The mount for the Selectric keycaps seems potentially fragile if it's going to be make of plastic. MX mount example you made seems super solid, though.
Absolutely, I'll save those for casting. I fully expected the MX one to break during the abuse, I was surprised.
SneakyRobb wrote:
28 May 2019, 04:49
Whoa! This is really cool and a neat design. I had thought that there was a large area in the middle of the switch that could just be removed and you managed just that. Very impressive
Thanks! While the spring cavity of the original is quite deep there is indeed some empty space. Mine's actually ~2.6mm above the point where the beam collides with the roof due to the springs and travel distance, still room for improvement :)


Just added a couple of comparison pics to the gallery.

Hi, very cool.

I was wondering how you made those clear original housings.

Did you cast resin? I am looking to get into that as my clear PLA 3d printed ones are not the best quality and obviously scratchy. I will be printing some in ABS this week and using acetone to smooth them out. I have never cast anything in resin and yours look super good. I would be interested in knowing how you made them.

I find your idea of using stencil orders to get the flyplates quite interesting and appealing. The JLCPCB basic stencil then is about the same thickness and therefore they could be used for flyplates? I may investigate other stencil makers then. I was going to basically try to be able to manufacture everything myself. This would make it easier.

If you are making custom PCBs, I have 2 custom Commonsense PCBs in my thread anyone could download/change/use. Even just as a reference.

I would point out that if you use DMA commonsense, the "beamspring" option does not work with unpopulated columns and rows. You can see that my boards have several "fake" keys that are always pressed. You don't necessarily need all these fake keys and with better layout and mapping you could reduce them. They aren't harmful though.

Meaning that if you have a 5 row tall board, each column you have needs to have 5 rows. So say our first column one being 1-~, 2-tab, 3-capslock, and then you jump to 5-LeftControl, you need a "fake" key at position 4.

These fake keys show up as always pressed. They are needed to calibrate. DMA told me they should be about 3mm x 3mm.

I only mention this because I had an entire 5 pcb order from JLCPCB that I tried to get to work that didn't have a fully populated grid. I couldn't figure it out but after talking to DMA told me it would not work without these. The Model F option for commonsense doesn't follow this. So if you make a custom model f, it doesnt matter.

Let me know what you think.

User avatar
Dingster

28 May 2019, 17:00

Woa looks amazing. Best of luck with the project :)

listofoptions

28 May 2019, 19:12

whoa, this is super cool!

manisteinn

29 May 2019, 00:13

Did you cast resin? I am looking to get into that as my clear PLA 3d printed ones are not the best quality and obviously scratchy. I will be printing some in ABS this week and using acetone to smooth them out. I have never cast anything in resin and yours look super good. I would be interested in knowing how you made them.
Yes, they're resin cast (Smoothcast 327). As mentioned the deep coil spring cavity and flyplate rods caused issues and I wasn't really happy with smoothness. I know there are mold release alternatives that can give smoother surfaces, but I presume the metal rods would give smoother, more consistent results as well as being easily replaceable.

Here's a gallery of the molds: https://imgur.com/a/16muYTE
The slider's deep cavity for the keycap mounting insert gradually deteriorated as well, giving looser and looser fits. As you can see the thin keycap mounts ultimately ripped too even though I applied mold release thoroughly. I'll try repouring the bottom mold with a metal bar inserted into the cap, reinserting it for future casts. For the beam/selectric version slider I could insert metal stems into the mold.

If anyone has thoughts on molds, resin, lubricants etc I'm interested

For reference I used ABS (much nicer to post process than PLA IMO), 0.10mm layers, 50% infill on a Prusa i3 Mk3 WITH cooling after getting deformed parts without. Slider printed upside down, mounting holes drilled to 1.5mm and M2 tapped, coil spring pockets carefully smoothed with 4mm drill. Haven't tried acetone smoothing yet, I thought it might deform too much.

I find your idea of using stencil orders to get the flyplates quite interesting and appealing. The JLCPCB basic stencil then is about the same thickness and therefore they could be used for flyplates? I may investigate other stencil makers then. I was going to basically try to be able to manufacture everything myself. This would make it easier.
I thought flyplate refered to the capacitive plates (wiki/Beam_spring), but anyway, the bent metal pieces (fly springs? I called them hooks) are indeed the same thickness as SMT stencils (there are other thicknesses, so you may want to double check). I just checked JLCPCB's extra-charges page: https://support.jlcpcb.com/article/62-w ... extra-cost.
Given the constraints of <=4000 holes and no irregular shapes (I might still try that and see what they actually charge) I made an updated sheet with 50 holes/piece for a total of 80pcs. Not bad for $6
Image

It's in the WIP dir in the repo, haven't fully constrained or exported to gerber yet, will probably finish it tomorrow.


Perhaps a punch would still be beneficial, aligning with the stencil using it's holes and shaving off the edges. Easier on the tool due to the much smaller amount of material.

Ideally both metal components could be ordered, I'd like to get some quotes. The beamspring is tiny, a few sheets would yield a massive amount.

If you are making custom PCBs, I have 2 custom Commonsense PCBs in my thread anyone could download/change/use. Even just as a reference.

I would point out that if you use DMA commonsense, the "beamspring" option does not work with unpopulated columns and rows. You can see that my boards have several "fake" keys that are always pressed. You don't necessarily need all these fake keys and with better layout and mapping you could reduce them. They aren't harmful though.

Meaning that if you have a 5 row tall board, each column you have needs to have 5 rows. So say our first column one being 1-~, 2-tab, 3-capslock, and then you jump to 5-LeftControl, you need a "fake" key at position 4.

These fake keys show up as always pressed. They are needed to calibrate. DMA told me they should be about 3mm x 3mm.
Thanks for the heads-up (and great thread!), I'll keep that in mind when I eventually get to PCBs. Looking forward to your sheet cutting results :)

User avatar
PlacaFromHell

29 May 2019, 00:20

Oh man, tell me this will be mass produced. I love the beamspring switches so much that after two days of using a model F 122 I had to go back to my 3101.
Do you think your design will have important differences in feel? I would definitely build my endgame keyboard with them if not.

manisteinn

29 May 2019, 07:18

PlacaFromHell wrote:
29 May 2019, 00:20
Oh man, tell me this will be mass produced. I love the beamspring switches so much that after two days of using a model F 122 I had to go back to my 3101.
Do you think your design will have important differences in feel? I would definitely build my endgame keyboard with them if not.
I can relate to that, my F gets neglected :)

I'd say my demo switch is slightly smoother than my F, the biggest difference being the higher (~70g) force due to the two SKCM orange springs. I'll have a meaningful comparison after replacing them along with the kinked beamspring.


As for mass production, a group buy for the metal components could work. Casting the cap plates is easy and scaleable (place a grid of plates in flat bottom mold box, pour, cut runners/vents)

The plastic pieces are the real issue. Either you print them (= tedious cleanup) or cast them one at a time. If someone wants to invest in molds I'm all for it.

I also had the idea of milling the full housing assembly out of a block of POM, possibly predrilling and reaming sliding surfaces. Unfortunately I only have access to a manual mill or I'd do a test piece.

manisteinn

30 May 2019, 23:54

Forgot to mention I added a rough drawing in hook_sheet last commit, made in TechDraw workbench (included with FreeCAD).
Decided to try it out after watching this series (excellent channel!), I've previously used Drawing Dimensioning but both have limitations. Still haven't completed the sheet, I'll get to that

Expanding on my mold idea, the plan is to cast upside down with 3 parts:
- aluminium base with inserted threaded/linear rods and ~2mm deep holes to form the alignment pins
- a rectangular midsection forming the outer walls, 4 plates clamped together for smooth surfaces (I'd like transparent housings that show the mechanism).
- Top part made of silicone which forms the cavity and has injection/vent holes in the corners. This part needs to be poured first into a separate 3dprinted mold on a flat surface with rods inserted (another milled piece).

Thoughts
- The SKCM dampening mount is quite intricate, I'll 3dprint a housing but it's difficult to include in the mold
- Silicone mold is pretty thick and not nearly as deep as the original housing so it shouldn't be too fragile, easy to repour in case of damage and just 5ml in volume.

Demo: https://gfycat.com/BlackandwhitePiercingBunny
The file is beam_housing_lp_2_moldtest in WIP directory.

Any thoughts? I'll hopefully get this milled and printed during the weekend.

Edit: forgot to add pictures of a mold test print I did: https://imgur.com/a/UmySSLR

manisteinn

13 Jun 2019, 00:20

A very delayed update:

I milled the plate as planned with a minor adjustment; I separated the diagonal "spring catcher bar" cavity part, attaching from the rear with an M2 screw (orange part in pictures). It allows me to experiment with dampened versions without affecting the plate, filing the tiny dampener part by hand after milling the base shape.

I did a test pour without a cavity (currently out of silicone). There were a few issues:
- The accuracy wasn't the best, I can do better by being more careful. (It's all manual with only Z DRO)
- I used low quality M2 screws which snapped because of the substantial force required to unscrew from the mold. In the future I'll use the SS screws I used for a test pour a while ago, they were fine.
- Better sealing at the seams is required, although it didn't appear to leak it sagged about half way down before curing.

Apart from that it's pretty much what I expected; the sliding surfaces are very smooth, as are the walls.

Image gallery: https://imgur.com/a/MiHYhnp
Updated mold file with drawing in WIP directory.

I also made a parametric model for the capplate mold to estimate material volumes.
Image

Next up is redoing the plate and order casting supplies, also finish the hook-sheet and some general CAD file cleanup.

Finally, I did print the dampened version. While I like the sound and feel I need to adjust the model to account for reduced travel.

User avatar
Redmaus
Gotta start somewhere

13 Jun 2019, 02:21

This looks pretty awesome, I'd definitely be in for it if it comes to fruition.

User avatar
Touch_It

14 Jun 2019, 17:43

Totally watching this with great interest.

manisteinn

20 Jun 2019, 22:54

Repo update:
- Updated moldtest spreadsheet to display actual volumes (screenshot), multiple recomputes (F5) required after changes (dependency issue).
- Hook sheet slightly modified and fully constrained, exported dxf and gerber (3360 total holes)

Casting supplies are on the way, I should have some results to share soon.

As the makerspace I'm involved with is moving I probably won't be making much progress the next couple of weeks, I will however have CNC access at the new location :)
I've been focusing more on CAD/CAM because of that, I plan to try out my single block housing idea and redo/improve the aluminium resin mold.
When I've gained some experience I'd also like to look into injection molding, lower friction thermoplastics and low cycle times are very appealing. It seems to be getting more accessible for DIY with lots of projects and resources, here's a keycap example from a recent Tokyo meetup: https://youtu.be/4p_oa3z1UHs?t=468

@ Touch_It, Redmaus
Thanks for the interest :)
I don't have any mass production plans at this point, we'll see how it develops. All CAD data is public domain for those who want to make their own.

manisteinn

10 Jul 2019, 23:58

A long overdue update...

Repo update:
- Toolpath examples
- Housing lid added to assembly

Capplate mold

I've done two test casts using my existing mold:

First: 2ml resin and 4g iron powder. There was an air pocket in a corner, I cut a separate injection channel in the opposite corner for the next attempt. I had to lower the threshold from 123 to 119 for it to trigger

Second: 2ml resin, 6g iron powder. Too viscous, very difficult to inject. The injection channel seems to work, but that edge lifted a little so there was some leakage.
Works at threshold 123 (up to 127)

The casts were noticeably heavier than the original, carbon powder could be used instead.
In any case, options are nice and I do like the 6g keycap I cast using the leftover resin :)

Image gallery

Single block Nylon/POM/etc process
I thought I'd expand on my milled housing block idea:
- Initial drill hits for sliding surfaces
- Mill the entire top-accessible cavity
- Reorient the workpiece, mill the bottom corner cavities.

Housing animation

I'd mill individual housing lids of the same material for lower friction to replace the plate, this can be done in a single step. Having both whole-keyboard housing and plate parts would be a nightmare for maintenance.
Lid animation

I could also construct a mold for the lid with the same method as shown before, using an 8mm rod to form the smooth sliding surface.

Housing lid as part of the assembly:
Image



Steel sheets (beam, hook)

This is what I had in mind for the metal parts
For reference this particular factory charges $150 shipped for 100 cards incl silkscreening, cutting etc.
I'm guessing a few sheets of springs wouldn't be too expensive, particularly if there's no post-processing.
From a quick search there seems to be lots of vendors, I'll be looking into it.

Return mechanism

Matias linear/qc are 48gbp for 200pcs, providing springs for 100 housings and 200 pairs of dampeners. Still a bit heavy for my taste but probably what I'll get for my first attempt. If someone has unwanted components laying around let me know :)

User avatar
PlacaFromHell

11 Jul 2019, 22:44

Can I ask what kind of program are you using? I have some switches to design too.
As in any update, your work is going wonderful. I would like to suggest something like an empanada mold to bend the beamsprings once they are cut, if you understand what I mean.

Image

User avatar
photekq
Cherry Picker

12 Jul 2019, 00:31

PlacaFromHell wrote:
11 Jul 2019, 22:44
Can I ask what kind of program are you using? I have some switches to design too.
As in any update, your work is going wonderful. I would like to suggest something like an empanada mold to bend the beamsprings once they are cut, if you understand what I mean.

Image
He seems to be using FreeCAD. He's using it masterfully though; this is seriously impressive work. I've tried to use that software in the past and it almost made me throw my computer out the window.

@manisteinn incredible work on this project so far. I'll be following it!

User avatar
vvp

12 Jul 2019, 10:17

FreeCAD is quite usable. Considerably slower than commercial alternatives though. By slower I mean that there is still too much manual work which could be done automatically by the program (e.g. it does not guess the right constrains when drawing sketches). Also the OpenCascade (on which FreeCAD is based) was rather buggy about 3 years ago when I tried to use it for more complicated models. The latest version may be better. I did not have any problems with it but I did not try to draw complicated models with it as well.

Cheap commercial alternatives in the range of $180 are:
  • Cubify Design. One probably cannot buy this any more. Slightly better features than Atom3D but lacks STEP export.
  • Atom3D. A newer version of Cubify Design. They removed some useful features (e.g. boolean operations, quick constrain creation, direct editing, ...). I.e. the newer version is actually worse from the feature point of view. But it is a bit more stable and has STEP export.
Both Cubify Design and Atom3D are much more stable (buf-free) than FreeCAD.

User avatar
photekq
Cherry Picker

12 Jul 2019, 17:54

vvp wrote:
12 Jul 2019, 10:17
FreeCAD is quite usable. Considerably slower than commercial alternatives though. By slower I mean that there is still too much manual work which could be done automatically by the program (e.g. it does not guess the right constrains when drawing sketches). Also the OpenCascade (on which FreeCAD is based) was rather buggy about 3 years ago when I tried to use it for more complicated models. The latest version may be better. I did not have any problems with it but I did not try to draw complicated models with it as well.
These are the problems I experienced. The software itself seems capable, but workflow and reliability are far less than ideal.

manisteinn

12 Jul 2019, 23:24

Can I ask what kind of program are you using? I have some switches to design too.
As photekq pointed out I'm using FreeCAD, an open source cross-platform parametric solid modeler.

It's similar to commercial alternatives but there are definitely limitations and annoyances as vvp pointed out. It is rapidly improving though and I want my data in open formats whenever possible. You could download it and have a look at my files to see if it's something you'd want to use. I'd recommend youtube tutorials, make sure you look for ones for the recent 0.18 (or 0.19 beta), there are many new features.
I would like to suggest something like an empanada mold to bend the beamsprings once they are cut, if you understand what I mean.
I've made dumplings by hand and can see why this product exists :)

I had something similar in mind, here's a crude sketch:
Image
1. Center portion gets aligned by center hole/edges and clamped to ensure it stays flat
2. Both sidepieces slide upward (left shown in down position, right shown in up position), bending the sides 90deg
3. Both side pieces pivot inwards to the appropriate angle (blue line)
4. Release

A video of various press brake dies in action might clarify

I just checked SneakyRobb's thread, he posted a bending tool model.
He seems to be using FreeCAD. He's using it masterfully though; this is seriously impressive work. I've tried to use that software in the past and it almost made me throw my computer out the window.

@manisteinn incredible work on this project so far. I'll be following it!
Thanks, I've used it since 0.15 and had my fair share of frustration. The introduction of parts/bodies in 0.17 made a big difference, perhaps it's worth giving another chance. Python scripting can also be very useful, if you leave the console open you see the actual code for most GUI operations. I'm actually porting some code from Python2 to 3 (changed in 0.18) for a related project I'm planning to release soon™
FreeCAD is quite usable. Considerably slower than commercial alternatives though. By slower I mean that there is still too much manual work which could be done automatically by the program (e.g. it does not guess the right constrains when drawing sketches).
I feel the sketcher behaves as expected most of the time, but there are some features missing compared to the commercial alternatives. The polyline tool is pretty useful and quick, handling tangency for arcs and other basic constraints and the recently introduced "Auto Remove Redundants" option works great too, removing a lot of manual work. There's also b-spline support in the sketcher now, the control points can be constrained (my keycap models for example)

User avatar
PlacaFromHell

13 Jul 2019, 08:07

Thanks for the answers about FreeCAD, but I just discovered that Solidworks has transparency settings too :D If all goes well, I will have the beta version of my switch tomorrow.

Image

User avatar
ramnes
ПБТ НАВСЕГДА

15 Aug 2019, 22:34

Quite an impressive work, thank you for this and good luck in your effort!

Post Reply

Return to “Workshop”