Nordic nRF52 Preview DK

Nordic has released a nRF52840 Preview Development Kit (PDK) to support their new nRF52840 chip. Unlike the Thingy:52 and nRF52 DK, the Preview DK supports the new long-range LE Coded PHY, making it fully Bluetooth 5 capable. The Preview DK also supports 802.15.4 for the Thread communication protocol.

This kit is similar to the nRF52 DK design. All I/O and interfaces are brought out ot edge connectors. The Preview DK is compatible with Arduino shields for easy prototyping options.

The Preview DK sports 4 user programmable buttons, 4 user programmable LEDs, and on-board QSPI flash for external storage. The board utilizes a PCB antenna and comes with an NFC for utilizing the onboard NFC tag support. Since the nRF52840 has an onboard USB controller, a micro-USB port is supplied for prototyping with USB accessories.

If you're interested in profiling RF performance, you can utilize the RF SMA connector to make direct RF measurements. There are also dedicated power management pins that can be utilized for power profiling.

The Preview DK is supported by the standard Nordic SDK. It is also compatible with ARM mbed.

More on the nRF52840 Preview DK:

About the nRF52840

The nRF52840 is the king of the Bluetooth 5 chips and the only chip in the product line that supports 802.15.4 and the new Bluetooth 5 LE Coded PHY. The nRF52840 provides an impressive 1MB of flash and 256kB of RAM.The chip sports additional peripherals, such as the ARM Cryptocell cryptographic co-processor and a USB 2.0 controller. With an improved output power of up to +8dBm, the nRF52840 is definitely the chip to pick if you're looking at long-range Bluetooth communications.

nRF52840 Specifications:

  • 32-bit ARM Cortex-M4F 64MHz Processor
  • 1.7v to 5.5v operation
  • 1MB flash + 256kB RAM
  • Up to +8dBm output power
  • 802.15.4 radio support (ZigBee and Thread)
  • On-chip NFC
  • PPI –Programmable Peripheral Interconnect
  • 48 x GPIO
  • 1 x QSPI
  • 4 x Master/Slave SPI
  • 2 x Two-wire interface (I²C)
  • I²S interface
  • 2 x UART
  • 4 x PWM
  • USB 2.0 controller
  • ARM TrustZone CryptoCell-310 Cryptographic and security module
  • AES 128-bit ECB/CCM/AAR hardware accelerator
  • Digital microphone interface (PDM)
  • Quadrature decoder
  • 12-bit ADC
  • Low power comparator
  • On-chip balun

More on nRF52840:

A GitHub Issue Template for Your Projects

Now that we have some example pull request templates, we might as well create an issue template for our GitHub projects.

Creating an Issue Template for Your Project

Similarly to a PR template, it's super easy to setup an issue template for your project. Simply create a file named ISSUE_TEMPLATE and place it one of three locations:

  • The root of your project
  • .github folder
  • docs folder

An extension is optional, but Markdown (.md) is supported. I've chosen to create a Markdown template so you can utilize features like Markdown formatting, @-mentions, and task lists.

Once GitHub detects the ISSUE_TEMPLATE file, it will auto-populate new issues with the contents.

My Template

My issue template is much simpler than my PR template. I try to prompt users for the basic information I always need for new issues:

  • What behavior were you expecting?
  • What actually happened?
  • How can I reproduce it?
  • What was your environment like?
    • Firmware versions, host environment, hardware versions
  • Do you have any logs?

I've also added a Prerequisites section for projects with external issue contributors. This section is used to prompt users to run through some basic steps before filing their issues.

If you only utilize private projects, feel free to remove the Prerequisites section (as I do for my own projects).

# Prerequisites

Please answer the following questions for yourself before submitting an issue. **YOU MAY DELETE THE PREREQUISITES SECTION.**

- [ ] I am running the latest version
- [ ] I checked the documentation and found no answer
- [ ] I checked to make sure that this issue has not already been filed
- [ ] I'm reporting the issue to the correct repository (for multi-repository projects)

# Expected Behavior

Please describe the behavior you are expecting

# Current Behavior

What is the current behavior?

# Failure Information (for bugs)

Please help provide information about the failure if this is a bug. If it is not a bug, please remove the rest of this template.

## Steps to Reproduce

Please provide detailed steps for reproducing the issue.

1. step 1
2. step 2
3. you get it...

## Context

Please provide any relevant information about your setup. This is important in case the issue is not reproducible except for under certain conditions.

* Firmware Version:
* Operating System:
* SDK version:
* Toolchain version:

## Failure Logs

Please include any relevant log snippets or files here.

Example Template File

You can find an example implementation file in embedded-resources GitHub repository. The file contains the example template shown above. To use this file in your own project, copy that it into your project and remove _example from the template name.

The file for embedded-resources simply has the prerequisites section removed. I don't need to remind myself to search for issues in my own repository!

As always, make any adjustments to these templates to suit your needs.

Further Reading

Nordic Thingy:52

The Thingy:52 development kit is a a fully-loaded sensor platform that is ready for web and app connections. Like the nRF52 DK, the Thingy:52 platform is built on the nRF52832. The nRF52832 is Bluetooth 5 ready, although it does not support the new long-range LE Coded PHY.

The Thingy:52 development kit is designed for developing demos right out of the box. The range of components provided with this dev kit is impressive and useful for many Bluetooth prototyping scenarios.

Peripherals include:

  • LEDs
  • Color/light sensor
  • Gas sensor
  • Humidity (and temperature) sensor
  • Pressure (and temperature) sensor
  • Digital microphone
  • Speaker
  • Button
  • 9-axis IMU (accelerometer, compass, gyroscope)

The kit comes fully assembled with a charged battery. Demo firmware is flashed by the factory, allowing you to test out the device immediately by using demo smartphone applications.

Nordic provides excellent documentation for the Thingy:52. Source code for the iOS, Android, and web applications are available for download. Nordic also provides an example Node.js library for working with the Thingy:52.

This is an extremely versatile prototyping platform for Bluetooth sensing applications. It's also just fun, since it comes pre-loaded with peripherals for you to play around with.

More on the Thingy:52:

About the nRF52832

The nRF52832 is the mid-tier Bluetooth 5 chip. The nRF52832 is built on a Cortex-M4F processor. The nRF52832 provides a significant increase in flash, RAM, and peripherals over the nRF52810. These improvements make the nRF52832 an attractive choice as a primary processor for your system or for exploring new BLE features like IPv6 support. The nRF52832 includes an on-chip NFC tag to support out-of-band pairing. You can utilize the NFC pairing method for a simpler process of exchanging authentication information between two bluetooth devices.

nRF52832 Specifications:

  • 32-bit ARM Cortex-M4F 64MHz Processor
  • 1.7v to 3.6v operation
  • 512kB flash + 64kB RAM
  • On-chip NFC tag for Out-of-Band (OOB) pairing
  • Up to +4dBm output power
  • -96dBm sensitivity, Bluetooth low energy
  • 3 x Master/Slave SPI
  • 2 x Two-wire interface (I²C)
  • 3 x PWM
  • AES HW encryption
  • 12-bit ADC
  • Real Time Counter (RTC)
  • Digital microphone interface (PDM)
  • On-chip balun

More on the nRF52832: