Sort by » date activity comments

28 blog posts tagged with nrf52

by Mahesh Venkitachalam

Flashing and Debugging nRF51/52 with a cheap blackmagic probe compatible SWD programmer

image description

When we built our Bluey nRF52 BLE dev board, we were looking for an inexpensive option for our users to upload code to bluey and debug it using ARM GDB. We then came across the blackmagic probe (BMP) project - an Open Source debugging tool for embedded microprocessors. It greatly simplifies the debugging and code uploading process using just ARM GDB - no need to run a GDB server or use an additional complex tool like openocd. Although the BMP hardware is excellent, it's bit beyond the budget of our target audience as an add-on programmer. But luckily, their firmware supports...

by Mohammad Afaneh

Designing your Bluetooth GATT: Custom Services and Characteristics [MIDI controller use case]

One thing I wish I had when I started developing for BLE is more blog posts that walk you step-by-step on how to tackle the different phases of the system design and implementation. One such phase is designing your Bluetooth GATT: Services and Characteristics.

I just published a new blog post tackling this phase. I lay out the step-by-step process for designing a custom GATT for a BLE MIDI controller using the nRF52 platform including the complete source code. The post covers the following:

  • Attribute Protocol (ATT) and the Generic Attribute Profile (GATT).
  • Profiles, Services, and Characteristics.
  • How to Design...
by Marco Russi

Contract/freelance firmware engineer - Nordic nrf5x devices

Good morning, my name is Marco Russi and I live in London, UK.

I am a contract/freelance embedded software engineer with 10 years of experience. I have been involved in projects mainly for smart sensors, actuators control and battery powered devices. I have already worked with a few companies in UK designing and developing firmware and software or following an entire embedded system development, including hardware, from requirements to first prototype and then to production.

My main experience is on Bluetooth Low Energy applications based on Nordic nrf51 devices but I also have a good knowledge of WiFi, Ethernet...

by Mohammad Afaneh

The complete tutorial for developing and debugging nRF52 applications on a Mac

I realize that there are already multiple tutorials on how to configure GCC along with Eclipse or SEGGER Embedded Studio (for use on a Mac), but this tutorial goes over setting up a different IDE. The more choices the better, right? ;)

The IDE of choice for me is NetBeans. NetBeans is well known for Java development but not as much for C/C++ or embedded. However, I personally have been using it for embedded development for about 10 years now (both embedded Linux and MCU-level development). In this tutorial, I'll be going over how to set up and configure...

by Radosław Koppel

FreeRTOS threads preview with J-Link, GDB/Eclipse

Short note how to make FreeRTOS program debugging with eclipse little simpler.

If you are looking the information how to configure the whole environment see this post:

What we get out of the box

Most low power applications stays most of the timer in idle. Ideally it would be tickless-idle. The problem begins if our program behaves strangely and we would like to stop it and check what is going on.

Lets get blinky_freertos example. Run it and halt just in random moment. Until you are very lucky you would stop somewhere in...

by Daniel Veilleux

Monitor Mode Debugging with J-Link and GDB/Eclipse

The biggest pain point when debugging an application on the nRF51 series is the inability to set breakpoints while the SoftDevice is active without triggering an assert. Although a workaround exists that allows the debugging process to limp along for a short amount of time after the SoftDevice complains, using breakpoints with the nRF51 is inevitably a disruptive process.

Thankfully, the nRF52 series includes support for a neat feature called Monitor Mode Debugging. When this feature is enabled, the processor will trigger a specific interrupt handler (DebugMon_Handler) instead of halting when a breakpoint is reached. This DebugMon_Handler then spins and...

by Daniel Veilleux

Simple Application-level Authentication


There is a use case that I've seen several times recently that I find interesting due to the fact that its security requirements aren't directly addressed by the Bluetooth Low Energy (BLE) standard. It goes something like this:

I have a BLE device that multiple users can interact with. Although most of the BLE characteristics should be open, one or more 'admin' characteristics should only be modifiable if the user has permissions to change them.

I will present a simple solution using the nRF52832 with the S132 SoftDevice.


The 128-bit AES ECB peripheral provides a secure...

by Ken L

Fast Production Screening based upon Bluetooth DTM

The challenge

As a product is getting into the production phase, the need of a fast and standalone screening facility on the production line arises. Here I'm introducing a production screening setup based on Bluetooth Direct Test Mode (DTM).

What a Production Screening is ... and is not ...

A production screening is a rapid screening process sorting out those units which are not functioning because of manufacturing issues, such as cold soldering, usage of incorrect materials, usage of bad materials, etc.

A production screening is NOT a functional test which correctness of the application functionality is verified. Functional tests must...

by Tony Wu

nRF52 Rocket: Part I – Introduction to Model Rocketry and its UX Problem

Official Launch Video

Welcome to this 2 or 3-part blog about the nRF52 Rocket, a BLE-enabled model rocket, which you’ve just seen soaring through the air in the video above. In the first part of blog, I will briefly introduce what model rocketry is and what are some of the motivations behind my work on a BLE-enabled model rocket during my fun and rewarding internship at Nordic Semiconductor.

Model rocketry is a popular and exhilarating hobby that has inspired many young (or the young-at-heart) makers, hackers, engineers and scientists through the fun, educational, and most importantly safe process of...

by David Edwin

Get started on PC Software for Mesh and Mesh DFU

nRF-connect-Mesh PC tool allows the user to demonstrate the nRF OpenMesh and the Mesh Device Firmware Update (DFU). The Mesh DFU will be used for nRF OpenMesh and the Bluetooth Mesh when it is made available. The nRF OpenMesh used is v0.8.7. The tool will be updated to support the Bluetooth Mesh when it is available.

