Author Topic: RFduino - Using Nordic SDK - Low level access to the silicon  (Read 23433 times)

bpatters

  • RFduino Newbie
  • *
  • Posts: 3
  • Karma: +0/-0
    • View Profile
Re: RFduino - Using Nordic SDK - Low level access to the silicon
« Reply #30 on: May 14, 2015, 07:34:42 AM »
Thanks for writing these. I'd already figured out the JLink pins from another message and gotten my custom board designed/printed, but I was having trouble getting the code to run correctly when I enabled the BLE stack. The section about SDK + SoftDevice versions and  setting the clock to 250_PPM fixed the problems I was having with running my custom stack!

Hi Everyone, we have created a video to show you in detail on how to get started with the Nordic SDK and RFduino. This is only for those who have special needs that require low level access to the silicon. Please note after erasing the RFduino, you will no longer be able to use the Arduino IDE.

<a href="http://www.youtube.com/v/FMdcDRUT45g" target="_blank" class="new_win">http://www.youtube.com/v/FMdcDRUT45g</a>

bpatters

  • RFduino Newbie
  • *
  • Posts: 3
  • Karma: +0/-0
    • View Profile
Re: RFduino - Using Nordic SDK - Low level access to the silicon
« Reply #31 on: May 14, 2015, 09:17:50 AM »
You will need your own JLink  programmer, education one is good enough. You need the ARM Cortex M0 adapter/cable which is a separate purchase.
For the rfduino you will just need to hook up the correct JTAG pins to the programmer and then power the rfduino with a battery or shield of some sort.
You will then need to get the correct versions of the nrfSDK and SoftDevice (very important, I wasted a lot of time trying to use latest versions) and use the nrfgo studio to program the softdevice.
Next setup eclipse to be able to build using nrfsdk (not hard, there is a link somewhere explaining this).
Change the CHO type to xxab and the revision to C0.
Finally setup your project and when you initialize the BLE stack be sure to use the correct CLOCK define as outlined in the top of this thread.
Should be good to go from there. The above is easiest on windows. Took me a while to get a build environment setup for MAC and to program it correctly.

The other option is to create your own board in Eagle with device footprint rfduino has provided.
Then add a JLINK connector footprint and route the lines to the rfd chip.
Then Run a power line as appropriate.
Batch these up to get 3 samples though OSH park.
Buy a Hot air re-work station to solder all of the parts (amazon as a great all in one with pre-heat available for $230). You could do it with a hand solder, but I suck at hand soldering so try to avoid it where possible.
Solder your parts on and then use the ARM Cortex M0 cable and adapter for the JLink to program it.


I've done both of the above successfully, the first option is faster and I'd recommend it first to learn the NRFSDK. Working with the SDK/Softdevice programmers for a beginner is a pretty rough start (I'm a profession programmer but hardware is relatively new to me). Once you have that tackled the second option gives you the most flexibility and Eagle + board creation is actually relatively easy these days even for beginners if you put the time into watching youtube video's and tutorials. My very first board design with a Battery (2.3-5.5 volt) input --> 5v regulated --> 3.3 regulated lines, JTAG connector and rfd22301 chip worked with my first batch of boards (hot air soldering the TPS61232 VSON was scary since it was my first board AND first time hot air soldering)

Getting the NRFSDK configured correctly for the rfd22301 was the hardest part, required some information from this thread for me to get it right. You also need to use the xxab cpu config from what I found and the default is xxaa.



 
A year has passed from the initial post and I have some doubts.
I have acquired an RFduino and I want to program the device using low level access.
I have acquired too a Nordic Development board nRF51-DK
Is it possible to use the Segger on the board for programming the RFduino or should I use a J-Link?
With the J-Link student is enough or should I use another?

On the other hand, are you development products still avaiable to program the RFduino with this method?

Thanks in advance
« Last Edit: May 14, 2015, 10:02:53 AM by bpatters »

Anoop

  • RFduino Newbie
  • *
  • Posts: 4
  • Karma: +0/-0
    • View Profile
Re: RFduino - Using Nordic SDK - Low level access to the silicon
« Reply #32 on: June 25, 2015, 08:43:41 PM »
Hi bpatters,
Thanks for your post. You mentioned to used the correct versions of the nrfSDK and SoftDevice. I could not find the exact versions on the Nordic website. Could you post the versions you used. Below is the direct link

https://www.nordicsemi.com/eng/Products/Bluetooth-Smart-Bluetooth-low-energy/nRF51822-Development-Kit

Thanks again for your help.

bpatters

  • RFduino Newbie
  • *
  • Posts: 3
  • Karma: +0/-0
    • View Profile
Re: RFduino - Using Nordic SDK - Low level access to the silicon
« Reply #33 on: June 25, 2015, 10:06:04 PM »
mkay posted the versions you needed in this thread, as well as the clock definition change you need. those were the two pieces i needed to get everything working, besides the standard information needed to get a jtag connection defined. It's been working great for me so far.

Quote
Hi MrQuincle, you need to use:
The Nordic SDK - we want version 4.4.1
The soft device - we want version 5.2.1

Anoop

  • RFduino Newbie
  • *
  • Posts: 4
  • Karma: +0/-0
    • View Profile
Re: RFduino - Using Nordic SDK - Low level access to the silicon
« Reply #34 on: June 26, 2015, 11:50:53 AM »
Thank you! Took a while to locate the early versions of the installation files on Nordic website. Posting the direct links as it might help others to save time. nrF SDK 4.4.1 is no longer available but 4.4.2 worked for me.

https://developer.nordicsemi.com/nRF51_SDK/nRF51_SDK_v4.x.x/

http://www.nordicsemi.com/eng/nordic/Products/nRF51822-Evaluation-Kit/S110-SD-v5/23290








mkay posted the versions you needed in this thread, as well as the clock definition change you need. those were the two pieces i needed to get everything working, besides the standard information needed to get a jtag connection defined. It's been working great for me so far.

Quote
Hi MrQuincle, you need to use:
The Nordic SDK - we want version 4.4.1
The soft device - we want version 5.2.1
« Last Edit: July 10, 2015, 07:21:46 PM by Anoop »

 

anything