Wiring a Nordic nRF24L01 module to a Gadgeteer socket

Show a picture of your wiring and you code… and I’m sure we can help you get started FREE of Charge :slight_smile:

Hi Jay Jay. take a quick look at the link I posted prior (above). I gave gralin some additional detail about the wiring and code. But in short, I wired the device the same as you did here:

https://www.ghielectronics.com/community/forum/topic?id=5460&page=10#msg67851

see also, the last post on page 2 of this thread.

the reason why I was asking is that sometimes we tend to follow instructions and miss a thing or two, that’s why I was asking to post an image so we can take a look :), please post a picture …

cheers,

Jay Jay, you are quite right about potentially missing the obvious. Happens to us all.

Perpare for THE most comprehensive wiring post for the nordic anywhere on the web.

I wired the nordic using a couple headers and a gadgeteer Breakout module. This targets socket 6 (or 5) on the Cerberus.

Cerberus pinouts are here:
https://www.ghielectronics.com/docs/47/cerberus-developer

Nordic pinouts pic I got form here:
http://forums.parallax.com/showthread.php/130707-Looking-for-Faster-Objects-for-Nordic-Wireless-Modules-nRF24L01-and-nRF2401A?s=90ab738e8b1d086bc178d3114c896b11&p=1203164&viewfull=1#post1203164

Check out the way I mapped everything out (see first and last pics)

Now, this is thorough, but still could be wrong. Please point out my error if you see one. Thanks!

1 Like

I have nothing against Nordics products.
But i would suggest you to look for TI cc253xx line.

I always like to hear new suggestions. What makes the TI stuff great? Is there a netmf driver?

We’re juggling a balance here of not only a good, low cost radio, but also one that is pretty usable without mining ore and casting steel. Just want to do some welding and sanding and be done with it. Nordic may not be the greatest stability, but at least is built into a module form and has .net drivers that (in theory) should work.

@ dapug

It’s dependent on your requirements.

But you can use the same chip set for Z-Stack - ZigBee Pro compliant stack,
RemoTI - RF4CE compliant specification, SimpliciTI really simple and lightweight open-source RF TI’s own protocol.

RemoTI is compatible with other RF4CE compliant devices or sensors.
As RemoTI is RF4CE compliant protocol, then you can enable or disable acknowledgment for data packets, encryption, really long range for data transmission, coexistence with other devices on 2.4Ghz band and more :slight_smile:

Of course there is other chip sets for IEEE 802.15.4 wireless networks, for example STM32W line. But what is interesting from TI in CC253x line. For about ~10$ you can build USB dongle on CC2531 SoC and CC2590/CC2591 range extenders.

You can compile any firmware with UART or SPI communication interface.
Ti providing you high level API to control and configure network processor.

In general, you don’t need any specific driver.
Just regular UART communication.
To setup network processor you need to send 2 commands.
Another command to allow pairing devices, and 1 command to send or receive data.
I spend about 2-3 days to write a small driver for it.

Search eBay or AliExpress, and you will find plenty of modules, kits, debuggers for CC253x SoCs.

