jaredjennings / dactyl-keyboard

Parameterized ergonomic keyboard
GNU Affero General Public License v3.0
53 stars 2 forks source link

Automatic placement of the switches footprints on a pcb #59

Open Supermagnum opened 4 years ago

Supermagnum commented 4 years ago

Since the position of the holes for the switches is known, there should be possible to add a utility that places the footprints of the switches on a PCB according to the geometric layout of the keyboard halves. Placement on the pins for ALPS switches: https://matias.ca/switches/click/blueprints/3.jpg Cherry switches: https://www.cherrymx.de/en/dev.html

Hybrid footprints for Kicad ( he should have used a oval hole, its easy to spot where ) https://github.com/ai03-2725/MX_Alps_Hybrid

Kicad has a python API: https://docs.kicad-pcb.org/master/en/plugins/plugins.html

jaredjennings commented 4 years ago

This is a great idea. It requires flexible printed circuits (FPC), or wiggles and weaves, owing to the 3D nature of this keyboard. It's not a high priority for me, because so far I've just handwired them. I'll also note that gEDA PCB has a text-based file format. I'm not sure how easy KiCAD's file format is to write, or how stably it is defined, but this might be an easier way to integrate with it than talking to a running instance of KiCAD. Although KiCAD is more commonly used, I haven't personally found anything to dislodge me from PCB yet.

Patches gratefully accepted!

jaredjennings commented 4 years ago

Maybe it only requires 0.6mm PCBs? - This implementation of PCBs is not parameterized, and the keyboard was remodelled in Fusion 360, with the key positions fixed. So automatic PCB generation would still be novel.

This feature would likely require the key placement function to be usable in Clojure, not only OpenSCAD (#10): OpenSCAD can project 3D features down to 2D, but that is different from unfolding them to a flat plane. And now that I describe this that way, it sounds a lot like the problem of making paper mockups, for which I can't find an issue. Could have sworn I filed that one.

jaredjennings commented 4 years ago

Well, that paper mockup ticket is now #61.

jaredjennings commented 4 years ago

More on that one with the 0.6mm PCB, the Bastyl

Supermagnum commented 4 years ago

The PCB'S should optimally have one or two signal layers and two other layers acting as shield to minimize the risk for radio interference.

jaredjennings commented 4 years ago

If the code to generate the PCB were written, adding the two extra layers would be a small extra effort. But I don't think it's necessary: the original Dactyl, and the Kinesis Advantage, are made with single-layer flexible printed circuits (FPCs). The signals travelling over these boards are maximally in the kilohertz range - all the multi-MHz signals where this consideration comes into play the most are on the Pro Micro or Teensy itself.

Supermagnum commented 4 years ago

This is a better footprints library, it is scheduled to be merged in to the official Kicad GitHub library: https://github.com/egladman/keebs.pretty Merge request: https://github.com/egladman/keebs.pretty/issues/7

jaredjennings commented 3 years ago

The Bastyl folks have managed this without wiggles and weaves, and without FPCs. (Good discussion about those in the comments, particularly cost/build-complexity tradeoffs.)

jaredjennings commented 3 years ago

Discussion about commercial use. It seems that the friend commercializing flexing FR4 PCBs for ergonomic keyboards on cy384's blog ("wiggles and weaves" above) may have been u/smyjpmu at hidtech.ca?

This is something to watch out for: HIDTech's design appears to have been licensed CC-BY-NC, which is more restrictive than this project. So any appearance of copying that design here should be avoided. In fact, it may be impossible to develop this feature unimpeachably at this time.

jaredjennings commented 3 years ago

More about HIDTech, Bastyl, u/smyjpmu (Anthony), and u/fmcraft (Quentin): https://www.reddit.com/r/ErgoMechKeyboards/comments/ld97a3/psa_anthony_usmyjpmu_is_a_con_artist_who_scammed/

equalunique commented 3 years ago

A similar utility was created by Phil Hagelberg for his Atreus project: https://gitlab.com/technomancy/atreus/-/blob/efcf961441966f0dfb305b80bf78b3da62ca0f3f/atreus.rkt

Supermagnum commented 3 years ago

Any updates on this?

jaredjennings commented 3 years ago

I haven't done anything on the topic. Quentin's got PC boards at https://bastardkb.com, but they won't fit this keyboard with all of my layout tweaks. Thanks to a working prototype I made in the past few weeks, I've found my tweaks are horrible anyway, so go buy one of his keyboards :)

jaredjennings commented 3 years ago

https://www.reddit.com/r/ErgoMechKeyboards/comments/p8m8h0/dactyl_flex_pcbs_arrived_from_jlcpcb_with/

jaredjennings commented 2 years ago

https://www.reddit.com/r/ErgoMechKeyboards/comments/qbw7i4/opensourced_dactyl_manuform_flexible_pcbs/