This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

esb transmit/receive lag

I have a receiver and a transmitter. The transmitter sends 1 byte (increment). the receiver takes the byte and sends it back. there is a lag of 1 package. 

void nrf_esb_event_handler(nrf_esb_evt_t const * p_event){
	nrf_esb_read_rx_payload(&rx_payload);
	
	switch (p_event->evt_id){
		case NRF_ESB_EVENT_TX_SUCCESS:
			printf("\r\n TX SUCCESS EVENT %02X", tx_payload.data[0]);
			break;
		case NRF_ESB_EVENT_TX_FAILED:
			printf("\r\n TX FAILED EVENT");
			break;
		case NRF_ESB_EVENT_RX_RECEIVED:
			printf("\r\n RX RECEIVED EVENT %02X", rx_payload.data[0]);
			if(isSensor == false){
				tx_payload.pipe = pipeNumber;
				tx_payload.data[0] = rx_payload.data[0];
				nrf_esb_write_payload(&tx_payload);
			}
			break;
	}
}

Logs (transmiter):

=== START TRANSMITER ===
TX SUCCESS EVENT 02
RX RECEIVED EVENT 0E
TX SUCCESS EVENT 03
RX RECEIVED EVENT 02
TX SUCCESS EVENT 04
RX RECEIVED EVENT 03
TX SUCCESS EVENT 05
RX RECEIVED EVENT 04
TX SUCCESS EVENT 06
RX RECEIVED EVENT 05
TX SUCCESS EVENT 07
RX RECEIVED EVENT 06

Logs (receiver):

=== START RECEIVER ===
RX RECEIVED EVENT 02
RX RECEIVED EVENT 03
TX SUCCESS EVENT 03
RX RECEIVED EVENT 04
TX SUCCESS EVENT 04
RX RECEIVED EVENT 05
TX SUCCESS EVENT 05
RX RECEIVED EVENT 06
TX SUCCESS EVENT 06
RX RECEIVED EVENT 07
TX SUCCESS EVENT 07
RX RECEIVED EVENT 08

Related