This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Basic Arduino setup with nRF8001 Development Kit

If I've missed some documentation on the use of Nordic Semiconductor's nRF8001/nRF24L01+ Adapter for Arduino, I apologize but I couldn't find any.

Steps I've taken:

  1. Attached the 'Adapter for Arduino' to a working Arduino UNO (actually tried on 2 of them).
  2. Attached the nRF2740 to the adapter.
  3. Uploaded the ble_uart_project_template
  4. Installed nRF UART on iPhone 5

The nRF UART app is never able to find or connect.

  • You may want to import the latest Arduino code delivered at github.com/.../ble-sdk-arduino

    Make sure that you read the readme file in the top level, this will give you the information on the pin connections required for the Nordic Arduino shield.

    • Open the Serial Monitor window using Tools -> Serial Monitor in the Arduino IDE to receive error and status messages and to send data from the PC to the phone.
    • Set the line ending option in Serial Monitor to "New Line"
    • Set the baud rate in the Serial Monitor to "115200 baud"

    The pin settings for the Nordic board should be:

    
    
    /*    Tell the ACI library, the MCU to nRF8001 pin connections.    
    The Active pin is optional and can be marked UNUSED    */              
    
    /* See board.h for details REDBEARLAB_SHIELD_V1_1 or BOARD_DEFAULT
    */
    aci_state.aci_pins.board_name = BOARD_DEFAULT;  
    
    /* SS for Nordic board, 9 for REDBEARLAB_SHIELD_V1_1  
    */
    aci_state.aci_pins.reqn_pin   = SS; 
    
    /* 3 for Nordic board, 8 for REDBEARLAB_SHIELD_V1_1    
    */
    aci_state.aci_pins.rdyn_pin   = 3; 
    
    aci_state.aci_pins.mosi_pin   = MOSI;    
    aci_state.aci_pins.miso_pin   = MISO;    
    aci_state.aci_pins.sck_pin    = SCK;        
    
    aci_state.aci_pins.spi_clock_divider          = SPI_CLOCK_DIV8;
    
    /* 4 for Nordic board, UNUSED for REDBEARLAB_SHIELD_V1_1
    */
    aci_state.aci_pins.reset_pin     = 4;
    
    aci_state.aci_pins.active_pin                  = UNUSED;   
    aci_state.aci_pins.optional_chip_sel_pin = UNUSED;
    
    
  • There we go!

    I had been using github.com/.../ble-sdk-arduino and assumed that because this came from one of Nordic Semi's own repos that it would default to their own hardware and not RedBear's. I should have looked at the code before asking.

    Thank you very much for your help.

  • My apologies on this issue. We will be fixing the github release so that it will support the Nordic boards better and work with redbearlab so hopefully we can have a common pin configuration to make it easier for users.

  • I'd be happy if you could accept the answer that you found useful to clear up this question! :-)

Related