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

Advice for simple communication from nrf51822 to nrf24l01 ?

Hi everyone ! I'm trying to send data from an nrf51822 to an nrf24l01 with arduino and I guess I'm doing something wrong...

For the moment I succeeded to have these talking together:

...so I guess the hardware is not the problem :) (if you're curious about the context, the project is explained here: hackster.io/cedric/twi)

I looked for similar problems on the forum but I don't find the solution to my problem, if anyone has a suggestion I would be infinitely grateful ;D

Here is the configuration I use:

nrf51 (TX): radio_config.c main.c

nrf24 (RX) with arduino: Mirf.cpp RX.ino

I used the nrf51 sdk suggestions and an nrf24 library (+datasheets) to understand it, but it doesn't work (yet!), the nrf24 reception pipe stays empty.

Anyone has any suggestion to offer ? Thanks a lot !! ;)

Parents
  • Hi Cedric,

    The nRF51 does not have the enhanced shockburst in hardware anymore, which means that when you send a payload from the nRF51 side, and the L01+ is configured to do auto-ACKing, you will run into issues.

    What I would suggest is that you use the ESB-library on the nRF51 side, and on the nRF24L-side you enable registers:

    • EN_DPL for your pipes.
    • EN_DYN_ACK
    • EN_ACK_PAY

    If you look at the ESB library documentation, there's a section on how the nRF24LE1 should be configured (see the nRFgo SDKs hal_nrf.c file for reference to the calls, its basically the registers I posted): devzone.nordicsemi.com/.../a00139.html

    Best regards Håkon

  • Interesting.. I'm still not able to get the nrf51822 to enter into the success portion of uesb_event_handler. It keeps going right into the tx failed section instead. I copy/pasted the same library you're using for micro esb without luck, but perhaps the difference lies in the RF24 library instead? which version are you using there? I'm on the one here.

    Is there anything that may have been lost in your posted code due to the formatting? I did notice a few oddities, for example the 'ackd = true' line in your 51 code causes a compiler error and had to be removed.

    I'm also trying to dig through to see if there may be any differences between the RPi version and Arduino that I may have missed.

Reply
  • Interesting.. I'm still not able to get the nrf51822 to enter into the success portion of uesb_event_handler. It keeps going right into the tx failed section instead. I copy/pasted the same library you're using for micro esb without luck, but perhaps the difference lies in the RF24 library instead? which version are you using there? I'm on the one here.

    Is there anything that may have been lost in your posted code due to the formatting? I did notice a few oddities, for example the 'ackd = true' line in your 51 code causes a compiler error and had to be removed.

    I'm also trying to dig through to see if there may be any differences between the RPi version and Arduino that I may have missed.

Children
No Data
Related