DEV Community

Cover image for nice!nano: el microcontrolador nRF52840 que mueve miles de teclados DIY
lu1tr0n
lu1tr0n

Posted on • Originally published at elsolitario.org

nice!nano: el microcontrolador nRF52840 que mueve miles de teclados DIY

En su primer año de universidad, Nick Winans se encerró un fin de semana entero en su dormitorio, salió solo para dormir y comer, y diseñó el nice!nano: una placa microcontroladora inalámbrica que hoy alimenta decenas de miles de teclados mecánicos en todo el mundo.

Lo que empezó como un proyecto personal frustrante terminó vendiendo 1.000 unidades en siete horas y se convirtió en un producto de más de un millón de dólares. Esta es la historia del nice!nano y de cómo el hardware abierto puede nacer en cualquier escritorio.

TL;DR

  • El nice!nano es un microcontrolador inalámbrico basado en el chip nRF52840 de Nordic, compatible con el formato Pro Micro.
  • Nick Winans lo diseñó en un solo fin de semana usando KiCad, durante su primer año de universidad.
  • Su primer prototipo duraba días con una batería de 2.500 mAh; el nice!nano dura semanas con 110 mAh: unas 100x más eficiente.
  • La compra grupal abrió el 20 de junio de 2020 a las 11am y vendió 1.000 unidades en solo siete horas.
  • El proyecto impulsó a ZMK, el firmware inalámbrico de Pete Johanson construido sobre Zephyr RTOS.
  • Hoy se han vendido más de 50.000 unidades, superando el millón de dólares en ventas totales.
  • Es hardware abierto: sus esquemáticos y su diseño públicos inspiraron a toda una comunidad de teclados.

¿Qué es el nice!nano?

El nice!nano es una placa de desarrollo del tamaño de un dedo pulgar pensada para teclados mecánicos personalizados. Su gran mérito es ser eléctricamente compatible con el Pro Micro, el formato de placa que durante años reinó en la comunidad de teclados DIY ("hazlo tú mismo"). En la práctica, eso significa que cualquiera que ya hubiera diseñado un teclado para Pro Micro podía cambiarlo por un nice!nano y, de pronto, su teclado funcionaba sin cables.

La diferencia clave está en el chip que lleva dentro: el nRF52840 de Nordic Semiconductor, un microcontrolador con Bluetooth Low Energy (BLE) integrado y un consumo de energía extraordinariamente bajo. El Pro Micro tradicional usa un chip ATmega32u4 sin radio: para volverlo inalámbrico había que añadir módulos externos torpes y hambrientos de batería. El nice!nano resolvió ese problema de raíz, y lo hizo en un factor de forma tan delgado que cabía debajo de casi cualquier teclado existente.

El problema: latencia horrible y batería de un día

Toda la historia arranca con la frustración. Durante sus primeras vacaciones de invierno, Winans construyó lo que bautizó como Dissatisfaction65, un teclado inalámbrico inspirado en el popular Satisfaction75. Para lograr el inalámbrico usó la placa Adafruit 32u4 Bluefruit LE, porque era la única compatible con el firmware abierto QMK que soportaba Bluetooth en ese momento.

El resultado se veía precioso, pero rendía pésimo. La latencia al escribir era prácticamente inusable y, aun metiéndole una batería enorme, apenas duraba unos días encendido. Winans, que veía cómo Logitech y Apple lograban periféricos inalámbricos de baja latencia y semanas de autonomía, supo que algo mejor era posible. Esa brecha entre lo que tenía y lo que sabía que se podía hacer fue el motor de todo lo que vino después.

Los teclados DIY divididos fueron el primer terreno del nice!nano.

Dos meses de investigación: por qué Nordic ganó

Durante los dos meses siguientes, Winans se sumergió en el mundo de los microcontroladores inalámbricos. Aprendió rápido dos cosas: que los chips de Nordic eran la elección de los aficionados serios, y que el formato Pro Micro seguía siendo el rey indiscutido de los teclados caseros. En su búsqueda encontró tres proyectos que intentaban cerrar la brecha entre ambos mundos: el BlueMicro, el nRFMicro y el BLE-Micro-Pro.

