Author Topic: cyber60: 60% Bluetooth PCB running nRF52 and ZMK  (Read 838 times)

0 Members and 1 Guest are viewing this topic.

Offline Applet

  • Thread Starter
  • Posts: 370
  • Location: Sweden
cyber60: 60% Bluetooth PCB running nRF52 and ZMK
« on: Mon, 16 November 2020, 13:28:58 »
I mentioned this project in a thread, so I thought I should do a thread for it. Would love to hear feedback and thoughts. :D

I wanted to play with ZMK and could not find any DIY friendly 60% project, so I made one. The goal is for the project to use as much JLC-basic parts as possible, and keep everything hand solderable using only a soldering iron. JLC can do all assembly except for connectors (USB, battery and daughter board), battery-switch, RGB-led and module. The module is a bit trickier to solder then it need to be since I kept split space support, but who does not love split space? ;) (sorry for crappy mobile pics)

Specs:
  • Module: Holyiot YJ-18010
  • Standard Tray Mount support
  • Non constant drain battery measurement
  • Lipo charger for single cell 3.7V li-po/li-ion batteries (JST PH and JST SH support, you can mount either, not both)
  • RGB-led under Caps lock for multi function indicator (no support in code yet)
  • Possible to build with just a soldering iron (no underside pads etc)
  • ANSI and ISO layout support with the common options.

255979-0
255981-1

Layout support:
255983-2

Github:
Project: https://github.com/4pplet/cyber60
Latest (pre)release: https://github.com/4pplet/cyber60/releases/tag/A2

Currently test-built in a Tofu. The batteries I have is a bit too big, so it is placed outside the keyboard currently, waiting for smaller batteries. I have a box60 ordered that I will also testfit the PCB and batteries in.
255985-3
255987-4

I've found one issue so far, one flipped transistor. I've also added a pulldown on the voltage measurement circuit, so it defaults to off and only have to be activated, not actively turned off. This is updated in release A2, I am keeping A2 as a prerelease for now, but changes should be minor/cosmetic unless additional bugs is found.

I'll add info on how to flash bootloader and get started with ZMK (expect it to be trickier than QMK) in the future. ZMK is still in early stages and the project could not be added to the main-repo (low volume board). They are setting up a system for community-boards etc but it is not available yet, so for now, code is available on my ZMK-fork (switch to dev-branch).

This is how the j-link connects for flashing bootloader. I'd recommend to connect it using tag-connect or 2.54mm-header tho, since the j-link connector is a bit to big and interferes with the cases.
255989-5

ZMK-fork:
https://github.com/4pplet/zmk

Todo:
  • Properly verify voltage measurement circuit with modifications using ZMK
  • Properly test RGB-led using ZMK (only tested manually)
  • Make a ISO-layout example in code

Feel free to use the design for personal use but note that I take no responsibility.
« Last Edit: Mon, 16 November 2020, 14:34:59 by Applet »

Offline nevin

  • Posts: 977
  • Location: US
Re: cyber60: 60% Bluetooth PCB running nRF52 and ZMK
« Reply #1 on: Mon, 16 November 2020, 13:57:15 »
I've been playing with layer lights in qmk. Have some good working exampes. Does zmk have the same implimentation or not yet?
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline Applet

  • Thread Starter
  • Posts: 370
  • Location: Sweden
Re: cyber60: 60% Bluetooth PCB running nRF52 and ZMK
« Reply #2 on: Mon, 16 November 2020, 14:05:12 »
I've been playing with layer lights in qmk. Have some good working exampes. Does zmk have the same implimentation or not yet?
afaik, no. Don't think there is any LED-support yet other than basic underglow, ZMK is still very new. I have big expectations for it in the future tho.
« Last Edit: Mon, 16 November 2020, 14:14:36 by Applet »

Offline nevin

  • Posts: 977
  • Location: US
Re: cyber60: 60% Bluetooth PCB running nRF52 and ZMK
« Reply #3 on: Mon, 16 November 2020, 14:14:13 »
In qmk you can specify layer segments, of an led strip or underglow and get it to function as lock & layer indicators. So it might not ba a far stretch to get it to work. i'll look at it then.
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline parablol

  • Posts: 79
Re: cyber60: 60% Bluetooth PCB running nRF52 and ZMK
« Reply #4 on: Mon, 16 November 2020, 15:16:43 »
Cool feature set!!! Assuming all goes well, please consider an ortholinear version in the future! :D

Offline Applet

  • Thread Starter
  • Posts: 370
  • Location: Sweden
