spirilis

[S]Nordic nRF24L01+ RF BoosterPack

39 posts in this topic

Now available in the 43oh Store.

 

Anyone interested in such a beast? The modules are available dirty cheap on ebay, less than $3/module for the cheap PCB antenna trace versions...

They run in the 2.4GHz ISM band at 250Kbps, 1Mbps or 2Mbps with configurable transmit power (-18, -12, -6, 0dBm) and 125 available channels, and the chip has on-board protocol support so that the MCU utilizing it can think in terms of <=32-byte packets with 3, 4 or 5-byte addresses, and it handles all the OTA stuff including CRC checking and auto-acknowledgement. The chip communicates over SPI, maximum 10MHz. I've written a library for the MSP430 value line here: https://github.com/spirilis/msprf24
Wiki documentation for the library here: https://github.com/s...is/msprf24/wiki


Anyway for my current project (grill/smoker thermocouple monitor) I've designed a BoosterPack that is meant for a base station; it includes the 8-pin rectangular pinout used by most of the cheap modules on ebay (ITead Studios carries modules with this same pinout -- http://imall.iteadst...m120606002.html -- although FYI the current/RF power specs listed are wrong on that page) and an FTDI cable pinout for using a 3.3V-level FTDI cable for faster serial I/O. If there is interest I might design one that is more general-purpose and look to get it produced.

The pinout requires the use of 3 GPIO lines in addition to the SPI lines, one interruptable (the IRQ line) so it can be used with LPM modes.

The boosterpack I created for this project looks like this (for MSP430G2553 fyi):
(top)
nrfboost_top.png
(bottom)
nrfboost_bottom.png
This particular board includes support for an LM2936 LDO (3.3V 50mA) so the base station can be supported by a single USB connection (the FTDI cable, which provides 5V Vcc...) although while this supports most nRF24 boards with PCB trace or WiFi-style RP-SMA antennas, it wouldn't support the amplified board ITead carries since that can draw upwards of 115mA during TX. So I'd redesign that if interest for the FTDI pinout feature is high. Then again there's a thread around here about tricking the LP's TUSB chip into running at higher speeds so FTDI support might not be necessary.

Another idea that might make more sense is a boosterpack that places the nRF24 pinout further out to the right or bottom of the LP headers, so it's stackable and lets you add nRF24L01+ support to your project while putting an LCD or touchscreen on top. PCB cost goes up with surface area though.

Edited by bluehash
Added store link.
CorB, bluehash and gordon like this

Share this post


Link to post
Share on other sites

Could you add support for this style as well? Should be pretty easy to add another pin configuration. Apparently these two designs actually come from an app note from the company who makes the chips (I think the eagle files are available somewhere - probably the reason for the clones on eBay).

 

I picked up two of each design - I'd definitely be in for a few - I was planning on making one. I'd definitely suggest a format that allows stacking of other boards on top - I was planning on adding an LCD on top - probably Rob's 2.2" LCD.

Share this post


Link to post
Share on other sites

This is awesome! This should not prevent stacking as the radio sticks out on the other side.

When can we see/buy this?

 

Edit: Foot print shows otherwise. For his CC2500 boosterPack, Robg stuck the radio outwards from the board.

Share this post


Link to post
Share on other sites

I'll start working on the PCB for a general-purpose one. I also have a bunch (well, ~8) of the cheap modules, it'd probably be good to sell them through the 43oh store along with the board (they take about 3 weeks to arrive from China normally...)

 

And yeah I'm gonna put the footprint outside the board for this :) Actually I'll go hunt that one down and see what he did...

Share this post


Link to post
Share on other sites

Had some time, made a first draft this afternoon... looks like OSHpark charges around $13 for a set of 3 boards at this size (~$4.38/piece):

 

nrf24_43oh_top.png

nrf24_43oh_bottom.png

 

Supports the 8-pin and 10-pin variants (only 1 at a time), allows the user to cut solder-jumpers and rewire the CE/CSN/IRQ pins using jumper wires (note each of the LP headers has an inner row of holes for accepting jumper wires) and cut/jumper solder jumpers as needed to switch from USCI_B (default) to USI.

 

Tossed in pads for an electrolytic cap and/or ceramic cap in case bulk capacitance is needed (e.g. to handle some of those PA+LNA amplified monsters)

 

Note: Those solder jumpers are actually thin, the OSHpark visual mockup script seems to be relying on the Solder Mask layer to render the copper... there's a good bit of solder-unmask space around the jumper hence why it looks so wide.

And the USI jumpers aren't connected at all, it's just a wide open SMD-1210 pad with no soldermask between them.

Share this post


Link to post
Share on other sites

I re-did the board, cleaning up a few things (solder jumpers are closer together so it'll be easier to use 0603 resistors to bridge them, which I have a ton of...) and annotated it much better. Went ahead and ordered a set of 3 from oshpark to test. Bluehash gave me the lowdown about selling PCBs through the store, and we were considering a group buy for the nRF24L01+ modules.

 

 

 

Here are the updated boards-

nRF24_43oh_draft2_Top.png

nRF24_43oh_draft2_Bottom.png

Share this post


Link to post
Share on other sites

Hi Spirilis,

Now is a good time to start a GB on the nRF24L01+ radios.

I regularly buy stuff from the store from Aliexpress.

Here is a list:

http://www.aliexpress.com/wholesale?shi ... eedQuery=y

 

and here is a good deal:

http://www.aliexpress.com/item/2-PCS-NR ... 20674.html

 

If you give the go ahead, I'll start the GB. For PCBs, I can sponsor the first batch of 10 boards from Seeed. If you want to wait till the OSH pcbs arrive to validate the design, it would be wise to wait on the Seeed order, if you wish.

 

The GB though can start taking PCB+radio orders. What do you say?

Share this post


Link to post
Share on other sites

Those prices for the modules look great! Let's go ahead with the GB. I am not familiar with how Seeed works, I just submit my orders as is to OSHpark and they charge by exact area, so I will take a closer look at Seeed and see if there's something that may need adjustment.

Share this post


Link to post
Share on other sites

Hmm well, playing with the dimensions a bit..... I don't see this footprint fitting inside a 5x5 or two inside a 5x10 at all, not without first moving the nRF24 pads inside (but that makes it non-stackable). I tried trimming the top & bottom but the closest I could get was 26.67mm, that x 2 is more than 5cm and panelization really wouldn't work since the V-notch or drill holes between the boards would be dangerously close to active traces. It'd have to be one per 5x10 and that raises the cost quite a bit.

 

Side note: Wow, Seeed is cheap! OSHpark boards are amazing quality but for larger runs Seeed kicks ass!

 

Edit: Nevermind, 5cmx5cm just means I need to extend the board up or down, not out the side.... (RobG's ethernet boosterpack sitting in front of me--I seem to be dimensionally challenged today!)

 

I'll rework the board so the nRF pads come out the bottom. That way it's easily stackable with RobG's ethernet boosterpack too.

bluehash likes this

Share this post


Link to post
Share on other sites
Those prices for the modules look great! Let's go ahead with the GB. I am not familiar with how Seeed works, I just submit my orders as is to OSHpark and they charge by exact area, so I will take a closer look at Seeed and see if there's something that may need adjustment.

I can help you out with the Seeed order, when you are ready.

Share this post


Link to post
Share on other sites

Ok guys, I redid the board to fit inside a 5cm x 5cm block. The board will not include any FTDI crap but does include 40-pin LaunchPad semi-support (pads for the inner headers aren't broken out for soldering jumper wires to CE/CSN/IRQ/MOSI/MISO, but the inner headers do have pads for pass-thru headers so other 40-pin BoosterPacks may stack on top). Since the SPI headers are standardized as part of TI's BoosterPack standard, I would think this board should also work with the Stellaris LaunchPad.

 

Solder jumpers are used so the default connections assume the use of USCI_B for SPI, and P2.0/P2.1/P2.2 for CE/CSN/IRQ respectively.

There are optional pads for adding capacitance, either a 1206 form factor ceramic capacitor or an aluminum electrolytic thru-hole capacitor. I will note that I have seen the nRF24 fail due to a lack of capacitance before; the LDO regulator built into the launchpad handles everything fine, but if you supply your own power via another boosterpack or whatever and don't offer enough output capacitance (10+uF, I personally use 22uF ceramic caps) you may find your module mysteriously reset to "powerdown" mode after initialization.

 

There is also a setup for status LEDs, I chose to use transistors to minimize the load on the I/O pins, a PNP transistor + 10K base resistor + 1K current-limiter (change/adjust to your liking) drives the IRQ status, which should glow only when the IRQ line is low (should be helpful for debugging bad code that's not handling the IRQ properly)

An NPN + 10K base + 1K current-limiter drives the SPI I/O LED, which connects to the SCK pin and should flicker lightly with SPI activity.

 

Both of those are completely optional... All SMD components btw, and the pads (including LED pads) are configured so they're close enough that 0603 components will fit, but long/wide enough that 1206 size components will fit too. Transistors are SMD SOT23 and good examples are here:

NPN - http://www.mouser.co...Up7HZCcW018iC0=

PNP - http://www.mouser.co...771-PMBS3906215

 

I used OSHpark's website to generate mockup images of the new boards:

nRF24_43oh_Seeed_Top.png

 

 

nRF24_43oh_Seeed_Bottom.png

 

Supports SparkFun linear layout, 8-pin rectangular and 10-pin rectangular breakout boards. Only 1 at a time... and the boards should point out the bottom of the LaunchPad for easy stackability.

Share this post


Link to post
Share on other sites

Thought I'd attached gerbers for this to the thread, looks like I didn't... Here they are:

 

Seeed gerbers: Seeed_43oh_nRF24_5x5.zip

 

OSHpark.com gerbers: OSH_43oh_nRF24.zip

 

Parts/BOM:

nRF24_IRQ LED - SMD LED, 0603/0805/1206 should work

SPI_I/O LED - SMD LED, 0603/0805/1206 should work

R1 - 10K SMD resistor, 0603/0805/1206 should work

R2 - 1K SMD resistor, 0603/0805/1206 should work

R3 - 1K SMD resistor, 0603/0805/1206 should work

R4 - 10K SMD resistor, 0603/0805/1206 should work

Q1 - PNP BJT transistor, SMD, SOT-23, example: http://www.mouser.com/Search/ProductDetail.aspx?R=PMBS3906,215virtualkey66800000virtualkey771-PMBS3906215

Q2 - NPN BJT transistor, SMD, SOT-23, example: http://www.mouser.com/Search/ProductDetail.aspx?R=PMBS3904,235virtualkey66800000virtualkey771-PMBS3904235

Share this post


Link to post
Share on other sites

Reposting this from the GB-8 thread:

PS- When I get the boards (should be soon), I am going to populate the Q1/Q2 transistors for the LEDs so folks don't have to mess with ordering those. Not changing the price of the boards at all (the transistors cost all of 5 cents a piece anyway), and that way folks only need to supply SMD resistors and LEDs to get the SPI and nRF IRQ status LEDs working.

 

So ignore Q1 and Q2 from the BOM.

Share this post


Link to post
Share on other sites

PS- Hadn't realized what HASL surface treatment was until now (solder coating). There's just enough solder on these pads that I needn't add any of my own, I'm just dabbing a tiny amount of flux on each one and the transistors are going on quick. Very nice.

Share this post


Link to post
Share on other sites

Two finished boards (which I'll keep)-

post-15991-0-81646700-1353551506_thumb.jpg

That's a Stellaris LaunchPad btw. Fits great over the MSP430 launchpad too of course.

Note the 0603 resistors for the LED circuit ... looks tiny against those pads, but no extra solder required b/c of the HASL coating either.

 

 

The rest of the boards with PNP & NPN transistors soldered on-

post-15991-0-09773400-1353551514_thumb.jpg

 

Next task: Qtip+alcohol, clean flux off all the boards.

After that, test my newly soldered boards...

abecedarian likes this

Share this post


Link to post
Share on other sites

Boards work:

post-15991-0-04268500-1353553341_thumb.jpg

 

 

The LP on the right is a v1.5 with a G2553 transmitting a command every 500ms or so, the LP on the left is a v1.4 LP with a G2533 (and custom gender benders I had OSHpark make a while back, since I'd soldered female headers on my old LP) blinking its LED upon receipt of every packet. Red LED blinking perfectly.

 

Status LEDs on the boosterpacks work correctly too; the SPI I/O in this example is barely a flicker, and the nRF IRQ briefly flashes in unison with that. If there was a bug in the firmware and it wasn't answering nRF24 IRQs correctly, the LED would go on hard so you'd see it. Should be handy for troubleshooting.

JonnyBoats and bluehash like this

Share this post


Link to post
Share on other sites

Boards work:

dsc_4892.sm.jpg

 

 

The LP on the right is a v1.5 with a G2553 transmitting a command every 500ms or so, the LP on the left is a v1.4 LP with a G2533 (and custom gender benders I had OSHpark make a while back, since I'd soldered female headers on my old LP) blinking its LED upon receipt of every packet. Red LED blinking perfectly.

 

Status LEDs on the boosterpacks work correctly too; the SPI I/O in this example is barely a flicker, and the nRF IRQ briefly flashes in unison with that. If there was a bug in the firmware and it wasn't answering nRF24 IRQs correctly, the LED would go on hard so you'd see it. Should be handy for troubleshooting.

That's good news! I'll put this up on the Blog.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now