New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nrf24 library #1234
Comments
The nRF5 chips have a proprietary rf mode, that allows them to communicate with older chips like the nRF24. From the nRF5 SDK documentation: "Enhanced ShockBurst (ESB) for the nRF5 Series is a simple, lightweight protocol, that is on-air compatible with Nordic's nRF24Lxx devices. ESB for the nRF5 Series provides a simple upgrade path for nRF24Lxx based applications." |
With some luck you could even make them talk to the micro:bits, which would be very cool! |
The micro:bits have a python module "radio", that implements the Nordic Gazell protocol. |
Anyone know how separate the radio stacks are in the SoftDevice? Can we have one build that can do any of them? |
hmm, this issue has diverged a bit. i was referring to supporting the low cost nrf24 modules that are so popular with makers, not native nrf24l01 support in nrf52 - that seems like it would be a different project altogether :) |
@ladyada: Well, my suggestion would be to write a driver for nrf24l01, that uses external modules by default, but switches to the internal rf on microcontrollers that support it. Other drivers also use hardwired functions when available, but switch to bitbanging when not. @tannewt: The softdevices don't support the proprietary Nordic protocols, only BLE and/or ANT. But the proprietary protocols can coexist with BLE, by using timeslots. |
Ok, this issue will be for a driver of external nRF24 devices. For the internal ones we have separate issues:
|
@kattni taggin' ya! |
nRF24L01 library has been discussed here: adafruit/Adafruit_Blinka#85 @rhthomas Let's continue any GitHub discussion here. You're still welcome to ping me on Discord as well with any questions. |
I've dropped the main code on my fork (finally! Took me a while to get round to it). Need to populate the README, document the code and write some examples, but the code for the library is available. |
nice @rhthomas when you're ready please submit a PR :) |
for those who want to try it out - check out @rhthomas code here! |
@uhrheber I've been working on the CircuitPython support for the nRF24L01(+), and in reference to this previous post: from my understanding of the Enhanced ShockBurst protocol, it is the underlying mechanism that takes whatever info you've given it (payload, address, etc) and makes packets out of it, and then runs a logic loop for broadcasting them. That last logic loop incorporates the auto-ACK functionality that pretty much marks the transmission successful. If your radio is capable of ESB I'd say yes, since ESB is so automatic on the nRF24L01. I'm seeing a common backward compatibility theme in Nordic chips. There's a whole page on compatibility with nRF24E1/nRF24E2/nRF2401/nRF2402 which basically turns off all the shiny features. I'm secretly holding hopes for compatibility with whichever chip Logitech uses for their unifying receivers. |
I've got a stable release deployed. I cloned the community bundle, then successfully did the |
@2bndy5 Ya, it could be a windows thing. Feel free to make a PR and rely on Travis to test it. |
its totally a windows thing (no problems building on the raspi)... May even be a my windows thing (running Insider Preview builds). It builds ok in travis, but the rf24.mpy is not in the correct subfolder "circuitpython-nrf24l01" under lib (see the release notes). I'm currently adding another module under the same folder that will emulate BLE advertisements using the nRF24L01. Hopefully having more than one py file in the specified |
Oh, weird. @sommersoft may have an idea why it's getting move outside it's package. |
Try adding This does raise a bug though. It should handle this better, than just dumping the file outside of the folder. |
Should this be closed? The library requested is released and getting properly built. I even consolidated the example scripts to comply with getting built in the community bundle. |
yep! library is here for future wanderers: |
there's one for micropython here from the original repo
https://github.com/micropython/micropython/blob/master/drivers/nrf24l01/nrf24l01.py
There's also a RadioHead driver here
https://github.com/adafruit/RadioHead/blob/master/RH_NRF24.cpp
https://github.com/adafruit/RadioHead/tree/master/examples/nrf24
And the most popular nrf24 library in C/C++ here
https://github.com/nRF24/RF24
The text was updated successfully, but these errors were encountered: