Creative Commons images are CC BY 2.0


SparkFun nRF52832 Breakout
project on
hackster.io project

Wireless Bagpipe
by Joe Bowbeer

Description: The nRF52832 is Nordic Semiconductor’s latest multiprotocol radio System on Chip (SoC). It’s half microcontroller, with a list of features including 32 configurable I/O pins, SPI, I2C, UART, PWM, ADC’s, 512kB flash, and 64kB RAM. And it’s half 2.4GHz multiprotocol radio, supporting Bluetooth Low Energy (BLE), ANT, and Nordic’s proprietary 2.4GHz ultra low-power wireless communication – it even features on-chip NFC tag support.

SparkFun’s nRF52832 Breakout provides easy access to all of the chip’s features. It breaks out all of the nRF52’s I/O pins, provides a 32.768kHz RTC crystal, a user-programmable button and LED, and a trace antenna to send and receive those 2.4GHz transmissions. Plus, to make the chip as easy-to-flash as possible, the breakout comes pre-programmed with a serial bootloader.

Nordic’s nRF52832 is an SoC that combines an ARM Cortex-M4F microprocessor with a 2.4GHz multiprotocol radio. In addition to providing access to all of the chip’s I/O pins, the breakout board includes a handful of external components. The nRF52832 can operate on a power supply between 1.7 and 3.6V. The board also includes a 3.3V regulator with a maximum input of 6V, if you want to power the board with batteries or a regulated wall supply.

Get Started with the nRF52832 Breakout Guide

Features:

  • Bluetooth Low Energy (BLE), ANT and proprietary 2.4GHz radio support
  • 32-bit ARM Cortex-M4F Processor
  • Easy access to all 32 GPIO
  • SPI, I2C, UART, PWM and ADC I/O support
  • User-programmable LED and button
  • 32.768kHz RTC Crystal
  • Pre-programmed serial bootloader
  • Arduino board definition available!

Documents:

Recommended Products

