thanks Tom - I had a quick look but the sample code does not seem to compile using the latest from Felix and your branch for the ATC files. I'm using IDE 1.6.6 and getting the following errors:
/Users/xavier/Documents/Arduino/libraries/RFM69/RFM69_ATC.cpp: In member function 'virtual void RFM69_ATC::select()':
/Users/xavier/Documents/Arduino/libraries/RFM69/RFM69_ATC.cpp:117:3: error: '_SREG' was not declared in this scope
_SREG = SREG;
^
/Users/xavier/Documents/Arduino/libraries/RFM69/RFM69_ATC.cpp: In member function 'void RFM69_ATC::sendFrame(uint8_t, const void*, uint8_t, bool, bool, bool, int16_t)':
/Users/xavier/Documents/Arduino/libraries/RFM69/RFM69_ATC.cpp:223:48: error: 'RFM69_CTL_RESERVE1' was not declared in this scope
SPI.transfer(RFM69_CTL_SENDACK | (sendRSSI?RFM69_CTL_RESERVE1:0)); // TWS TODO: Replace with EXT1
^
/Users/xavier/Documents/Arduino/libraries/RFM69/RFM69_ATC.cpp:232:39: error: 'RFM69_CTL_RESERVE1' was not declared in this scope
SPI.transfer(RFM69_CTL_REQACK | RFM69_CTL_RESERVE1); // TWS: ASK for ACK + ASK for RSSI
^
/Users/xavier/Documents/Arduino/libraries/RFM69/RFM69_ATC.cpp: In member function 'virtual void RFM69_ATC::interruptHook(uint8_t)':
/Users/xavier/Documents/Arduino/libraries/RFM69/RFM69_ATC.cpp:284:34: error: 'RFM69_CTL_RESERVE1' was not declared in this scope
ACK_RSSI_REQUESTED = CTLbyte & RFM69_CTL_RESERVE1; // TWS: extract the ACK RSSI request bit (could potentially merge with ACK_REQUESTED)
To fix the _SREG I added a definition in RFM69.h since this is where the __SPSR is defined
For the RFM69_CTL_RESERVE1 issue it seems your branch does not have it defined in RFM69_ATC but the file in the RFM69 branch does have it so I just copied it from there.
Things seem to work alright now although it seems sometimes the node gets stuck in sleeping mode and never wakes up after a while. If I restart a node I do get the wakeup for the gateway somehow does not receive any data after the first wakeup burst and then it seems to work after the second wake up.
Anyhow, I'm still looking at the code but this is a very neat feature! Hopefully you'll add it to the RFM69 library. Thanks again for sharing!