Skip to content

Latest commit

 

History

History
92 lines (65 loc) · 2.8 KB

README_EN.md

File metadata and controls

92 lines (65 loc) · 2.8 KB

ZMK nrf52833

Instructions on how to configure ZMK to work with nrf52833

Let's first see some differences between E73 2G4M08SIE (nrf52833) and E73 2G4M08S1C (nrf52840)

E73 2G4M08S1C (nrf52840) E73 2G4M08SIE (nrf52833)
Memory 1024 kB 512 kB
RAM 256 kB 128 kB
Pin 1 P1.11 Not connected
Pin 25 DCCH Not connected
DC / DC output Yes No
SD Yes Insufficient memory
Partitions nrf52840 nrf52833
SD / MBR partition 152kB 4kB
CODE partition 792kB 428kB
Storage partition 32kB 32kB
Boot partition 48kB 48kB

Loading the bootloader

  1. Flash the pca10100_bootloader-0.6.2_s140_6.1.1.hex file from this repository
  2. Connected by USB it should appear as a memory or pendrive, copy the file update-pca10100_bootloader-0.6.2_nosd.uf2

NOTE: If you don't know how to load the bootloader you can look at this guide [Bootloader nrfmicro guide] (https://github.com/joric/nrfmicro/wiki/Bootloader)

Since with nrf52833 we only have 428kB available it will not be possible to have a screen, or if you have one it must be with a very limited code, the basic zmk code for a 60% keyboard with two layers working via usb and bluetooth needs 312kB, if a that we add the functionality of rgb underglow rises to 328kB

Configuring ZMK

Let's see what configurations to do, these examples are based on a board arm like nice_nano or nrfmicro

  1. Change the SOC settings in the ** _ config.c ** file
CONFIG_SOC_NRF52833_QIAA = y
  1. Change base dtsi import and definition of partitions in the **. Dts ** file
#include <nordic / nrf52833_qiaa.dtsi>

& flash0 {
  partitions {
    compatible = "fixed-partitions";
    # address-cells = <1>;
    # size-cells = <1>;

    sd_partition: partition @ 0 {
      label = "mbr";
      reg = <0x00000000 0x00001000>;
    };

    code_partition: partition @ 1000 {
      label = "code_partition";
      reg = <0x00001000 0x0006b000>;
    };

    storage_partition: partition @ 6c000 {
      label = "storage";
      reg = <0x0006c000 0x00008000>;
    };

    boot_partition: partition @ 74000 {
      label = "adafruit_boot";
      reg = <0x00074000 0x0000c000>;
    };
  };
};
  1. Change in the ** CMakeLists.txt ** file the position where you start writing the code
  -b 0x1000

With these changes we can now enjoy ZMK on our nrf52833 chip

The bootloader comes from the adafruit repo, to flash the micro you must press reset twice very quickly that will make it appear as a pendrive, then copy the .uf2 file generated by ZMK.

Other links

[ZMK Firmware] (https://zmk.dev/)

[Adafruit nr52 bootloader releases] (https://github.com/adafruit/Adafruit_nRF52_Bootloader/releases)

[Open source VIA Spanish all supported QMK keyboards] (https://github.com/ci-bus/Miguelio-VIA-Keyboards)