Not shure it can help you, but...
RF24 system works with pipes, 1 for TX and 6 for RX with one module.
between 2 RF24 if you want them to communicate you must set these pipe according for TX/RX of each device.
Lets say :
RF24 #1 :
TX pipe = 0xF0F0F0F0E1
RX pipe = 0xF0F0F0F0D2
so from RF24 #2 must be as :
TX pipe = 0xF0F0F0F0D2
RX pipe = 0xF0F0F0F0E1
when RF24#1 is transmitting on E1, then RF24#2 will listen on E1. When RF24#2 wants to transmit datas to RF24#1 it sends on D2 and RF24#1 listen on D2.
With your code it seems there is a trouble because the DIP module use the D2 as TX and RX... so it will 'ear' only what it sends himself in my guess.
I used the maniacbug code : GettingStarted without modification and it works well !
And at last, one RF24 must be in role_ping_out and the other in role_pong_back, it seems not be the case of your print from your arduino (dip and smd show pong_back !!!)
Hope it can help you.
Also there are a lot of comment on maniacbug website, concerning the RF24 class.
we can read on it :
void RF24::openReadingPipe ( uint8_t number,
uint64_t address
)
Open a pipe for reading.
Up to 6 pipes can be open for reading at once. Open all the reading pipes, and then call startListening().
See also:
openWritingPipe
Warning:
Pipes 1-5 should share the first 32 bits. Only the least significant byte should be unique, e.g.
openReadingPipe(1,0xF0F0F0F0AA);
openReadingPipe(2,0xF0F0F0F066);
Pipe 0 is also used by the writing pipe. So if you open pipe 0 for reading, and then startListening(), it will overwrite the writing pipe. Ergo, do an openWritingPipe() again before write().
Todo:
Enforce the restriction that pipes 1-5 must share the top 32 bits
Parameters:number Which pipe# to open, 0-5.
address The 40-bit address of the pipe to open.
void RF24::openWritingPipe ( uint64_t address )
Open a pipe for writing.
Only one pipe can be open at once, but you can change the pipe you'll listen to. Do not call this while actively listening. Remember to stopListening() first.
Addresses are 40-bit hex values, e.g.:
openWritingPipe(0xF0F0F0F0F0);
Parameters:address The 40-bit address of the pipe to open. This can be any value whatsoever, as long as you are the only one writing to it and only one other radio is listening to it. Coordinate these pipe addresses amongst nodes on the network.
Hope it can help you.
Best regards