> For the complete documentation index, see [llms.txt](https://nucode.gitbook.io/nuseries/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nucode.gitbook.io/nuseries/dks/nu-40-dk.md).

# NU-40 DK

<mark style="color:$info;">**CONTENTS**</mark>     [Downloads](#downloads) | [Realistic View](#realistic-view) | [Pin Layout](#pin-layout) | [Arduino IDE Setup](#arduino-ide-setup) | [VSCode Setup](#vscode-setup)

***

## **Quick Start with&#x20;**<mark style="color:$primary;">**NU-40 DK**</mark>

{% columns %}
{% column %}
{% embed url="<https://youtu.be/tTXgOb90NAw?si=rD_OYMkNow2hlGWW>" %}

{% hint style="info" %}
Go [Arduino IDE Setup](#arduino-ide-setup) to view the overview
{% endhint %}
{% endcolumn %}

{% column %}
{% embed url="<https://www.youtube.com/watch?v=LHT2HoND52o>" %}

{% hint style="info" %}
Go [VSCode Setup](#vscode-setup) to view the overview
{% endhint %}
{% endcolumn %}
{% endcolumns %}

## **Downloads**

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>➔ <strong>Go to NU-40 DK Downloads</strong></td><td><a href="/nuseries/downloads/nu-40-dk.md">NU-40 DK</a></td></tr></tbody></table>

## **Realistic View**

* **NU-40 DK V2**

<figure><img src="https://1938972866-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1HdCYZuvMPJuIeKs5ySY%2Fuploads%2FhGh22XSol2nnO9TApukS%2Fimage.png?alt=media&amp;token=b774e51b-4796-44f9-95f2-0d814586390e" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="https://1938972866-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1HdCYZuvMPJuIeKs5ySY%2Fuploads%2Fy3Nl2WkFMt92N8JWa7wF%2Fimage.png?alt=media&amp;token=6d1196fb-836a-4978-93c6-bacf7484e26c" alt="" width="563"><figcaption></figcaption></figure>

## **Pin Layout**

{% hint style="info" %}
NU-40 DK V1 and NU-40 DK V2 use the same pin layout.\
Hardware connections, pin assignments, and expansion connector compatibility are identical between the two versions.
{% endhint %}

* **NU-40 DK V2**

<figure><img src="https://1938972866-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1HdCYZuvMPJuIeKs5ySY%2Fuploads%2FLzja1xDrF4eEcJxpICNY%2Fimage.png?alt=media&amp;token=8d9c85f8-7989-4635-9bdb-42ca72f949de" alt="" width="563"><figcaption></figcaption></figure>

* **NU-40 DK V1**

<figure><img src="https://1938972866-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1HdCYZuvMPJuIeKs5ySY%2Fuploads%2Fn6CPiWtFELgSmRIaaIvJ%2Fimage.png?alt=media&amp;token=511b1e49-1ccd-44c7-b17c-685110dac932" alt="" width="563"><figcaption></figcaption></figure>

## **Arduino IDE Setup**

{% stepper %}
{% step %}

### Install Arduino IDE

Go to <https://www.arduino.cc/en/software/> and install the latest Arduino IDE.
{% endstep %}

{% step %}

### Add NU Board Manager URL

1\) Open Arduino IDE **preferences** menu.

* Windows / Linux: File → Preferences
* macOS: Arduino IDE → Preferneces

2\) Find **Additional Boards Manager URLs** and add the NU board package URL:\
<https://raw.githubusercontent.com/Nucode01/Adafruit_nRF52_Arduino/refs/heads/master/package_nuduino_index.json>

{% hint style="warning" %}
The Board Manager URL must point to a package index file. Do not enter a normal GitHub repository URL.
{% endhint %}

3\) Click **OK** to save the setting.
{% endstep %}

{% step %}

### Install NU Board Package

1\) Open **Tools → Board → Boards Manager**.

2\) Search **NUBoard nRF52 by NUCODE** and install it.
{% endstep %}

{% step %}

### Select NU-40 DK

Select Tools **→ Board → NUBoards nRF52 → NU40DK nRF52840**.
{% endstep %}

{% step %}

### Start with Examples

After selecting the NU-40 DK board and the correct port, upload a basic example sketch to check that the Arduino IDE setup is working correctly.

{% hint style="info" %}
You can check some **Demo codes** [here](/nuseries/downloads/nu-40-dk.md#demo-code).
{% endhint %}
{% endstep %}
{% endstepper %}

## **VSCode Setup**

{% stepper %}
{% step %}

### Install **SEGGER J-Link**

Go to <https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack> and install the latest J-Link Software and Documentation Pack for your OS.
{% endstep %}

{% step %}

### **Install nRF Utill**

Go to <https://www.nordicsemi.com/Products/Development-tools/nRF-Util/Download?lang=en#infotabs> and install nRF Util for your OS.
{% endstep %}

{% step %}

### **Install nRF Connect SDK**

1\) Install **VS Code**

Go to <https://code.visualstudio.com/download> and install Visual Studio Code.

2\) Install **nRF Connect Extension Pack**

Open VS Code and install **nRF Connect Extension Pack** from the Extensions menu.

3\) Install **Toolchain** and **SDK**

**Open the nRF Connect menu** in VS Code - Click **Manage Toolchains** and **install** the required toolchain - Click **Manage SDKs** and **install** the required nRF Connect SDK version.
{% endstep %}

{% step %}

### Check SDK Path

After installation, check the installed SDK path.

**Open the nRF Connect menu** in VS Code - Click **Manage SDKs** - Click **Open SDK directory** - Check **the folder path of the installed SDK version name**, such as `v3.4.0`.

Example:

```
opt/nordic/ncs/v3.4.0
```

{% endstep %}

{% step %}

### Set Zephyr Environment

Move to the path checked in Step 4 using the terminal and run the environment script.

macOS / Linux:

```
source zephyr/zephyr-env.sh
```

Windows:

```
zephyr\zephyr-env.cmd
```

{% endstep %}

{% step %}

### Create NU Board Files

**Open the nRF Connect menu** in VS Code - Click **Create a new board** - Enter the board information:

<table data-header-hidden="false" data-header-sticky data-first-column-sticky><thead><tr><th valign="top">Item</th><th valign="top">Value</th></tr></thead><tbody><tr><td valign="top">Board name</td><td valign="top">NU40DK</td></tr><tr><td valign="top">Description</td><td valign="top">NU40DK</td></tr><tr><td valign="top">Vendor name</td><td valign="top">NUCODE</td></tr><tr><td valign="top">SoC</td><td valign="top">nRF52840-QIAA</td></tr><tr><td valign="top">Board root</td><td valign="top">Select the desired path</td></tr></tbody></table>

Click **Create Board**.

After creation, check that **the boards folder** and **board definition files** are generated.
{% endstep %}

{% step %}

### Start with Examples

After creating the NU40 DK board files, start with a basic Zephyr sample to check that the VS Code setup is working correctly.
{% endstep %}
{% endstepper %}
