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

mkay

  • RFduino Team
  • *****
  • Posts: 405
  • Karma: +15/-0
    • View Profile
Re: RFduino - Using Nordic SDK - Low level access to the silicon
« Reply #15 on: February 18, 2014, 12:22:07 PM »
Hi Cez, for high volume pricing I would recommend getting in touch with a distributor, they may be able to meet your pricing needs.

MrQuincle

  • RFduino Newbie
  • *
  • Posts: 12
  • Karma: +0/-0
    • View Profile
Re: RFduino - Using Nordic SDK - Low level access to the silicon
« Reply #16 on: February 19, 2014, 07:00:08 AM »
The nrf51822 without the bootloader is much cheaper, which is great because we are on a tight budget. We need to mass produce thousands of these.
So I'm looking for any kind of help getting my code running on the cheaper module. It's looking like I'll have to either port all my code over and stop using RFduino altogether, or just use the more expensive RFD22301. Just wondering if there is an easier way.

Hi Cez, I assume there is not so much you are writing on the Arduino site, is there? For most applications the largest part of the code resides on the smartphone. In that case what you can do is offer exactly the same services as the RFduino guys do on the bluetooth side. And that means that your smartphone application will be "RFduino compatible" even though you use your own solution on the nrf51822.

Regarding that, you can work further on this code e.g. https://github.com/mrquincle/bluenet (I got it from Mason on bitbucket). I'm working on indoor localization (with only the option of a smartphone) which requires more code on the nrf51822, but don't be afraid of that. The https://github.com/mrquincle/bluenet/blob/master/src/main_ble.cpp shows how I offer an indoor localization service. Probably in the near future I will provide a service that is compatible with the RFduino apps.

I have to find out how to flash the stuff to the RFduinos, but regarding your mass production solution, this won't be a problem. Feel free to contact me (180 EU per hour). :-D

Good luck.

Timmmm

  • RFduino Jr. Member
  • **
  • Posts: 43
  • Karma: +3/-0
    • View Profile
Re: RFduino - Using Nordic SDK - Low level access to the silicon
« Reply #17 on: February 19, 2014, 09:30:20 AM »
The Nordic web site requires a product key to download the nRF518-SDK required for this procedure. What should I enter there?

Really annoyingly the SDK is not free - you have to buy an evaluation kit of developer kit to get the product key. Fortunately they aren't too expensive - only $100, and then you will get the Segger thing you need too.

