Comments (7)
title change;
Split keyboards (Let's Split, Ergodox, Dactyl, etc) are funky. In the case of the Lets Split, the choice was to have two micros (Infinity Ergo style) and with the ErgoDox and Dactyl, an IO expander is used for one or the other hand.
Having generic support for "split hand" keyboards like this might be really helpful.
from qmkbuilder.
You should already be able to do this. Just import the raw data keyboard-layout-editor.com ErgoDox layout to get started.
Import this:
[{x:3.5},"#\n3",{x:10.5},"*\n8"],
[{y:-0.875,x:2.5},"@\n2",{x:1},"$\n4",{x:8.5},"&\n7",{x:1},"(\n9"],
[{y:-0.875,x:5.5},"%\n5",{a:7},"",{x:4.5},"",{a:4},"^\n6"],
[{y:-0.875,a:7,w:1.5},"",{a:4},"!\n1",{x:14.5},")\n0",{a:7,w:1.5},""],
[{y:-0.375,x:3.5,a:4},"E",{x:10.5},"I"],
[{y:-0.875,x:2.5},"W",{x:1},"R",{x:8.5},"U",{x:1},"O"],
[{y:-0.875,x:5.5},"T",{a:7,h:1.5},"",{x:4.5,h:1.5},"",{a:4},"Y"],
[{y:-0.875,a:7,w:1.5},"",{a:4},"Q",{x:14.5},"P",{a:7,w:1.5},""],
[{y:-0.375,x:3.5,a:4},"D",{x:10.5},"K"],
[{y:-0.875,x:2.5},"S",{x:1},"F",{x:8.5},"J",{x:1},"L"],
[{y:-0.875,x:5.5},"G",{x:6.5},"H"],
[{y:-0.875,a:7,w:1.5},"",{a:4},"A",{x:14.5},":\n;",{a:7,w:1.5},""],
[{y:-0.625,x:6.5,h:1.5},"",{x:4.5,h:1.5},""],
[{y:-0.75,x:3.5,a:4},"C",{x:10.5},"<\n,"],
[{y:-0.875,x:2.5},"X",{x:1},"V",{x:8.5},"M",{x:1},">\n."],
[{y:-0.875,x:5.5},"B",{x:6.5},"N"],
[{y:-0.875,a:7,w:1.5},"",{a:4},"Z",{x:14.5},"?\n/",{a:7,w:1.5},""],
[{y:-0.375,x:3.5},"",{x:10.5},""],
[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
[{y:-0.75,x:0.5},"","",{x:14.5},"",""],
[{r:30,rx:6.5,ry:4.25,y:-1,x:1},"",""],
[{h:2},"",{h:2},"",""],
[{x:2},""],
[{r:-30,rx:13,y:-1,x:-3},"",""],
[{x:-3},"",{h:2},"",{h:2},""],
[{x:-3},""]
And you will get this:
You may need to adjust the pins or wiring depending on your needs.
from qmkbuilder.
Hmm i get the idea but wouldn't it be better that you (and other in your situation) just create 2 different keyboards? one for each hand? as im assuming your flashing each half individually with their own firmware. In the situation of the IO expander i dont think this site could easily support it anyway?
from qmkbuilder.
@scycer It doesn't quite work that way, both halves actually share the same firmware, but it differs from non-split keyboards in that there's additional code for communicating between each other.
from qmkbuilder.
Just looked up the Let's Split again :) makes more sense now. So for example both pro micro's in the Let's Split keyboard actually share the same firmware? And just communicate through the 3.5mm plug? I would wonder how this page could handle the more unique situations like split keyboards as its seems it may be a fair bit of work beyond creating the basic hex file for a single board (i'm building a split keyboard atm but have chosen just to run 12 thin wires from the right to left side, hardwired without a plug)
from qmkbuilder.
I too was hoping to do the same thing. I am using the serial connection with 12 rows and 6 columns. I finally was able to get it up and running. I ended up comparing the code files in let_split and going from there. From what I can tell what they do in this case is that they add in the serial.c
i2c.c
and a few others in the make file. I person also has to upload the two eeprom images into both pro micros. So instead of just a single hex file a person would get also two eep files. I tell you it was a pain though trying to get the build environment up and running so having this website (which makes it very clear what is going on) would be a HUGE bonus especially now that I have to figure out how I want my different layers. I wish I knew web programming a bit more so I could help out but sadly I don't. There are a few others at my work that are also building their keyboards and might possibly be using the same approach as me.
from qmkbuilder.
@scycer I was thinking that in the pins section you could allow for "two" atmega32u's then you could specify with a checkbox or radio group how you'd like to have the two talk (EEHand, Serial, I2C) the pin layout would still only show the single atmega32u's. With this option chosen it would then include the few files from let's split and change the makefile to include them. Then when you build the hex you would need to include the EEP files. As a note I have no clue how lets_split made those. I took them and just put them on.
side note: sorry I didn't say atmega32u(four) I have a short in mykeyboard so I can't actually type that number right now... Fix the short you say???? sure if I hadn't hot glued the case together... 🤕
from qmkbuilder.
Related Issues (20)
- Unable to use layout from the keyboard layout editor site HOT 1
- Mounting holes
- Why MACROS can't assign to a key? HOT 2
- Still alive? HOT 3
- Please add the possibility for "duplex columns"
- Key map creation optimization
- Oh Yeah!I work it out!
- Rotated keys are displayed incorrectly when board is flipped. HOT 9
- Please allow for custom keycode entering!
- load json file,
- [Feature Request] add support for other mcus like STM32
- Override errors
- Error: Cannot find module HOT 1
- Thank you HOT 5
- Cannot compile hex file - incorrect build server link? HOT 1
- Select AT90USB1286, get ATMEGA32U4 and missing pins in schematic
- Missing Pin E6 on ATMega32U4 HOT 1
- More then one command per key. HOT 1
- Please add IR sensor connection to the keyboard.
- KiCAD schema file contains errors
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from qmkbuilder.