geekhack
geekhack Projects => Making Stuff Together! => Topic started by: Jignoni on Fri, 26 February 2021, 20:50:49
-
Hello,
i was hoping for some help here with a dactyl manuform I'm trying to build (first hardwired build).
here is the issue. its ready but when I flash it with the 5x7 from qmk configurator it finishes the flash but nothing works. If i flash it with the left hand only i get two keys to work.
so I'm lost. It could be that i messed up the wiring to the pro micro ( I'm using a "bit usb-c"), I followed a guide for a 5x6 and had an extra column to figure out.
anyways this is my dactyl
cant find the keymap for it anywhere so this could be my problem ?
(https://i.ibb.co/LRrgH1P/154630283-431740174767834-216330785858595328-n.jpg) (https://ibb.co/LRrgH1P)
and this is the wiring I did with some modifications.
since i had an extra column i put that in pin 3 and the rj9 in 2 (thinking I could some how change that at some point) more likely this is my problem ?
(https://miro.medium.com/max/2400/1*Q7xYKNrfMr8au7zUipBlGg.jpeg)
-
First of all, handwiring is difficult and sometimes quite unestable if not done properly. Be sure that you have good solder points, you can check this with a promicro, using a led and a breadboard and some wires, check the start of the column and the end of the row, if it lights when pressing then is ok or the problem is the promicro connection.
****ty diagram of the ****ty invention: https://drive.google.com/file/d/11Nkhe_AkVW-JqsjypgpDfKvgOHuQLNRr/view?usp=sharing (https://drive.google.com/file/d/11Nkhe_AkVW-JqsjypgpDfKvgOHuQLNRr/view?usp=sharing)
Second, if you have modified the default wiring, no matter how little, then you should download the qmk source code and modify it to reflex your changes, compile it and burn it. It's not that difficult.
If you upload some detailed photos of the real thing it'll help us.
-
since i had an extra column i put that in pin 3 and the rj9 in 2 (thinking I could some how change that at some point) more likely this is my problem?
yes, that's part of it. if you put a column on pin 3 "D0" which the software thinks is the serial connection for the other half.
the other thing is, i don't know if the 5x7 in the configurator is the same as your modified 5x6 wiring. don't think it is. see the attached screen shot of the 5x7 layout from qmk configurator.
[attach=1]
are you comfortable in qmk source code? or have no idea? (there's no wrong answer) we can help if needed
here's a cross reference between the two controllers, looks like there's no surprises (i hadn't heard of the bit-c before)
[attach=2]
1. we'll need to map out your matrix
2. we'll need to adjust the firmware to match your setup
3. i also noted that the bit-c uses DFU for a bootloader instead of caterina, which this info may help if you couldn't ge them to flash. the run of the mill promicros use caterina as a bootloader. being DFU is a good thing, just a little different than a standard promicro
for starters (if it's not too difficult) can we switch pins 2 & 3 around
- extra column on pin 2 D1
- serial to pin2 D0
just because that's kind of the standard on split boards
(you are using serial correct? or are you using i2c? if using i2c you'll need an extra wire to the rj connector and some resistors, serial is fine (i prefer it for these simple builds), but again, we need to make sure it's specified correctly in the firmware because you can choose either)
for the mapping, can we get a diagram or at least some good pics of the underside so we can see what's wired to what
also, did you pay attention to the direction of the diodes? the line or black stripe should be away from the switch, the black stripe should not be connected to the switch leg using the wiring example you provided. you can do it the other way as well, you'll just strobe the rows & columns differently
here are two good handwiring articles i refer to a lot
https://geekhack.org/index.php?topic=87689.0
https://deskthority.net/viewtopic.php?t=1067
i started a KLE for the matrix (play with it if you find it helpful)
http://www.keyboard-layout-editor.com/#/gists/2fb02eabda55657f3fea88a66e75e934
-
Impossible to say for sure without pics of your wiring but two keys working suggests all the other diodes are the wrong way round, or those two diodes are dead. Do you have a multimeter/continuity tester? The current should only flow one way so swapping the probes doesn't beep.
Assuming RJ9 is the connection between the boards that would need to be on a specific pin so you can't move it to make the wiring tidy. I'm assuming the bit-c is pinout compatible with the pro micro? If not maybe nothing is connected where you think it is which will not work well...
-
hello again, finally of work so i can work on this again.
so I checked all the diodes and the black is always away from the switch
a picture of my wiring
(https://i.ibb.co/41hHggT/155024396-968244930583408-6218109204147101993-n.jpg) (https://ibb.co/41hHggT) (https://i.ibb.co/5BtYtbQ/154963363-439129660634418-725229764606744136-n.jpg) (https://ibb.co/5BtYtbQ)
@you can check this with a promicro, using a led and a breadboard and some wires, check the start of the column and the end of the row, if it lights when pressing then is ok or the problem is the promicro connection.
Second, if you have modified the default wiring, no matter how little, then you should download the qmk source code and modify it to reflex your changes, compile it and burn it. It's not that difficult.
If you upload some detailed photos of the real thing it'll help us.
alright i made the test unit from a spare bit-c i had (that's what you met right ?)
having a lot of problems pressing switches and holding the probes :confused:
i think my wiring vs qmk firmware is the first step to check since that is obviously a problem even if it might not be the only one
since i had an extra column i put that in pin 3 and the rj9 in 2 (thinking I could some how change that at some point) more likely this is my problem?
yes, that's part of it. if you put a column on pin 3 "D0" which the software thinks is the serial connection for the other half.
the other thing is, i don't know if the 5x7 in the configurator is the same as your modified 5x6 wiring. don't think it is. see the attached screen shot of the 5x7 layout from qmk configurator.
(Attachment Link)
are you comfortable in qmk source code? or have no idea? (there's no wrong answer) we can help if needed
here's a cross reference between the two controllers, looks like there's no surprises (i hadn't heard of the bit-c before)
(Attachment Link)
1. we'll need to map out your matrix
2. we'll need to adjust the firmware to match your setup
3. i also noted that the bit-c uses DFU for a bootloader instead of caterina, which this info may help if you couldn't ge them to flash. the run of the mill promicros use caterina as a bootloader. being DFU is a good thing, just a little different than a standard promicro
for starters (if it's not too difficult) can we switch pins 2 & 3 around
- extra column on pin 2 D1
- serial to pin2 D0
just because that's kind of the standard on split boards
(you are using serial correct? or are you using i2c? if using i2c you'll need an extra wire to the rj connector and some resistors, serial is fine (i prefer it for these simple builds), but again, we need to make sure it's specified correctly in the firmware because you can choose either)
for the mapping, can we get a diagram or at least some good pics of the underside so we can see what's wired to what
also, did you pay attention to the direction of the diodes? the line or black stripe should be away from the switch, the black stripe should not be connected to the switch leg using the wiring example you provided. you can do it the other way as well, you'll just strobe the rows & columns differently
here are two good handwiring articles i refer to a lot
https://geekhack.org/index.php?topic=87689.0
https://deskthority.net/viewtopic.php?t=1067
i started a KLE for the matrix (play with it if you find it helpful)
http://www.keyboard-layout-editor.com/#/gists/2fb02eabda55657f3fea88a66e75e934
I have made some qmk firmware the hard way to make a "custom layout" for a kbd75 just following some youtube videos. I would not say Im good.
the bit-c was supposed to be a drop in replacement for the pro micro and it flashed with no problems. Its just hard to get pro micro in Iceland with out playing 50$ for shipping
I swapped the pins so serial is back on 3 D0 and extra column is on 2 D1
I am using serial for this build
for the mapping, is there a good tool to show this ?
here is my attempt in paint sorry haha
note that the switch in the red circle is not on mine. i have a 5 button thumb cluster
(https://i.ibb.co/J5Q0LMM/superbad-layout-drawing.png) (https://ibb.co/J5Q0LMM)
1. we'll need to map out your matrix
2. we'll need to adjust the firmware to match your setup
this is where I think i have to start right ? cant test anything with out a firmware that makes sense
3. i also noted that the bit-c uses DFU for a bootloader instead of caterina, which this info may help if you couldn't ge them to flash. the run of the mill promicros use caterina as a bootloader. being DFU is a good thing, just a little different than a standard promicro
I did figure this out with the help of some guides and it does flash
(https://i.ibb.co/YkGQz57/Screenshot-2.png) (https://ibb.co/YkGQz57)
Impossible to say for sure without pics of your wiring but two keys working suggests all the other diodes are the wrong way round, or those two diodes are dead. Do you have a multimeter/continuity tester? The current should only flow one way so swapping the probes doesn't beep.
Assuming RJ9 is the connection between the boards that would need to be on a specific pin so you can't move it to make the wiring tidy. I'm assuming the bit-c is pinout compatible with the pro micro? If not maybe nothing is connected where you think it is which will not work well...
i have a simple multi meter somewhere but i did some preliminary testing with the test unit fpazos showed above to test the diodes and they look to work.
im sure at t his point that i messed up the firmware and need to fix that first to see if something else is wrong
And wow thanks for all the work you guys put in to this
-
thanks for the pics. that works. at a glance, everything looks good. will just have to work out the couple differences in the firmware.
give me a day or so and i'll work out the new matrix for qmk, then will walk you through it. it's really pretty simple once you know what's what.
bit-c, no it's fine. like i said... not a bad thing. i'll keep that in mind because it seems everybody is asking for a usb-c version of a promicro or usb-c daughter board (good find, thanks)
mapping out the matrix... i usually use KLE to make notes, which then can be used for VIA (https://caniusevia.com/) compatibility as well. if your just getting into ergo boards and are not concrete on your layout yet, VIA is fantastic (on the fly reprogramming of the microcontroller, no flashing required after initial flash of VIA compatible firmware)
couple spots to check...
[attach=1]
[attach=2]
-
wow thanks, ill look at those spots.
I would love to learn how to make it compatible with VIA but just getting it working at this point is awesome !
-
oh, we can definitely do both.
-
Ok. Took a closer look at the photos and the default firmware for 5x7s & 5x6s. They do it a little different than I would, but it will still work.
It looks like you have the rows on the high# pins instead of the low# pins and the columns on the low# pins instead of the high# pins (what the default firmware is expecting).
- You had the controller flipped USB port down instead of up when you started wiring the columns & rows to the controller.
- Which isn’t a big deal, we just need to get your pin assignments correct for how you already have it wired.
Since the pic is of the underside of the controller pcb, I can’t see which wire is in which pin, so I’ll need you to confirm the pin assignments. They SHOULD be the same for both sides but please double check. You can use the numbers or the 3 character designation, up to you….
[attach=1]
[attach=3]
RIGHT
Column 0 = pin _____
Column 1 = pin _____
Column 2 = pin _____
Column 3 = pin _____
Column 4 = pin _____
Column 5 = pin _____
Column 6 = pin _____
Row 0 = pin _____
Row 1 = pin _____
Row 2 = pin _____
Row 3 = pin _____
Row 4 = pin _____
Row 5 (4 thumb keys) = pin _____
LEFT
Column 0 = pin _____
Column 1 = pin _____
Column 2 = pin _____
Column 3 = pin _____
Column 4 = pin _____
Column 5 = pin _____
Column 6 = pin _____
Row 0 = pin _____
Row 1 = pin _____
Row 2 = pin _____
Row 3 = pin _____
Row 4 = pin _____
Row 5 (4 thumb keys) = pin _____
Which half are you using as the MASTER half? (The half that connects to the computer)
Check for any shorts while you’re in there
The RJ (TRRS) connectors should be getting VCC, GND & PDO (pin 3) on both halves
There’s a slight wiring difference between the thumb keys as well. again, not a big deal, just let me know if you change anything from the pics we already have.
[attach=2]
-
I am at work right now. I will double check the wiring to pins and shorts when I get home (3.5ish hours from now) but i will answer what i can here.
Which half are you using as the MASTER half? (The half that connects to the computer) = Left will be master
Check for any shorts while you’re in there = will do this as soon as i get home
The RJ (TRRS) connectors should be getting VCC, GND & PDO (pin 3) on both halves = yes (when i connect them to the pc the slave half does turn on and i can reset it)
There’s a slight wiring difference between the thumb keys as well. again, not a big deal, just let me know if you change anything from the pics we already have. = i messed up there and i will fix it when i get home !
also if the wiring is not optimal i don't mind moving the columns/rows according to your advice if it makes it easier for you !
i will go over the grid again when i get home and send the pin out
-
also if the wiring is not optimal i don't mind moving the columns/rows according to your advice if it makes it easier for you !
no, no need to. you have pins to spare so it's ok. if you were planning some elaborate LEDs or something then we might want to change things around to free up some pins. but as is, you could still probably put a led strip under each half for underglow and still be fine pin wise.
once we get it working i will show you how i typically do it so you know a little more for your next build.
also sent you a PM on here asking if you're on discord. take a look at your PMs then.
-
alright.
finally home from work! first a quick question, do you want me to fix the wiring difference you mentioned ? i see that you marked it on the diagram so i don't want to move it if you already accounted for it just to make more work for you haha ?
second the problem spots you mentioned earlier are all okay, just look bad on the picture the row/column is not soldered to gather and the diode does reach over and to the "black side of the next diode with out shorting(1mm clearance but does look bad on that picture)
and the pins
RIGHT
Column 0 = pin 2 = orange
Column 1 = pin 4 = brown
Column 2 = pin 5 = blue
Column 3 = pin 6 = purple
Column 4 = pin 7 = green
Column 5 = pin 8 = yelow
Column 6 = pin 9 = red
Row 0 = pin A1
Row 1 = pin A0
Row 2 = pin 15
Row 3 = pin 14
Row 4 = pin 16
Row 5 (4 thumb keys) = pin 10
LEFT
Column 0 = pin 2 = red
Column 1 = pin 4 = yellow
Column 2 = pin 5 = green
Column 3 = pin 6 = purple
Column 4 = pin 7 = blue
Column 5 = pin 8 = brown
Column 6 = pin 9 = orange
Row 0 = pin A1
Row 1 = pin A0
Row 2 = pin 15
Row 3 = pin 14
Row 4 = pin 16
Row 5 (4 thumb keys) = pin 10
-
do you want me to fix the wiring difference you mentioned ? i see that you marked it on the diagram so i don't want to move it if you already accounted for it just to make more work for you haha ?
it's up to you. i just need to know if you fix it so the matrix matches the wiring.
second the problem spots you mentioned earlier are all okay, just look bad on the picture the row/column is not soldered to gather and the diode does reach over and to the "black side of the next diode with out shorting(1mm clearance but does look bad on that picture)
figured that was probably the case, but wanted to check.
pin notations... great! thanks.
the way most of these split boards work.. instead of it being a typical 6x14 matrix like you'd think the left & right halves get stacked so the matrix in the firmware is actually 12x7
lke this
#define LAYOUT_5x7( \
L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
L30, L31, L32, L33, L34, L35, L36 R30, R31, R32, R33, R34, R35, R36, \
L43, L44, L45, R41, R42, R43, \
L56, L53, R52, R50, \
L55, L54, R53, R51 \
) \
{ \
{ L00, L01, L02, L03, L04, L05, L06 }, \
{ L10, L11, L12, L13, L14, L15, L16 }, \
{ L20, L21, L22, L23, L24, L25, L26 }, \
{ L30, L31, L32, L33, L34, L35, L36 }, \
{ KC_NO, KC_NO, KC_NO, L43, L44, L45, KC_NO }, \
{ KC_NO, KC_NO, KC_NO, L53, L54, L55, L56 }, \
{ R00, R01, R02, R03, R04, R05, R06 }, \
{ R10, R11, R12, R13, R14, R15, R16 }, \
{ R20, R21, R22, R23, R24, R25, R26 }, \
{ R30, R31, R32, R33, R34, R35, R36 }, \
{ KC_NO, R41, R42, R43, KC_NO, KC_NO, KC_NO }, \
{ R50, R51, R52, R53, KC_NO, KC_NO, KC_NO } \
}
the upper set is transposed to "look" like your layout
the lower set is the physical electrical matrix
explanation of numbering (can be done a number of ways, and everyone has their own preference on how to do it, but this is what i do so it coincides with what the physical matrix is as well as the row/column notations needed for via)
L00 is Left, row0, column0
it sounds weird but in most configurations of the firmware the numbering starts a 0 instead of 1
KC_NO is a notation that there is no switch in that position in the matrix
-
do you want me to fix the wiring difference you mentioned ? i see that you marked it on the diagram so i don't want to move it if you already accounted for it just to make more work for you haha ?
it's up to you. i just need to know if you fix it so the matrix matches the wiring.
okey I will leave it as is then and do a better job next time haha
the way most of these split boards work.. instead of it being a typical 6x14 matrix like you'd think the left & right halves get stacked so the matrix in the firmware is actually 12x7
lke this
#define LAYOUT_5x7( \
L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
L30, L31, L32, L33, L34, L35, L36 R30, R31, R32, R33, R34, R35, R36, \
L43, L44, L45, R41, R42, R43, \
L56, L53, R52, R50, \
L55, L54, R53, R51 \
) \
{ \
{ L00, L01, L02, L03, L04, L05, L06 }, \
{ L10, L11, L12, L13, L14, L15, L16 }, \
{ L20, L21, L22, L23, L24, L25, L26 }, \
{ L30, L31, L32, L33, L34, L35, L36 }, \
{ KC_NO, KC_NO, KC_NO, L43, L44, L45, KC_NO }, \
{ KC_NO, KC_NO, KC_NO, L53, L54, L55, L56 }, \
{ R00, R01, R02, R03, R04, R05, R06 }, \
{ R10, R11, R12, R13, R14, R15, R16 }, \
{ R20, R21, R22, R23, R24, R25, R26 }, \
{ R30, R31, R32, R33, R34, R35, R36 }, \
{ KC_NO, R41, R42, R43, KC_NO, KC_NO, KC_NO }, \
{ R50, R51, R52, R53, KC_NO, KC_NO, KC_NO } \
}
i did not expect that but i guess this is caused by the use of a slave controller ?
the upper set is transposed to "look" like your layout
the lower set is the physical electrical matrix
explanation of numbering (can be done a number of ways, and everyone has their own preference on how to do it, but this is what i do so it coincides with what the physical matrix is as well as the row/column notations needed for via)
L00 is Left, row0, column0
it sounds weird but in most configurations of the firmware the numbering starts a 0 instead of 1
KC_NO is a notation that there is no switch in that position in the matrix
Good to know, this is logical
Should i be doing something now ?
-
Should i be doing something now ?
nah, just wanted to check a couple things, mainly the pins, before i finished baking the firmware.... though, it smells good already... lol
stacking rows... it's so you don't have some convoluted notation of columns on the left half that are only present on the right. it makes much more sense to add rows than columns. plus, it usually saves a couple pins on the controller.
-
Should i be doing something now ?
nah, just wanted to check a couple things, mainly the pins, before i finished baking the firmware.... though, it smells good already... lol
stacking rows... it's so you don't have some convoluted notation of columns on the left half that are only present on the right. it makes much more sense to add rows than columns. plus, it usually saves a couple pins on the controller.
Hey nevin hows it going :D ?
I have been trying to scratch at this while I wait. My latest attempt is stuck on some error for "x arguments but it only takes y arguments"
-
That error sounds like you have more keycodes than key positions, if that helps.
-
Apologies been very busy. Should be able to get this squared away this weekend (hopefully today)
-
Apologies been very busy. Should be able to get this squared away this weekend (hopefully today)
no stress ! just asking, i will keep grinding haha
That error sounds like you have more keycodes than key positions, if that helps.
It does help and I thought I had changed that to match but i guess i have to go back and read
-
setting up the build environment on the newer computer
get back to you shortly
-
@Jignoni are you on discord? check your personal messages here on geekhack
-
I am
-
I might not be seeing pms for some reason.
did you get mine ?
-
If you didn't tick the box your sent PMs will disappear, it's a fun feature that catches everyone out on their first time.
-
haha thanks, went and ticked the box atleast :D
-
@Jignoni sent PM with my discord name. send request on discord
i'm on the keymap. need your input, what you want the initial keymap to be. you can change it in VIA after flash
or in code, i'll send you your firmware folder as well as a hex
-
@suicidal_orange have you done much work with git/qmk pull requests & stuff? i've done a handful of things in qmk & via but never submitted anything. do you know a good how to tutorial?
-
I've never played with git either but I have picked up from reading random threads that it's quite messy - you have to create a fork and put your changes in that then you submit a pull request and the owner of the original has to merge the changes.
Makes sense when you're changing existing code but not really when you're just adding a folder that has zero effect on anything else.
-
yeah i gathered that was the gist. but there's also a handful of etiquette that is usually involved as well (from watching mechmerlin).
Makes sense when you're changing existing code but not really when you're just adding a folder that has zero effect on anything else.
agreed. very good point.
-
YAY! we got it working. will post firmware hex & folder here as well for anyone else doing a 5x7 in this configuration (a 5x6 with an extra column added)
-
YAY! we got it working. will post firmware hex & folder here as well for anyone else doing a 5x7 in this configuration (a 5x6 with an extra column added)
Hi there, got the same build and at the moment the same problem :D
Just wanted to asked where I can find the firmeware/keymap, was searching for it but can't find it.
Best regards
-
Will post here shortly. Though there were some things with this one that might not be the same with yours. But we can adjust for that as well.
-
ok. this was the firmware & files for THIS SPECIFIC BUILD. the thumb clusters were not wired the same between halves. (see above (https://geekhack.org/index.php?topic=111427.msg3019472#msg3019472))
***your wiring may be slightly different, your pin usage may be slightly different.
if this gets you started, great. if you need help (me to make adjustments) let me know, i'd be more than happy to help.
- it's usually easier with the back & forth on discord when we get to the final adjustments, etc. will send you PM w/my discord name, just send me a friend request on discord.
attached is a the firmware folder for Jignoni's wiring, the final hex we used as well as the json layout for via. (which are also all in the zipped folder)
[attachurl=1]
[attachurl=2]
[attachurl=3]
-
Hey folks, I've been following along with this thread but I realised that my keyboard layout is slightly different to the one discussed here. Oops :( My layout is as shown on the left side here: https://i.imgur.com/PTbJ0CJ.jpg
When I try to use the hex file posted here, I cannot get 4-5 keys to work on both halves. I have been trying to edit the layout in QMK CLI but it is giving me compile errors, by any chance can one of you please help me with getting the keymap fixed?
Also, I am quite experienced with Git so if any of you still want to push this layout to GitHub, I'd be very happy to help.
-
will look at it & get you squared away in the next day or so.
yes. if your matrix doesn't match Jignoni's exactly you'll have trouble with this firmware.
the issue won't be in the keymap but in the matrix file.
and yes, i'll take you up on the git tutorial. i have a handful i'd like to push but haven't had the chance to dig into it.
-
Hi @nevin thanks for the help. Actually, I just managed to do the firmware myself. Posting it here for anyone else who ends up using the same layout as me :)
For anyone else looking to use this, delete the existing 5x7 keyboard layout in your hardwired/dactyl_manuform qmk_firmware working directory and it should compile out of the box. The Mansoor-AR keymap is the correct one for my wiring scheme.
-
glad you got it figured out.
-
Thanks! Offer to help with Git still stands -- drop me an email if you'd like that :)
-
thanks. will do. but probably won't contact you till after the holidays.