image description

DFU quick start guide in the nRF OpenMesh repo

Tools Required


Any one of the below x 2 or more, all of the same type is best during the evaluation

  • nRF51-DK
  • nRF51-Dongle
  • nRF52-DK
  • USB Wall Charger or USB battery pack (optional...
by wilhelmsen

The Power Profiler Kit

Many developers might be familiar with the problems that may arise when wanting to measure current consumption, especially with applications using from a couple of µA to some mA. You most probably have to have some very expensive equipment that takes up quite a lot of space on your desktop. This often means that it is stowed away at a lab, or actually too expensive to buy. Since we have created the nRF52 Online Power Profiler, this can solve some issues, but what if the application has forgotten to turn off unnecessary power consumers, has wrong intervals between events or...

by Eirik Midttun

nRF5 Series - a popular platform for open source RTOS

There is seemingly a gap to fill in the world of Internet of Things (IoT) when it comes to proving a suitable operation system. Real-time operating systems (RTOS) that are specialized for network connectivity has existed for a while, but they all provide quite different benefits and drawbacks, and as such there is no on OS that rules the MCU market. In all this new OSes continue to appear.

What these OSes have in common is that they target resource constrained devices, focusing on low memory usage and low power to allow long battery life. The OSes are designed for...

by Tim

Profiling the Softdevice and FreeRTOS with Segger SystemView

In a previous blog post, RK has shown us how to use Segger SystemView to monitor a bare-metal application as well as the Softdevice. Based on his work, we will see how to go further and add FreeRTOS to SystemView in order to monitor the RTOS tasks and events.

Prerequisites :

The following steps are based on the Heart Rate application with FreeRTOS example located in the SDK...

by Jan Tore Guggedal

nRF52 Quadcopter

The nRF52 Quadcopter is a small miniquad that utilizes the nRF52 as both flight controller and for radio communication. The quadcopter uses the Physical Web and Web Bluetooth to make it as easy as possible for anyone to fly it. This is an open source project, and the source files are available here. See it in action here.

image description

In most miniquads there is often used two or several dedicated chips which cooperates to make the whole quadcopter system work. Usually you have one main chip which controls the quad and keeps it stable in the air, and one chip which...

by Daniel Veilleux

Show And Tell: Lys - An Automation Example

A few weeks ago I was experimenting with the nRF52's radio performance and found myself stuck in a routine that consisted of:

  1. Tweaking some parameters in a small piece of firmware
  2. Recompiling
  3. Downloading
  4. Running
  5. Documenting the result
  6. GOTO 1

I was working against a deadline at the time so I just had to deal with it but the following weekend I decided to revisit the topic.

The Idea

The basic solution seemed obvious: a simple, reusable mechanism for exchanging data between a PC and an embedded device. The process would go something like this:

  1. Compile and download the firmware...
by Daniel Veilleux

Getting More Out of Make

There are many reasons why you may want to modify the Makefiles that are included in the SDK examples. For instance, if you are invoking Make from the command line then you will probably also want the ability to have Make ensure that everything is up-to-date and then start GDB for you. Even if an IDE like Eclipse is invoking Make for you, enabling incremental builds can save you time. The purpose of this post is to introduce you to a few Makefiles that I created to show how Make can do more work for you.


If you've...

by Audun

Wireless timer synchronization among nRF5 devices


In a variety of use cases there is a need to share a common clock among multiple devices. Such a common clock can be used for many purposes, for example by having each node in a network perform an action at exactly the same time, or accurately time stamping sensor data.

Wireless protocols such as BLE has a great deal of abstraction from the underlying radio hardware. This is generally a good thing, as the top-level application doesn't have to concern itself with what the underlying protocol might be doing. Calling the send() function ensures that data is...

by wbober

Setting up IPv6 over BLE using nRF52 Series and Contiki OS

This tutorial shows you how to set up IPv6 over BLE communication using nRF52832 and Contiki OS.

To fully understand this tutorial you will need to have minimum knowledge of Linux environment and shell. An nRF52 Development Kit and Bluetooth 4.0-compatible hardware are required to run the examples.


Contiki OS is an open source operating system for the Internet of Things, see for more information.

nRF52832 port is Nordic Semiconductor's first Contiki OS compatible platform that supports IPv6 over BLE. It opens up an opportunity to experiment with IPv6 over BLE by leveraging...

by Globuloz

NRF52 debugging with QtCreator on Windows

Hello I succeeded to configure QtCreator toolchain to compile and debug my NRF52 board. So I wanted to share.

I use my own Makefile to compile everything so I will focus here on how to run a debug session (with breakpoints and candies !) inside QtCreator (which is the best C++ IDE of course).

Even if you are not interested, can you try my tutorial and tell me where you have problems ? So I can detail my configuration. It will help other guys.

My computer

OS: Windows 8.1

Arch: x86-64 but I tried to install 32bits tools

Install QtCreator


by Ole Bauck

Measuring Lithium battery voltage with nRF52

Here is an example of a hardware setup to measure the voltage on a Lithium battery with a voltage divider on nRF52. The Lithium battery typically has a voltage range of 2.7 - 4.2 V and we (Nordic) recommend that you divide the battery voltage with two resistors and possibly a capacitor (more on that later)

image description

To reduce the leakage current through the voltage divider to the minimum, we want the total resistance to be as high as possible. Therefore, we choose R1 to be 800 KΩ. This is the maximum source resistance we can have if we use...

1 2 »