[Request - Answered] nRF24L01+ library

Good point on the scanning rlogiacco.

RWB, are you running the sketches on arduinos or on Sparks?

I have both so what ever you think is easiest.

I have a few Arduino Microā€™s and 2 Spark Cores.

rlogiacco, I just compared the yovio fork with the one published by BDub and they are essentially the same. There are some added functions in yovio which may be good to have. It may be easier to simply adapt BDubs with the yovio changes instead of an entire port.

BDub, it may be best to use a Spark on one end since it sounds like that would be the typical setup - a Spark master and arduino slaves. Is that correct?

Peekay - What ever you think is best we can do. I agree with the end receiver being a Spark Core.

RWB, I put the scanner and pingpair sketches on my github as rlogiacco mentioned. Both of these are written for the Spark though you just need to add an #included <Arduino.h> at the top and make sure the pins you select for the nRF module and the mode jumper are correct for the arduino you use. Make sure you configure the CE and CS pins on your hardware and make the appropriate changes in the line RF24 radio(9,10); of the scanner and pingpair sketchs.

I did not try and compile these just yet but donā€™t forget to add the #include ā€œapplication.hā€ in RF24.h.

rlogiacco, if you want to make changes to what BDub has done, I suggest you use his master and do a pull request for the changes. That way we donā€™t have a bunch of versions. It may also be worth porting the examples over since he only has one. :smile:

Guys! Great discussion here.

I was actually going to work on porting the examples over last night, but I felt I should put some hours into my current Client project first. Itā€™s coming along nicely so I can free up some time to help here.

Iā€™m going to be doing some testing tonight on some core-firmware changesā€¦ and then I can help convert something. Just let me know what you want to work on vs. what you want me to help with. Ask and you shall receive.

On second review I found no differences between BDubā€™s nRF24 code and the yovio fork. :smile:

BTW, I compiled both of the examples I posted with no errors.

When you say no differences, you mean no feature enhancements/differences right?

That is correct BDud.

Peekay thanks for throwing the code together. Iā€™m going to put it to use ASAP, just have to take care of a few things that pay the bills first :money_with_wings:

@peekay123 for what I can see from the notes and commits it seems the yovio fork should have removed the automatica radio poweroff within the write operations, which I believe might be a good idea to leave power control to the end user.

Another little thing we might want to consider is the library license: it is published under GPL which is known for not being commercial friendly, but I have not enough experience on hardware development to know what that might imply on our potentially commercializable products. I know though this is the reason why maniacbugā€™s library is not publicized on the Arduino playgroundā€¦

Do you guys believe it would be worth to start another independent library under another license, letā€™s say APL or LGPL? I believe I have accumulated enough knowledge about the nRF24 to be able to start the effort on the AVR platform, @BDub proven to have the ability to port it over to the :spark: and probably it would be easy to have a Raspberry port as well, but the point is is it needed?

Definitely the easiest option would be to change the original library license, but I donā€™t see any activity from maniacbug and Iā€™m not sure he would agree on that.

BTW Iā€™ve managed to have an Arduino Micro talk to my Raspberry Pi through the nRF24 boards: piece of cacke once you get around the different size for data types :eyes:

The power up stuff seemed to make sense to meā€¦ if you are trying to Tx, you should make sure youā€™re powered up. Not everyone is going to read the notes and understand how to use the library like we do :wink:

Licenses are an interesting thingā€¦ so far I havenā€™t been messing with it much. Because Iā€™ve been porting libraries, the original license still applies. Havenā€™t thought of if I need to redistribute the original license or not. Iā€™m just making sure to credit the original sources. If you are trying to make money off of these things, you should do your homework.

How much different does a library need to be before you can claim itā€™s your original work?

Maybe we should contact Maniacbug and find out what his intentions are for his licenseā€¦ maybe he really doesnā€™t care about commercializing his libraryā€¦ as long as he doesnā€™t have to actively support it.

With regards to the powerup Iā€™m with you, but I was mentioning the power down: the original library seems to power down the radio right after each transmit operation, which reduces the overall bandwidth in case you want to transmit multiple packets, especially considering the very limited packet size in Shockburst mode, which is the only communication mode supported.

About the license, I believe it would be a license infringment if I start selling a solution including maniacbugā€™s library: it might be a very small part of the total solution, still it would break the lawā€¦ Just by moving the library from GPL to LGPL that solve the legal issue while still having the library open source and allowing open and free contributions.

Iā€™m going to write an email to maniacbug about the license.

About your question regarding the library modification, under the GPL umbrella all your modifications, one line or ten thousands doesnā€™t matter, must be released under the same license. No matter if it is 1% or 500% of library modification, you started from a GPL software and it must remain as such. If you want to release your port under LGPL you need to get written permission from maniacbug and anybody who has ever contributed to the library, even if it is one line of documentation.

Usually itā€™s easier to start from scratch :smiley:

rlogiacco, I did not consider the power down as a ā€œsubstantialā€ modification but you may be correct. It is somewhat easy to add/remove but as you indicate, it comes down to the license. Thank you for making the effort to contact maniacbug.

Might it also be worth considering a different library written by Darran Hunt?

I like very much the addition of the streaming support,the license for that library though might still be a problem as it doesnā€™t call explicitly for any well known OSS licenseā€¦

Oh, Iā€™ve no plan for a commercial product encompassing nRF24 myself at the moment, but still I would keep an eye on that side nevertheless. My humble opinion, obviously :smile:

Finally got some breadboards to mount these radios to for testing. Just been busy and its be cold as shit latley but Iā€™m still looking forward to running range test against the Xbee in the near future.

Gah! Itā€™s absolutely killing me how slow shipping from China isā€¦ I want my radios!! :smile:

Iā€™m very interested in this range test as well! The standard radios seem to be about 40 - 60 feet, so this high power high gain antenna should be much better!

1 Like

Hi, I now have three types of this nRF24L01+ boards in my hands:

  • PLAIN version with the PCB antenna (the one zig zagging on the board)
  • SMD antenna version, the one with the connector and the external antenna
  • AMPLIFIED version, with the external antenna and the amplifing circuit with noise reduction

Iā€™m sorting them by expected range, but I didnā€™t run any reproducible test so far.

Still waiting for maniacbug answer on the licensing thing, but I donā€™t believe heā€™ll ever answerā€¦

2 Likes

The two vendors I placed orders with are both saying wait 10 more daysā€¦ uhg. This is how you get super cheap radios I guess, wait like 1/8th of a year to get them.

Interested to hear your results @rlogiacco

Bummer about maniacbug ā€¦ I really donā€™t look forward to rewriting this library, you know since this one works already.

If you notice his response to replies in his blog post, they seem to come in spurts with long delays in between. He may get around to it, but it might take a while. :frowning: