  */
 uint8_t transmitPacket( byte destination, byte command, byte data ) {
   /* Assemble the transmission packet */
-  struct Packet tx_packet;
-  tx_packet.destination = destination;
-  tx_packet.source = role_id;
-  tx_packet.command = command;
-  tx_packet.data = data;
+  uint8_t tx_packet[PAYLOAD];
+  tx_packet[DESTINATION] = destination;
+  tx_packet[SOURCE] = role_id;
+  tx_packet[COMMAND] = command;
+  tx_packet[DATA] = data;
   
   /* First, stop listening so we can talk */
   radio.stopListening();
   /* Send the packet to the chosen destination */
-  bool ok = radio.write( &tx_packet, radio.getPayloadSize() );
+  bool ok = radio.write( tx_packet, radio.getPayloadSize() );
   /* Now, resume listening so we catch the next packets. */
   radio.startListening();
   
   /* When the transmission was not successful */
   if ( !ok ) {
-    debug_printf( "transmit failed.\n\r" );
+    debug_printf( "transmit %X to %X failed.\n\r", command, destination );
     return TRANSMIT_FAILED;
   }
   
-  debug_printf( "transmit %X ok\n", command );
+  debug_printf( "transmit %X to %X ok\n", command, destination );
   return SUCCESS;
 }
 
 void setup() {
+  /* Wait specified time before startup */
+  delay( WAIT_BEFORE_START );
   /* Initialize serial connection */
   Serial.begin( BAUD_RATE );
   /* Direct printf to Arduino serial */

 * function to receive datapacket
 * return - 0 when reception was successful
 */
uint8_t receivePacket( struct Packet rx_packet ) {
  /* When we don't use timeout */
  if ( !radio.available() ) return NO_DATA;
  /* Read the data from the tranceiver */
  radio.read( &rx_packet, radio.getPayloadSize() );
  /* Only receive packets which are for us or broadcast packets for all clients */
  if ( rx_packet.destination != role_id && rx_packet.destination != client_all_id ) {
    debug_printf( "different destination %X source %X...", rx_packet.destination, rx_packet.source );
    return WRONG_DESTINATION;
  }
  debug_printf( "source %X...", rx_packet.source );
  return SUCCESS;
}


  radio.begin();

  /* optionally, increase the delay(1) between retries(2) & # of retries */
  /* We can't use this because the transmission is on one channel */
  //radio.setRetries( 15, 15 );

  /* Optionally, reduce the payload size, seems to improve reliability */
  radio.setPayloadSize( PAYLOAD );
  /* Use manual ACK when needed, we can't use this because the transmission is on one channel */
  radio.setAutoAck( false );
  /* Set maximum datarate for decreasing delay xD */
  radio.setDataRate( RF24_2MBPS );

  /* Open 'our' pipe for writing */
  /* Open the 'other' pipe for reading, in position #1 (we can have up to 5 pipes open for reading) */
