I am programming a RaspberryPi Pico with the Arduino IDE. Works pretty well, but now I try to control an nrf24l01 module.

My code compiles but I do not know on which pins the SPI bus has to be hocked up. I tried to connect to different pins according the pinout https://datasheets.raspberrypi.org/pico/Pico-R3-A4-Pinout.pdf (for example 2 sck, 3 miso, 4 mosi), but nothing worked so far.

Does anybody know what the default pins are or how to control them? I also would like to control other SPI hardware, for example a display.

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

const uint64_t address = 0x1;
byte sendData[1];

#define CSN_PIN  5
#define CE_PIN   6
RF24 radio(CE_PIN, CSN_PIN); 

byte counter = 0;
void setup()   
  Serial.println(“radio starting");

  if (!radio.begin()) 
    Serial.println("radio hardware is not responding!!");
    while (1) {} 

void loop()   
  Serial.print("Counter: ");
  sendData[0] = counter;
  radio.write( sendData, sizeof(sendData));
  • Did you successfully run it both transmission and receiving? Any capacitor you use? My experience is that when using Raspberry Pi Pico + NRF24L01 and on Micropython, it works BUT fails when programmed on Arduino Commented Jan 17, 2022 at 14:22

1 Answer 1

  1. For Arduino-pico core

    ** MISO - pin GP16

    ** MOSI - pin GP19

    ** CS - pin GP17

    ** SCK - pin GP18

  2. Arduino-mbed core

    ** MISO - pin GP4

    ** MOSI - pin GP3

    ** CS - pin GP5

    ** SCK - pin GP2


Not the answer you're looking for? Browse other questions tagged or ask your own question.