Bounty for update and fixes?

Oct 11, 2013 at 9:29 PM
I have neither the time nor expertise in low level bit twiddling on this driver, but I have these devices and a need to use them in a current project. I've made futile attempts to get this to work on .NET Micro 4.2.

There have been tons of posts about this in other forums such as GHI (Gadgeteer) where people are having no success getting this to work. Since the community effort is also futile, I'm willing to donate funds to help the cause if someone is willing to resurrect this project.
Oct 12, 2013 at 9:02 PM
Could you elaborate more on your project? Which .NET Micro Framework boards are you using, which Nordic modules, how many, what are your goals. If my hardware resources are sufficient i think I'm able to help you out.
Oct 13, 2013 at 4:21 PM
hey gralin. Good questions. I'll give you what info I know here.
  • I'm using the latest code from codeplex here, but compiling to netmf 4.2. No other changes, except that instead of installing the gadgeteer module, I'm just calling the Nordic.cs module class from my little test gadeteer project.
  • I'm using Gadgeteer Cerberus on socket 6
  • I'm confident the wiring is correct (more on that below)
  • When I execute nordic.SendTo() I get "Send Failed"
  • I notice that in HandleInterrupt() the _transmitFailedFlag.Set() is always called
  • I don't know enough to dig deeper or where to put breakpoints and look for more clues
I've tried to do clever things like put a 2nd nordic device on socket 5 (assuming that is supported) and have it talk to 2 devices on a single cerberus. I cant remember if I tried talking to 2 different cerberus devices on socket 6, but can go try that. I just assumed it's failing internally before a transmit is even actually executing, but I don't know.

Have a look here:

That whole thread actually has a lot of good info. Wiring is pretty straight forward after looking at the nordic spec and gadgeteer socket 6.

I have my wiring set up like Jay Jay here:

I'm using a simple Gadgeteer Breakout module rather than Extender.
Oct 13, 2013 at 4:52 PM
And you are using the regular nRF24L01 modules or the '+' versions? I will take a look at your problem during the week and we'll see if I can help out.
Oct 13, 2013 at 7:24 PM
Edited Oct 13, 2013 at 7:28 PM
Yeah its a plus. I've got a few to test from, but might pick up a few more with different antennas to test. Btw, i figured once I figure out my own blocking issue I'd do the work to create a new v4.2 gadgeteer module and check it in as a patch to consider here. Maybe add additional content and tutorial too.
Oct 28, 2013 at 5:18 PM
gralin, I've not made further progress, but I did post additional detail over in the GHI forums, first listed link above.
Jan 19, 2014 at 4:29 PM
Edited Jan 19, 2014 at 4:29 PM
Gralin, RoachSlayer

Is there any progress ? I am struggling with the exact problem. I have a Fez Cerb 40 II and nRF24L01+ modules, but so far i could not get it working in .net mf 4.2.
Can you please help?

Jan 19, 2014 at 10:56 PM
Edited Jan 20, 2014 at 8:08 AM
Ok this is the test I made.
  • I have installed all the latest bits for .net mf and gadgeteer,
  • I have updated TinyBooter and TinyCLR on my FEZ Cerberus,
  • I have created a new Gadgeteer module library using the latest template
  • I have created two simple apps that send data from one to another (one for FEZ Mini and the other for FEZ Cerberus)
  • Everything worked :)
This is the resulting Gadgeteer module installer. Please note that the name of the module might change as i just typed in what came to my mind (Gadgeteer Nordic). Let me now if you have any problems with this.
Jan 24, 2014 at 11:09 PM

Thank you for the test! Since i do not have the hardware for the Gadgeteer module, i still used the compiled version i had before.
After reading your results, since i had no doubts about the software any more, i had a closer look at the hardware.
I found out i had 3 cables not making proper connection and one of the Fez Cerb II boards had one or more broken GPIO's.
Now everything works! !!!!
It will be very useful for people not so experienced with Nordic and .Net Micro Framework to add some troubleshooting hints.
For example in my case i added these lines of code after Enabling the nordic object:
        Debug.Print("Channel = " + nordic.GetChannel().ToString());
        Debug.Print("Address = " + new string(Encoding.UTF8.GetChars(nordic.GetAddress(AddressSlot.Zero, 5))));
        Debug.Print("Frequency = " + nordic.GetFrequency().ToString());
        Debug.Print("Status = " + nordic.GetStatus().ToString());
If nordic does not communicate properly with the micro controller, you will get back
Channel = 0
Address =
Frequency = 2400

I found i do not need the extra capacitor as described here:

Thank you for your help! Conclusion is that the code works fine on 4.2 as well.

Jan 24, 2014 at 11:46 PM

I'm glad it works for you. You are right about the debug prints, I do exactly the same if I have any doubts ;)
Nov 25, 2014 at 4:45 AM
Edited Nov 25, 2014 at 4:50 AM
Gralin, did you post the source for that updated module? I'm on gadgeteer v4.3.6.0 and your module is on so it wont load. And as often as GHI keeps revising the SDK, the only way to keep up is via source to simply recompile.

Also, did you change the library at all, or just create that module? (meaning, that last test you did with the Cerb, did it use the same May or Oct 2012 nordic lib?

Also, post the sample hello-world you used for the test that succeeded for you. That could go a long way. Thanks!
Nov 25, 2014 at 5:56 AM
Edited Nov 25, 2014 at 6:00 AM
I got the whole thing working on netmf 4.3 and two Cerbs on socket 6. I imagine it would work with my Hydra and Spider too.

I'd like to submit my update, including a simple Hello-World sample, and give this nordic rf24 a bit more shelf life. I don't use SVN, only TFS, and I am unfamiliar with codeplex, so what is the best way to get you the code?