Close
0%
0%

i/o node

nrf24le1 IoT Development Kit

Similar projects worth following
The nrf24le1 SoC could be extremely useful for IoT applications. Many projects already use the nrf24l01 chip, which also needs a microchip to run it. The le1 is the exact same radio combined with a microprocessor. I believe it hasn't been used as much because it isn't very easy. This project will address that.

I have already completed the software side of this project for both Windows and Linux. I also wrote a Wiring library.

Once completed, this will be a very inexpensive, small, and flexible base for IoT applications.

I recently ported the floe/BTLE library to this platform and used it to develop an Eddystone-URL beacon.

I have been spending most of my time with the nrf51822, but took some time to add a few things, document things, and update this page.

But to get going on this, read these posts:

Programmer

Environment

Sublime Plugin

  • 1 × NRF24LE1 QFN24 version
  • 1 × 2450BM14A0002 Johanson matched balun
  • 1 × 2450AT18A100E Johanson 2.4GHz chip antenna
  • 1 × TSX-3225 16MHz crystal
  • 1 × 24AA01T 1k EEPROM

View all 7 components

  • Eddystone-URL

    Justin11/07/2015 at 02:58 0 comments

    After porting the BTLE library, I made something useful out of it, an Eddystone™-URL Beacon. I modified the BTLE library I ported to make it easier. There are 3 protocols defined, URL, UUID, and telemetry, however only the URL variant can be used due to the packet size constraint of the nrf24le1. A typical beacon is going for somewhere around $15.00 and the development kits for around $35.00. You can buy nrf24le1 modules on aliexpress for around $5 and a programmer for $3.

    The main drawback to using a nrf24le1 is you only have 8 characters to work with for the URL. This is made a bit easier because the standard has abbreviated codes for http://www, .com, .net/ etc. I used 3.ly to make an address, qr.net/bfu3j, which fits into the space available. The other thing you lose out on is the over-the-air configuration, but that's not a deal-breaker.

    I have included an Eddystone-URL template in my Sublime plugin. If you just want to take a look at it, you can download the zip here.

  • Bluetooth Low Energy Added

    Justin11/06/2015 at 08:44 0 comments

    Sort of anyway. I ported this library. I haven't really put it to use, but it is interesting to see the little nrf24le1 being used like this. I tried making some sort of beacon with it and succeeded in making an Eddystone-URL beacon.

    I'd be interested to see how this might be effectively put to use, I'm sure there are some ways; I don't have much app development experience. Using only the GAP advertising packet seems somewhat cumbersome.

    Anyway, it is available in the Sublime plugin package. Zip of a barebones project here.

  • Software Updates

    Justin06/30/2015 at 04:14 0 comments

    While I'm waiting for things to come in the mail, I've been working on the software part of this project.

    • Sublime Text plugin - The software can be installed through Package Control; Ctrl + shift + P, type "package control" and find Install Package, then type "io Node Framework". After it has been installed; Ctrl + shift + P, type "io node" and choose "i/o node: Create Project".
    • Major work on wiring.h
    • Major work on porting the RF24 library

    Both the wiring library (wiring.h) and the RF24 library (rf24.h) are included in the software installation.

    Todo:

    • make the package available outside of Sublime
    • find someone to package my programming perl script for OSX

  • Node Board Ordered

    Justin06/22/2015 at 05:55 0 comments

    I received the parts a few days ago and re-routed the board about 3 times. I sent it off today to dirtypcbs.com.

  • Software Package

    Justin06/17/2015 at 17:20 0 comments

    I have heavily borrowed from SublimeAVR, a Sublime Text plugin that lets you use the AVR toolchain, and made the equivalent for the nrf24le1. There will be a Windows and Linux version.

    The Windows version will include GNU Make and the programmer (which is a perl script) 'compiled' so that the end-user doesn't need to bother setting up a perl environment. It also puts the required include and lib directories in the project and a Makefile so that everything just works out of the box.

    The Linux version is mostly the same, with a 'compiled' perl script that includes the dependencies so there won't be any fuss installing extras. Make won't be included since it's likely to be installed anyway.

    That should mean that SDCC and Sublime Text will be the only required installs. And neither will require any tinkering.

    After everything else is ready, I will put this on Package Control so it will be easy to install. Until then, check it out at my repo.

  • Parts Order

    Justin06/13/2015 at 06:00 0 comments

    I have ordered all the parts for one dev board to verify my footprints match. After that, I'll order more parts and have the board made.

    Here is the DigiKey order. 1-off parts are pricey. I have found less expensive places for most of the parts.

    I got a Leonardo Micro and a bunch of 74LVC245s for about $10.00 also.

  • PC development environment

    Justin06/13/2015 at 05:51 0 comments

    The PC side of this is already done. I just need to package it up nicely.

    Compiler:

    When it comes to compilers, there is only free option, SDCC. The other option, Kiel, costs an outrageous amount of money. SDCC works in both Linux and Windows.

    SDK:

    Likewise, there is only one option here. Someone named Brennen did a huge amount of work and compiled an SDK that makes use of nearly the entire chip's functions and released it to everyone under an open source license. Combine this with my Wiring library and you get a familiar and portable environment.

    IDE:

    I considered integrating this with the Arduino IDE, but then I remembered how awful that is in comparison to just about everything else. Right now I am using Sublime and a make file. It works , although it could use some work to automate things. It works on Linux and Windows. build-essential is required on Linux for make. You can try installing CygWin on windows for make, but I have just been using a bat file called make.bat. Sublime doesn't know the difference.

    Programmer:

    I have forked Dean Cording's perl script and Arduino sketch to program the le1.

  • Programmer details

    Justin06/13/2015 at 04:06 0 comments

    I currently have a mess of wires from a le1 hookup board to an Arduino Uno. This works, but barely. The le1 is not 5v tolerant per the datasheet, but it is tolerant 98% of the time, the other 2% will kill it. Not to mention the wires and the extra board.

    To make things better, I am going to use an Arduino Pro Micro 3.3v and use that as a programmer and UART bridge. Combined with a cheap module breakout, this should make be a big improvement. Programmer software here.

    I might design a dedicated PCB for it one day.

  • Wiring Library

    Justin06/13/2015 at 03:45 0 comments

    Here is a link to my Wiring library page.

    It gives you analogRead, digitalWrite etc.

  • Other breakout modules

    Justin06/13/2015 at 03:42 0 comments

    You can buy a breakout module on aliexpress for around $5.00. I considered just using those, but I soon ran into a spaghetti tangle of wires connecting power, sensors, programming pins and whatever else. I also found, to my annoyance, that each company sells a different breakout. I have multiple versions of le1's. Each one has different pinouts. It is impossible to reliably replicate things. One supplier might disappear and I'll be left figuring out some new board. And, they all come with 1.27mm headers which is very inconvienent to work with.

    Also, I want to design a board from start to finish. Just to do it and see it work.

View all 13 project logs

Enjoy this project?

Share

Discussions

alpha_ninja wrote 11/06/2015 at 15:58 point

I'm not sure what dimensions that PCB has, but it might qualify for #The Square Inch Project :D

  Are you sure? yes | no

Jithin wrote 06/19/2015 at 16:27 point

That's a real pity with Nordic.   They have built a great radio at dirt cheap prices, but screwed up making a usable unified solution involving an MCU. 

They seem to have licensed an ARM Cortex M0 for making a BLE device (nRF51822) . Dev board costs about $5 now. If it becomes any cheaper, it'll probably take over the market.

I ordered an NRF24LE1 dev board off Aliexpress.  Will try and get USBASP to work somehow. There are some pages in russian with some vague steps on modifying USBASP for LE1.

  Are you sure? yes | no

Justin wrote 06/19/2015 at 17:24 point

I would be interested to see a free dev kit for this module. I stopped looking at it soon after it was released and a $100 eval kit key was required to access the SDK. I'm sure things have changed since then, I hope so at least. But yes, I agree, that chip does a lot for the cost. 

  Are you sure? yes | no

Jithin wrote 06/19/2015 at 05:21 point

Nice work!
I'm also working on similar lines, but with the radio-only version. Had stayed away from the MCU+radio version because all the official downloads seemed to be windows executables, and there was an overall closed source outlook.

Should take a closer look now.  It seems it can be programmed with USBASP

thanks

  Are you sure? yes | no

Justin wrote 06/19/2015 at 15:47 point

You are right, Nordic created a minimal compiler+SDK package and threw it out in the wild. I have never used it because the compiler costs $1k+ 
You may be able to program an le1 with a USBASP, but not without some work. It needs more pins then are available (unless you can use the extra pins on the 10-pin version). An Arduino works, even without a level shifter, for the most part. I have killed one chip with it though. I'm waiting for my programmer PCBs to arrive and hopefully it will all work out well. 

Thanks for the comment.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates