[](https://www.youtube.com/channel/UC_mYh5PYPHBJ5YYUj8AIkcw)
[

][youtube]
[

][twitter]
[

][instagram]
[

][facebook]
[

][reddit]
- [INTRO](#INTRO)
- [INSTALACION](#INSTALACION)
- [MODO SUSPENCION](#MODO-SUSPENCION)
- [PANTALLA OLED](#PANTALLA-OLED)
- [RGB](#RGB)
- [OTROS CONSEJOS IMPORTANTES](#OTROS-CONSEJOS-IMPORTANTES)
- [DONACION](#DONACION)
- [LICENSE](#LICENSE)
----
# INTRO
Este repositorio contiene mi configuracion personal de mi teclado corne con el sofware de [ZMK](https://zmk.dev/docs),
flashado en el microcontrolador [nice!nano_v2](https://nicekeyboards.com/nice-nano).
[](https://nicekeyboards.com/nice-nano/)
NO ME HAGO RESPONSABLE DE NINGUN DAÑO QUE PUEDA OCASIONAR ESTE CODIGO, UTILIZALO
BAJO TU PROPIO RIESGO.
SIENTETE LIBRE DE MODIFICAR EL CODIGO A TU GUSTO O DE OCUPAR LO QUE NECESITES
NO OLVIDES REFERENCIAR A LOS AUTORES DE LOS CODIGOS QUE OCUPES.
Caracteristicas:
- Teclado inalambrico atraves de conexion bluetooth y usb-c
- Teclado ergonomico y ortolineal
- Altamente programable con el sofware de ZMK
- Compatibilidad con Linux, Windows, MacOS, Android, IOS y mas
- COMPLETAMENTE INALAMBRICO ENTRE LAS DOS MITADES Y CON EL PC
- Ultra bajo consumo. Extiende la duración de la batería al límite
- Arrastrar y soltar gracias a el cargador de arranque UF2 incluido
- NO SE REQUIERE SOFTWARE ADICIONAL (como VIAL, QMK ToolBox etc.)
- Y mas...
Tabla de pros y contras importantes a tomar en cuenta:
**PROS** | **CONTRAS**
-------------|---------|
Soporte Multi-Dispositivos BLE (HASTA 5) |Mouse Keys (EN DESARROLLO)
Hasta 1 semana de uso sin cargador (con 100mAh) |Display Support (EN DESARROLLO)
No necesitas de sofware adicional para flashar | Tienes que hacer conectarte a internet compilar (todo se hace en github)
FUNCIONANDO SIN ERRORES HASTA EL MOMENTO!
# INSTALACION
[Referencia ZMK](https://zmk.dev/docs/user-setup) de donde saque la informacion.
PRE-Requisitos:
- Tener instalado [git](https://github.com/git-guides/install-git) en tu computadora y una cuenta en [github](https://github.com/)
- Crear un nuevo repositorio en github. [Para crear un nuevo repositorio dale click aqui](https://github.com/new)
- Cuando se te solicite el nombre del repositorio, ingresa zmk-config (puede ser otro nombre tambien).
- El repositorio puede ser público o privado
- No marcar ninguna de las opciones para inicializar el repositorio con un README u otros archivos.
- Haz clic en "Crear repositorio"
- Opcional tener instalado en tu computadora VSC (Visual Studio Code)
u otro editor de texto de tu preferencia, yo uso `nvim/vim`
- Opcional puedes de preferencia usar `git` con SSH
eso te evitara tener que poner tu usuario y contraseña cada vez que tengas que hacer un `git push`
en otras palabras despues de cada modificacion que le hagas al codigo
```bash
# 0. crea una repositorio con el nombre de zmk-config en tu cuenta de github
# 1. luego abre la terminal y pega esto:
bash -c "$(curl -fsSL https://zmk.dev/setup.sh)"
# 2. se abre una opcion con muchos teclados, seleciona el 13 (corne)
13 # enter
# 3. se abre una opcion a elegir el MCU (Microcontrolador), seleciona el 4 (nice!nano v2)
4 # enter
# 4. ¿Copiar en el mapa de teclas estándar para personalizarlo? [Yn]:
Y # enter
# 5. Datos de tu GitHub
mctechnology17 # AQUI TU USUARIO DE GITHUB
CONTRASEÑA # AQUI TU CONTRASEÑA DE GITHUB
# 6. Nombre del repositorio
ENTER # simplemente enter, dejamos la por defecto zmk-config
# 7. insertar el repositorio
git@github.com:mctechnology17/zmk-config.git # mctechnology17 -> AQUI TU USUARIO DE GITHUB
# 8. Continuar?
Y # enter
```
Despues de concluir los pasos anteriores con exito, puedes ir a la ruta dinde se encuentra el repositorio
con el siguiente comando y modificar el codigo a tu gusto:
```bash
cd ~/zmk-config/config
# vista de como esta estructurado el repositorio
zmk-config # carpeta principal
├── build.yaml # archivo de configuracion para el compilado NO MODIFICAR
├── config # carpeta de configuracion
│ ├── corne.conf # archicho de configuracios de las macros
│ ├── corne.keymap # archicho de configuracios de las teclas
│ └── west.yml # config para conectarse con https://github.com/zmkfirmware NO MODIFICAR
└── README.md
```
Si no modificaste nada puedes simplemente ir a tu repositorio en github y dale a refrescar a la pagina.
Ahora ve a esta ruta en tu repositorio de github:
- Actions(click) -> All Workflows (click)-> Initial User Config. (aqui haces scroll hasta abajo y click)
- Aqui hay algo que se llama Artifacts, dale click para descargar el archivo, es un .zip
Ahora ve a descarga en tu computadora(o donde tengas por defecto las descargas):
- Descomprime el archivo .zip
- Conecta el microcontrolador nice!nano v2 al puerto usb-c de tu computadora
- El microcontrolador se reconocera como un dispositivo de almacenamiento
- Copia el archivo corne_left-nice_nano_v2-zmk.uf2 que descomprimiste en la carpeta del dispositivo de almacenamiento
- Conecta el otro microcontrolador nice!nano v2 al puerto usb-c de tu computadora
- Ahora copia el otro archivo corne_right-nice_nano_v2-zmk.uf2 que descomprimiste en la carpeta del dispositivo de almacenamiento
- Listo, ya tienes tu teclado corne configurado con la configuracion estandar de ZMK
- Ahora puedes modificar el codigo a tu gusto y volver a compilarlo
Si quieres usar mi configuracion solo debes clonar este repositorio y reemplazar los archivos `corne.conf` y `corne.keymap`
que se encuentran en la siguiente ruta:
```bash
zmk-config # carpeta principal
├── config # carpeta de configuracion
│ ├── corne.conf # archicho de configuracios de las macros
│ ├── corne.keymap # archicho de configuracios de las teclas
```
# MODO SUSPENCION
En el archicho de configuracios de las macros [corne.conf](./config/corne.conf) puedes poner la siguiente macro:
```make
CONFIG_ZMK_SLEEP=y
```
Esta macro te permite poner el teclado en modo de suspencion, para despertarlo solo debes presionar cualquier tecla.
Es muy util para preservar la vida de la bateria.
```bash
zmk-config # carpeta principal
├── config # carpeta de configuracion
│ ├── corne.conf # archicho de configuracios de las macros
```
ESTA MACRO NO VIENE POR DEFECTO EN LA CONFIGURACION ESTANDAR DE ZMK, POR LO QUE DEBES AGREGARLA TU MISMO.
# PANTALLA OLED
La pantalla OLED aun no esta soportada por ZMK o mejor dicho esta en desarrollo, por lo que no se puede usar.
# RGB
En el archicho de configuracios de las macros [corne.conf](./config/corne.conf) puedes poner la siguiente macro:
```make
CONFIG_ZMK_RGB_UNDERGLOW=y
# Usar la configuración de STRIP específica para los LED que estás usando
CONFIG_WS2812_STRIP=y
```
```bash
zmk-config # carpeta principal
├── config # carpeta de configuracion
│ ├── corne.conf # archicho de configuracios de las macros
```
Ahora debes ir a la siguiente ruta y modificar el archivo [corne.keymap](./config/corne.keymap):
```bash
zmk-config # carpeta principal
├── config # carpeta de configuracion
│ ├── corne.keymap # archicho de configuracios de las teclas + RBG
```
Agrega las siguientes lineas antes de keymap:
```c
#ifdef CONFIG_ZMK_RGB_UNDERGLOW
# include
# include
&spi1 {
compatible = "nordic,nrf-spim";
status = "okay";
mosi-pin = <6>;
// Unused pins, needed for SPI definition, but not used by the ws2812 driver itself.
sck-pin = <5>;
miso-pin = <7>;
led_strip: ws2812@0 {
compatible = "worldsemi,ws2812-spi";
label = "WS2812";
/* SPI */
reg = <0>; /* ignored, but necessary for SPI bindings */
spi-max-frequency = <4000000>;
/* WS2812 */
chain-length = <11>; /* arbitrary; change at will */
spi-one-frame = <0x70>;
spi-zero-frame = <0x40>;
color-mapping = ;
};
};
/ {
chosen {
zmk,underglow = &led_strip;
};
};
#endif // CONFIG_ZMK_RGB_UNDERGLOW
```
Ahora aqui tienes un ejemplo de como debes mapear las teclas para controlar el RGB:
```c
#ifdef CONFIG_ZMK_RGB_UNDERGLOW
mouse_layer {
// .------------------------------------------------. .-------------------------------------------------.
// | | | |OUT_USB|OUT_BLE|OUT_TOG| |RGBBRI-|RGBBRI+|WH_LEFT|WH_RIGH|WH_DOWN| WH_UP |
// |--------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+---------|
// | |CLICK_1|CLICK_2|BT_CLR |BT_PRV | BT_NXT| |RGBSAT-|RGBSAT+| |CLICK_1| UP |CLICK_2 |
// |--------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+---------|
// |BT_CLR |BT_0 |BT_1 |BT_2 |BT_3 |BT_4 | |RGBHUE-|RGBHUE+| RESET | LEFT | DOWN | RIGHT |
// '---------------------------------------------------------| |----------------------------------------------------------'
// |EP_ON | EP_OFF| EP_TOG | |RGBANI- |RGBANI+| RGBTOG |
// '--------------------------------' '--------------------------------'
bindings = <
&none &none &none &out OUT_USB &out OUT_BLE &out OUT_TOG &rgb_ug RGB_BRD &rgb_ug RGB_BRI &none &none &none &none
&none &none &none &bt BT_CLR &bt BT_PRV &bt BT_NXT &rgb_ug RGB_SAD &rgb_ug RGB_SAI &none &none &none &none
&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &rgb_ug RGB_HUD &rgb_ug RGB_HUI &reset &none &none &none
&ext_power EP_ON &ext_power EP_OFF &ext_power EP_TOG &rgb_ug RGB_EFR &rgb_ug RGB_EFF &rgb_ug RGB_TOG
>;
};
#else
mouse_layer {
// .------------------------------------------------. .-------------------------------------------------.
// | | | |OUT_USB|OUT_BLE|OUT_TOG| | | |WH_LEFT|WH_RIGH|WH_DOWN| WH_UP |
// |--------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+---------|
// | |CLICK_1|CLICK_2|BT_CLR |BT_PRV | BT_NXT| | | | |CLICK_1| UP |CLICK_2 |
// |--------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+---------|
// |BT_CLR |BT_0 |BT_1 |BT_2 |BT_3 |BT_4 | | | | RESET | LEFT | DOWN | RIGHT |
// '---------------------------------------------------------| |----------------------------------------------------------'
// |EP_ON | EP_OFF| EP_TOG | | | | |
// '--------------------------------' '--------------------------------'
bindings = <
&none &none &none &out OUT_USB &out OUT_BLE &out OUT_TOG &none &none &none &none &none &none
&none &none &none &bt BT_CLR &bt BT_PRV &bt BT_NXT &none &none &none &none &none &none
&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &none &none &reset &none &none &none
&ext_power EP_ON &ext_power EP_OFF &ext_power EP_TOG &none &none &none
>;
};
#endif // CONFIG_ZMK_RGB_UNDERGLOW
```
RECUERDA QUE EL RGB GASTA DEMASIADA ENERGIA, LO MEJOR ES NO ACTIVARLO!
# OTROS CONSEJOS IMPORTANTES
- Si se te desconectaron/desincronizaron ambas mitades solo tienes que presionar el boton de reset de ambas mitades 10 veces seguidas y se volveran a conectar.
- Si quires volver a flashar el firware solo tienes que conectar el teclado(osea una mitad primero, normalmente la izquierda) presionar el boton de reset 2 veces seguidas
y tu dispositivo se reconocera como una unidad de almecenamiento de disco duro, luego solo arrastra el archivo a flashear y listo. Haz lo mismo con la otra mitad.
# DONACION
Si disfrutas de mi trabajo, siéntete libre de donar o convertirte en patrocinador.
- [paypal]
- [sponsor]
Emsamblador y creador/mantenedor de vimtools, GitManager y más,
que son herramientas de trabajo fáciles de integrar, pero muy potentes que te permiten
mejore su flujo de trabajo, integrándose con todos los sistemas operativos y todas las
shells(zsh, fish, bash, etc.) posibles.
Aquí puedes ver otros proyecto publicado recientemente:
- [vimtools] navaja suiza para vim (funciones y configuraciones que te facilitarán la vida)
- [gm] administrador multiplataforma GIT con una interfaz de usuario amigable
- [vim-better-header] la mejor plantilla automatizada
- [vim-executor] Ejecutador de código multilenguaje
# 🏆 Trofeos de perfil de GitHub
[](https://github.com/ryo-ma/github-profile-trophy)
# [LICENSE](LICENSE)
Released under the MIT License
Copyright (c) 2020 The ZMK Contributors
[twitter]: https://twitter.com/mctechnology17
[youtube]: https://www.youtube.com/c/mctechnology17
[instagram]: https://www.instagram.com/mctechnology17/
[facebook]: https://m.facebook.com/mctechnology17/
[reddit]:https://www.reddit.com/user/mctechnology17
[vim-executor]: https://github.com/mctechnology17/vim-executor
[vim-better-header]: https://github.com/mctechnology17/vim-better-header
[gm]: https://github.com/mctechnology17/gm
[vimtools]: https://github.com/mctechnology17/vimtools
[jailbreakrepo]: https://mctechnology17.github.io/
[uiglitch]: https://repo.packix.com/package/com.mctechnology.uiglitch/
[uiswitches]: https://repo.packix.com/package/com.mctechnology.uiswitches/
[uibadge]: https://repo.packix.com/package/com.mctechnology.uibadge/
[youtuberepo]: https://github.com/mctechnology17/youtube_repo_mc_technology
[sponsor]: https://github.com/sponsors/mctechnology17
[paypal]: https://www.paypal.me/mctechnology17
[readline]: https://github.com/PowerShell/PSReadLine/blob/master/README.md