josefadamcik / SofleKeyboard

A split keyboard based on Lily58, Crkbd and Helix keyboards
https://josefadamcik.github.io/SofleKeyboard/
Other
1.94k stars 290 forks source link

Sofle Choc ZMK Support #142

Open brianlow opened 2 years ago

brianlow commented 2 years ago

Goal: configure ZMK firmware to work with the Sofle Choc

Post your progress, findings and ideally a branch of your code even if not fully working

killua99 commented 2 years ago

Could we open a Threat on ZMK Discord and post here the relevant parts and have a more lose discussion on discord ?

brianlow commented 2 years ago

Yeah for sure! I don't know ZMK and I'm not working on it so can't offer direct help. Hopefully there are others

infused-kim commented 2 years ago

The existing zmk config works fine with the sofle choc. The only thing it had missing was the underglow.

I created a PR for it here: https://github.com/zmkfirmware/zmk/pull/1188

But zmk currently doesn’t fully support some of the more unique features of the sofle, such as displays and the split side encoder.

I have created a fork that integrates fixes and some additional features here: https://github.com/infused-kim/zmk/tree/sofle

And the easiest way to switch to that fork is to fork this zmk config: https://github.com/infused-kim/zmk-config-sofle

And we briefly talked on Reddit about adding more info about wireless builds to the sofle build guide, which I started working on already.

I am planning to also add info about zmk and the fork to it.

killua99 commented 2 years ago

One last comment, I'm on Sofle RGB V2.1 not the Choc perhaps that's why the RGB wont work.

infused-kim commented 2 years ago

@killua99 according to the schematic the RGB sofle is using the same pins as the choc. So the zmk config should work without changes.

Unless your vendor didn’t use the Gerbers published here.

To debug this I would check:

If it’s still not working, try flashing qmk to the primary side.

Just make sure you don’t connect the TRRS cable while the nice!nanos are connected to the battery.

If it doesn’t work with qmk either, then perhaps it’s a hardware issue.

brianlow commented 2 years ago

@infused-kim thanks for posting all the info!

@killua99 the Sofle RGB uses the same pin but has a few differences

So the Sofle Choc firmware should work but not all LEDs will light up (only first 58) and any color patterns won't look right.

killua99 commented 2 years ago

To debug this I would check:

Is external power turned on? You can the external power toggle to your key map to test it. If you have displays and they work, then that’s also a sign that it’s on.

Yes, I'm compiling the firmware with your changes https://github.com/killua99/zmk-config-sofle and I can toggle the power with the adjust key combination. OLED stop working with I toggle off and working with on.

Also check if the backlight is actually on. Again, you should add the toggle command to your key map.

Toggle command seems to be working, but no LED is one, nor indicator or underglow

Try if the backlight works while connected to USB. Maybe some power management is doing something.

I did try that, I plugged USB and still the same no changes on my eyes.

Seems like I could have messed up the solder pins, and the vender said is the RGB V2.1 (beekeeb) or the LEDs when I sold them I burn them directly. I've no more ideas.

infused-kim commented 2 years ago

@killua99 the final thing I would try is flashing qmk. If it doesn’t work with it either, then you know it’s a hardware issue.

I think the rgb has a few jumpers that need to be soldered. And if you have a multimeter you can check the led pins to see if they have power.

billyjacoby commented 2 years ago

Hey, I'm trying to build this currently for adding RGB underglow to my lily58 and i'm seeing this error, any. thoughts?

devicetree error: 'global-quick-tap' appears in /behaviors/hold_tap_tap_preferred in nice_nano_v2.dts.pre.tmp, but is not declared in 'properties:' in /__w/zmk-config-sofle-lily/zmk-config-sofle-lily/zmk/app/dts/bindings/behaviors/zmk,behavior-hold-tap.yaml
CMake Error at /__w/zmk-config-sofle-lily/zmk-config-sofle-lily/zmk-zephyr/cmake/dts.cmake:230 (message):
  gen_defines.py failed with return code: 1
Call Stack (most recent call first):
  /__w/zmk-config-sofle-lily/zmk-config-sofle-lily/zmk-zephyr/cmake/app/boilerplate.cmake:535 (include)
  /__w/zmk-config-sofle-lily/zmk-config-sofle-lily/zmk-zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:24 (include)
  /__w/zmk-config-sofle-lily/zmk-config-sofle-lily/zmk-zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:91 (include_boilerplate)
  CMakeLists.txt:17 (find_package)

-- Configuring incomplete, errors occurred!
FATAL ERROR: command exited with status 1: /usr/local/bin/cmake -DWEST_PYTHON=/usr/bin/python3 -B/__w/zmk-config-sofle-lily/zmk-config-sofle-lily/build -S/__w/zmk-config-sofle-lily/zmk-config-sofle-lily/zmk/app -GNinja -DBOARD=nice_nano_v2 -DZMK_CONFIG=/__w/zmk-config-sofle-lily/zmk-config-sofle-lily/config -DSHIELD=lily[58](https://github.com/billyjacoby/zmk-config-sofle-lily/runs/8163058298?check_suite_focus=true#step:9:59)_right

I removed the reference i had to global-quick-tap in my keymap but was then met with this error:

CMake Warning (dev) at /__w/zmk-config-sofle-lily/zmk-config-sofle-lily/zmk-zephyr/cmake/extensions.cmake:416 (add_library):
  Policy CMP0115 is not set: Source file extensions must be explicit.  Run
  "cmake --help-policy CMP0115" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  File:

    /__w/zmk-config-sofle-lily/zmk-config-sofle-lily/modules/lib/gui/lvgl/src/lv_font/lv_font_dejavu_16_persian_hebrew.c
Call Stack (most recent call first):
  /__w/zmk-config-sofle-lily/zmk-config-sofle-lily/zmk-zephyr/cmake/extensions.cmake:393 (zephyr_library_named)
  /__w/zmk-config-sofle-lily/zmk-config-sofle-lily/modules/lib/gui/lvgl/CMakeLists.txt:15 (zephyr_library)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Error at /__w/zmk-config-sofle-lily/zmk-config-sofle-lily/zmk-zephyr/cmake/extensions.cmake:416 (add_library):
  No SOURCES given to target: drivers__spi
Call Stack (most recent call first):
  /__w/zmk-config-sofle-lily/zmk-config-sofle-lily/zmk-zephyr/cmake/extensions.cmake:393 (zephyr_library_named)
  /__w/zmk-config-sofle-lily/zmk-config-sofle-lily/zmk-zephyr/drivers/spi/CMakeLists.txt:3 (zephyr_library)

CMake Generate step failed.  Build files cannot be regenerated correctly.
FATAL ERROR: command exited with status 1: /usr/local/bin/cmake -DWEST_PYTHON=/usr/bin/python3 -B/__w/zmk-config-sofle-lily/zmk-config-sofle-lily/build -S/__w/zmk-config-sofle-lily/zmk-config-sofle-lily/zmk/app -GNinja -DBOARD=nice_nano_v2 -DZMK_CONFIG=/__w/zmk-config-sofle-lily/zmk-config-sofle-lily/config -DSHIELD=lily58_left