I've been thinking about making a new keyboard that's somewhere in between my first split ergo keyboard and my grid60. So a split (but not separated) ergonomic keyboard with staggered columns.
Basically like an Atreus, but with a few more thumb-specific buttons and 60 keys total.
In terms of the construction I'm thinking of doing more fancy stuff with the sound - so actually have a plate for this one. Foam between plate and PCB, and silicone below. Maybe a gasket-mounted plate?
Good thing I checked the connector - it doesn't work out quite how I thought in my head! I thought flipping one PCB over and putting the header on the bottom instead of the top would connect pin 1 to pin 2 and vice versa.
But this paper mockup shows that pin 1 is gonna connect to pin 1, because both the PCB and the connector have been flipped so they cancel out.
I'm getting somewhat used to the #FreeCAD way of doing things, switching between workbenches as appropriate (e.g. designing features in PartDesign, making arrays in Draft and doing boolean operations in Part.
I think it could be nice to have some of these features duplicated in other workbenches (e.g. PartDesign could do with having Draft's array tools). I'm sure there's some reason they're not, though.
I think I've settled on how to mount the Schism #keyboard plate. I've added nubs around the perimeter of the plate with a notch on either side, and then you hook O-rings into those notches. That lets me tweak material and thickness of the gasket by getting different O-rings.
Managed to compile Adafruit's bootloader (https://gitlab.com/gbrnt/schism-bootloader/-/tree/schism) and the keyboard actually shows up in dmesg, as a USB drive and the LED pulses!
Next I need to add the board to Zephyr.
Haven't posted any progress on my Schism #keyboard here recently, so here we go:
I've populated both sides of the keyboard now (right side still has no microcontroller yet, just using it as an extension of the left side's matrix).
The OLED worked immediately once I copied some config stuff from another ZMK keyboard. Generally after a minimal bit of figuring stuff out, ZMK has just worked.
The case design is still in progress, but the plate is relatively complete so I printed a couple and installed them. This is where I found that my printer was scaling things up by 0.75%.
It's actually usable now - I used it all day today!
If you're working in PartDesign, you shouldn't have to make use of the Part workbench's Booleans. Besides, there's a Boolean feature in PartDesign as well.
Is there any reason why you can't use PartDesign's transformation features rather than Draft Array? Besides the performance hit when dealing with high numbers of instances.
Could you explain a use case?
@normandc Does PartDesign have a way to create an array of holes based on point locations? The example is the key holes in this keyboard plate.
They're not positioned in any kind of grid, so I made a sketch with the relationships and manually positioned Draft Points on the locations in the sketch. Then made a new Body in PartDesign with the shape of the hole to cut and boolean subtracted it in Part.
Is there a nicer way to do that in PartDesign? In Solidworks I'd cut one hole and do a table driven pattern
Ah sorry, I should have inferred from your keyboard screenshot. Yeah, for your use case, that's the only way to do it. It will take someone to improve the PartDesign transformation tools to the same level. I wonder if realthunder did in his FreeCAD fork. He made a lot of improvements, like multi-bodies in the PartDesign Body container. It will trickle down to FreeCAD's main source code eventually.
Also, when missing tools in one workbench or the other, it's mainly because it hasn't been implemented yet. Most of the time it's because there's no developer to work on it.
At work up until last year, we were using Solid Edge 19, which came out back when Windows Vista was current!!! The pattern tool didn't have the table option from SolidWorks you're mentioning here. I believe the current 2021 version has it, but I haven't needed it yet.
@normandc I actually found a use for the table driven patterns at work! We had a PCB I was designing a "bed of nails" test fixture for, and the PCB designers exported a CSV of the test point locations. That meant I could use that to define the hole positions for the probes (there were about 200 so I wasn't about to do it by hand!)
@M4x I've driven sketch dimensions with a spreadsheet before - but with this many it would be kind of a mess, wouldn't it? Is there a way to define points in the spreadsheet and use that to drive the feature instead of having to draw out all the squares to cut? Also in PartDesign it'd need to be two features because the cut is stepped. That seems like more work than using the Draft PointArray method.
Thanks for linking the lattice2 workbench, I'll take a look!
@gbrnt I wouldn't define every point. Instead define the startingpoint(s) and the horizontal / vertical distance between a key. You can use this information to calculate the position of your pockets. Honestly I'm not sure if draft array isn't the better way already.
Draft array seems easier to correct if I change the position of keys in a new version of the PCB, as they'd all be individually adjustable.
This Mastodon instance is for people interested in technology. Discussions aren't limited to technology, because tech folks shouldn't be limited to technology either!