//////////////////////////////////////
Configuración para corne valida para otros teclados split
- INTRODUCCIÓN
- INICIO
- INSTALACIÓN LOCAL
- PANTALLA
- RGB
- DONGLE
- CONSEJOS ÚTILES
- PROYECTOS RELACIONADOS
- DISEÑOS DE DONGLES
- ZMK STUDIO
- INTEGRACIÓN DEL MÓDULO
- CREDITOS
- MIS OTROS PROYECTOS
Si ya tienes un teclado configurado con este repositorio y quieres hacer una modificación a tu mapa de teclas, puedes hacerlo online mediante ZMK-STUDIO, tambien puedes usar keymap-editor.
Caution
RECUERDA QUE TODA ACCIÓN QUE VAYAS A REALIZAR CORRE BAJO TU PROPIA RESPONSABILIDAD EN ESTA GUÍA SE TE MUESTRA EL PASO A PASO DEL PROCESO PARA CONFIGURAR EL TECLADO, PERO QUIEN ES RESPONSABLE DE REALIZARLO ERES TÚ MISMO.
Note
SIÉNTETE LIBRE DE MODIFICAR EL CÓDIGO A TU GUSTO O USAR LO QUE NECESITES. ESTA ES UN GÍA BAISCA Y DE INICIO PARA QUIENES ESTAN BUSCANDO INICIAR EN LA CONFIGURACIÓN DE ZMK firmware
Esta base incluye las configuraciones Corne más recientes, con una configuración para el dongle Corne con/sin pantalla OLED. También puedes usar tu teclado CON/SIN un dongle, por supuesto. con cualquiera de las placas o mamparas que tengas.
Probado con puchi_ble_v1 (usado como dongle y como periférico), nice_nano_v2 (usado como dongle y como periférico), clones of nice_nano_v2 (usado como dongle y como periférico) y seeeduino_xiao_ble (usado solo como dongle).
Note
- Con esta configuración podrás utilizar tu teclado prácticamente inmediatamente, solo debes seguir los siguientes pasos y listo.
- Si necesita archivos precompilados, puede descargarlos desde firmware > carpeta
- Si tienes algún problema sólo tienes que flashear los firmwares de reseteo que firmware carpeta y listo.
Este repositorio incluye la configuración necesaria para usar zmk-studio sin la necesidad de configurar cualquier otra cosa. Sólo tienes que seguir los pasos a continuación:
- fork este repositorio y flashear el firmware al teclado con los archivos uf2 (ver a continuación el procedimiento normal)
- conectar el maestro (dongle o central) a la PC
- Modifique la asignación del teclado sobre la marcha con ZMK Studio Web ¡Y disfruta de los cambios!
- Fork este repositorio
- Modificar el mapeo de teclas con keymap-editor. Para conocer más sobre el editor ver: ZMK Studio Web o keymap-editor.
- Guardar los cambios y crear un nuevo commit (optional)
- Vaya a "Actions" en github y descargue los firmware generados.
- Selecciona "Actions" -> luego "All Workflows" -> finalmente "Initial User Config". (Aquí desplázate hasta la parte inferior y haz clic)
- Aquí encontraras los llamados "artifacts", haga clic para descargar el archivo .zip.
- Descomprime el archivo .zip.
- Conecta el microcontrolador nice!nano v2 (o clones) a tu computadora con ayuda de un cable USB-C.
- El microcontroladors (Nice!Nano) sera reconocido como un dispositivo externo, como si se tratase de una memoria USB.
- (En el caso de que no aparesca como un dispositivo externo, debes accionar el boton RESET dos veces de manera continua, esperar a que se muestre).
- Ahora ya puedes hacer el Flasheo (copia y pega cada artifact o arrastra y suelta en cada una de los dispositivos externos que has conectado anteriormente.)
- nice_corne_left.uf2 para el nice_nano_v2 del lado izquierdo como maestro (Master).
- nice_corne_right.uf2 para el nice_nano_v2 del lado derecho (peripheral).
- Para Flashear utiliznado dongle (Donglev -> seeeduino_xiao_ble)
- xiao_corne_dongle_xiao_dongle_display.uf2 para seeeduino_xiao_ble como dongle
- nice_corne_left_peripheral.uf2 para el nice_nano_v2 lado izquierdo.
- nice_corne_right.uf2 para el nice_nano_v2 lado derecho.
- Si tienes dudas puedes hacer tus consultas en ZMK Discord
- Teclado listo para usar.
Aquí puedes ver los cambios visuales en la configuración:
[!NOTA]
This .svg image is automatically generated every time a change is made with the keymap editor. Github's workflows are responsible for building and generating the .svg file. You just have to go to the keymap-drawer folder and open the .svg file with your preferred browser if you want to see the files. The keymap-drawer configuration file is located in config. The file for the workflows is in workflows in case you want to modify it.
If you want to customize this image with shapes/colors/etc. You can see these references: 1 2 3
Before making any modifications, please see the ZMK documentation documentation.
Example of an advanced configuration hier -> 4
Below is a list of features currently included in this branch5 on top of the official ZMK master branch.
- pointer movement/scrolling - PR #2027
- tri-state (aka swapper) - PR #1366
- smart-word (PR #1451)
- on-release-for-tap-preferred - tweak by Andrzej
- zen-tweaks - display & battery improvements by Cem Aksoylar
-
Clone your fork of this repository.
# Replace `mctechnology17` with your username git clone https://github.com/mctechnology17/zmk-config.git
-
Enter the repository.
cd zmk-config
Here you have a preview of how the repository is organized:
zmk-config # main folder
├── LICENSE # license
├── Makefile # file for compilation
├── README.md # readme this file
├── build.yaml # config file for compilation on the github server
│ boards
│ ├── ... # other boards
│ ├── nice_nano_v2.overlay
│ ├── puchi_ble_v1.overlay
│ └── shields
│ ├── corne
│ │ ├── Kconfig.defconfig # modify if you want to add a new shield
│ │ ├── Kconfig.shield # modify if you want to add a new shield
│ │ ├── boards
│ │ │ ├── ... # other boards
│ │ ├── corne.conf # general configurations of the corne
│ │ ├── corne.dtsi # default dtsi
│ │ ├── corne.keymap # default keymap
│ │ ├── corne.zmk.yml # modify if you want to add a new shield
│ │ ├── corne_dongle_pro_micro.conf # conf dongle pro_micro pinout
│ │ ├── corne_dongle_pro_micro.overlay # properties/displays dongle
│ │ ├── corne_dongle_xiao.conf # conf dongle xiao pinout
│ │ ├── corne_dongle_xiao.overlay # properties/displays dongle
│ │ ├── corne_left.conf # conf left
│ │ ├── corne_left_peripheral.conf # config left peripheral
│ │ ├── corne_right.conf # conf right
│ │ ├── ... # other files
│ └── dongle_display
│ ├── ... # here you can modify the screen widgets
│ └── widgets
│ └── # here you can modify the screen widgets
│ config # configuration folder
│ ├── config_keymap-drawer.yaml # config file keymap-drawer
│ ├── corne.conf # general configurations of the corne
│ ├── corne.keymap # your keymap file
│ ├── keymap_german_mac_iso_zmk.h # example of definition for german mac iso
│ └── west.yml # conf to connect with the repository
├── firmware
│ └── *.uf2 # all the firmwares
├── keymap-drawer # folder with the keymap-drawer
│ ├── corne.svg # img of the keymap
│ └── corne.yaml # keymap file yaml format for keymap-drawer
└── src
└── ... # other files
To compile with make, just run the following command:
Important
make codebase_urob # clones urob's zmk firmware and initializes it
make corne_urob # compile all the *.uf2 of the corne and copy them to the firmware folder
- ePAPER nice-view
- the nice-view screen is compiled by default in this repository.
- OLED
- the oled screen for the dongle is enabled by default in this repository.
- If you want to enable the OLED screen for the halves, you can do so by modifying the
.conf
files for their respective halves. - Remember to disable the nice-view screens to avoid conflict in the compilation.
Important
- To modify the dongle's OLED screen you can modify the
.overlay
file as follows for its respective board: corne_dongle_xiao.overlay and corne_dongle_pro_micro.overlay. There you can find as a comment examples for the 128x32, 128x64, 128x128 screens and nice-view for the dongle screen. - For the 128x128 OLED screen model sh1107 there are no default drivers in Zephyr, so neither in ZMK, but you can add it yourself with this small tutorial (This tutorial is the same for the OLED screens mentioned above):
You just have to modify the following line:
// replace the following lines for the 128x64 screen by default
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
width = <128>;
height = <64>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <63>;
segment-remap;
com-invdir;
inversion-on;
prechargep = <0x22>;
};
};
// for this (i.e. just copy and paste) replace the 128x64 screen with the 128x128 sh1107 screen
&pro_micro_i2c {
status = "okay";
oled: sh1106@3c {
compatible = "sinowealth,sh1106";
reg = <0x3c>;
width = <120>;
height = <128>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <119>;
segment-remap;
com-invdir;
inversion-on;
prechargep = <0x22>;
};
};
If you are interested in using RGB on your keyboard you can see the configuration in the branch power/domains-and-device-runtime from this same repository.
Here is an example of what it looks like:
Tip
- You can connect the display to the dongle directly to the i2c port of the handwired style dongle, or you can connect it to a usb-c port of the pcb style dongle.
- You can see the connections in the following diagram for seeeduino_xiao_ble and for the boards with pro_micro connections as the nice_nano_v2 and the puchi_ble_v1.
- You can print a case for the dongle, you can see the designs below in the section Dongle Designs.
- You can print a pcb for the dongle, you can see the designs in the section Dongle Designs.
- You can program a macro that references the
&bootloader
action so that the dongle enters bootloader mode and you can flash the firmware again. The macros are executed on the master so this action causes the dongle to enter bootloader mode. Thanks @chadtrans for the tip!
In the following image you can see how you can connect the OLED screen to the dongle:
Information about this image:
- The photo shows a seeeduino_xiao_ble dongle with an OLED 128x128 sh1107 display connected to the handwired style i2c port. This dongle acts as master.
- The left side acts as peripheral in this case, the board is a puchi_ble_v1.
- The right side acts as a peripheral in this case, the board is a nice_nano_v2.
- The photo shows a clone nice_nano_v2 dongle with an OLED display connected to a traditional i2c port in a pcb style. This dongle is only for sample photo and is not connected to any device shown in the photo.
Macro example to enter bootloader mode. On your corne.keymap file you can add the following macro (Thanks @chadtrans for the tip!):
Tip
- You can program this macro with the online editor keymap-editor
// this is the manual way to do it
#define MACRO(name, keys) \
name: name##_macro { \
compatible = "zmk,behavior-macro";\
#binding-cells = <0>; \
tap-ms = <1>; \
wait-ms = <1>; \
bindings = <keys>; \
};
MACRO(dongle_boot, &bootloader)
/ {
keymap {
compatible = "zmk,keymap";
... // other layers
config_layer {
display-name = "CON";
bindings = <
... // other bindings
&dongle_boot
... // other bindings
};
... // other layers
};
Tip
Below are some useful tips for using your corne keyboard with this configuration.
- You can add a reset key on each half, that's useful for when your halves disconnect/desynchronize, or something unusual happens. That way the firmware is loaded again. see reference in corne.keymap
- You can add a bootloader activator on each half in case you don't have access to the bootloader button, it is useful in case your case is not optimized or you just want that option. see reference in corne.keymap
- If both halves were disconnected/unsynchronized, you just have to press the reset button on both halves 10 times in a row and they will reconnect.
- If you want to flash the firmware again you just have to connect the keyboard (that is, one half first, usually the left one) press the reset button 2 times in a row and your device is recognized as a hard disk storage drive, then just drag the file to flash and that's it. do the same with the other half.
- Remember that if your corne only has some functional RGB lights you can activate only the ones that you have functional, it is not necessary to activate all the lights. see reference in led strip
- You can combine the boards, for example: on the left you can have a nice_nano_v2, on the right a puchi_ble_v1 and on the dongle a seeeduino_xiao_ble or some clone nice_nano_v2, or any combination you can think of.
I used this project as a reference to configure the dongles with OLED screen:
- cygnus by @rain2813
- zmk keyboard Macintosh dongle display by @rain2813
- corne with dongle by @tomgroenwoldt
- zmk-dongle-display by @englmaxi
- zmk-config for module by @englmaxi
- zmk-config for dongle pro micro by @joaopedropio
In the following animations created by @englmaxi you can see what the dongle looks like with the 128x64 OLED screen:
In that animation you can see the connection or output with the computer, that is, if it is through a USB or Bluetooth port. Also information about the status of both batteries.
In this animation you can see the actions of the modifier keys, such as control, shift, alt, windows/mac, etc.
- case1 by @englmaxi
- case2 by @englmaxi
- Cyberdeck by @rafaelromao
- Dongle PCB by @spe2
- Macintosh by @rain2813
- Redox by @rurounikexin
- ZMK Display Dongle by @yingeling
An example of Dongle Designs (by @rain2813):
This repository includes the necessary configuration to use zmk-studio without the need to configure anything else. You just have to follow the steps below:
- fork this repository y flash the firmware to the keyboard with the uf2 files
- connect the master (dongle or central) to the PC
- Modify the keyboard mapping on the go with ZMK Studio Web and enjoy the changes!
Tip
- For zmk-studio it is necessary to enable the
&studio_unlock
macro but you can skip this if you useCONFIG_ZMK_STUDIO_LOCKING=n
in your zmk configuration. This is enabled by default in this repository. - Remember that this has to be activated on the master and the dongle:
snippet: studio-rpc-usb-uart
- with the
cmake-args: -DCONFIG_ZMK_USB=y
flag you can activate the master (dongle or central) to connect always defaults to usb. - The zmk-studio only connects with USB on the web and only BLE in the app, it is useful to have a toggle key to switch between BLE and USB. (this is what I understood, if not, please correct me)
Useful links:
- ZMK Studio Web
- ZMK Studio Unlock Behavior
- ZMK Studio Testing Steps / click hier for more ...:
- Set up ZMK Studio for your device, if needed.
- Build with ZMK Studio enabled and flash to the device.
- Test ZMK Studio by loading https://zmk.studio/ or installing the app from the latest release at https://github.com/zmkfirmware/zmk-studio/releases/
Please report any and all testing results, even successful results in Discord zmk-studio If you have a genuine bug to report, please file a new GitHub Issue. With any bugs or testing results, please include all the relevant details, including the host OS, app/browser details, keyboard used, link to your config repo, etc.
Tip
- You can activate or deactivate the animation with: CONFIG_NICE_VIEW_GEM_ANIMATION=n the animation is not activated by default in this repository for saving battery. This is activated only in the peripheries and the corne master, not in the dongles, because this module shows the status of the batteries in the peripheries
See module details here for more information and more configurations: nice-view-gem
- englmaxi/zmk-config
- caksoylar/zmk-config
- joelspadin/zmk-locale-generator
- minusfive/zmk-config
- infused-kim/zmk-config
- urob/zmk-config
- qmk-config will be updated soon
- qmk_userspace will be updated soon
- vimtools swiss army knife for vim (features and settings that will make your life easier)
- gm cross-platform git manager with friendly user interface
- vim-better-header the best automated template
- vim-executor multilanguage code executor
If you enjoy my contributions, feel free to donate. I appreciate if you follow me on github and youtube
- Add more features to the repository
- Update the documentation
Footnotes
-
Keymap-drawer, https://github.com/caksoylar/keymap-drawer https://keymap-drawer.streamlit.app/ ↩
-
caksoylar zmk-config example for keymap-drawer https://github.com/caksoylar/zmk-config ↩
-
Install pipx, https://pipx.pypa.io/stable/ ↩
-
Urob zmk-config, https://github.com/urob/zmk-config ↩
-
Urob ZMK Firmware: Personal fork, https://github.com/urob/zmk/ ↩