This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Getting started.

Hello everyone,

I've been reading about BLE dev kits lately for one of my projects. I purchased the BLE Mini by RedBear Labs and had a good time with it... till I started writing my own custom firmware. TI's BLE stack is virtually unavailable in India (I mean, I cannot download it from their site even after filling their request form).

The BLE Mini works awesome with my Arduino Uno (and Mini and Nano). As per the documentation on TI's developer's forum, I need the IAR Workbench to compile a firmware. I got a copy of their CC254x SDK from Git but its incomplete. I have been having massive headaches looking around for help related to CC254x. Sometimes my CC debugger doesn't work, sometimes there is a missing library when I try to make a USB compatible firmware, sometimes it just doesn't work! There is hardly any documentation.

Reading about Nordic's nrf8001 on a forum, I guess this will be a good choice. But I do have questions. I'm planning to buy the nrf8001 Development kit so I understand that I'll be getting goodies with it like a getting started guide, samples and documented SDK. My questions are:

Is it really necessary to buy the NRF6700 -nRF Go Starter Kit? This guy here says he interfaced an Arduino without the nRF Go starter kit.

Is the nRF Go starter kit necessary to develop my own custom firmware (for nRF8002... no firmware upgrades required in 8001 I guess)?

Does the documentation provide a umm... how-to on how I should go about developing my own firmware? If not the documentation, I hope (recalling my bad experience with CC254x) that Nordic's forum is more active and provides help.

Reading the link above, I have a strong feeling that nrf8001 is a good choice but I just want to be sure.

  • The mcu that is provided with the nRF8001 development kit is the nRF8200 and not the nRF8002.

  • Hi,

    You can use an Arduino or compatible board as an alternative to the nRFgo starter kit. You can use the Bluetooth low energy SDK for Arduino available at devzone.nordicsemi.com/arduino to start firmware development.

    If you choose to use a different micro-controller you will need to port the ACI library to the microcontroller. Basic ports of the ACI library and examples are available for msp430, TIVA, lpc1769, lpc1114 etc. These are available on the devzone or available on request at the Nordicsemi support portal through your mypage account. Ports of the nRF8001 library also exist for Microchip's PIC controllers but you need to request Microchip for access to these libraries. In addition the nRF8001 library and basic examples also exist for the Maple (STM32) and the ChipKit (PIC32) using their Arduino compatible interfaces.

    The nRF8001 development kit comes with a master emulator dongle and access to an SDK and documentation. The Bluetooth low energy SDK for Arduino can also be used with the nRF8001 development kit.

  • Hi, thanks for your reply. I've been looking into the Arduino code. I haven't yet received my BLEShield yet, it is due next week.

    I also wanted to ask a few (two) more questions. Please check the reply as I cannot post links in a comment.

  • I'm trying to get Apple's ANCS to work with nRF8001. The documentation says that ANCS is a primary service having a specific UUID and has three characteristics.

    I'm using nRFGo Studio to program the nRF8001 (again, I have not yet received my dev kit so I'm doing theoretical work). My questions are:

    Q1. Since ANCS is a primary service, do I make a new service in the Studio? I made a new service called "ANCS" and then added three characteristics to it using the UUIDs from the ANCS documentation. I then added the service to the "Remote" column.

    Q2. Can I use a pre-defined service (like Heart Rate service)? More clearly, can I add the documented characteristics to a pre-defined service?

    I guess I have to make a new service. Adding this service to the "remote" column basically means that nRF8001 will look for that particular service in a remote device (iOS in this case). Am I understanding it correctly?

    I just want to be sure because, due to shortage of time, I'll have to write the firmware directly to NVM so I cannot undo it.

  • Q1. Since ANCS is a primary service, do I make a new service in the Studio? I made a new service >called "ANCS" and then added three characteristics to it using the UUIDs from the ANCS >documentation. I then added the service to the "Remote" column.

    Yes, this is correct.

    Q2. Can I use a pre-defined service (like Heart Rate service)? More clearly, can I add the >documented characteristics to a pre-defined service?

    If you want to use the ANCS you have to as per Q1. You can always add any Service that you want to your local GATT Server.

    Since the ANCS requires using a bond, please take a look at using the "ble_proximity_template" for Arduino as the start point to add the ANCS pipes to the "Remote" .

Related