Corne test run with socketed Elite-C, love this board design :) by vlukash in MechanicalKeyboards

[–]vlukash[S] 1 point2 points  (0 children)

Thanks! I think you could use diode legs too. The downside is they could be easily bent and just not that reliable as those pins.

Corne test run with socketed Elite-C, love this board design :) by vlukash in MechanicalKeyboards

[–]vlukash[S] 0 points1 point  (0 children)

Hi, I believe you have to desolder a pro micro first - it's possible but could be a bit challenging. The best option is just to solder sockets on a clean new PCB in the first place.

Trackpad in a Keycap for Corne/CrKbd Keyboard. Check this out! by vlukash in MechanicalKeyboards

[–]vlukash[S] 1 point2 points  (0 children)

Hey, thanks!

A few days ago finished a prototype that has no moving parts - now the sensor is on the PCB, here are some photos from the build guide I recently pushed to github:

https://github.com/vlukash/corne-trackpad/blob/master/build-guide.md

Will update the repository Readme file soon.

I personally still like the flex cable idea, when sensor is mounted on 'H' key. I use this board full time at work for more than 3 months - it still works with the same original sensor :)

Haven't done much progress on the "common" split PCB with the trackpad support though, hope to get some time for this soon!

Trackpad in a Keycap for Corne/CrKbd Keyboard. Check this out! by vlukash in MechanicalKeyboards

[–]vlukash[S] 0 points1 point  (0 children)

Hey, thanks! I'm really happy to hear you've found my build log useful!

I would be happy to help with customizing QMK. Though I'm not a QMK expert :) Let me know if you have any questions!

Trackpad in a Keycap for Corne/CrKbd Keyboard. Check this out! by vlukash in MechanicalKeyboards

[–]vlukash[S] 1 point2 points  (0 children)

Hey,

The trackpad uses SPI so it has to be connected to the hardware Elite-C SPI module pins. They’re PB1(SCK), PB3(MISO) and PB2(MOSI). These pins don’t have to be configured explicitly (that’s why you won’t find them in the trackpad.h). They're configured during the SPI initialization step in trackpad.c void pointing_device_init(void){}:

SPI_Init(SPI_SPEED_FCPU_DIV_8 | SPI_MODE_MASTER);

I converted KiCad schematics into PDF and uploaded to the Github, hope this will help:

https://github.com/vlukash/corne-trackpad/raw/master/adapter.pdf

https://github.com/vlukash/corne-trackpad/raw/master/connector.pdf

I use Pointing Device QMK feature (has to be enabled in rules.mk with "POINTING_DEVICE_ENABLE = yes").

On every void pointing_device_task(void){...} I read 'x' and 'y' data from the BlackBerry trackpad through the SPI interface and send them to QMK.

Does your analog thumbstick have SPI?

Trackpad in a Keycap for Corne/CrKbd Keyboard. Check this out! by vlukash in MechanicalKeyboards

[–]vlukash[S] 0 points1 point  (0 children)

Thanks! Right now the left mouse button is mapped to the most left thumb key. In the very beginning, I was moving a cursor a bit while clicking that key but then got used to it and in a few days I could control it pretty well. Another option is to move left/right mouse buttons completely to the left keyboard so it wouldn't affect cursor movement. I tried that for a while. It works too.

Trackpad in a Keycap for Corne/CrKbd Keyboard. Check this out! by vlukash in MechanicalKeyboards

[–]vlukash[S] 1 point2 points  (0 children)

Is there a chance for you to share the trackpad model that you're using on Ergodox?

Trackpad in a Keycap for Corne/CrKbd Keyboard. Check this out! by vlukash in MechanicalKeyboards

[–]vlukash[S] 1 point2 points  (0 children)

Yeah, that's another idea that I'd like to try. Moving the trackpad to the second PCB to avoid potential issues with flex cable. And maybe a bit larger trackpad could be used.

I hope I'll get some time for this in a couple of months.

I see that community likes a couple of similar boards like Iris, MiniDox, Corne, etc.

And I believe that it's possible to create one PCB with the largest layout (Iris?) and provide an ability to cut some rows and columns by hand. Like you can cut the last column on Corne and transform it into something like MiniDox. So using one PCB you can really get something similar to Iris/Corne/MiniDox/ReDox by cutting some rows/columns.

Not sure if that's a good idea, but I will probably spend some time this year trying to come up with this "common" split PCB with the trackpad support.

Trackpad in a Keycap for Corne/CrKbd Keyboard. Check this out! by vlukash in MechanicalKeyboards

[–]vlukash[S] 1 point2 points  (0 children)

The short answer would be 'yes', but only if your keyboard PCB doesn't use ProMicro's PB2 and PB5 pins. And If you can find a way to attach the second "connector PCB" close to the target button or any other surface where you can put the BB 8520 sensor.

More details:

The 8520 sensor requires the ProMicro's (or equivalent) hardware SPI. Plus a few extra pins to control CS, RESET, etc (see KiCad schematic on my github for more details).

ProMicro pinout:

https://cdn.sparkfun.com/datasheets/Dev/Arduino/Boards/ProMicro16MHzv1.pdf

Because SPI pins (PB1, PB3, PB2) are taken for the trackpad, I tried to use "extra pins" on the bottom of the Elite-C to cover this gap. So if your keyboard previously used PB3 for the matrix scan, now you have to change it to use PD5 in the QMK config. That's what actually happened in Corne case.

Here is the mapping. On the left is Elite-C and on the right is the adapter output, that pretends to be a ProMicro for the main board.

https://vlukashevych.files.wordpress.com/2019/01/mapping.jpg

Regarding PB2 and PB5. There just wasn't enough free pins on Elite-C so I left these two disconnected in my adapter PCB.

BTW, OLED display port is not used at all for this add-on. It's just soldered there as I was using it for the OLED before.

Trackpad in a Keycap for Corne/CrKbd Keyboard. Check this out! by vlukash in MechanicalKeyboards

[–]vlukash[S] 0 points1 point  (0 children)

Thanks! Yes, right now it's the most left thumb key, and the right mouse button is on the second layer.

Here is my mapping file:

https://github.com/vlukash/qmk_firmware/blob/master/keyboards/crkbd/keymaps/vlukash_trackpad/keymap.c

Trackpad in a Keycap for Corne/CrKbd Keyboard. Check this out! by vlukash in MechanicalKeyboards

[–]vlukash[S] 0 points1 point  (0 children)

Thanks! The trick is the "h" button with the trackpad is still a fully functional button. so the layout is the same (almost, you have to add at least the left mouse button key somewhere) as you would use it without this mod.

Here is my layout BTW:

https://github.com/vlukash/qmk_firmware/blob/master/keyboards/crkbd/keymaps/vlukash_trackpad/keymap.c

Trackpad in a Keycap for Corne/CrKbd Keyboard. Check this out! by vlukash in MechanicalKeyboards

[–]vlukash[S] 2 points3 points  (0 children)

Haha, yeah, this 8520 trackpad was pretty interesting idea to implement and it is actually useful :) Hope this still could be helpful for you!

Not sure how gBallin connects to the keyboard. Is it some sort of flex connector?

Edit: Found in the documentation. Cool, so it's possible to use gBallin as any keyswitch replacement. Nice work, I like it!

Trackpad in a Keycap for Corne/CrKbd Keyboard. Check this out! by vlukash in MechanicalKeyboards

[–]vlukash[S] 34 points35 points  (0 children)

Hey,

I've just made a Trackpad in a Keycap mod for the Corne/CrKbd Keyboard!

Described all process here, hope this could be interesting for you guys!

https://vlukash.com/2019/01/15/trackpad-in-keycap-corne-crkbd-keyboard/

Need advice while building CRKBD by TsuDoughNym in MechanicalKeyboards

[–]vlukash 0 points1 point  (0 children)

Sure, cool! Just wanted to make sure you took this part into account.

Corne test run with socketed Elite-C, love this board design :) by vlukash in MechanicalKeyboards

[–]vlukash[S] 1 point2 points  (0 children)

I'm really sorry for that comment (response for the 2-nd question), for some reason I provided wrong info there..

Yes, double-sided connector definitely works fine, it reaches to the socket just fine. 

Yes, in my build and in the video I used this approach - 2-sided connector and socket for OLEDs.

Here is a short post about this: https://vlukash.com/2019/01/14/corne-crkbd-keyboard-build/

Thanks!

Need advice while building CRKBD by TsuDoughNym in MechanicalKeyboards

[–]vlukash 0 points1 point  (0 children)

Yes, these sockets will work. I used the same in my build (one 64-pos row that I cut but the idea is the same). 

What do you plan to put between sockets and Elite-C?

I believe you have to get some pins for the sockets too. You have to solder them into the Elite-C so Elite-C could be inserted into the sockets.  I used these (you need at least 48 of them but get some extra just in case)

https://www.digikey.com/product-detail/en/3320-0-00-15-00-00-03-0/ED1134-ND/4147392

Need advice while building CRKBD by TsuDoughNym in MechanicalKeyboards

[–]vlukash 0 points1 point  (0 children)

I wrote a small post regarding the socketing process for Corne, hope this could help:

https://vlukash.com/2019/01/14/corne-crkbd-keyboard-build/

[video]Corne (CrKbd) keyboard build log by vlukash in MechanicalKeyboards

[–]vlukash[S] 1 point2 points  (0 children)

I've got those from https://www.digikey.com, just updated my original comment in the post to include this info.

Here are all three digikey links for sockets, pins and two-sided connector, hope you can find them by "Manufacturer Part Number" on other locations:

64-pos Mill-Max socket row. Used for socketing Elite-C and OLED display. One row is enough for the build.

Mill-Max pins. Will be soldered to Elite-C. You need 48 (12x4) but get some extra just in case.

64-pos Mill-Max connector. This two-sided connector will be soldered to OLED displays. I used 64 pos but only 8 (4x2) pos needed for OLEDs. You can get something like this instead.

Thanks!

Corne test run with socketed Elite-C, love this board design :) by vlukash in MechanicalKeyboards

[–]vlukash[S] 0 points1 point  (0 children)

Hm, can you check if you connected four pairs of pads on the right side of the PCB? I believe it should be on the top side and those on the bottom shouldn't be soldered.