diff --git a/RF24.cpp b/RF24.cpp index 9471583d..4a144edc 100644 --- a/RF24.cpp +++ b/RF24.cpp @@ -507,8 +507,10 @@ bool RF24::write( const void* buf, uint8_t len ) void RF24::startWrite( const void* buf, uint8_t len ) { // Transmitter power-up - write_register(CONFIG, ( read_register(CONFIG) | _BV(PWR_UP) ) & ~_BV(PRIM_RX) ); - delayMicroseconds(150); + uint8_t old_config = read_register(CONFIG); + write_register(CONFIG, ( old_config | _BV(PWR_UP) ) & ~_BV(PRIM_RX) ); + if ((old_config & _BV(PWR_UP)) == 0) + delayMicroseconds(1500); // Send the payload write_payload( buf, len );