Re: cyber60: 60% Bluetooth PCB running nRF52 and ZMK
« Reply #5 on: Mon, 16 November 2020, 15:17:20 »
In qmk you can specify layer segments, of an led strip or underglow and get it to function as lock & layer indicators. So it might not ba a far stretch to get it to work. i'll look at it then.
The undergow is for adressable leds. This PCB uses a dumb common anode led without logic, so I can't use the underglow code. I'm planning to implement a PWM driver for it. I disslike the adressable leds for a project like this, since they have a constant current draw, even when off. This could be solved using a transistor to fully turn them off, but I prefer it this way. It's probably a bit more if a hassle to implement the code, but it should be more power efficient.

There is no lock states in ZMK yet and no support for userspace-code yet.
Cool feature set!!! Assuming all goes well, please consider an ortholinear version in the future! :D
Thanks :D

Offline nevin

  • Posts: 977
  • Location: US
Re: cyber60: 60% Bluetooth PCB running nRF52 and ZMK
« Reply #6 on: Mon, 16 November 2020, 18:36:00 »
adddressible led draw.... good to.know. That makes total sense, and important aspect being wireless.
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline ice9js

  • Posts: 3
Re: cyber60: 60% Bluetooth PCB running nRF52 and ZMK
« Reply #7 on: Thu, 19 November 2020, 05:07:50 »
Very cool! I've got a question - how's your experience been with the reception inside an aluminum case so far?
I see it's a common pattern to put the radio module in the spacebar area and use a non-metallic plate but I don't really have the tools or the experience to verify how that affects the rf signal vs a more traditional design like a patch antenna or not having metal at all around that part on the case.

Offline Applet

  • Thread Starter
  • Posts: 370
  • Location: Sweden
Re: cyber60: 60% Bluetooth PCB running nRF52 and ZMK
« Reply #8 on: Thu, 19 November 2020, 05:52:47 »
Very cool! I've got a question - how's your experience been with the reception inside an aluminum case so far?
I see it's a common pattern to put the radio module in the spacebar area and use a non-metallic plate but I don't really have the tools or the experience to verify how that affects the rf signal vs a more traditional design like a patch antenna or not having metal at all around that part on the case.
I've not done much testing on signal strength yet. Having the antenna under space bar is the only feasible location with this layout and module, with another layout and PCB size, I would have placed it on top. Generally I would not recommend using the Tofu case at all, since it is a big metal piece, shielding the antenna, but so far it has been working great. I start to loose connection about 3-4m from my PC, but it's working great with the ~1m distance from my desk to my PC. I had the case, so I thought it would be a good test. The acrylic/plastic Tofu or some other plastic case is of course a better option from a RF and reception perspective, but metal case and plastic plate seems to be good enough at least for my use case.

I have now patched the PCB to work like rev A2, and the battery circuit seems to work like I intended it to. Flipped one transistor, removed series resistance between enable pin and MCU and added a pull down so it defaults to off. Not pretty but it works ;D (I restored the series resistance/gate resistance, don't know what I was thinking...)
256173-0
« Last Edit: Thu, 19 November 2020, 14:05:56 by Applet »

Offline nevin

  • Posts: 977
  • Location: US
Re: cyber60: 60% Bluetooth PCB running nRF52 and ZMK
« Reply #9 on: Thu, 19 November 2020, 08:55:31 »
nice when things start going your way....
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline Applet

  • Thread Starter
  • Posts: 370
  • Location: Sweden
Re: cyber60: 60% Bluetooth PCB running nRF52 and ZMK
« Reply #10 on: Wed, 25 November 2020, 04:27:15 »
Tiny update:
  • Still waiting on my smaller batteries and eventually the box60 to test the PCB in.
  • I put together a ALPS PCB, very similar and uses the same software implementation. I'll make a pre-release on my github soon, but changes may still be added to A1 (same applies for the MX-release A2)
  • Still have more testing to do (Leds test, current measurements etc)
256503-0
256505-1

Edit:
Link to pre-release: https://github.com/4pplet/cyber60/releases/tag/A1_ALPS
« Last Edit: Wed, 25 November 2020, 05:52:12 by Applet »

Offline nevin

  • Posts: 977
  • Location: US
Re: cyber60: 60% Bluetooth PCB running nRF52 and ZMK
« Reply #11 on: Wed, 25 November 2020, 04:58:10 »
looking good.

yeah, i've been eyeing up the Box60 case as well. Haven't purchased one yet though. Love the different styles they've done them in. So far i've seen two translucent ones, black & most recently they have a beige with commodore 64 stickers... Looks like a versatile, cute little case with plenty of room for modifications.
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68