Hello,
   This is my page for updating progress on the Component page for the nRF2401A(Trace Antenna). Since this is going to be the same library and probably the same component page as the chip antenna version I have joined Jas Strong in porting the Arduino Library across to the mbed. I have also created a library based on the work of Per Söderstam on his driver_nRF2401A class. I have published this as a Library and Hello World example here:
Library for the nRF2401A Transceiver
and
Hello world example for the nRF2401A Library
I have only tested this with 2 LPC1768 mbeds so far, but have a LPC800-MAX and a FRDM-KL25Z to test it with too. 
The hello world example is currently sending whatever data the receive buffer has every 500ms, but I have tried to use the attach function of the library and use a callback. However, when I do this I am entering the callback and then the mbed stops running. I think I have a problem returning as I my debug led is turning on. I am using 2 separate mbed and so only have RX defined. the code is:
include nRF2401A library with this
#include "mbed.h"
#include "nRF2401A.h"
// comment these out depending on the job of the mbed. If your only using one mbed leave both uncommented.
#define TX
#define RX
DigitalOut  myled(LED1);
DigitalOut  debug(LED2);
#ifdef TX
nRF2401A    rf1(p10, p11, p12, p13, p14);
#endif
#ifdef RX
nRF2401A    rf2(p21, p22, p23, p24, p25);
#endif
Serial pc(USBTX, USBRX);
#ifdef RX
bool rx_recieved = false;
nRF2401A_rx_handler_t nRF2401A_rx ()
{
     //rf2.printDataPacket(pc);
     debug = !debug;
     rx_recieved = true;
     return;
}
#endif
int main() {
    wait(0.005);
    pc.printf("Hello nRF2401A\n\r");
#ifdef TX    
    rf1.setDataPayloadLength(4 << 3)
       .setAddress(0x0, 0x0, 0xa6, 0xa6, 0xa6, 3 << 3)
       .setCRCMode(nRF2401A::NO_CRC)
       .setDataRate(nRF2401A::BIT_RATE_250KBITS)
       .setChannel(0x02);
       
  //  rf1.printControlPacket(pc);
#endif
#ifdef RX   
    rf2.setDataPayloadLength(4 << 3)
       .setAddress(0x0, 0x0, 0x53, 0x53, 0x53, 3 << 3)
       .setCRCMode(nRF2401A::NO_CRC)
       .setDataRate(nRF2401A::BIT_RATE_250KBITS)
       .setChannel(0x02);
       
  //  rf2.printControlPacket(pc);
    
    rf2.attachRXHandler(nRF2401A_rx(), 0);
#endif
#ifdef TX    
    rf1.flushControlPacket();
#endif
#ifdef RX
    rf2.flushControlPacket();
#endif
#ifdef TX   
    nRF2401A::address_t rf2_addr = {0x0, 0x0, 0x53, 0x53, 0x53};
    uint8_t msg[] = {0x01, 0x01, 0x01, 0x01};
    uint32_t *msg32 = (uint32_t *) msg;
#endif
      
    while(1) {
#ifdef TX             
        rf1.sendMsg(rf2_addr, 3 << 3, msg, 4 << 3);
        *msg32 += 1;
#endif
        myled = 1;
        wait(0.25);
#ifdef RX  
        if (rx_recieved)
        {      
            rf2.printDataPacket(pc);
            rx_recieved = false;
        }
#endif       
        myled = 0;
        wait(0.25);
    }
}
 
                
            
Hello, This is my page for updating progress on the Component page for the nRF2401A(Trace Antenna). Since this is going to be the same library and probably the same component page as the chip antenna version I have joined Jas Strong in porting the Arduino Library across to the mbed. I have also created a library based on the work of Per Söderstam on his driver_nRF2401A class. I have published this as a Library and Hello World example here:
Import librarynRF2401A
Library for the nRF2401A Transceiver
Last commit 09 Mar 2014 by Chris Dick
  Chris Dick
and
Import programnRF2401A_Hello_World
Hello world example for the nRF2401A Library
Last commit 09 Mar 2014 by Chris Dick
  Chris Dick
I have only tested this with 2 LPC1768 mbeds so far, but have a LPC800-MAX and a FRDM-KL25Z to test it with too.
The hello world example is currently sending whatever data the receive buffer has every 500ms, but I have tried to use the attach function of the library and use a callback. However, when I do this I am entering the callback and then the mbed stops running. I think I have a problem returning as I my debug led is turning on. I am using 2 separate mbed and so only have RX defined. the code is:
include nRF2401A library with this
#include "mbed.h" #include "nRF2401A.h" // comment these out depending on the job of the mbed. If your only using one mbed leave both uncommented. #define TX #define RX DigitalOut myled(LED1); DigitalOut debug(LED2); #ifdef TX nRF2401A rf1(p10, p11, p12, p13, p14); #endif #ifdef RX nRF2401A rf2(p21, p22, p23, p24, p25); #endif Serial pc(USBTX, USBRX); #ifdef RX bool rx_recieved = false; nRF2401A_rx_handler_t nRF2401A_rx () { //rf2.printDataPacket(pc); debug = !debug; rx_recieved = true; return; } #endif int main() { wait(0.005); pc.printf("Hello nRF2401A\n\r"); #ifdef TX rf1.setDataPayloadLength(4 << 3) .setAddress(0x0, 0x0, 0xa6, 0xa6, 0xa6, 3 << 3) .setCRCMode(nRF2401A::NO_CRC) .setDataRate(nRF2401A::BIT_RATE_250KBITS) .setChannel(0x02); // rf1.printControlPacket(pc); #endif #ifdef RX rf2.setDataPayloadLength(4 << 3) .setAddress(0x0, 0x0, 0x53, 0x53, 0x53, 3 << 3) .setCRCMode(nRF2401A::NO_CRC) .setDataRate(nRF2401A::BIT_RATE_250KBITS) .setChannel(0x02); // rf2.printControlPacket(pc); rf2.attachRXHandler(nRF2401A_rx(), 0); #endif #ifdef TX rf1.flushControlPacket(); #endif #ifdef RX rf2.flushControlPacket(); #endif #ifdef TX nRF2401A::address_t rf2_addr = {0x0, 0x0, 0x53, 0x53, 0x53}; uint8_t msg[] = {0x01, 0x01, 0x01, 0x01}; uint32_t *msg32 = (uint32_t *) msg; #endif while(1) { #ifdef TX rf1.sendMsg(rf2_addr, 3 << 3, msg, 4 << 3); *msg32 += 1; #endif myled = 1; wait(0.25); #ifdef RX if (rx_recieved) { rf2.printDataPacket(pc); rx_recieved = false; } #endif myled = 0; wait(0.25); } }