@ dapug - What I’m going to try and do is to use an Arduino chip like the ATMEGA328 and wire it up with Nordic nRF24L01 and let the Arduino chip do all the interface work so I can just use it as a serial UART interface. Basically the same as Sparkfun’s Nordic Serial Interface Board (see https://www.sparkfun.com/products/10257)

I’ve made a PCB with the ATMEGA + nRF24L01 + Gadgeteer socket and will try it out within the next day or two. If this works it will be a nice solution that I will be happy to share with anything I learned with you.

2 Likes

@ KiwiSaner - very cool idea. Do tell what you find.

@ slawek - this is great info. It will take some work. I will dig in if I have a chance to at least get familiar. I’m still not sure compiling firmware is the level at which I want to start dev work. We all are involved in this community form different angles, some EE super stars, driver writers, module builders, and then folks that are just .NET developers trying to build apps, and happen to know at least basic electronics (thats my camp).

@ Jay Jay - what do you think about the wiring, or any other ideas why this might fail as mentioned on page 2 here?

@ dapug - So far just further frustrations. My ATMEGA board is supposed to use the internal RC oscillator, but now it refuses to run as soon as I remove my programmer. I will get back to it again at some point. My first project when I receive my Medusa boards will be to try and this bloody Nordic modules to work with that. There are loads of Arduino code examples around for this this and it just HAVE to work.

Just for the record, I had a close look again at your wiring diagram and it corresponds 100% to my wiring diagram as well. (See attached diagram of my wiring)

@ dapug - Dapug, you asked that I report back about my results. At least I can report some measure of success. I am now able to have bidirectional serial communications between two Arduino Uno boards with two nRF24L01 modules which is working quite reliably. It basically acts as an RF serial pipe and what you enter on the one side comes out the other and vice versa.

The reason why I chose the UNO boards is because they use the same ATMEGA328 chip that is on the Medusa Mini. I also put Gadgeteer sockets on my Uno’s and converted them to 3V3 so they work exactly like the Medusa Mini. I also wired the nR24L01 on a Gadgeteer socket with wiring as shown in the picture that I uploaded earlier in this thread.

In other words, this means we will be able to use the nRF2401 on the Medusa products. I still do not understand why it did not want to work on my Cerberes boards before, but at least I know now that the problem was not my wiring or my nRFL01 modules.

I case you are interested, I used the Arduino code from this project : RF24 nRF24L01 Serial Chat example - Networking, Protocols, and Devices - Arduino Forum

There was only one line of code that needed to be changed and that was only because the CS was on a different pin with our wiring. All the rest signal uses the same pins of the Arduino anyway.

I’m now an Arduino fan. Never thought I would be.

So, are you planning to network your nRF devices, or just pipe between 2 points?

Are you planning on making yourself a module that you can plug into .NET gadgeteer? It seems this would be possible as well, but would need to write a layer that can handle messages in and out (i.e. have a .NET class that sends data from cerb to the arduino which then sends via nRF)

I was also not a big fan… but its definitely growing on me too. I am really excited about the low cost Medusa mini mainboards. It makes it possible to make low cost thingies that that interface to other gadgeteer boards via RF

My first application is just to between one master and a number of slave units. The master will just need to ping each slave module in turn and get a return value from each one in turn. With the existing Arduino code this would be dead easy to implement now. I think the biggest challenge would be to ensure low power consumption in order to be able to run the slave modules from batteries.

Yes, I already built this on proto board, Basically just an ATMEGA328 + Crystal and Nordic and a Gadgeteer socket that talks via UART interface to a normal Gadgeteer mainboard.

I probably think too simplistic, but I do not even see the need for a special .NET class. With the existing code now running on my Arduino I can just interface it directly to the Cerb’s Uart and just use normal serial write and reads to talk to a remote device or PC connected to another Arduino board. It just works!

I must admit it would be nice to get the Arduino library for the Nordic module to look a bit more like other Medusa libaries. At the moment it feels a bit messy. I started trying to write a wrapper class but got a bit lost because my Arduino knowledge is still pretty limited. All and all the Medusa libraries makes a lot more sense than regular Arduino libraries. I’m hoping that Lynx will help to make it easier to debug.

Check this out: http://www.rfduino.com/

It is a Nordic Bluetooth low energy radio and Ardunio in 1 tiny module.

cool, but I cant find any specs on it. range, current draw, mesh capabilities, etc. i’m not sure I’m stoked about BT 4.0. Should I be?

@ dapug
I probably should have posted this as well: http://rfdigital.com/?targetpage=item&filterpn=51822

It is the actual module that they use for the RFDuino. There is a preliminary data sheet at that link.

Back in April I asked them how the RF51822 compares to the RF21733 that is used on the RF Pipe module. (http://rfdigital.com/?targetpage=item&filterpn=21733)
I was told that the RFDuino(RF51822) should have better specs for both power and range. They told me that real world throughput for BLE is probably a couple kbyte/sec.

I am still waiting for my Kickstarter reward to arrive. I have seen the Ardunio code and it looks pretty easy to implement communication between devices.

Gmph! Don’t talk to me about RFDuino. I spent quite a large amount on backing that RFduino kickstarter project. And until today I have not yet received any of the rewards despite original expectations that it would arrive by August already. I’ll be surprized it still happens this year. :frowning:

@ KiwiSaner
I am a backer too, I am still holding out hope. I backed with one of the larger rewards that according to their updates was supposed to ship last week or this week. If I don’t hear anything from the by tomorrow afternoon I will be contacting them.

@ dapugSenior

To compile firmware, just open solution in IAR or Code Composer, build it and that’s it.
Also you can download from TI website precompiled binaries.
Only one thing, you need a CC programmer, to upload a firmware.
But you can find it on eBay for ~15$.

@ KiwiSaner

To be able ping your slave devices, you have to keep Rx on Nordic always on. With ~30mA consumption, you batteries will be drained just in a few days.
I would suggest to do a different way, use slave device to send the readings from time to time, put the MCU to sleep mode when you don’t do the readings, keep RF for most the time off, just turn it on to send data and to receive acknowledgment.