(If you think $100 is expensive, consider that TI's bluetooth chip requires the purchase of a $3k compiler!)

mkay

  • RFduino Team
  • *****
  • Posts: 405
  • Karma: +15/-0
    • View Profile
Re: RFduino - Using Nordic SDK - Low level access to the silicon
« Reply #18 on: February 19, 2014, 03:20:45 PM »
Hi Tim, yes the only way is to purchase a kit. FYI the DK gives you a standalone J-link, the EK gives you an onboard J-link.

MrQuincle

  • RFduino Newbie
  • *
  • Posts: 12
  • Karma: +0/-0
    • View Profile
Re: RFduino - Using Nordic SDK - Low level access to the silicon
« Reply #19 on: March 03, 2014, 06:28:06 AM »
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>

I don't know to which version of the code this example refers too. Is it perhaps possible to post an actual diff and tell which version of the SDK is used?

mkay

  • RFduino Team
  • *****
  • Posts: 405
  • Karma: +15/-0
    • View Profile
Re: RFduino - Using Nordic SDK - Low level access to the silicon
« Reply #20 on: March 03, 2014, 11:45:23 AM »
Hi MrQuincle, you need to use:
The Nordic SDK - we want version 4.4.1
The soft device - we want version 5.2.1

kazhugu

  • RFduino Newbie
  • *
  • Posts: 7
  • Karma: +0/-0
    • View Profile
Re: RFduino - Using Nordic SDK - Low level access to the silicon
« Reply #21 on: March 10, 2014, 08:28:15 AM »
To the RFduino team:

Can I mass-program RFduinos taking only the hex file created by Arduino, through the J-link or J-link lite?

Thanks,
Bala

matsk

  • RFduino Jr. Member
  • **
  • Posts: 59
  • Karma: +1/-0
    • View Profile
    • Tinnio IT Konsulting
Re: RFduino - Using Nordic SDK - Low level access to the silicon
« Reply #22 on: May 16, 2014, 02:40:33 AM »
Bump.

A answer please.

mkay

  • RFduino Team
  • *****
  • Posts: 405
  • Karma: +15/-0
    • View Profile
Re: RFduino - Using Nordic SDK - Low level access to the silicon
« Reply #23 on: May 16, 2014, 03:11:40 PM »
Hi, in order to use the J-link you will have to do a full erase on the part, as it is read protected. In doing so you will lose the bootloader and it will no longer function with the libraries and IDE and you will have to use the Nordic tools. The hex generated by the IDE will not run on a part that does not have the bootloader on it. For mass programming you can call the RFDloader from your command line and load a hex without having to use the upload feature in the IDE which compiles the code very single time.

Timmmm

  • RFduino Jr. Member
  • **
  • Posts: 43
  • Karma: +3/-0
    • View Profile
Re: RFduino - Using Nordic SDK - Low level access to the silicon
« Reply #24 on: May 20, 2014, 02:12:36 AM »
If the compile time is significantly annoying in your process, you probably want to rewrite your program to use the Nordic SDK too, since programming via SWD is *much* faster than serial. It takes about 1 second, vs 5-15 for serial.

mtnscott

  • RFduino Jr. Member
  • **
  • Posts: 37
  • Karma: +0/-0
    • View Profile
Re: RFduino - Using Nordic SDK - Low level access to the silicon
« Reply #25 on: June 10, 2014, 02:04:13 PM »
mKay - do you know what the pins 6, 8, & 10 are on the JLink lite connector?  I am building a board with the RFD22301 and was wondering if I could connect GPIO0 and GPIO1 to say - 6 & 8, I could use the Arduino IDE by jumpering TXD and RXD from the USB shield as long as I still had the RFduino bootloader loaded. 

This would give me the ability to load my current Arduino code onto the board, get the devices tested and then when I'm ready to move over to the Native programming environment I could use the same connector to erase the module and load new SW.  This saves me another connector on the board.

UPDATE - after a search of the web it appears pin 6 is used for SWO/EXTa/TRACECTL/TDO, Pin 8 is used for NC/EXTb/TDI, Pin 10 is nRESET.  So I guess I need to put GPIO0/GPIO1 on another connector or put jumpers on the board so I can remove the connection later - but that would result in another set of pins anyway :(

http://www.support.code-red-tech.com/CodeRedWiki/HardwareDebugConnections
« Last Edit: June 10, 2014, 02:21:24 PM by mtnscott »

mkay

  • RFduino Team
  • *****
  • Posts: 405
  • Karma: +15/-0
    • View Profile
Re: RFduino - Using Nordic SDK - Low level access to the silicon
« Reply #26 on: July 10, 2014, 01:38:04 PM »
Hi mtnscott,

You should be able to use pin 6 and pin 8 on the J-link lite connector for GPIO 0 and GPIO 1 as I don't think those are used with this chip. I think only the follow are used, VTref, GND, SWDIO and SWDCLK.

Tim

  • RFduino Sr. Member
  • ****
  • Posts: 105
  • Karma: +2/-0
    • View Profile
Re: RFduino - Using Nordic SDK - Low level access to the silicon
« Reply #27 on: October 29, 2014, 10:28:35 AM »
Hello everyone,

I'm slowly learning about technology relating to BLE 4.0 and how it all fits with RFduino, Nordic, etc.

I'm trying to find a solution for remote distribution of sketch updates for RFduinos out in the field (i.e. RFduino embedded product we sell to customers).  We're trying to avoid needing to include a USB shield and require the customer to download an updated sketch hex file and upload using a custom-written Mac/Windows app (which I have working).  Ideally, our product will support OTA application updates as described by Nordic here:

https://www.nordicsemi.com/eng/Products/S110-SoftDevice-v7.0

The RFduino demo shown in this thread uses Nordic SDK 4.4.1 and SoftDevice 5.2.1.  Is it possible to use SoftDevice 7.0 and take advantage of OTA-DFU?

I realize that I would need to reimplement my RFduino Arduino code using the Nordic SDK.  I'm okay with that if, in return, we can get OTA updates of the BLE application/stack.  This is a huge issue for a company selling RFduino-embedded product to thousands of customers.  Both the added costs of USB connectivity in our RFduino-embedded product AND the added complexity for our customers to have to find a computer, download a sketch update (hex) (and our custom upload app), connect and upload are very significant.  I suspect there's a significant cost to development to switch to the Nordic SDK (plus invest in the Nordic Dev Kit, etc.), but we're willing to make the investment if we get OTA updates.  Make sense?

Are there any limitations to using the Nordic SDK and SoftDevice 7.0 on an RFduino that would prevent me from being able to implement OTA updates?

I'm learning, so some of what I'm asking may be off track.  I appreciate any replies.

Many, many thanks.

Tim

jockm

  • RFduino Newbie
  • *
  • Posts: 10
  • Karma: +0/-0
    • View Profile
Re: RFduino - Using Nordic SDK - Low level access to the silicon
« Reply #28 on: November 26, 2014, 07:48:32 PM »
Hi, sorry the RFduino bootloader is not available for download.

Is it a custom bootloader, or one of Nordic's?  If it is the latter then you could less us which one and those of us with development hardware could then flash it ourselves.

Or (as I mentioned in a different thread) could we just change the linker script to load the code at 0x14000 (or 0x16000 for SDK v6 and S110 v7) and not use the bootloader at all?

Raul

  • RFduino Newbie
  • *
  • Posts: 2
  • Karma: +0/-0
    • View Profile
Re: RFduino - Using Nordic SDK - Low level access to the silicon
« Reply #29 on: May 08, 2015, 05:37:56 PM »
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