Datasheet
FAQs
NOTE: For FAQs relating to the BSP, see the dedicated BSP FAQ list (https://adafru.it/vnF).
What are the differences between the nRF51 and nRF52 Bluefruit boards? Which one should I be using?
The two board families take very different design approaches.
All of the nRF51 based modules are based on an AT command set (over UART or SPI), and require two MCUs to run:
the nRF51 hosting the AT command parser, and an external MCU sending AT style commands.
The nRF52 boards run code directly on the nRF52, executing natively and calling the Nordic S132 SoftDevice (their
proprietary Bluetooth Low Energy stack) directly. This allows for more efficient code since there is no intermediate
AT layer or transport, and also allows for lower overall power consumption since only a single device is involved.
The nRF52 will generally give you better performance, but for situation where you need to use an MCU with a
feature the nRF52 doesn't have (such as USB), the nRF51 based boards will still be the preferable solution.
Can I run nRF51 Bluefruit sketches on the nRF52?
No. The two board families are fundamentally different, and have entirely separate APIs and programming models. If
you are migrating from the nRF51 to the nRF52, you will need to redesign your sketches to use the newer API,
enabling you to build code that runs natively on the nRF52832 MCU.
Can I use the nRF52 as a Central to connect to other BLE peripherals?
The S132 Soft Device and the nRF52832 HW support Central mode, so yes this is
possible.
At this early
development stage, though, there is only bare bones support for Central mode in the Adafruit nRF52 codebase,
simply to test the HW and S132 and make sure that everything is configured properly. An example is provided of
listening for incoming advertising packets, printing the packet contents and meta-data out to the Serial Monitor. We
hope to add further Central mode examples in the future, but priority has been given to the Peripheral API and
examples for the initial release.
How are Arduino sketches executed on the nRF52832? Can I do hard real time processing (bit-banging NeoPixels,
etc.)?
In order to run Arduino code on the nRF52 at the same time as the low level Bluetooth Low Energy stack, the
Bluefruit nRF52 Feather uses FreeRTOS as a task scheduler. The scheduler will automatically switch between tasks,
assigning clock cycles to the highest priority task at a given moment. This process is generally transparent to you,
although it can have implications if you have hard real time requirements. There is no guarantee on the nRF52832
to meet hard timing requirements when the radio is enabled an being actively used for Bluetooth Low Energy. This
isn't possible on the nRF52832 even without FreeRTOS, though, since the SoftDevice (Nordic's propietary binary
blob stack) has higher priority than any user code, including control over interrupt handlers.
Can I use GDB to debug my nR52832?
You can, yes, but it will require a Segger J-Link (that's what we've tested against anyway, other options exist), and
it's an advanced operation. But if you're asking about it, you probably know that.
Assuming you have the Segger J-Link drivers installed, you can start Segger's GDB Server from the command line
as follows (OSX/Linux used here):
$ JLinkGDBServer -device nrf52832_xxaa -if swd -speed auto
Then open a new terminal window, making sure that you have access to gcc-arm-none-eabi-gdb from the command
© Adafruit Industries https://learn.adafruit.com/bluefruit-nrf52-feather-learning-guide Page 171 of 175