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:
Nordic Developer Zone - The Nordic developer’s best friend
The original goal of Nordic Developer zone was to create a resource for our customers that would complement direct Nordic technical support. It should simplify and help them with their design efforts. It should be a place where everyone can contribute, Nordicers and our customers and partners alike. It had a simple mantra – ‘Ask questions, share info, and be inspired’. As Nordic Developer Zone enters its 4th year, we can safely say it is achieving what we set out for it to do.
The ultimate Nordic FAQ resource
As of today...
This example shows a simple GPIO driver for seamless handling of the GPIO and GPIOTE peripherals of the nRF52 series. This example is particularly intended for developers who wish to develop their own driver. The code is available on GitHub at the following URL: https://github.com/NordicSemiconductor/nrf52-drv-gpio-example.
The figure below points out the important Keil GUI buttons for running this example.
Follow these steps to run the example:
If you just want to navigate (without debugging) through the nRF5-SDK using CLion, follow the following steps. For debugging go to “Debugging the nRF52 with CLion” in the full post.
curl -s https://raw.githubusercontent.com/Jumperr-labs/nrf5-sdk-clion/master/nrf5-sdk-to-clion.sh | bash
While working on Jumper's µLogger, I...
This is a guide for the uninitiated, which I am most qualified to write. These tips cover the items I wish I had understood when I got my evaluation kits. Nordic support covered these items but I thought it might be helpful as one newby to another to publish my notes on how I got these kits up and running.
You will need two of the nRF52840 Preview DK boards and download and install both the nRF5-SDK-zip and the nRF-Connect-Windows. This will give you the basic tools to load this evaluation onto the boards. You may also...
We are very excited to inform you that we have introduced our new software licenses with the release of SDK v13.0. The new licenses are based on the well-known BSD license class and give more flexibility and freedom to customers while still protecting Nordic Semiconductor’s intellectual property and brand.
Software licenses are usually not the most riveting of reads and most people tend to click the ‘I Agree’ button without reading what they have agreed to. The licenses we have now introduced are very easy to read and understand, so take a few minutes to read through them...
IoT systems are all about analytics from physical infrastructure and are expected to work accurately. After deploying an IoT system one must take care of supporting customers, assure SLA and run root cause analysis on production systems, with real life scenarios. Live monitoring of the entire network, devices and gateways is imperative for system management and control that can help you meet the IoT SLA challenge.
Jumper Insights was built just for that and so that you won’t have to build it yourself. Jumper Insights is a complete visibility solution for IoT systems that lets you:
This is a brief overview of our bachelor's project results. The bachelor's project is given by Nordic Semiconductor for students at NTNU. Our goal was to induce resonance in objects by making some sort of device which could be controlled with BLE.
All code, schematics and documentation can be found in this Github Repository. This is our first major programming project. If you're interested in knowing more about the project, or have constructive criticism of the code, please email me at email@example.com.
The Earthquake Machine consists of two contraptions, the Resonator made...
Released in December 2016, the new Bluetooth 5 offers truly exciting possibilities for home, industry, and commerce as well as the more traditional areas of wearables and personal devices historically associated with Bluetooth.
Nordic’s nRF52832 is a Bluetooth 5-ready SoC that combines an ARM Cortex-M4F microprocessor with a 2.4GHz multiprotocol radio, supporting Bluetooth Low Energy (BLE).
Zerynth provides a platform for programming nRF52832 boards in Python using paradigms and features typical of personal computer (PC) and mobile programming.
Enabling the use of Python for Microcontrollers and embedded solutions, Zerynth allows:
This documentation describes the use and initialization of the Serial Wire Debug Port (SWDP) interface when writing to or reading from Flash and SRAM of the nRF52832 Rev 1. See http://infocenter.nordicsemi.com/ for more information on the IC itself.
DISCLAIMER: Not all content of this document has been verified and hence there might be some errors and flaws in the descriptions/information that follows. Please confer with the official ARM documentation to verify the information as described here. This information is provided in order to help during the implementation of a SWD debugger, but the...
Nordic has recently contributed support for the 2Mbit/s PHY, part of the Bluetooth 5.0 specification, to the Zephyr Project RTOS.
The video below shows how to configure, build and test GATT data throughput on a nRF52840 SoC running Zephyr RTOS.
The throughput measured may vary depending on the environment, but the maximum throughput observed in this video is around 1398 Kbps. Feel free to try it out yourself and join us with feedback and contributions to the Open Source project.
Our initial blog post about the Zephyr Project, complete with instructions to set up a Zephyr environment to...
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...
Bluetooth 5 - now arriving in smartphones
As we know, Bluetooth 5 was launched last December by the Bluetooth SIG. The nRF52 Series from Nordic have always had Bluetooth 5 and its arrival in the mix for the nRF52 Series and this family of SoCs was designed early on to be able to meet the exciting new features of Bluetooth 5. Smartphones play such a key role in most Bluetooth products that their adoption of new Bluetooth features is always eagerly anticipated, as this is fundamental to the use of new Bluetooth features.
The Big News: Samsung Galaxy S8 supports Bluetooth...
Most guides out there are unclear and made for machines. Here is a full guide how to setup Segger for mac OS X with some example project from the SDK ( or even a PC but not tested), and also how to debug like a human not using terminal. ( or using it if you feel more clever)
All steps here most be done for every project(except step 10), thats because the hardware industry is still stuck in the 90's, and UI/UX are new terms for them. While Eclipse is slightly more into 2000's , setting it up is...
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: https://devzone.nordicsemi.com/tutorials/7/development-with-gcc-and-eclipse/
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...
The first in a series of blogs that will help educate on what is most important about Bluetooth 5 and take you deeper into the details of how it works and how you can benefit most from using it.
Taking Bluetooth further, faster
Bluetooth 5 has been with us for a few months now and is proving to be as exciting in the world of Bluetooth developers we talk to as it was to us when the specification was proposed. With its core additions of considerably longer range (x4), doubled throughput and improved broadcasting bandwidth, it is no exaggeration to...
Several users have pointed out a sudden flash size increase in some of our Bluetooth examples. We decided to write a quick post here to describe the reason for this and explain how to decrease the size of the examples.
The reason for the size increase is that we added our logging module to the examples in question. Simply disable the module to decrease the size again. Logging can be turned on or off in sdk_config.h. This header file is included in all BLE examples. Remember that you can edit sdk_config using the configuration wizard.
Some examples use logging...
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...
Content of this blog based on the documentation of BLE Secure DFU example and Bootloader module library in our SDK. Here we provide you with step by step introduction to make it easier to follow and test Secure DFU.
The Secure DFU is the new DFU bootloader provided from nRF5 SDK v12. The old bootloader in SDKv11 and earlier is now called Legacy DFU. Secure DFU is not backward compatible with Legacy DFU.
What you would need to prepare before we start:
The new Bluetooth 5 specification promises twice the speed and 4 times the range. Doubling the speed is achieved by increasing the on-air datarate to 2Mbps, while quadrupling the range is achieved by lowering the bitrate to increase the sensitivity of the receiver. We at Nordic have made a demo showing these features with our newest SoftDevice(s) and specifically our newest chip, the nRF52840. It was showcased at CES 2017 in January.
Here is a more in depth description of the demo.
The demo is based on the ATT_MTU throughput example in SDK 13.0.0-1.alpha, which allows...