• Please review our updated Terms and Rules here

GRiD external keyboard cable

LuckyLS

Member
Joined
Aug 6, 2025
Messages
10
I’m new here and the new owner of a Gridcase 1520. Overall it’s in great shape, but some of the keys aren’t responding. While I tinker with that I’m wondering if there’s any information about the external keyboard port on the back. I have no idea what kind of connector or adapter I’d need to use that. Does anyone know about this port or connector? Is it proprietary?
 
Actually I think this is just a 5 pin din connection. I don’t know where my head was at
 

Attachments

  • IMG_2307.jpeg
    IMG_2307.jpeg
    1.3 MB · Views: 10
I disassembled the keyboard. I’m wondering if these traces might be the culprit. They don’t seem worn or corroded enough to not pass a current but they do approximately align with the unresponsive keys, though not perfectly
 

Attachments

  • IMG_2314.jpeg
    IMG_2314.jpeg
    1.8 MB · Views: 13
  • IMG_2315.jpeg
    IMG_2315.jpeg
    1.8 MB · Views: 13
  • IMG_2319.jpeg
    IMG_2319.jpeg
    1.9 MB · Views: 13
Well, if you have an internal keyboard problem most likely you have broken trace on this membrane.
I mapped 1520/1530 keyboard before because I made QMK profile for it, so here is the layout.
You probably have one broken row or column, you can probably figure out where it is broken from the layout.
You need a special silver pen to fix the trace (something like this https://www.amazon.com/Ausbond-Conductive-Paint-Pen-Electrically/dp/B0FFYXCV63/ , or conductive UV curing paint from aliexpress). Good luck.
"layouts": {
"grid1520": {
"layout": [
{"x": 0, "y": 0, "matrix": [0, 2]}, // esc
{"x": 1, "y": 0, "matrix": [5, 2]}, // f1
{"x": 2, "y": 0, "matrix": [7, 2]},
{"x": 3, "y": 0, "matrix": [8, 8]},
{"x": 4, "y": 0, "matrix": [9, 8]},
{"x": 5, "y": 0, "matrix": [9, 7]},
{"x": 6, "y": 0, "matrix": [9, 6]},
{"x": 7, "y": 0, "matrix": [9, 5]},
{"x": 8, "y": 0, "matrix": [9, 4]},
{"x": 9, "y": 0, "matrix": [9, 3]},
{"x": 10, "y": 0, "matrix": [8, 1]},
{"x": 11, "y": 0, "matrix": [7, 1]}, // ins
{"x": 12, "y": 0, "matrix": [9, 1]}, // del
{"x": 13, "y": 0, "matrix": [6, 1]}, // bksp

{"x": 0, "y": 1, "matrix": [2, 2]}, // 1
{"x": 1, "y": 1, "matrix": [4, 2]},
{"x": 2, "y": 1, "matrix": [6, 2]},
{"x": 3, "y": 1, "matrix": [7, 8]},
{"x": 4, "y": 1, "matrix": [8, 7]},
{"x": 5, "y": 1, "matrix": [8, 6]},
{"x": 6, "y": 1, "matrix": [8, 5]},
{"x": 7, "y": 1, "matrix": [8, 4]},
{"x": 8, "y": 1, "matrix": [8, 3]}, // 9
{"x": 9, "y": 1, "matrix": [7, 4]}, // 0
{"x": 10, "y": 1, "matrix": [7, 3]}, // minus
{"x": 11, "y": 1, "matrix": [6, 3]}, // equal
{"x": 12, "y": 1, "matrix": [5, 1]}, // up

{"x": 0, "y": 2, "matrix": [0, 3]}, // tab
{"x": 1, "y": 2, "matrix": [3, 2]}, // q
{"x": 2, "y": 2, "matrix": [5, 8]}, // w
{"x": 3, "y": 2, "matrix": [6, 8]}, // e
{"x": 4, "y": 2, "matrix": [6, 7]}, // r
{"x": 5, "y": 2, "matrix": [7, 7]}, // t
{"x": 6, "y": 2, "matrix": [6, 6]}, // y
{"x": 7, "y": 2, "matrix": [7, 6]}, // u
{"x": 8, "y": 2, "matrix": [6, 5]}, // i
{"x": 9, "y": 2, "matrix": [7, 5]}, // o
{"x": 10, "y": 2, "matrix": [6, 4]}, // p
{"x": 11, "y": 2, "matrix": [5, 3]}, // singleq
{"x": 12, "y": 2, "matrix": [4, 3]}, // lt
{"x": 13, "y": 2, "matrix": [4, 1]}, // rt

{"x": 0, "y": 3, "matrix": [0, 4]}, // caps
{"x": 1, "y": 3, "matrix": [2, 5]}, // a
{"x": 2, "y": 3, "matrix": [4, 8]}, // s
{"x": 3, "y": 3, "matrix": [5, 7]}, // d
{"x": 4, "y": 3, "matrix": [4, 7]}, // f
{"x": 5, "y": 3, "matrix": [5, 6]}, // g
{"x": 6, "y": 3, "matrix": [4, 6]}, // h
{"x": 7, "y": 3, "matrix": [5, 5]}, // j
{"x": 8, "y": 3, "matrix": [4, 5]}, // k
{"x": 9, "y": 3, "matrix": [5, 4]}, // l
{"x": 10, "y": 3, "matrix": [4, 4]}, // semicol
{"x": 11, "y": 3, "matrix": [3, 3], "w": 1.5}, // ret
{"x": 12, "y": 3, "matrix": [3, 1]}, // dn

{"x": 0, "y": 4, "matrix": [1, 10], "w": 1.5}, // lshift
{"x": 1, "y": 4, "matrix": [3, 5]}, // z
{"x": 2, "y": 4, "matrix": [2, 8]}, // x
{"x": 3, "y": 4, "matrix": [3, 8]}, // c
{"x": 4, "y": 4, "matrix": [2, 7]}, // v
{"x": 5, "y": 4, "matrix": [3, 7]}, // b
{"x": 6, "y": 4, "matrix": [2, 6]}, // n
{"x": 7, "y": 4, "matrix": [3, 6]}, // m
{"x": 8, "y": 4, "matrix": [2, 4]}, // comma
{"x": 9, "y": 4, "matrix": [3, 4]}, // period
{"x": 10, "y": 4, "matrix": [2, 3]}, // slash
{"x": 11, "y": 4, "matrix": [1, 11], "w": 1.5}, // rshift

{"x": 0, "y": 5, "matrix": [2, 1]}, // lctrl
{"x": 1, "y": 5, "matrix": [0, 1]}, // bksl
{"x": 2, "y": 5, "matrix": [1, 0], "w": 1.5}, // lalt
{"x": 3, "y": 5, "matrix": [9, 2], "w": 6.5 }, // spc
{"x": 4, "y": 5, "matrix": [1, 9], "w": 1.5}, // fn
{"x": 5, "y": 5, "matrix": [8, 2], "w": 1.5} // sysrq
]
}
}
 
Well, if you have an internal keyboard problem most likely you have broken trace on this membrane.
I mapped 1520/1530 keyboard before because I made QMK profile for it, so here is the layout.
You probably have one broken row or column, you can probably figure out where it is broken from the layout.
You need a special silver pen to fix the trace (something like this https://www.amazon.com/Ausbond-Conductive-Paint-Pen-Electrically/dp/B0FFYXCV63/ , or conductive UV curing paint from aliexpress). Good luck.
"layouts": {
"grid1520": {
"layout": [
{"x": 0, "y": 0, "matrix": [0, 2]}, // esc
{"x": 1, "y": 0, "matrix": [5, 2]}, // f1
{"x": 2, "y": 0, "matrix": [7, 2]},
{"x": 3, "y": 0, "matrix": [8, 8]},
{"x": 4, "y": 0, "matrix": [9, 8]},
{"x": 5, "y": 0, "matrix": [9, 7]},
{"x": 6, "y": 0, "matrix": [9, 6]},
{"x": 7, "y": 0, "matrix": [9, 5]},
{"x": 8, "y": 0, "matrix": [9, 4]},
{"x": 9, "y": 0, "matrix": [9, 3]},
{"x": 10, "y": 0, "matrix": [8, 1]},
{"x": 11, "y": 0, "matrix": [7, 1]}, // ins
{"x": 12, "y": 0, "matrix": [9, 1]}, // del
{"x": 13, "y": 0, "matrix": [6, 1]}, // bksp

{"x": 0, "y": 1, "matrix": [2, 2]}, // 1
{"x": 1, "y": 1, "matrix": [4, 2]},
{"x": 2, "y": 1, "matrix": [6, 2]},
{"x": 3, "y": 1, "matrix": [7, 8]},
{"x": 4, "y": 1, "matrix": [8, 7]},
{"x": 5, "y": 1, "matrix": [8, 6]},
{"x": 6, "y": 1, "matrix": [8, 5]},
{"x": 7, "y": 1, "matrix": [8, 4]},
{"x": 8, "y": 1, "matrix": [8, 3]}, // 9
{"x": 9, "y": 1, "matrix": [7, 4]}, // 0
{"x": 10, "y": 1, "matrix": [7, 3]}, // minus
{"x": 11, "y": 1, "matrix": [6, 3]}, // equal
{"x": 12, "y": 1, "matrix": [5, 1]}, // up

{"x": 0, "y": 2, "matrix": [0, 3]}, // tab
{"x": 1, "y": 2, "matrix": [3, 2]}, // q
{"x": 2, "y": 2, "matrix": [5, 8]}, // w
{"x": 3, "y": 2, "matrix": [6, 8]}, // e
{"x": 4, "y": 2, "matrix": [6, 7]}, // r
{"x": 5, "y": 2, "matrix": [7, 7]}, // t
{"x": 6, "y": 2, "matrix": [6, 6]}, // y
{"x": 7, "y": 2, "matrix": [7, 6]}, // u
{"x": 8, "y": 2, "matrix": [6, 5]}, // i
{"x": 9, "y": 2, "matrix": [7, 5]}, // o
{"x": 10, "y": 2, "matrix": [6, 4]}, // p
{"x": 11, "y": 2, "matrix": [5, 3]}, // singleq
{"x": 12, "y": 2, "matrix": [4, 3]}, // lt
{"x": 13, "y": 2, "matrix": [4, 1]}, // rt

{"x": 0, "y": 3, "matrix": [0, 4]}, // caps
{"x": 1, "y": 3, "matrix": [2, 5]}, // a
{"x": 2, "y": 3, "matrix": [4, 8]}, // s
{"x": 3, "y": 3, "matrix": [5, 7]}, // d
{"x": 4, "y": 3, "matrix": [4, 7]}, // f
{"x": 5, "y": 3, "matrix": [5, 6]}, // g
{"x": 6, "y": 3, "matrix": [4, 6]}, // h
{"x": 7, "y": 3, "matrix": [5, 5]}, // j
{"x": 8, "y": 3, "matrix": [4, 5]}, // k
{"x": 9, "y": 3, "matrix": [5, 4]}, // l
{"x": 10, "y": 3, "matrix": [4, 4]}, // semicol
{"x": 11, "y": 3, "matrix": [3, 3], "w": 1.5}, // ret
{"x": 12, "y": 3, "matrix": [3, 1]}, // dn

{"x": 0, "y": 4, "matrix": [1, 10], "w": 1.5}, // lshift
{"x": 1, "y": 4, "matrix": [3, 5]}, // z
{"x": 2, "y": 4, "matrix": [2, 8]}, // x
{"x": 3, "y": 4, "matrix": [3, 8]}, // c
{"x": 4, "y": 4, "matrix": [2, 7]}, // v
{"x": 5, "y": 4, "matrix": [3, 7]}, // b
{"x": 6, "y": 4, "matrix": [2, 6]}, // n
{"x": 7, "y": 4, "matrix": [3, 6]}, // m
{"x": 8, "y": 4, "matrix": [2, 4]}, // comma
{"x": 9, "y": 4, "matrix": [3, 4]}, // period
{"x": 10, "y": 4, "matrix": [2, 3]}, // slash
{"x": 11, "y": 4, "matrix": [1, 11], "w": 1.5}, // rshift

{"x": 0, "y": 5, "matrix": [2, 1]}, // lctrl
{"x": 1, "y": 5, "matrix": [0, 1]}, // bksl
{"x": 2, "y": 5, "matrix": [1, 0], "w": 1.5}, // lalt
{"x": 3, "y": 5, "matrix": [9, 2], "w": 6.5 }, // spc
{"x": 4, "y": 5, "matrix": [1, 9], "w": 1.5}, // fn
{"x": 5, "y": 5, "matrix": [8, 2], "w": 1.5} // sysrq
]
}
}
This could be exactly what I need! Thank you 0xDEADBEEF
 
@Conventional Memories repaired similar keyboard for GRiD Compass 1137 last year. If I remember correctly, he used conductive pen marker or rear window hear conductive adhesive or something like this. Hope highlighting him in forum will help to get his attention and he will tell what he done.
 
@Conventional Memories repaired similar keyboard for GRiD Compass 1137 last year. If I remember correctly, he used conductive pen marker or rear window hear conductive adhesive or something like this. Hope highlighting him in forum will help to get his attention and he will tell what he done.
Yeah, that would be great. I’d also like to know how he got the membranes apart. They’re sealed together. I’m thinking about trying low heat with a heat gun
 
Hi, Tnx @JDat ;)
So I've had this same problem with rows/columns on the keyboard matrix not working on 2 GRiD machines. One was a GRiDcase 4 where one of the transistors driving the matrix was bad. and one was a Compass 1137 where the matrix / membrane itself was bad.
fixing the membrane is a real pain in the *** and I almost destroyed mine in the process. I would defenitely try to make sure the problem is in the matrix an not on the motherboard.
You can test the inputs on the motherboard by shorting the column and row pins to see if a keypress registers.

On my GRiDcase 4 one the ic's that contained the transistors to drive the matrix had a bad transistor in it and I had to replace that. (I didn't have one of those IC's on hand so I bodged in a seperate transistor)

20210513_161611.jpg

On the compass 1137 the problem was defenitly in the keyboard matrix itself, around the erea where the connector is and the cable bends. The trick is to not seperate the membrane layers, I tried that first and only made things worse by causing new breaks. What did work for me was to slowly cut off layer by layer of the broken erea until I had excavated down to the broken trace. After that I used some conductive paint to fix the traces. Here are some pictures of the whole thing, It doesnt look very pretty, but it works great now. Feel free to ask if you have some more questions.

20240702_020756.jpg20240702_131527.jpg20240703_010811.jpg
 
Hi, Tnx @JDat ;)
So I've had this same problem with rows/columns on the keyboard matrix not working on 2 GRiD machines. One was a GRiDcase 4 where one of the transistors driving the matrix was bad. and one was a Compass 1137 where the matrix / membrane itself was bad.
fixing the membrane is a real pain in the *** and I almost destroyed mine in the process. I would defenitely try to make sure the problem is in the matrix an not on the motherboard.
You can test the inputs on the motherboard by shorting the column and row pins to see if a keypress registers.

On my GRiDcase 4 one the ic's that contained the transistors to drive the matrix had a bad transistor in it and I had to replace that. (I didn't have one of those IC's on hand so I bodged in a seperate transistor)

View attachment 1306075

On the compass 1137 the problem was defenitly in the keyboard matrix itself, around the erea where the connector is and the cable bends. The trick is to not seperate the membrane layers, I tried that first and only made things worse by causing new breaks. What did work for me was to slowly cut off layer by layer of the broken erea until I had excavated down to the broken trace. After that I used some conductive paint to fix the traces. Here are some pictures of the whole thing, It doesnt look very pretty, but it works great now. Feel free to ask if you have some more questions.

View attachment 1306076View attachment 1306077View attachment 1306078
Thank you Conventional Memories! This is very helpful information. Fortunately I haven’t started trying to get the membranes apart yet. I’m not confident in my freehand application of the paint so I’m planning to tape off the trace path I need to rebuild if I need that solution. I’ll definitely check the board first.
 
damn, that is some surgery.
if my keyboard ever dies i will make a new pcb with cherry mx switches or something like that. because i hate dealing with these membranes.
 
damn, that is some surgery.
if my keyboard ever dies i will make a new pcb with cherry mx switches or something like that. because i hate dealing with these membranes.
That’s a bit beyond my knowledge level, but if this gets too frustrating it might be time to acquire some new skills, haha
 
well, i just started messing with kicad, but as far as complexity goes keyboard is just a bunch (or a big bunch) of wires. no actual knowledge of electronics required.
 
I had an idea to order flexible PCB from PCBWay/JLCPCB for keyboard repairing.
 
Back
Top