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 |
- Flash the pca10100_bootloader-0.6.2_s140_6.1.1.hex file from this repository
- 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
Let's see what configurations to do, these examples are based on a board arm like nice_nano or nrfmicro
- Change the SOC settings in the ** _ config.c ** file
CONFIG_SOC_NRF52833_QIAA = y
- 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>;
};
};
};
- 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.
[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)