Throughout the datasheet, CRC is mentioned as mandatory field of all packets, and NRF24L01+ will check it before accepting a packet in FIFO.

But then there's this register that says I could disable CRC. I would like to know:

  1. Will it disable CRC check on Rx if EN_CRC is 0?
  2. Will it also inhibit transmission of CRC bytes on Tx if EN_CRC is 0?

I don't intend to use E-Shockburst and NOT having CRC check in hardware is useful to me. I'd like if Rx will just deliver packets to FIFO without CRC check. Also I could really use 8 us of time per transmitted packet.


It appears that the removal of the CRC is used to maintain backwards compatibility with certain other devices. If you are not using those, you can probably still use the instructions in Appendix B to make both sides "think" that they are communicating with a legacy device.

  • \$\begingroup\$ My guess was that NRF24L01+ wont check CRC on received pkts if EN_CRC is 0 but it might still transmit it. Throughout the datasheet, CRC is mentioned as 1 or 2 bytes during transmission. Unfortunately, I don't possess right equipment to verify this behavior. I am continuing with this assumption for now, but I could sure use those extra 8 us in my radio... I am actually implementing error correction code, so pkt drop on bad crc is not desired! \$\endgroup\$ – GPS Nov 12 '15 at 19:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.