Add Bluetooth Low Energy (BLE) to Spark Core

One possible option(1) would be to place this nRF8001 device in the binder, this can most likely be battery powered and be able transmit periodically (once in 1.28 seconds). The ceiling devices need to be BLE devices like the estimote but they need some additional software to run a mesh over BLE so they can say, “I see they binder” and relay that information to the BLE node with the Spark.io via the BLE mesh, which can then send it to cloud.

Another option(2) would be use a mesh based on the mysensors system and use the spark.io and mysensors to get to the cloud. This would not use BLE so any phone based tracking will not work over BLE but the spark cloud will know. I do not see mysensors and spark.io integration yet, but that should be very simple to do as well, as mysensors is Arduino based.

Another option(3) would be to use a combo mysensors option to use the nRF8001 device and have a mesh which is BLE+mysensors so it will work with BLE and have a mesh.

The simplest option(4) would be to stick a ibeacon or nRF8001 board into the binder and use a phone based BLE app to search for the beacon using the RSSI of the signals coming from the binder. This however does not show the location immediately as you would need to search for it but it will make the search a more efficient.

Option (2) and Option(4) are very close to reality, Options 1 and 3 need more work before being available.

Thanks for all of your ideas. I’m running down this path at the moment: http://community.spark.io/t/detect-ibeacons-using-spark-core-and-ble-mini/5554. It seems promising. Cheers!

1 Like

@kennethlimcp I have been using the RFduino for a while now. It has some limitations on the BTLE interface as it has pre-defined characteristics and services. You can only use the ones they provide. That said you can accomplish BTLE communications very easily with the device. It also requires Arduino IDE. Let me know if you need any help with the RFduino.

1 Like

Spark forgive me for promoting other products on the Spark forum but in this case I think it’s important.

@jlr I wanted to suggest the RFduino for several reasons -

  • Its bluetooth low energy, probably only ~30 ma compared with ~200ma for WiFi
  • It has gazelle supported, this is a peer-peer mesh network
  • Its farily easy to get started with BTLE, you don’t have to learn all about the BT protocol.

You could setup a mesh network around the school as @daviddedwin suggested. It’s small and can operate from a pair of AAA batteries.

Happy to answer any questions

I also don’t want to advertise other products as such, but I think until the SparkLE comes out, its good to share other products that could help others or even be combined with a link between them (serial)

Today I received the Light Blue Bean from Punch Through Designs, and I must say initial impressions as awesome, the device is extremely small if you removed the breadboard at the base it would be smaller then the Spark Core!

Out of the box (or even in the box) load up the mobile apple on your iPhone and bam you already controlling the LED, taking accelerometer and temperature data! after that just load up some Arduino code and flash OTA with BLE and you can make it do anything

If you wanted to combine the two units I believe you could use a software serial between the units which in a way would allow you to use the best of both worlds :smile:

They also have a similar community to Spark.io and similar pricing to the original Core, but the Photon just beats everyone on price!

Will keep everyone updates post-christmas once I get to play with the toys :smile:

Looks like most if not all solutions out there (RFduino, LBB included) do not provide a BLE Central mode where the uP could initiate and collect data from other BLE peripherals. Could someone explain why? Is it because it is assumed a suitably powerful device (e.g. RPi) to be the star hub for heavy data lifting, that it just make no sense (technically & economically) to do it on a less powerful one such as the Photon?

It is because I am imagining the SparkBLE is receiving data from a few BLE peripherals that are gathering environmental data, and act upon those data according to some predefined logic (e.g. acceleration is zero and smoke detector turns HIGH) and may be upload some of them to the backend in case more decision power is required (e.g. motion history and air quality). Isn’t this use case so uncommon or impractical to perform let alone the more powerful processors such as the RPi or the Edison?

Do you have any idea why the nRF UART iOS application does not connect? I’m getting the same issue as described here.

The Nordic stack included with the RFduino is the S110. It only supports peripheral mode. The S130 stack (in beta) supports both modes, however my communications with the RFduino folks do not show any promise for any other stack to be supported. You can however take their module and wipe it, flash your code and use the S130 stack (which is what I plan to do).

As for the LBB, It's based on the TI 2540 chip. The datasheet indicates it does support a central mode, however not sure if the folks over at punch thru designs are planning to support that.

I'm guessing they have all limited the BT to peripherals because supporting peripheral modes is very easy and you can limit the GATT profiles and still have a useful device (for hobby) but if you want to get into mainstream products you need more control.

2 Likes