In a project using esb, with two nrf52832 devices configured as default, one as RX, one as TX, with dynamic payload, TX sending packets to RX can change the packet pid (and using a debugger I can see that the pid changes on every subsequent packet provided I have a command such as tx_payload.pid++ on every send). However this doesn't work for RX; even with the above command, packets I receive with TX from RX always have pid == 0. Is this intended behaviour? Should I not be changing pid in the TX program?
In the meantime I've switched to using the first byte of each packet to store a packet identifier, which lets TX request a packet from RX that it hasn't obtained during a transfer, but if I could do the same with the pid that would make things cleaner, and give me an extra byte to store things in.