Customer Comments

  • I got as far as the BLE Button example, when I started to have trouble. I thought “Maybe I need to power it from another source”, and when I plugged it into my breadboard a rogue jumper wire shot 12v across one of the pins. POOF. there goes 20$. :(

    Pro Tip. get the ftdi beefy, and don’t leave old jumpers on your breadboard between projects.

  • Which pins are used for I2C/TWI by default?

    • I2C defaults to pins 20 and 21 for SDA and SCL, respectively. That default is set in the board variant - you should be able to adjust those constants to set it to just about any other pin.

      • Thanks for the tip! Tech support got I2C working with the nRF52832. Try looking the tip labeled “ I2C with the nRF52832 ” in my comment for more information and an example => [ https://learn.sparkfun.com/tutorials/nrf52832-breakout-board-hookup-guide/discuss#comment-58599a84f3b1a8770f8b4567 ].

      • Can anyone confirm that TWI/I2C works? PIN 21 is hardwired to the RESET button.

        I changed the SDA and SCL pins in the board variant, but I still can’t communicate with an I2C sensor. I’ve also tried disabling the pullups on SDA/SCL and set the pin drive modes to either S0D1 (Standard ‘0’. disconnect ‘1’ ) or H0D1 (High drive ‘0’, disconnect ‘1’), since I have external pullups on my SDA and SCL lines, but my sensor still won’t talk back.

        Just got back into the embedded/hardware world so I am without an oscilloscope and can’t debug this properly, unfortunately.

        For reference, the device I’m trying to communicate with is a SI7021 temp/humidity sensor with 10K pullups. Sensor communicates properly with an Arduino Mega 2560.

        On a side note, the nrfutil executible loaded onto my machine was an ARM EABI5 binary; I’m running x86_64 linux. I ended up just installing nrfutil manually.

        • Okay, I can confirm TWI works :) In the end, after mucking around and digging through source code and pulling and plugging in wires, I had inadvertently switched up SCL and SDA. (Rookie mistake… this is what happens when you switch careers from embedded systems to cloud software).

          Setting the pin drive mode to H0D1 (or S0D1) and disabling the internal pullups was the solution for my particular case.

          • Hi,

            I am facing almost the same situation. I am trying to use an MPU6050 sensor over I2C on pins 13 and 14. How did you set pin drive mode to H0D1 via Arduino IDE?

            Thanks!

  • We bought this board to develop a Windows PC mouse application starting from the HID_test.ino example from the BLEPeripheral Library recommended in the Hookup Guide. Running the example as-is overwrites something in the bootloader or perhaps the Softdevice as the board will no longer boot into the application. We have isolated the offending function in the example to: bleHID.clearBondStoreData(); However, commenting this line out and attempting to pair with a Windows 10 PC results in a “Driver Error” from the PC. Further, there does not appear to be currently any support for the board or the BLEPeripheral Library.

  • What range have people been able to get with this board?

  • Help with PWM hookup. I bought this breakout board as well as the TB6612FNG motor driver board to hookup 2 dc motors. I cannot find any info at all on PWM pins on the nrf52832 board. I see a reference to PWM modules but I have no idea how to wire this up or what code is necessary beyond what I have done on the arduino. I am a newbie but hey, everybody starts somewhere right? Yes, I know I can use the arduino or whatever, but I want to use the nrf52832 to gain experience with it. thanks in advance….Ron

  • ¿Can this be programmed with a custom GATT Service Profile for BLE?

  • Is this board FCC or CE certified?

    • Nope, check out our FCC tutorial on how our stuff fits in with FCC guidelines. The short answer is as prototyping hardware it is not required to be certified. While most boards like this are built using the manufacture’s suggested circuit and should have no problems passing certification for a final product we do not go through the process to get our boards certified.

      • Thanks for the quick reply. By the way, I bought a few of these boards to do some prototyping for my research project. They’re great! Thanks for the hardware.

  • Where would I get a 2x5 socket for the Cortex debug connector?

  • Anyone knows that if this breakout can be used to read the ADC and then transmit the data with BLE? If it is possible, can I just use Arduino IDE to write the code? Thanks, guys!

  • I want to hack my treadmill and emulate an ANT+ foot speed (foot pod) sensor to get better pace accuracy than my Garmin FR235 can deliver when used with a Garmin foot pod. Any clue where to start looking for other similar projects using this board? Other hints on how to get started? I have done tons of arduino and raspberry pi projects. Have extensive electronics experience and the treadmill already has a wheel with a magnet that I can use for a switch to provide input to the board.

  • Any way to hook up an external antenna?

  • This is very nice board. I really like it. Now I could use some help for my project. My goal is to send data from a sensor that stores data in a 16 bit unsigned integer. I was able to send that data through BLE UART using the seria.ino file in the examples as a reference. However, the only way I was able to do that was by sending the data after taking 16 bit values and splitting them into two separate 8-bit values and using the BLESerial.write function since the function can only send 8 bits (one byte) at a time. Is there another way of communicating that will allow me send more information at a time in a single instance.

    Also, I see in the comments that the TWI and I2C lines on the board are pins 20 and 21 on the board. However, there is no pin 21 on the board for the SCL line. Do I have to change the definitions like how it is explained here in the tutorial: https://learn.sparkfun.com/tutorials/nrf52832-breakout-board-hookup-guide/discuss#comment-58599a84f3b1a8770f8b4567.

    Thank you.

  • My board do not blink the blue LED to move to bootloader mode. pulling pin 6 down and pressing reset button do not respond at all. Both the red LED and blue LED glow all the time. looks like the default bootloader is corrupted. Any idea to recover to the default bootloader mode?

  • Is there any way to access the Schematic except from Eagle?

    • Yes, just click on the ‘Schematic’ link in the product description above.

  • The SPI interface does not appear to work. I attempted to communicate with the LSM9DS1 breakout, with no success.

    • I ended up finding the issue: pins 10 and 9 are, by default, reserved for NFC use and therefore cannot act like GPIO pins. One option is to disable them in the code, another is to just not use them. Switching the CS pin to a different GPIO fixed the problem.

      https://devzone.nordicsemi.com/question/55696/struggling-with-basic-gpio-read-on-nrf52/

  • FWIW, the “RTC” (based on the 32.768 crystal) is a “Real Time Counter”, NOT a “Real Time Clock”. (This explains why there’s no provision for a backup battery connection, usually labeled “Vbat”.)

    I’m sure some will still find this board useful, but personally, I have no need for Bluetooth at the moment.

  • Does the Arduino Bootloader peacefully coexist with the Nordic ‘softdevices’ (ie, S212 & S332)? Is it replaceable/restoreable through the SWD interface?

Customer Reviews

4.7 out of 5

Based on 3 ratings:

Currently viewing all customer reviews.

2 of 2 found this helpful:

great board

Great board. It works well and it is easy to program using SWD and the Nordic DK which I previously used for development. I suggest buying a breakout board like this before thinking your firmware is complete. It turns out aspects of my code that worked on Nordic’s DK did not work with this breakout. I was therefore able to fix my program before starting the design of my own PCB. I’ve been working with nRF52 for my senior year project as an ECE and this product and additional files have been excellent resources.

4 of 4 found this helpful:

Great value; inexpensive powerful board with BLE

This is a good board, it does exactly what I need. It was almost trivial to get the Bluetooth up and running, and control a stepper motor controller through it (which also leverages SPI libraries). I’ve not tested I2C.

The SparkFun Arduino IDE plugin made it simple to get started and accomplished all of the above. My only complaint is that it doesn’t include a straightforward flash access functionality from the nRF SDK out of the box. This would be handy for accessing flash without having to do a lot of research. I spent a few hours deep-diving into the SDK, which has half a dozen ways to access flash with various configurations that may or may not work depending on how the device is configured. The best option would be if they could add support for FDS, which is a record-based filesystem driver in the nRF SDK, but it has a fair amount of dependencies and requires understanding of the SoftDevice that might need to be abstracted away for the average Arduino user. nrf_nvmc on the other hand is pretty simple and standalone, and doesn’t require any SoftDevice config. You just read internal flash directly from memory addresses and write to addresses in bytes or words using the library functions.

While they do provide their bootloader code, it would also be nice for noobs if they provided their procedure for installing the bootloader to a new chip. I buy from SparkFun for prototyping, but ultimately I want to make my own board. If I want it to work like this one, I do have the Nordic docs regarding bootloader installation, but I’m going to have to do some trial and error to figure out the options they used when flashing the bootloader package. UPDATE: I found their procedure in the Makefile located in the bootloader source repo: https://github.com/sparkfun/nRF52832_Breakout/blob/master/Firmware/bootloader-custom/sparkfun/dual_bank_serial_s132/armgcc/Makefile – “make flash_softdevice”.

ONE WORD OF CAUTION - This device by default is capable of being powered by the serial interface. Unfortunately, the power from this interface does not go through the VIN voltage regulator as one might hope. It goes directly to VDD, so be sure you use a 3.3v serial adapter. I literally caused the nRF chip to smoke and bubble a bit by using a serial adapter configured for an Arduino at 5V. Luckily (perhaps amazingly), nothing got damaged before I noticed my mistake.

Related Tutorials

nRF52832 Breakout Board Hookup Guide

November 17, 2016

How to hookup and program (in Arduino!) the nRF52832 Breakout -- a development board for Nordic's BLE/ANT/2.4GHz system on chip.