The nRF8001 breakout has full level shifting to make it safe to use with 5V logic, and uses a custom SPI-type bus to talk to the Arduino.

The SPI bus means that this breakout and library will work on any Arduino as long as you're using the hardware SPI pins.

We'll start by attaching headers. You can also solder wires directly but header makes it breadboard friendly!

Prepare the header strip:

Cut the strip to length if necessary. It will be easier to solder if you insert it into a breadboard - long pins down.

Add the breakout board:

Place the breakout board over the pins so that the short pins poke through the breakout pads

And Solder!

Be sure to solder all 10 pins for reliable electrical contact.

(For tips on soldering, be sure to check out our Guide to Excellent Soldering).

That's it! you are now ready to wire and test


Now that we have headers attached we can easily wire it up to our Arduino

  • VIN connects to the Arduino 5V pin
  • GND connects to Arduino ground
  • SCK connects to SPI clock.
    On Arduino Uno/Duemilanove/328-based, thats Digital 13.
    On Mega's, its Digital 52 and on
    Leonardo/Micro its ICSP-3 (See SPI Connections for more details)
  • MISO connects to SPI MISO.
    On Arduino Uno/Duemilanove/328-based, thats Digital 12.
    On Mega's, its Digital 50 and on
    Leonardo/Micro its ICSP-1 (See SPI Connections for more details)
  • MOSI connects to SPI MOSI.
    On Arduino Uno/Duemilanove/328-based, thats Digital 11.
    On Mega's, its Digital 51 and on
    Leonardo/Micro its ICSP-4 (See SPI Connections for more details)
  • REQ connects to our SPI Chip Select pin. We'll be using Digital 10 but you can later change this to any pin
  • RST connects to Digital 9 - this is for resetting the board when we start up, you can later change this to any pin
  • RDY is the interrupt out from the nRF8001, we'll connect to Digital 2 but be aware that if you want to change it, it must connect to an interrupt capable pin (see this Arduino page for which pins are interrupt-capable. Digital 2 is OK on Uno/Leonardo/Micro/Mega/etc.)

Our code does not currently use the ACT pin so you can leave it disconnected

The nRF8001 differs from a classic SPI bus since CS is replaced by two pins, REQ and RDY, but you can still use HW SPI since CS is normally controlled purely in SW anyway.
By connecting 5.0V on the VIN pin, all of the signals will be level shifted between 5V for the Arduino and 3.3V for the nRF8001, meaning you don't need to worry about damaging the IC by providing logic levels that it can't safely handle.
If you are using 3.3V logic, simply connect 3.3V from your development board to the VIN pin on the nRF8001 breakout.
ACT is an optional pin that is not currently used in our sample sketches or low level drivers, but is broken out for future use if required.

3Vo is the output of the on board 3.3V voltage regulator, and can be used if you need an additional 3.3V supply rail, but generally won't be required on an Uno.

This guide was first published on Mar 20, 2014. It was last updated on Mar 08, 2024.

This page (Hooking Everything Up) was last updated on Mar 04, 2014.

Text editor powered by tinymce.