Mystery problem with NRF24L01, 5V Pro Mini, and ISP


I'm using two NRF24L01 wireless transceivers to communicate between an Arduino UNO and a 5V Arduino Pro Mini. I soldered the Pro Mini and some other components to some perf board, as well as some female headers for quickly swapping out my wireless board.

I'm programming my Pro Mini using a Sparkfun Pocket Programmer, over a 6pin ISP header.

I can't for the life of me get the Arduino and the Pro Mini to communicate wirelessly.

I'm using the GettingStarted example code from the RF24-master library.

I know that the wireless boards are in good working order, because I also have an Arduino Mega, and can successfully communicate between the UNO and Mega if I take the board off of my Pro Mini and stick it on my Mega.

I know that my Mini is programmable over ISP, because I have some LED's and switches that are responsive to portions of my code that do not involve the NRF24L01.

I have tried including 3.9k resistors in series on the MISO, MOSI, and SCK lines from my ISP header to the MISO, MOSI, and SCK pins on the wireless board, as recommended by AVR910 to prevent "driver contention" during ISP. I have also tried using 1k resistors. No cigar.

I have Pro Mini pins as follows (maybe I messed this up? but probably not because my pro mini appears to be programmable. . .): SCK: 13 MISO: 12 MOSI: 11

I'm using pin 10 for CSN and 8 for CE, which I changed in my code using RF24 radio(8,10);

I have checked continuity on all of my lines numerous times.

I have a 10uF cap across 3.3 and GND, right next to my wireless board.

I'm using a voltage divider with 57ohm and 120ohm resistors, to take 5V down to 3.3 for VCC on the wireless board. This should supply approximately 30mA, more than enough for the spec'd 14mA peak operating current of the NRF24L01.

I'm really racking my brain here, I feel like I've read just about every thread about NRF24L01. :fearful:

Does anybody see anything I'm missing? I don't really know how to size resistors for "driver contention". . .maybe this is my problem? I've just been reading what has worked for other people for generic SPI devices.

I also wonder if I should be pulling CSN high or something? I think I read that somewhere, but I'm not sure at this point.

Any help is greatly appreciated!!!

Ok guys...I seemed to have resolved this problem. I'm posting this as sort of a PSA:

I did two things to make this work:

1) Remove "driver contention" series resistors (but still remove wifi board while programming AVR) 2) Power Pro Mini with wall wart, rather than pocket programmer

My guess: the pocket programmer wasn't releasing a MISO or MOSI line, and the Wifi board couldn't grab it.

I just did a quick scan of common problems with pocket programmers, but I wasn't finding much.

If anybody has had problems with pocket programmers not releasing and could point to a source that would be awesome. Anyway, it works!!!

Pocket programmer might be holding reset low? Easy enough to check. Or holding SCK/MOSI low.

Just checked...pocket programmer is holding reset high. Not sure if that would cause a problem or not. . .