10 years, 1 month ago.

Nordic or RedBearLab/What is needed right now?

Which platform should one start with, the Nordic nRF51822 platform, RedBearLab nRF51822 platform, or both? Also, what is the greatest area of need right now if one wants to start contributing code to this project?

Thanks

Question relating to:

Bluetooth Low Energy (a.k.a Bluetooth LE, BTLE, Bluetooth Smart)

1 Answer

10 years, 1 month ago.

Hi,

Any of the Nordic nRF51822 family is a good starting point. The board from RedBearLab comes with an Arduino form-factor, so that might be suitable if you're going to work with shields. The mKit (from Nordic) is a mature platform, and has worked very well; so it could be a very reliable platform. The Nordic mKit has been around for quite some time, and it may be coming up for an update. You might do well to wait for a week or so before making your order.

Here are some of the areas which could receive help:

  • Documentation.
  1. Lots of people would benefit from a little hand-holding when it comes to trying out there first BLE application using mbed. It would be nice to have a well written tutorial to capture the first BLE program.
  2. There is a great need for documenting the use of an open-source, offline toolchain to build mbed BLE applications. I use an offline toolchain, and I've been posting around CMake (CMakeLists.txt) files to interested people, but my toolchain uses arm-cc which doesn't come free. Perhaps someone could update my CMakeLists.txt file to build with an open-source toolchain such as llvm-arm or arm-gcc.
  3. Documenting the process of creating a product from one of the supported mbed-BLE platform could be an extremely useful contribution. Many people would like to know how to proceed from the use of an mbed platform to a real product.
  • Extending the BLE API to support GATT client. The S110 soft-device already comes with support for GATT client; this means that we should be able to create applications which query GATT servers on a central after a connection has been established.
  • Help with adding support for CSR1010 as a BLE co-processor. This is an ongoing project, but we'd be extremely pleased to receive help from external contributors.

Thanks for asking about contributing to mbed.

Accepted Answer

Hi Rohit,

I find the work on CMake very interesting. Is it only CMakeList.txt files that is needed, or do you also have .cmake files? AFAIK there is no support for armcc in CMake. Have you posted the files somewhere, or do you send them directly?

Eirik

posted by Eirik Midttun 22 Oct 2014

here's one version of the CMakeLists.txt file I've been circulating; but it might be a bit old. I'll update you with the latest tomorrow.

posted by Rohit Grover 22 Oct 2014

here's' some old documentation around using cmake based build systems.

posted by Rohit Grover 22 Oct 2014

Thanks Rohit,

In regards to extending the BLE API to support GATT client, I assume once I get the updated Nordic, I will have access to the S110 soft device api which I would wrap with mBed BLE api GATT client support for applications to use. Is my logic correct on this? If so, please refer me to the specific area of the BLE api one should focus on to add this support.

Also, please expand on the requirements for adding support for CSR1010 as a BLE co-processor. Would this require the purchase of the CSR1010 platform to work on this? What areas would you recommend focusing on first for this task?

FYI..In the old documentation around using cmake based build systems, the mbed-test/CMakeLists.txt link and the skeleton tree workspace links are broken. I will just wait for your latest CMakeLists.txt so I can update it to build with open source arm-gcc.

Rah

posted by Rah Dev 23 Oct 2014

Here's my latest CMakeLists.txt file; which I use successfully to build the BLE_HeartRate demo.

posted by Rohit Grover 23 Oct 2014

Any help with tweaking the above CMakeLists.txt file to generate binaries with alternate toolchains would be greatly appreciated. If you additionally provide instructions to install/build the toolchain, you'll surely qualify for a lot of good karma.

@Eirik: only CMakeList.txt files (together with an installation of an alternate toolchain) should be needed. There have already been some forum posts regarding people using gcc (or similar); so it might be a matter of simply integrating those other projects into this CMakeLists.txt file and releasing good quality documentation.

posted by Rohit Grover 23 Oct 2014

Quote:

In regards to extending the BLE API to support GATT client, I assume once I get the updated Nordic, I will have access to the S110 soft device api which I would wrap with mBed BLE api GATT client support for applications to use. Is my logic correct on this? If so, please refer me to the specific area of the BLE api one should focus on to add this support.

Yes, you have grasped this correctly. The soft-device already has enough in its API to allow us to develop the GATT Client. I would begin with adding APIs for service discovery; but please consult with me about the design before going too far. Designing good APIs is the most critical part of the work.

Please refer to our informal todo list under the section: "peripheral as GATT client" to get some ideas. I'd begin with service discovery.

posted by Rohit Grover 23 Oct 2014

Regarding CSR1010, most of the work has already been done by CSR. Their code hasn't been released to the public, but I can fetch a private copy and share with those who're interested. I expect their code to require some review and cleanup. If anyone is seriously interested in helping out with API development or testing of the CSR1010, I can send them test hardware.

I would recommend that we get all the existing demos running on the CSR1010 as a start. Even getting the Beacon demo to run would be an excellent test of the API; and I suspect CSR would have tackled this already. But we should still check.

posted by Rohit Grover 23 Oct 2014

@Rah: You'll find the client APIs in the file ble_gattc.h within the Nordic SDK.

posted by Rohit Grover 23 Oct 2014

I'd like to move this discussion to https://developer.mbed.org/forum/team-63-Bluetooth-Low-Energy-community/topic/5231/

thanks.

posted by Rohit Grover 23 Oct 2014

Assigned to Rohit Grover 10 years, 1 month ago.

This means that the question has been accepted and is being worked on.