Very Low Power BLE Made Easy With Arduino -- Part 1 - Instructables

Note: in Building Very Low Power BLE devices – 2022 the protection resistors in the programmer have been reduced to 100R (from 1K here) because the CMSIS-DAP modules had trouble programming via 1K. The DAPLink module did not have a problem. Also see the new section Help My Upload Failed for solutions to programming problems.

This instructable has been superseded by Easy Very Low Power BLE 20uA (2022) With Arduino

Most of the programmers and modules mentioned here are no longer available. The replacement instructable Easy Very Low Power BLE <20uA (2022) With Arduino covers currently available progammers and modules and revises the code to use 4 times less current and tx data 4 times faster.

//=======================================================================

Building Very Low Power BLE devices made Easy with Arduino. No Android coding is required

Novice users can build BLE devices that can run continuously for over a year on a Coin Cell or 2 x AAA batteries

Update: 26th November 2019 – Added instructions for installing nRF5 Flash SoftDevice tool

Update: 24th March 2019 – Rev 4 of pfod_lp_nrf52.zip added support for GT832E_01 module and nRFChipInfo

added high drive output modes and fixed timer bug

Update: 11th February 2019 – Rev 2 of pfod_lp_nrf52.zip

Update: 6th January 2018 – Replaced BlackMagic Probe with less expensive, and less robust, Particle Debugger for programming

Introduction

This instructable, Building Very Low Power BLE devices made Easy with Arduino, is Part 1 of 3.

Part 1 – Building Very Low Power BLE devices made Easy with Arduino, this one, covers setting up Arduino to code nRF52 low power devices, the programming module and measuring the supply current. It also covers specialized low power timers and comparators and debounced inputs and using pfodApp to connect to and control the nRF52 device.

Part 2 – A Very Low Power Temperature Humidity Monitor covers using a Redbear Nano V2 module and an Si7021 temperature/humidity sensor to build a low power battery / solar monitor. It also covers modifying the Si7021 library to be low power, tuning the BLE device to reduce its current consumption of <25uA and designing a custom temperature/humidity display for your mobile.

Part 3 – A Redbear Nano V2 Replacement covers using other nRF52 based modules instead of the Nano V2. It covers selecting supply components, construction, removing the nRF52 chip programming protection, using NFC pins as normal GPIO, and defining a new nRF52 board in Arduino.

This instructable is designed to allow the novice user to build very low power BLE devices, <100uA continuously both while waiting for a connection and while connected and sending/receiving data. All that is needed is familiarity with the Arduino IDE, some soldering proficiency and a multimeter. No Android coding is required.

This is Part 1 of two parts. Very Low Power BLE, Part 2 – Temperature Humidity Monitor illustrates a practical application of this very low power programming and covers tuning for low supply current. The final Temperature Humidity Monitor uses ~25uA while connected and updating the mobile and can run for years on a coin cell.

This detailed tutorial uses Nordic Semiconductor nRF52832 chips and shows you how to code them using the Arduino IDE. It also covers how to connect to your BLE device from your Android phone and how to design custom menus and graphical displays.

Custom libraries are provided, based on Nordic's SDK and BLE support and Sandeepmistry's nRF5 IDE add-on and BLEPeripherial libraries. These libraries have been modified to support low power and to simplify use.

On the Android side, the tutorial uses a number of free Nordic Android apps, for testing and basic control. For custom Android displays, no Android coding is required. The free pfodDesigner Android app generates the low power Arduino code to display your own custom menus, charts, data logging etc on pfodApp. You can also build custom interactive graphical controls in Arduino code for pfodApp. No Android coding required, pfodApp handles all of that for you.

This latest version of this tutorial is also available on-line at Easy Very Low Power BLE in Arduino

Tag » Arduino Nrf52 Ble Example