RF24L01+

15 Apr 2015

This is an awesome RF 2.4GHz from Nordic. There are some mbed libraries, but, for me, the best library, is this one for arduino and RPi http://tmrh20.github.io/RF24/

some of the most important features are here http://tmrh20.github.io/RF24Network/ and mesh capabilities. Every library depends from http://tmrh20.github.io/RF24/

Recently the creator researched an easy way to port it http://tmrh20.github.io/RF24/Portability.html

I am not quite good in programing so I would like some one helping me to port it to lpc820.

Thanks

15 Apr 2015

So how does this one compare to the one which are present here on mbed ? CAn you elaborate?

15 Apr 2015

Of course, actual mbed version of the library is based in the old Maniacbug RF24 library and it is only developed for Nucleo platform. New library is created from the abandoned Maniacbug library being a forck of the mbed one, offering new interesting features, It has some sub librearies non compiler dependent (I was talking with the developer and said me that the only dependent is RF24 being the core driver) such us RF24Network (I will copy and paste):

Dual headed operation: The use of dual radios for busy routing nodes or the master node enhances throughput and decreases errors. See the Tuning section. Extended timeouts and staggered timeout intervals. The new txTimeout variable allows fully automated extended timeout periods via auto-retry/auto-reUse of payloads. Optimization to the core library provides improvements to reliability, speed and efficiency. See https://tmrh20.github.io/RF24 for more info. Built in sleep mode using interrupts. (Still under development. (Enable via RF24Network_config.h)) Host Addressing. Each node has a logical address on the local network. Message Forwarding. Messages can be sent from one node to any other, and this layer will get them there no matter how many hops it takes. Ad-hoc Joining. A node can join a network without any changes to any existing nodes.

And RF24Mesh offering:

Basic 'mesh' functionality using an Arduino or RPi as the master node which will generally receive the sensor data Simple, dynamic addressing based on a pre-assigned unique identifier Dynamic/On-the fly configuration of addresses and network topology

Other sublibraries are RF24Audio for audio streaming and some more...

Mbed RF24 library doesn't support theese sublibraries and it is only avalible for Nucleo, offering just basic talking between radios. Talking with the developer of this new library based in the old one, said me that there is only the need of porting RF24 library (sublibrarries realy in RF24, not platform or compiler), and he added a template to get it easier. (http://tmrh20.github.io/RF24/Portability.html)

I feel that creating an autoconfigurable mesh network with 1$ radios is quite interesting for IoT. Well, not true mesh but close enough, more info here http://tmrh20.github.io/RF24Network/

19 Apr 2015

Anyone interested?

06 Jul 2015

I completed debugging of some pre-existing RF24 and RF24Network libraries and have published ones that work on Nucleo-F411, should work on other platforms too. Checkout my repository at https://developer.mbed.org/users/akashvibhute/code, there are a few examples too..

I know this thread has been inactive for a long time, but if this helps anyone then great!

+Akash

06 Jul 2015

Nice job, everything helps. My main problem here is that i want to use rf24mesh library wich uses lastest rf24network library from here http://tmrh20.github.io/RF24/ but, nice job.

06 Jul 2015

Thanks! Lets see if I can get my hands on a ported RF24Mesh library, would be happy to debug. Porting it from scratch might take a while...

02 Aug 2015

@Akash: Nice job. I tested your port on the mBuino LPC11U24 platform with nRF24L01+ modules and it works great. Thank you! Having the new features and the RF24Mesh library would be nice indeed, but at the moment I don't have the time to look into that.

28 Dec 2015

@Akash, Just wanted to say thanks for this. I'm building a sensor network with Arduino sensors and the mBed as the base station, and it's really nice to be able to use the same radio code base for both.

One minor thing I found was with the code documentation, it says:

        RF24 (PinName miso, PinName mosi, PinName sck, PinName _cepin, PinName _csnpin)

But in the code it's actually:

        RF24::RF24 (PinName mosi, PinName miso, PinName sck, PinName _cepin, PinName _csnpin):

So MOSI and MISO are the wrong way round.

30 Dec 2015

Whoops! Thanks for letting me know, I've updated the header file and documentation too should get updated...