Monday, June 21, 2010

nRF24LE1 SDK with AES for SDCC

For all of those interested, I have been working on an SDK for the nRF24LE1 chip to use with SDCC. I mainly wrote it for my purposes, but I want to release what I have written. The code is public domain, but I would definitely appreciate it if you linked back to the site if you use it in a project! The nRF24LE1 SDCC SDK lives here.

As it stands, not all of the hardware systems have been implemented (the most glaring omission is probably I2C). Also, some of the subsystems have not been fully tested (the power control block being one of them). If there are any bugs, feel free to let me know.

For those interested, there is a second SDK that I'm releasing (currently set up to build with SDCC for the 24LE1, but can be reconfigured). I have fully implemented AES in this SDK, as well as ported my ARC4 implementation (and made it object-oriented, as well). That library can be found here. It is released under the same terms as the nRF24LE1 SDK.

The AES library can be configured to use the nRF24LE1's built-in AES hardware accelerator or to use an included library function that does the Galois multiplication in software. This means that you can also use the same AES implementation with other microcontrollers than the 24LE1, since it doesn't tie you to using the hardware accelerator. This should make it easier if you're using the 24LE1 as a data collection node that reports information wirelessly to a more powerful central microcontroller, but you want the central microcontroller to also be able to encrypt/decrypt AES data.

If you want to use these libraries, you have to let SDCC know where to find the header files and libraries. For the compile step, you should add "-I [PathToLibrary]/include" (without quotes) to your command line. For the link step, you should add "-L [PathToLibrary]/lib" (without quotes) to your command line. Replace "[PathToLibrary]" with whatever the path is to the top level of the library on your system (including the top level folder, which would be either nrf24le1_sdk or cryptography).

Labels: , , ,


At July 1, 2010 at 5:26 AM , Anonymous Anonymous said...

They look great. Thank you very much!


At October 11, 2010 at 7:14 AM , Blogger ksinkar said...

your non-aes sdcc sdk which you have released in the public domain seems to be useful, but can be of more help if you release it under an open-source license (preferably LGPL) so that it can be included in the sdcc project (whatever part of your code that might be helpful) without further complications. Finally its your call.
Please let me know

At October 11, 2010 at 9:40 AM , Blogger brennen said...

I have added LGPL 2.1 licensing to the libraries locally. It will be included when I release the next version of the libraries (soon).

At October 28, 2013 at 9:13 AM , Blogger Nimo Tim said...

Very nice post. I just stumbled upon your weblog and wanted to say that I've truly enjoyed browsing your blog posts. After all I will be subscribing to your rss feed and I hope you write again soon!
Also visit my web-site:Black Friday HP Chromebook 11 Deals or Coupons

At November 30, 2013 at 7:35 AM , Blogger Rosalindahallam said...

In this year I want to buy a vacuum cleaner. Unfortunatly, There aren't any deals for my product at local market. I think I have to find a deal for vacuum cleaner at onlion shop like Amazon.

At March 21, 2014 at 10:49 AM , Blogger Константин Володин said...

Have you a code example for nrf24le1
that sending data to the
nrf24E1 ?

At August 8, 2018 at 8:08 AM , Blogger damion said...

FULL list of top android apps with This Month 7 Featured Android Apps Reviews and their quick tips and tricks. Androidpowerhub the Great Blog of Android.

At December 6, 2018 at 10:38 PM , Blogger for IT the said...

Great Article
Final Year Project Domains for CSE
Project Centers in Chennai

JavaScript Training in Chennai
JavaScript Training in Chennai


Post a Comment

Subscribe to Post Comments [Atom]

<< Home