Ninguno lo convencía del todo. El BlueMicro tenía un factor de forma demasiado grande que chocaba con la mayoría de los diseños Pro Micro. El BLE-Micro-Pro era caro (unos 40 dólares), cerrado y solo se vendía en Japón. El nRFMicro era lo más cercano a su ideal, así que al principio intentó modificarlo. Pronto se dio cuenta de que sus metas eran demasiado ambiciosas para un parche sobre el diseño de otro, y tomó la decisión que define a tantos buenos proyectos de hardware abierto: empezar de cero.

💭 Clave: no inventó nada de la nada. Se apoyó en el firmware QMK, en los esquemáticos abiertos de Adafruit y del nRFMicro, y en la documentación de Nordic. El hardware abierto avanza así: cada diseño parado sobre los hombros del anterior.

Un fin de semana con KiCad

El fin de semana en que nació el nice!nano, Winans casi no se levantó del escritorio. Eran solo él, KiCad (la suite de diseño de PCB libre y multiplataforma), el Infocenter de Nordic, la wiki del nRFMicro y el esquemático de la Adafruit nRF52840 Feather. Armó el esquema y la lista de materiales (BOM), distribuyó los componentes en la placa y ruteó —y volvió a rutear— las conexiones. Al final salió la placa nRF52840 compatible con Pro Micro más delgada que existía hasta ese momento.

El nombre vino del usuario en línea de Winans, "Nicell", y de la tradición de nombres métricos del Pro Micro: así surgió "nice!nano". Tras contactar a varios ensambladores, la opción más barata para fabricar cinco prototipos costaba unos 100 dólares. Era mucho dinero para algo que podía no funcionar, pero después de revisar el diseño obsesivamente durante días, pagó. Semanas más tarde las placas llegaron a su puerta; conectó la primera con los ojos entrecerrados del miedo y, para su alivio, funcionó.

El siguiente paso fue la prueba de fuego: armó un teclado dividido Lily58 con las placas y consiguió que una versión modificada de QMK corriera en él. La autonomía dejó a todos boquiabiertos. La placa duraba varias semanas con una batería de apenas 110 mAh, mientras que el Dissatisfaction65 apenas aguantaba unos días con 2.500 mAh. Eso es una mejora de más de 100x en eficiencia energética. Cuando publicó su Lily58 totalmente inalámbrico en Reddit, el interés fue inmediato.

graph LR
  A["Dissatisfaction65 (chip 32u4)"] --> B["Investigacion: nRF52 + formato Pro Micro"]
  B --> C["nice!nano (chip nRF52840)"]
  C --> D["Compra grupal: 1.000 en 7h"]
  C --> E["ZMK sobre Zephyr RTOS"]
  D --> F["Decenas de miles de teclados"]
  E --> F
Enter fullscreen mode Exit fullscreen mode

La compra grupal que se agotó en siete horas

Como estudiante universitario, Winans no tenía el dinero para financiar de su bolsillo 1.000 placas, así que recurrió a una compra grupal (group buy): un sistema de preventa habitual en la comunidad de teclados, donde los compradores pagan por adelantado para que el proyecto alcance una cantidad mínima de fabricación. Fijó un mínimo de 200 piezas, un máximo de 1.000 (porque pensaba que no podría manejar más) y un plazo de un mes.

No hizo falta el mes. La venta abrió el 20 de junio de 2020 a las 11am hora central y en los primeros minutos ya había superado el mínimo. En total, las 1.000 unidades se agotaron en siete horas. En los dos meses siguientes, Winans recibió todo el producto y despachó más de 400 pedidos únicos con la ayuda de su familia, en plena pandemia, desde la casa de su infancia.

⚠️ Ojo: Winans dice abiertamente que las compras grupales son terribles. Sostener el dinero de cientos de personas sin un producto físico que lo respalde es aterrador, y la comunidad ha sufrido demasiados casos de fondos robados y proyectos eternamente retrasados. Decidió no volver a hacer una jamás.

El despacho de los 400+ pedidos fue un esfuerzo familiar.

ZMK: el firmware que faltaba

Mientras esperaba que llegara el producto de la compra grupal, faltaba una pieza fundamental del ecosistema: un firmware decente para inalámbrico. QMK funcionaba, pero adaptarlo a BLE era incómodo. Por casualidad, Winans se conectó con Pete Johanson, que justo había empezado a trabajar en un firmware de teclados inalámbricos construido sobre el moderno Zephyr RTOS. Winans le envió unidades de preproducción del nice!nano para experimentar, y ese encuentro impulsó a ZMK, hoy el estándar abierto de facto para teclados BLE.

La gracia de ZMK es que define el teclado mediante devicetree, el mismo mecanismo de descripción de hardware que usa el kernel de Linux. Tu distribución de teclas es un archivo de texto declarativo, no código C que haya que compilar a mano. Un fragmento mínimo de keymap se ve así:

/ {
    keymap {
        compatible = "zmk,keymap";
        default_layer {
            bindings = ;
        };
    };
};
Enter fullscreen mode Exit fullscreen mode

La mayoría de la gente compila su firmware en la nube con GitHub Actions, sin instalar nada. Pero si querés compilar localmente con la herramienta west de Zephyr, primero instalás el toolchain según tu sistema operativo:

# Linux (Debian / Ubuntu)
sudo apt install python3-pip
pip3 install --user west

# macOS (Homebrew)
brew install python3
pip3 install --user west

# Windows (PowerShell)
winget install Python.Python.3.12
pip install west
Enter fullscreen mode Exit fullscreen mode

Y una vez configurado el entorno, el comando de compilación es idéntico en las tres plataformas. Solo cambiás el shield (la definición de tu teclado) y la placa, que para el nice!nano v2 es nice_nano_v2:

# Mismo comando en Windows, macOS y Linux
west build -b nice_nano_v2 -- -DSHIELD=lily58_left
west build -b nice_nano_v2 -- -DSHIELD=lily58_right
Enter fullscreen mode Exit fullscreen mode

El resultado es un archivo .uf2 que copiás a la placa como si fuera un pendrive. Esa simplicidad —describir el hardware en texto y soltar un archivo para programarlo— es buena parte de por qué el nice!nano y ZMK se volvieron tan populares.

💡 Tip: si recién empezás con teclados inalámbricos, no compiles local. Usá el flujo de GitHub Actions de ZMK: haces un fork del repositorio de configuración, editás tu keymap desde el navegador y descargás el firmware ya compilado. Cero instalación.

Por qué importa para desarrolladores en LATAM

Más allá de la anécdota inspiradora, el nice!nano es un caso de estudio valioso para cualquiera que sueñe con construir hardware en la región. Primero, demuestra que la barrera de entrada para diseñar electrónica seria cayó a casi cero: las herramientas (KiCad, QMK, ZMK) son gratuitas y abiertas, la documentación de Nordic es pública, y fabricar un puñado de prototipos cuesta lo que una salida a cenar. No hace falta una empresa ni un laboratorio; hace falta tiempo, foco y la disciplina de revisar el diseño antes de pagar.

Segundo, ilustra el verdadero poder del hardware abierto. El nice!nano no nació en el vacío: se apoyó en tres proyectos previos y en esquemáticos liberados por otros. A su vez, al publicar su diseño, Winans habilitó a una comunidad entera de teclados inalámbricos que de otro modo no existiría. Para LATAM, donde la importación de componentes y el acceso a placas comerciales suele ser caro y lento, los diseños abiertos y replicables localmente son una ventaja estratégica real. Un diseño abierto se puede mandar a fabricar a cualquier ensamblador del mundo.

Tercero, hay una lección de negocio honesta: la parte difícil no fue la ingeniería del nice!nano, sino sostener la confianza de cientos de desconocidos que pagaron por adelantado. La logística, la atención al cliente y la responsabilidad de cumplir pesan tanto como el diseño. Por eso Winans renunció a las compras grupales y migró a un modelo de stock y venta directa.

Qué sigue

El nice!nano dejó de ser un proyecto de fin de semana hace rato. Se han vendido más de 50.000 unidades a través de distintos minoristas, lo que representa más de un millón de dólares en ventas totales, y la placa se convirtió en el corazón de incontables teclados comerciales y caseros. ZMK, por su parte, siguió creciendo hasta volverse la opción inalámbrica por defecto, con soporte para decenas de placas y características que QMK tardó años en igualar en el terreno BLE.

La continuación natural de esta historia son los clones, las variantes y los sucesores que el propio diseño abierto hizo posibles. Cada nueva placa nRF52840 compatible con Pro Micro que aparece le debe algo al camino que trazó un estudiante que no quería aceptar que su teclado durara solo un día con la batería.

📖 Resumen en Telegram: Ver resumen

Preguntas frecuentes

¿Qué es exactamente el nice!nano?

Es una placa microcontroladora inalámbrica basada en el chip nRF52840 de Nordic, con Bluetooth Low Energy integrado y muy bajo consumo. Está diseñada para ser compatible con el formato Pro Micro, lo que permite usarla en teclados mecánicos DIY que originalmente eran cableados.

¿En qué se diferencia de un Pro Micro normal?

El Pro Micro clásico usa un chip ATmega32u4 sin radio, por lo que es cableado. El nice!nano usa el nRF52840, que trae Bluetooth y un consumo de energía muchísimo menor. Donde antes hacían falta módulos externos torpes, el nice!nano integra todo en una placa más delgada.

¿Qué es ZMK y por qué se asocia al nice!nano?

ZMK es un firmware de teclados abierto y moderno construido sobre Zephyr RTOS, especializado en inalámbrico. Nació casi en paralelo al nice!nano y Winans envió placas tempranas a su creador, Pete Johanson. Hoy es el estándar de facto para teclados BLE y soporta el nice!nano de forma nativa.

¿Necesito saber soldar o programar para usarlo?

Para armar un teclado necesitás algo de soldadura básica. Para el firmware, no hace falta programar: ZMK te permite definir tu distribución de teclas en un archivo de texto y compilar el firmware en la nube con GitHub Actions, sin instalar herramientas en tu computadora.

¿Puedo conseguir el nice!nano desde LATAM?

Sí. Al ser un diseño popular y abierto, se vende a través de varios minoristas internacionales y existen variantes y clones compatibles. La principal fricción suele ser el costo y el tiempo de envío de la importación, no la disponibilidad del diseño en sí.

¿Por qué Nick Winans dice que las compras grupales son terribles?

Porque implican retener durante meses el dinero de cientos de personas sin un producto físico que lo respalde, con plataformas de pago que a veces congelan los fondos. La comunidad de teclados ha sufrido casos de estafas y retrasos enormes, y por eso él decidió no volver a usar ese modelo.

Referencias

  • nick.winans.io — Relato original de Nick Winans sobre cómo creó el nice!nano.
  • zmk.dev — Sitio oficial y documentación del firmware ZMK.
  • github.com/zmkfirmware/zmk — Código fuente de ZMK, abierto bajo licencia MIT.
  • qmk.fm — QMK, el firmware que usó en su primer prototipo inalámbrico.
  • kicad.org — KiCad, la suite EDA libre con la que diseñó la placa.

📱 ¿Te gusta este contenido? Únete a nuestro canal de Telegram @programacion donde publicamos a diario lo más relevante de tecnología, IA y desarrollo. Resúmenes rápidos, contenido fresco todos los días.

Top comments (0)