I have a beginner's problem....
I have got 2 x NRF24L01+ devices, they are communicating with each other great, and i can talk with the nrf's via SPI.
The problem is i want to display, on the serial monitor, the number of retransmitted packets (ARC_CNT) and the number of lost packets (PLOS_CNT), which are both in the "observe_tx" register on the nrf.
I am using the "Getting Started" example from RF24 1.3.1, with Arduino 1.84, with a few more bits added, and it all works great apart from getting it to show PLOS_CNT & ARC_CNT! 
I have tried: 

printf_P(PSTR("OBSERVE_TX=%02x: PLOS_CNT=%x ARC_CNT=%x\r\n")); 

but this does not give the correct result.
As you have probably guessed i know nothing about C or C++ :)
There must be a simple way of showing the 2 numbers ?

The code i am using is :

        /*
        Getting Started example sketch for nRF24L01+ radios
        This is a very basic example of how to send data from one node to another
        Updated: Dec 2014 by TMRh20
        */

    #include <SPI.h>
    #include "RF24.h"
    #include <printf.h> // Required for "radio.printDetails();"

    /****************** User Config ***************************/
    /***      Set this radio as radio number 0 or 1         ***/
    bool radioNumber = 0;

    /* Hardware configuration: Set up nRF24L01 radio on SPI bus plus pins 7 & 8 */
    RF24 radio(7, 8);
    /**********************************************************/

    byte addresses[][6] = {"1Node", "2Node"};

    // Used to control whether this node is sending or receiving
    bool role = 0;

    void setup() {
      //pinMode(53,OUTPUT);   //may not be required after all
      Serial.begin(115200);
      printf_begin();       //required for "radio.printDetails();" to work
      Serial.println(F("RF24/examples/GettingStarted"));
      Serial.println(F("*** PRESS 'T' to begin transmitting to the other node"));

      radio.begin();
      // Set the PA Level low to prevent power supply related issues since this is a
      // getting_started sketch, and the likelihood of close proximity of the devices. RF24_PA_MAX is default.
      radio.setPALevel(RF24_PA_LOW);    // _MIN, _LOW, _HIGH, _MAX
      radio.setDataRate(RF24_250KBPS);  //250KBPS, _1MBPS, _2MBPS  Lowest rate gives longest range.
      radio.setChannel(108);            // 0 - 124 (2.4GHz - 2.524GHz) Usually above 100 best. USA 70 - 80 best.
      //radio.enableDynamicPayloads();
      radio.setRetries(15, 15);         // set retry delay and no of retries. delay between retries, 0=250uS, 15 = 4000uS
      radio.setCRCLength(RF24_CRC_16);  // 8 or 16 bit crc
      //radio.setAutoAck(1);                    Ensure autoACK is enabled
      //radio.enableAckPayload();               Allow optional ack payloads
      //radio.setPayloadSize(1);                Here we are sending 1-byte payloads to test the call-response speed
      //radio.openWritingPipe(pipes[1]);        Both radios listen on the same pipes by default, and switch when writing
      //radio.openReadingPipe(1,pipes[0]);
      radio.printDetails(); //
      Serial.print(radio.getChannel());
      //Serial.print(radio.getxxxx());          prints to the serial port the value your are getting from the nRF24l01
      radio.setAutoAck(1);
      //radio.powerDown();
      //radio.powerUp();
      //radio.setAddressWidth(5);           // set AW to 3, 4 or 5.

      /*
         getChannel(); getPayloadSize(); getDynamicpayloadSize(); getPALevel(); getDataRate();  getCRCLength();
      */

      // Open a writing and reading pipe on each radio, with opposite addresses
      if (radioNumber) {
        radio.openWritingPipe(addresses[1]);
        radio.openReadingPipe(1, addresses[0]);
      } else {
        radio.openWritingPipe(addresses[0]);
        radio.openReadingPipe(1, addresses[1]);
      }

      // Start the radio listening for data
      radio.startListening();
    }

    void loop() {


      /****************** Ping Out Role ***************************/
      if (role == 1)  {

        radio.stopListening();                                    // First, stop listening so we can talk.


        Serial.println(F("Now sending"));

        unsigned long start_time = micros();                             // Take the time, and send it.  This will block until complete
        if (!radio.write( &start_time, sizeof(unsigned long) )) {
          Serial.println(F("failed"));
        }

        radio.startListening();                                    // Now, continue listening

        unsigned long started_waiting_at = micros();               // Set up a timeout period, get the current microseconds
        boolean timeout = false;                                   // Set up a variable to indicate if a response was received or not

        while ( ! radio.available() ) {                            // While nothing is received
          if (micros() - started_waiting_at > 200000 ) {           // If waited longer than 200ms, indicate timeout and exit while loop
            timeout = true;
            break;
          }
        }

        if ( timeout ) {                                            // Describe the results
          Serial.println(F("Failed, response timed out."));

          printf_P(PSTR("OBSERVE_TX=%02x: PLOS_CNT=%x ARC_CNT=%x\r\n"));

        } else {
          unsigned long got_time;                                 // Grab the response, compare, and send to debugging spew
          radio.read( &got_time, sizeof(unsigned long) );
          unsigned long end_time = micros();

          // Spew it
          Serial.print(F("Sent "));
          Serial.print(start_time);
          Serial.print(F(", Got response "));
          Serial.print(got_time);
          Serial.print(F(", Round-trip delay "));
          Serial.print(end_time - start_time);
          Serial.println(F(" microseconds"));
        }

        // Try again 1s later
        delay(1000);
      }



      /****************** Pong Back Role ***************************/

      if ( role == 0 )
      {
        unsigned long got_time;

        if ( radio.available()) {
          // Variable for the received timestamp
          while (radio.available()) {                                   // While there is data ready
            radio.read( &got_time, sizeof(unsigned long) );             // Get the payload
          }

          radio.stopListening();                                        // First, stop listening so we can talk
          radio.write( &got_time, sizeof(unsigned long) );              // Send the final one back.
          radio.startListening();                                       // Now, resume listening so we catch the next packets.
          Serial.print(F("Sent response "));
          Serial.println(got_time);
        }
      }




      /****************** Change Roles via Serial Commands ***************************/

      if ( Serial.available() )
      {
        char c = toupper(Serial.read());
        if ( c == 'T' && role == 0 ) {
          Serial.println(F("*** CHANGING TO TRANSMIT ROLE -- PRESS 'R' TO SWITCH BACK"));
          role = 1;                  // Become the primary transmitter (ping out)

        } else if ( c == 'R' && role == 1 ) {
          Serial.println(F("*** CHANGING TO RECEIVE ROLE -- PRESS 'T' TO SWITCH BACK"));
          role = 0;                // Become the primary receiver (pong back)
          radio.startListening();

        }
      }


            } // Loop