From 55bb6dbdea6862fdbf882c52b4d45effc4374658 Mon Sep 17 00:00:00 2001 From: Michael Len <me@michaellen.com> Date: Wed, 26 Oct 2022 22:50:37 -0700 Subject: [PATCH] Added a board based on the NRF52 DK Created a self-contained board meant as a sample project on the NRF52 DK. Allows for a super easy starting point for any developer learning ZMK with the development kit. --- .../arm/nrf52dk_nrf52832/CMakeLists.txt | 3 + app/boards/arm/nrf52dk_nrf52832/Kconfig | 13 + app/boards/arm/nrf52dk_nrf52832/Kconfig.board | 11 + .../arm/nrf52dk_nrf52832/Kconfig.defconfig | 19 + app/boards/arm/nrf52dk_nrf52832/README.md | 21 + app/boards/arm/nrf52dk_nrf52832/board.cmake | 8 + .../nrf52dk_nrf52832/custom_runtime_code.c | 136 ++++++ .../doc/img/nrf52dk_nrf52832.jpg | Bin 0 -> 73127 bytes app/boards/arm/nrf52dk_nrf52832/doc/index.rst | 407 ++++++++++++++++++ .../arm/nrf52dk_nrf52832/nrf52dk_nrf52832.dts | 236 ++++++++++ .../nrf52dk_nrf52832/nrf52dk_nrf52832.keymap | 21 + .../nrf52dk_nrf52832/nrf52dk_nrf52832.yaml | 23 + .../nrf52dk_nrf52832.zmk.yaml | 12 + .../nrf52dk_nrf52832_defconfig | 44 ++ 14 files changed, 954 insertions(+) create mode 100644 app/boards/arm/nrf52dk_nrf52832/CMakeLists.txt create mode 100644 app/boards/arm/nrf52dk_nrf52832/Kconfig create mode 100644 app/boards/arm/nrf52dk_nrf52832/Kconfig.board create mode 100644 app/boards/arm/nrf52dk_nrf52832/Kconfig.defconfig create mode 100644 app/boards/arm/nrf52dk_nrf52832/README.md create mode 100644 app/boards/arm/nrf52dk_nrf52832/board.cmake create mode 100644 app/boards/arm/nrf52dk_nrf52832/custom_runtime_code.c create mode 100644 app/boards/arm/nrf52dk_nrf52832/doc/img/nrf52dk_nrf52832.jpg create mode 100644 app/boards/arm/nrf52dk_nrf52832/doc/index.rst create mode 100644 app/boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832.dts create mode 100644 app/boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832.keymap create mode 100644 app/boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832.yaml create mode 100644 app/boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832.zmk.yaml create mode 100644 app/boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832_defconfig diff --git a/app/boards/arm/nrf52dk_nrf52832/CMakeLists.txt b/app/boards/arm/nrf52dk_nrf52832/CMakeLists.txt new file mode 100644 index 00000000..8f3f3224 --- /dev/null +++ b/app/boards/arm/nrf52dk_nrf52832/CMakeLists.txt @@ -0,0 +1,3 @@ +zephyr_library() +zephyr_library_sources(custom_runtime_code.c) +zephyr_library_include_directories(${ZEPHYR_BASE}/drivers) \ No newline at end of file diff --git a/app/boards/arm/nrf52dk_nrf52832/Kconfig b/app/boards/arm/nrf52dk_nrf52832/Kconfig new file mode 100644 index 00000000..b8fd339e --- /dev/null +++ b/app/boards/arm/nrf52dk_nrf52832/Kconfig @@ -0,0 +1,13 @@ +# nRF52 DK board configuration + +/* + * Copyright (c) 2022 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +config BOARD_ENABLE_DCDC + bool "Enable DCDC mode" + select SOC_DCDC_NRF52X + default y + depends on BOARD_NRF52DK_NRF52832 \ No newline at end of file diff --git a/app/boards/arm/nrf52dk_nrf52832/Kconfig.board b/app/boards/arm/nrf52dk_nrf52832/Kconfig.board new file mode 100644 index 00000000..9dae95fb --- /dev/null +++ b/app/boards/arm/nrf52dk_nrf52832/Kconfig.board @@ -0,0 +1,11 @@ +# nRF52 DK NRF52832 board configuration + +/* + * Copyright (c) 2022 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +config BOARD_NRF52DK_NRF52832 + bool "nRF52 DK NRF52832" + depends on SOC_NRF52832_QFAA diff --git a/app/boards/arm/nrf52dk_nrf52832/Kconfig.defconfig b/app/boards/arm/nrf52dk_nrf52832/Kconfig.defconfig new file mode 100644 index 00000000..6d9451cd --- /dev/null +++ b/app/boards/arm/nrf52dk_nrf52832/Kconfig.defconfig @@ -0,0 +1,19 @@ +# nRF52 DK NRF52832 board configuration + +/* + * Copyright (c) 2022 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +config BOARD + default "nrf52dk_nrf52832" + +config ZMK_KEYBOARD_NAME + default "nrf52dk_nrf52832" + +config BT_CTLR +default BT + +config ZMK_BLE + default y diff --git a/app/boards/arm/nrf52dk_nrf52832/README.md b/app/boards/arm/nrf52dk_nrf52832/README.md new file mode 100644 index 00000000..79b72aac --- /dev/null +++ b/app/boards/arm/nrf52dk_nrf52832/README.md @@ -0,0 +1,21 @@ +# NRF52 DK + +This is a sample self-contained ZMK board that is built for the ubiquitous NRF52 DK from Nordic. This can help jumpstart new board projects for people by showcasing various features on a known standard + +You should be able to use this by plugging in an NRF52 DK, turning on the power switch, then running the following from the zmk/app folder: + +```` +west build --pristine -b nrf52dk_nrf52832 && west flash +```` + +## Features + +- BLE functionality +- Simple keymap with modifiers +- Direct GPIO kscan +- Additonal custom code alongside ZMK runtime +- Connection LED + +## Other details + +Many of the files are from zmk/zepjhyr/boards/arm/nrf52dk_nrf52832, with additional modifications for ZMK. \ No newline at end of file diff --git a/app/boards/arm/nrf52dk_nrf52832/board.cmake b/app/boards/arm/nrf52dk_nrf52832/board.cmake new file mode 100644 index 00000000..f99446d1 --- /dev/null +++ b/app/boards/arm/nrf52dk_nrf52832/board.cmake @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: Apache-2.0 + +board_runner_args(jlink "--device=nrf52" "--speed=4000") +board_runner_args(pyocd "--target=nrf52" "--frequency=4000000") +include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) +include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) +include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake) +include(${ZEPHYR_BASE}/boards/common/openocd-nrf5.board.cmake) diff --git a/app/boards/arm/nrf52dk_nrf52832/custom_runtime_code.c b/app/boards/arm/nrf52dk_nrf52832/custom_runtime_code.c new file mode 100644 index 00000000..509847d2 --- /dev/null +++ b/app/boards/arm/nrf52dk_nrf52832/custom_runtime_code.c @@ -0,0 +1,136 @@ +/* + * Copyright (c) 2022 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include <bluetooth/conn.h> +#include <kernel.h> +#include <device.h> +#include <init.h> +#include <drivers/gpio.h> +#include <sys/sys_io.h> +#include <devicetree.h> + +#define SW0_NODE DT_ALIAS(sw0) +#if !DT_NODE_HAS_STATUS(SW0_NODE, okay) +#error "Unsupported board: sw0 devicetree alias is not defined" +#endif +static const struct gpio_dt_spec _button = GPIO_DT_SPEC_GET_OR(SW0_NODE, gpios, + {0}); +static const struct gpio_dt_spec led_one = GPIO_DT_SPEC_GET_OR(DT_ALIAS(led0), gpios, + {0}); +static const struct gpio_dt_spec led_two = GPIO_DT_SPEC_GET_OR(DT_ALIAS(led1), gpios, + {0}); + +/** + * Set up an LED DT Spec, default off + */ +void configure_led(struct gpio_dt_spec l) { + int ret = 0; + if (l.port && !device_is_ready(l.port)) { + printk("Error %d: LED device %s is not ready; ignoring it\n", + ret, l.port->name); + l.port = NULL; + } + if (l.port) { + ret = gpio_pin_configure_dt(&l, (GPIO_OUTPUT | GPIO_OUTPUT_LOW)); + if (ret != 0) { + printk("Error %d: failed to configure LED device %s pin %d\n", + ret, l.port->name, l.pin); + l.port = NULL; + } else { + printk("Set up LED at %s pin %d\n", l.port->name, l.pin); + } + } +} + +static struct gpio_callback button_cb_data; +/** + * When the button is pressed, toggle an LED + */ +void button_pressed(const struct device *dev, struct gpio_callback *cb, + uint32_t pins) +{ + printk("Button pressed at %" PRIu32 "\n", k_cycle_get_32()); + gpio_pin_toggle_dt(&led_two); +} + +/** + * Configure a button to be clickable and callback to a method + */ +void configure_button(struct gpio_dt_spec button) { + if (!device_is_ready(button.port)) { + printk("Error: button device %s is not ready\n", + button.port->name); + return; + } + + int ret = gpio_pin_configure_dt(&button, GPIO_INPUT); + if (ret != 0) { + printk("Error %d: failed to configure %s pin %d\n", + ret, button.port->name, button.pin); + return; + } + + ret = gpio_pin_interrupt_configure_dt(&button, + GPIO_INT_EDGE_TO_ACTIVE); + if (ret != 0) { + printk("Error %d: failed to configure interrupt on %s pin %d\n", + ret, button.port->name, button.pin); + return; + } + gpio_init_callback(&button_cb_data, button_pressed, BIT(button.pin)); + gpio_add_callback(button.port, &button_cb_data); + printk("Set up button at %s pin %d\n", button.port->name, button.pin); + +} + +/** + * When the BT is connected, turn on an LED + */ +static void connected(struct bt_conn *conn, uint8_t err) +{ + if (err) { + printk("Connection failed (err 0x%02x)\n", err); + int err = gpio_pin_set_dt(&led_one, 0); + if (err) { + printk("LED Set failed (err 0x%02x)\n", err); + } + } else { + int err = gpio_pin_set_dt(&led_one, 1); + if (err) { + printk("LED Set failed (err 0x%02x)\n", err); + } + printk("Connected\n"); + } +} + +/** + * When the BT is disconnected, turn o ff an LED + */ +static void disconnected(struct bt_conn *conn, uint8_t reason) +{ + int err = gpio_pin_set_dt(&led_one, 0); + if (err) { + printk("LED Set failed (err 0x%02x)\n", err); + } + printk("Disconnected (reason 0x%02x)\n", reason); +} + +// Configure the connection callbacks +BT_CONN_CB_DEFINE(conn_callbacks) = { + .connected = connected, + .disconnected = disconnected, +}; + + +static int init(const struct device *port) { + configure_led(led_one); + configure_led(led_two); + configure_button(_button); + + return 0; +} + +SYS_INIT(init, APPLICATION, CONFIG_APPLICATION_INIT_PRIORITY); diff --git a/app/boards/arm/nrf52dk_nrf52832/doc/img/nrf52dk_nrf52832.jpg b/app/boards/arm/nrf52dk_nrf52832/doc/img/nrf52dk_nrf52832.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0e1af257dd08b08db1bc316c559f588f278892ce GIT binary patch literal 73127 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%0AN$YPe@X2(If;uE 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πo<b(7&xeKSUi8ErC~DU^8y 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 literal 0 HcmV?d00001 diff --git a/app/boards/arm/nrf52dk_nrf52832/doc/index.rst b/app/boards/arm/nrf52dk_nrf52832/doc/index.rst new file mode 100644 index 00000000..ee5607d7 --- /dev/null +++ b/app/boards/arm/nrf52dk_nrf52832/doc/index.rst @@ -0,0 +1,407 @@ +.. _nrf52dk_nrf52832: + +nRF52 DK +######## + +Overview +******** + +The nRF52 Development Kit (PCA10040) hardware provides +support for the Nordic Semiconductor nRF52832 ARM Cortex-M4F CPU and +the following devices: + +* :abbr:`ADC (Analog to Digital Converter)` +* CLOCK +* FLASH +* :abbr:`GPIO (General Purpose Input Output)` +* :abbr:`I2C (Inter-Integrated Circuit)` +* :abbr:`MPU (Memory Protection Unit)` +* :abbr:`NVIC (Nested Vectored Interrupt Controller)` +* :abbr:`PWM (Pulse Width Modulation)` +* RADIO (Bluetooth Low Energy) +* :abbr:`RTC (nRF RTC System Clock)` +* Segger RTT (RTT Console) +* :abbr:`SPI (Serial Peripheral Interface)` +* :abbr:`UART (Universal asynchronous receiver-transmitter)` +* :abbr:`WDT (Watchdog Timer)` + +.. figure:: img/nrf52dk_nrf52832.jpg + :width: 442px + :align: center + :alt: nRF52 DK + + nRF52 DK (Credit: Nordic Semiconductor) + +More information about the board can be found at the +`nRF52 DK website`_. The `Nordic Semiconductor Infocenter`_ +contains the processor's information and the datasheet. + + +Hardware +******** + +nRF52 DK has two external oscillators. The frequency of +the slow clock is 32.768 kHz. The frequency of the main clock +is 32 MHz. + +Supported Features +================== + +The nrf52dk_nrf52832 board configuration supports the following +hardware features: + ++-----------+------------+----------------------+ +| Interface | Controller | Driver/Component | ++===========+============+======================+ +| ADC | on-chip | adc | ++-----------+------------+----------------------+ +| CLOCK | on-chip | clock_control | ++-----------+------------+----------------------+ +| FLASH | on-chip | flash | ++-----------+------------+----------------------+ +| GPIO | on-chip | gpio | ++-----------+------------+----------------------+ +| I2C(M) | on-chip | i2c | ++-----------+------------+----------------------+ +| MPU | on-chip | arch/arm | ++-----------+------------+----------------------+ +| NVIC | on-chip | arch/arm | ++-----------+------------+----------------------+ +| PWM | on-chip | pwm | ++-----------+------------+----------------------+ +| RADIO | on-chip | Bluetooth | ++-----------+------------+----------------------+ +| RTC | on-chip | system clock | ++-----------+------------+----------------------+ +| RTT | Segger | console | ++-----------+------------+----------------------+ +| SPI(M/S) | on-chip | spi | ++-----------+------------+----------------------+ +| UART | on-chip | serial | ++-----------+------------+----------------------+ +| WDT | on-chip | watchdog | ++-----------+------------+----------------------+ + +Other hardware features have not been enabled yet for this board. +See `nRF52 DK website`_ and `Nordic Semiconductor Infocenter`_ +for a complete list of nRF52 Development Kit board hardware features. + +Connections and IOs +=================== + +LED +--- + +* LED1 (green) = P0.17 +* LED2 (green) = P0.18 +* LED3 (green) = P0.19 +* LED4 (green) = P0.20 +* LD5 (red/green) = OB LED 1/2 + +Push buttons +------------ + +* BUTTON1 = SW1 = P0.13 +* BUTTON2 = SW2 = P0.14 +* BUTTON3 = SW3 = P0.15 +* BUTTON4 = SW4 = P0.16 +* BOOT = SW5 = boot/reset + +External Connectors +------------------- + +J-Link Prog Connector + ++-------+--------------+ +| PIN # | Signal Name | ++=======+==============+ +| 1 | VDD | ++-------+--------------+ +| 2 | IMCU_TMSS | ++-------+--------------+ +| 3 | GND | ++-------+--------------+ +| 4 | IMCU_TCKS | ++-------+--------------+ +| 5 | V5V | ++-------+--------------+ +| 6 | IMCU_TDOS | ++-------+--------------+ +| 7 | Cut off | ++-------+--------------+ +| 8 | IMCU_TDIS | ++-------+--------------+ +| 9 | Cut off | ++-------+--------------+ +| 10 | IMCU_RESET | ++-------+--------------+ + +Debug IN + ++-------+--------------+-------------------------+ +| PIN # | Signal Name | NRF52832 Functions | ++=======+==============+=========================+ +| 1 | VDD | N/A | ++-------+--------------+-------------------------+ +| 2 | SWDIO | SWDIO | ++-------+--------------+-------------------------+ +| 3 | GND | N/A | ++-------+--------------+-------------------------+ +| 4 | SWDCLK | SWDCLK | ++-------+--------------+-------------------------+ +| 5 | GND | N/A | ++-------+--------------+-------------------------+ +| 6 | P0.18 | P0.18 / TRACEDATA[0] / | +| | | SWO | ++-------+--------------+-------------------------+ +| 7 | Cut off | N/A | ++-------+--------------+-------------------------+ +| 8 | Cut off | N/A | ++-------+--------------+-------------------------+ +| 9 | GND | N/A | ++-------+--------------+-------------------------+ +| 10 | P0.21 | P0.21 / RESET | ++-------+--------------+-------------------------+ + +Debug OUT + ++-------+----------------+ +| PIN # | Signal Name | ++=======+================+ +| 1 | EXT_VTG | ++-------+----------------+ +| 2 | EXT_SWDIO | ++-------+----------------+ +| 3 | GND | ++-------+----------------+ +| 4 | EXT_SWDCLK | ++-------+----------------+ +| 5 | GND | ++-------+----------------+ +| 6 | EXT_SWO | +| | | ++-------+----------------+ +| 7 | Cut off | ++-------+----------------+ +| 8 | Cut off | ++-------+----------------+ +| 9 | EXT_GND_DETECT | ++-------+----------------+ +| 10 | EXT_RESET | ++-------+----------------+ + +Shield Debug and Current measurement + ++-------+----------------+ +| PIN # | Signal Name | ++=======+================+ +| 1 | VDD_nRF | ++-------+----------------+ +| 2 | VDD | ++-------+----------------+ +| 3 | SH_VTG | ++-------+----------------+ +| 4 | SH_SWDIO | ++-------+----------------+ +| 5 | SH_SWDCLK | ++-------+----------------+ +| 6 | SH_SWO | ++-------+----------------+ +| 7 | SH_RESET | ++-------+----------------+ +| 8 | SH_GND_DETECT | ++-------+----------------+ + +Auxiliary + ++-------+--------------+-------------------------+ +| PIN # | Signal Name | NRF52832 Functions | ++=======+==============+=========================+ +| 1 | P0.00 | P0.00 / XL1 | ++-------+--------------+-------------------------+ +| 2 | P0.01 | P0.01 / XL2 | ++-------+--------------+-------------------------+ +| 3 | P0.21 | P0.21 / RESET | ++-------+--------------+-------------------------+ +| 4 | P0.05_C | P0.05 / AIN3 | ++-------+--------------+-------------------------+ +| 5 | P0.06_C | P0.06 | ++-------+--------------+-------------------------+ +| 6 | P0.07_C | P0.07 | ++-------+--------------+-------------------------+ +| 7 | P0.08_C | P0.08 | ++-------+--------------+-------------------------+ +| 8 | P0.09 | P0.09 / NFC1 | ++-------+--------------+-------------------------+ +| 9 | P0.10 | P0.10 / NFC2 | ++-------+--------------+-------------------------+ + +Arduino Headers +--------------- + +P1/P7 Power + ++-------+--------------+-------------------------+ +| PIN # | Signal Name | NRF52832 Functions | ++=======+==============+=========================+ +| 1 | VDD | N/A | ++-------+--------------+-------------------------+ +| 2 | VDD | N/A | ++-------+--------------+-------------------------+ +| 3 | RESET | P0.21 / RESET | ++-------+--------------+-------------------------+ +| 4 | VDD | N/A | ++-------+--------------+-------------------------+ +| 5 | V5V | N/A | ++-------+--------------+-------------------------+ +| 6 | GND | N/A | ++-------+--------------+-------------------------+ +| 7 | GND | N/A | ++-------+--------------+-------------------------+ +| 8 | VIN | N/A | ++-------+--------------+-------------------------+ + +P2/P8 Analog in + ++-------+--------------+-------------------------+ +| PIN # | Signal Name | NRF52832 Functions | ++=======+==============+=========================+ +| 1 | A0 | P0.03 / AIN1 | ++-------+--------------+-------------------------+ +| 2 | A1 | P0.04 / AIN2 | ++-------+--------------+-------------------------+ +| 3 | A2 | P0.28 / AIN4 | ++-------+--------------+-------------------------+ +| 4 | A3 | P0.29 / AIN5 | ++-------+--------------+-------------------------+ +| 5 | A4 | P0.30 / AIN6 | ++-------+--------------+-------------------------+ +| 6 | A5 | P0.31 / AIN7 | ++-------+--------------+-------------------------+ + +P3/P9 Digital I/O + ++-------+--------------+-------------------------+ +| PIN # | Signal Name | NRF52832 Functions | ++=======+==============+=========================+ +| 1 | D0 (RX) | P0.11 | ++-------+--------------+-------------------------+ +| 2 | D1 (TX) | P0.12 | ++-------+--------------+-------------------------+ +| 3 | D2 | P0.13 | ++-------+--------------+-------------------------+ +| 4 | D3 | P0.14 / TRACEDATA[3] | ++-------+--------------+-------------------------+ +| 5 | D4 | P0.15 / TRACEDATA[2] | ++-------+--------------+-------------------------+ +| 6 | D5 | P0.16 / TRACEDATA[1] | ++-------+--------------+-------------------------+ +| 7 | D6 | P0.17 | ++-------+--------------+-------------------------+ +| 8 | D7 | P0.18 / TRACEDATA[3] / | +| | | SWO | ++-------+--------------+-------------------------+ + +P4/P10 Digital I/O + ++-------+--------------+-------------------------+ +| PIN # | Signal Name | NRF52832 Functions | ++=======+==============+=========================+ +| 1 | D8 | P0.19 | ++-------+--------------+-------------------------+ +| 2 | D9 | P0.20 / TRACECLK | ++-------+--------------+-------------------------+ +| 3 | D10 (SS) | P0.22 | ++-------+--------------+-------------------------+ +| 4 | D11 (MOSI) | P0.23 | ++-------+--------------+-------------------------+ +| 5 | D12 (MISO) | P0.24 | ++-------+--------------+-------------------------+ +| 6 | D13 (SCK) | P0.25 | ++-------+--------------+-------------------------+ +| 7 | GND | N/A | ++-------+--------------+-------------------------+ +| 8 | AREF | P0.02 / AIN0 | ++-------+--------------+-------------------------+ +| 9 | SDA | P0.26 | ++-------+--------------+-------------------------+ +| 10 | SCL | P0.27 | ++-------+--------------+-------------------------+ + +P5/P11 + ++-------+--------------+-------------------------+ +| PIN # | Signal Name | NRF52832 Functions | ++=======+==============+=========================+ +| 1 | D12 (MISO) | P0.24 | ++-------+--------------+-------------------------+ +| 2 | V5V | N/A | ++-------+--------------+-------------------------+ +| 3 | D13 (SCK) | P0.25 | ++-------+--------------+-------------------------+ +| 4 | D11 (MOSI) | P0.23 | ++-------+--------------+-------------------------+ +| 5 | RESET | N/A | ++-------+--------------+-------------------------+ +| 6 | N/A | N/A | ++-------+--------------+-------------------------+ + +Programming and Debugging +************************* + +Flashing +======== + +Follow the instructions in the :ref:`nordic_segger` page to install +and configure all the necessary software. Further information can be +found in :ref:`nordic_segger_flashing`. Then build and flash +applications as usual (see :ref:`build_an_application` and +:ref:`application_run` for more details). + +Here is an example for the :ref:`hello_world` application. + +First, run your favorite terminal program to listen for output. + +.. code-block:: console + + $ minicom -D <tty_device> -b 115200 + +Replace :code:`<tty_device>` with the port where the board nRF52 DK +can be found. For example, under Linux, :code:`/dev/ttyACM0`. + +Then build and flash the application in the usual way. + +.. zephyr-app-commands:: + :zephyr-app: samples/hello_world + :board: nrf52dk_nrf52832 + :goals: build flash + +Debugging +========= + +Refer to the :ref:`nordic_segger` page to learn about debugging Nordic boards with a +Segger IC. + + +Testing the LEDs and buttons in the nRF52 DK +******************************************** + +There are 2 samples that allow you to test that the buttons (switches) and LEDs on +the board are working properly with Zephyr: + +.. code-block:: console + + samples/basic/blinky + samples/basic/button + +You can build and flash the examples to make sure Zephyr is running correctly on +your board. The button and LED definitions can be found in +:zephyr_file:`boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832.dts`. + +References +********** + +.. target-notes:: + +.. _nRF52 DK website: https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52-DK +.. _Nordic Semiconductor Infocenter: https://infocenter.nordicsemi.com diff --git a/app/boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832.dts b/app/boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832.dts new file mode 100644 index 00000000..440e2e80 --- /dev/null +++ b/app/boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832.dts @@ -0,0 +1,236 @@ +/* + * Copyright (c) 2022 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +/dts-v1/; +#include <nordic/nrf52832_qfaa.dtsi> + +/ { + model = "Nordic nRF52 DK NRF52832"; + compatible = "nordic,nrf52-dk-nrf52832"; + kscan0: kscan { + compatible = "zmk,kscan-gpio-direct"; + label = "KSCAN"; + + input-gpios + = <&gpio0 13 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&gpio0 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&gpio0 15 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + , <&gpio0 16 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)> + ; + }; + + chosen { + zephyr,console = &uart0; + zephyr,shell-uart = &uart0; + zephyr,uart-mcumgr = &uart0; + zephyr,bt-mon-uart = &uart0; + zephyr,bt-c2h-uart = &uart0; + zephyr,sram = &sram0; + zephyr,flash = &flash0; + zephyr,code-partition = &slot0_partition; + zmk,kscan = &kscan0; + }; + + leds { + compatible = "gpio-leds"; + led0: led_0 { + gpios = <&gpio0 17 GPIO_ACTIVE_LOW>; + label = "Green LED 0"; + }; + led1: led_1 { + gpios = <&gpio0 18 GPIO_ACTIVE_LOW>; + label = "Green LED 1"; + }; + led2: led_2 { + gpios = <&gpio0 19 GPIO_ACTIVE_LOW>; + label = "Green LED 2"; + }; + led3: led_3 { + gpios = <&gpio0 20 GPIO_ACTIVE_LOW>; + label = "Green LED 3"; + }; + }; + + pwmleds { + compatible = "pwm-leds"; + pwm_led0: pwm_led_0 { + pwms = <&pwm0 17>; + }; + }; + + buttons { + compatible = "gpio-keys"; + button0: button_0 { + gpios = <&gpio0 13 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + label = "Push button switch 0"; + }; + button1: button_1 { + gpios = <&gpio0 14 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + label = "Push button switch 1"; + }; + button2: button_2 { + gpios = <&gpio0 15 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + label = "Push button switch 2"; + }; + button3: button_3 { + gpios = <&gpio0 16 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + label = "Push button switch 3"; + }; + }; + + arduino_header: connector { + compatible = "arduino-header-r3"; + #gpio-cells = <2>; + gpio-map-mask = <0xffffffff 0xffffffc0>; + gpio-map-pass-thru = <0 0x3f>; + gpio-map = <0 0 &gpio0 3 0>, /* A0 */ + <1 0 &gpio0 4 0>, /* A1 */ + <2 0 &gpio0 28 0>, /* A2 */ + <3 0 &gpio0 29 0>, /* A3 */ + <4 0 &gpio0 30 0>, /* A4 */ + <5 0 &gpio0 31 0>, /* A5 */ + <6 0 &gpio0 11 0>, /* D0 */ + <7 0 &gpio0 12 0>, /* D1 */ + <8 0 &gpio0 13 0>, /* D2 */ + <9 0 &gpio0 14 0>, /* D3 */ + <10 0 &gpio0 15 0>, /* D4 */ + <11 0 &gpio0 16 0>, /* D5 */ + <12 0 &gpio0 17 0>, /* D6 */ + <13 0 &gpio0 18 0>, /* D7 */ + <14 0 &gpio0 19 0>, /* D8 */ + <15 0 &gpio0 20 0>, /* D9 */ + <16 0 &gpio0 22 0>, /* D10 */ + <17 0 &gpio0 23 0>, /* D11 */ + <18 0 &gpio0 24 0>, /* D12 */ + <19 0 &gpio0 25 0>, /* D13 */ + <20 0 &gpio0 26 0>, /* D14 */ + <21 0 &gpio0 27 0>; /* D15 */ + }; + + arduino_adc: analog-connector { + compatible = "arduino,uno-adc"; + #io-channel-cells = <1>; + io-channel-map = <0 &adc 1>, /* A0 = P0.3 = AIN1 */ + <1 &adc 2>, /* A1 = P0.4 = AIN2 */ + <2 &adc 4>, /* A2 = P0.28 = AIN4 */ + <3 &adc 5>, /* A3 = P0.29 = AIN5 */ + <4 &adc 6>, /* A4 = P0.30 = AIN6 */ + <5 &adc 7>; /* A5 = P0.31 = AIN7 */ + }; + + /* These aliases are provided for compatibility with samples */ + aliases { + led0 = &led0; + led1 = &led1; + led2 = &led2; + led3 = &led3; + pwm-led0 = &pwm_led0; + sw0 = &button0; + sw1 = &button1; + sw2 = &button2; + sw3 = &button3; + bootloader-led0 = &led0; + }; +}; + +&adc { + status = "okay"; +}; + +&gpiote { + status = "okay"; +}; + +&gpio0 { + status = "okay"; +}; + +arduino_serial: &uart0 { + status = "okay"; + compatible = "nordic,nrf-uarte"; + current-speed = <115200>; + tx-pin = <6>; + rx-pin = <8>; + rts-pin = <5>; + cts-pin = <7>; +}; + +arduino_i2c: &i2c0 { + compatible = "nordic,nrf-twi"; + status = "okay"; + sda-pin = <26>; + scl-pin = <27>; +}; + +&i2c1 { + compatible = "nordic,nrf-twi"; + /* Cannot be used together with spi1. */ + /* status = "okay"; */ + sda-pin = <30>; + scl-pin = <31>; +}; + +&pwm0 { + status = "okay"; + ch0-pin = <17>; + ch0-inverted; +}; + +&spi0 { + compatible = "nordic,nrf-spi"; + /* Cannot be used together with i2c0. */ + /* status = "okay"; */ + sck-pin = <27>; + mosi-pin = <26>; + miso-pin = <28>; +}; + +&spi1 { + compatible = "nordic,nrf-spi"; + status = "okay"; + sck-pin = <31>; + mosi-pin = <30>; + miso-pin = <29>; +}; + +arduino_spi: &spi2 { + compatible = "nordic,nrf-spi"; + status = "okay"; + sck-pin = <25>; + mosi-pin = <23>; + miso-pin = <24>; + cs-gpios = <&arduino_header 16 GPIO_ACTIVE_LOW>; /* D10 */ +}; + +&flash0 { + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + boot_partition: partition@0 { + label = "mcuboot"; + reg = <0x00000000 0xc000>; + }; + slot0_partition: partition@c000 { + label = "image-0"; + reg = <0x0000C000 0x32000>; + }; + slot1_partition: partition@3e000 { + label = "image-1"; + reg = <0x0003E000 0x32000>; + }; + scratch_partition: partition@70000 { + label = "image-scratch"; + reg = <0x00070000 0xa000>; + }; + storage_partition: partition@7a000 { + label = "storage"; + reg = <0x0007a000 0x00006000>; + }; + }; +}; diff --git a/app/boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832.keymap b/app/boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832.keymap new file mode 100644 index 00000000..0682ffa3 --- /dev/null +++ b/app/boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832.keymap @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2022 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include <behaviors.dtsi> +#include <dt-bindings/zmk/bt.h> +#include <dt-bindings/zmk/keys.h> +#include <dt-bindings/zmk/outputs.h> + +/ { + keymap { + compatible = "zmk,keymap"; + default_layer { + bindings = < + &kp Z &kp M &kp K &kp LEFT_SHIFT + >; + }; + }; +}; diff --git a/app/boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832.yaml b/app/boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832.yaml new file mode 100644 index 00000000..8bae499c --- /dev/null +++ b/app/boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832.yaml @@ -0,0 +1,23 @@ +identifier: nrf52dk_nrf52832 +name: nRF52-DK-NRF52832 +type: mcu +arch: arm +toolchain: + - zephyr + - gnuarmemb + - xtools +ram: 64 +flash: 512 +supported: + - adc + - arduino_gpio + - arduino_i2c + - arduino_spi + - ble + - gpio + - counter + - nvs + - i2c + - pwm + - spi + - watchdog diff --git a/app/boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832.zmk.yaml b/app/boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832.zmk.yaml new file mode 100644 index 00000000..13e09cb7 --- /dev/null +++ b/app/boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832.zmk.yaml @@ -0,0 +1,12 @@ +file_format: "1" +id: nrf52dk_nrf52832 +name: nrf52dk_nrf52832 +type: board +arch: arm +features: + - keys + - ble +outputs: + - usb + - ble +url: https://nicekeyboards.com/nice-60 diff --git a/app/boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832_defconfig b/app/boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832_defconfig new file mode 100644 index 00000000..b66fcf8d --- /dev/null +++ b/app/boards/arm/nrf52dk_nrf52832/nrf52dk_nrf52832_defconfig @@ -0,0 +1,44 @@ +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_SOC_SERIES_NRF52X=y +CONFIG_SOC_NRF52832_QFAA=y +CONFIG_BOARD_NRF52DK_NRF52832=y +# CONFIG_BUILD_OUTPUT_UF2=y + +CONFIG_ZMK_KSCAN_DIRECT_POLLING=y +CONFIG_ZMK_BLE=y +# CONFIG_LOG=y #causes crashes +# CONFIG_LOG_BACKEND_SHOW_COLOR=n +# CONFIG_ZMK_LOG_LEVEL_DBG=y +# CONFIG_DEBUG=y +CONFIG_MAIN_STACK_SIZE=2048 +CONFIG_ISR_STACK_SIZE=2048 + +# Enable MPU +CONFIG_ARM_MPU=y + +# Enable hardware stack protection +CONFIG_HW_STACK_PROTECTION=y + +# Enable RTT +CONFIG_USE_SEGGER_RTT=y + +# enable GPIO +CONFIG_GPIO=y + +# enable uart driver +CONFIG_SERIAL=y + +# enable console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +# additional board options +CONFIG_GPIO_AS_PINRESET=y + +CONFIG_MPU_ALLOW_FLASH_WRITE=y +CONFIG_NVS=y +CONFIG_SETTINGS_NVS=y +CONFIG_FLASH=y +CONFIG_FLASH_PAGE_LAYOUT=y +CONFIG_FLASH_MAP=y