Bluetooth Serial with Arduino 101

Hi,

Would it be possible to just setup a serial port with the onboard bluetooth module and a computer? That shouldn't be hard right? But I can't find a way to do that.

Regards,
David

Would like to know something about the bluetooth library(???) too.

Hi David,
Bluetooth Classic Serial Profile (SPP) is not supported since the board is Bluetooth Low Energy-only capable.
Also, you PC probably doesn't have BLE capabilities (in most cases you need an extra USB key).

Cheers David,
I am in the same situation as you are. And with no greater success. my current projects all use old bluetooth boards that work with any terminal or controller and I would like to convert with the 101.
Alas, MF informs me that he cannot assist in this regard.

Arduino features its ability for remote control of robots, cars etc. With this product they apparently cannot provide us with a tutorial or even an example for this simple interface. If I seem to be a bit upset its because I fear I have bought a board I cannot use and wish I could return it.

facchinm:
Hi David,
Bluetooth Classic Serial Profile (SPP) is not supported since the board is Bluetooth Low Energy-only capable.
Also, you PC probably doesn't have BLE capabilities (in most cases you need an extra USB key).

I don't know where but I remember to read that you could implement kind of a serial in ble if you used two characteristics as rx and tx. I think in Adafruits page.

It would be nice if Intel could provide with an example for the 101 board.

edsa:
I don't know where but I remember to read that you could implement kind of a serial in ble if you used two characteristics as rx and tx. I think in Adafruits page.

It would be nice if Intel could provide with an example for the 101 board.

Exactly! I think esda is refering to this configuration for the BLEUart. That should be possible, no? The Bluefruit Micro is Bluetooth low energy as well.

imho 101 should have a wireless programming option.

Hi,

Any updates on this? In March the Curie library should be open sourced. Is it already clear what we will be able to do then?

Hi All

I have been going crazy with 1) trying to figure out ble since I always just use a HC-06 and 2) going through a couple of libraries like the adafruit ble library and sandemp.. library both of which support a Nordic uart service. However, you can not use these libraries directly. It would take some effort to change the libs or add the service especially since I have no idea what I would be doing at this level. Intel should take look at this and take a similar approach since it appears there are folks interested in this. By the way the board pairs just fine with my new windows 10 laptop. I did find a interesting link from MS - nrf 51822 normal usb dongle - Nordic Q&A - Nordic DevZone - Nordic DevZone

Here are a couple of threads for you to check discussing this issue:

https://forum.arduino.cc/index.php?topic=368630.0

http://forum.arduino.cc/index.php?topic=368657.0

http://forum.arduino.cc/index.php?topic=378673.0

Control arduino101 with mobile device using evothings( example ) - Arduino 101 - Arduino Forum -- this is probably the closest

Hope someone decides to take this one on. to be honest - I like the board especially with the IMU on board but I can just use a Teensy or Mega with less effort to make this all work to get telemetry for use with robotics.

Mike

There seem to be various "proprietary" BLE/Serial protocols, but no Standard way to do it.
With no standard, it seems unlikely that we'll see a windows (or any other OS) driver that will provide a Com: port interface to a BLE device, without having to use a proprietary driver (or write one) for each possible BLE device.) Which sucks :frowning:

I have spent the last day trying to see if a workaround exists. There are possibilities but with out a bridge between BLE to com port support we are out of luck. You can get serial data into the nrf UART app on the phone and probably into windows but since I use Processing extensively I can not get that data into the my processing sketches - at least I don't know how at this point. This does work to get the uart service working: Bluetooth Low Energy (BLE) made simple with pfodApp™ Custom BLE controls with no Android coding

Everything I read is that BLE is not meant for streaming large amounts of data or seems like major control activities.

very sad and frustrating.

Ok. Just came across this series of articles that I thought would be of interest to everyone. While its geared towards Windows 8.1 don't see why it shouldn't work with 7 or 10:

Approach for serial over BLE?

Powering up with BLE in Windows 8.1

BLE for developers in Windows 8.1 Part I

BLE for developers in Windows 8.1 Part II

Not sure it this helps anyone but you never know.

Ok All

Repost from another thread on BLE.

Thought you all would like to know that it is possible to get data over a serial port. Well, at least I got it semi working thanks to Jeff Rowberg bglib and the Bluegiga BLED112 dongle

Here is what I wound up doing. I bought the BLED112 dongle. I flashed it with their cable replacement demo written in their bgscipt. After reading a bunch of things on the Nordic web site on the Bluegiga CRP and attaching it to the nRf51822 as well as the bluegiga app note I modified your evothings demo code with the correct services and characterics so the two services matched :).

I used Jeff's Python demo code included in his library and guess what - it worked. I also looked at the serial port and you can see the data coming across in some sort of cyptic format but you see it. Yippe it can be done.

There is an equivalent Java lib that implements Jeff's lib so you can embedded it in Processing. Haven't tried transmitting but should be doable.

If you need the links let me know.

Mike :slight_smile:

Putty-CRP.PNG

Hi All

I have been playing around with the Bluegiga BLED112 dongle Cable Replacement Service (CRP) which essentially creates a serial link to the BLE client. Here are the references to the dongle and the libararies.

Bluegiga BLED112 dongle

Jeff Rowberg's BGAPI - Python and C++

BGLIB JAVA wrapper for BGAPI

The python examples by Jeff Rowberg work out of the box. For testing I am using the pfod example sketch that transmits IMU ax, ay, az data that you can find somewhere on this board but can also be found at Bluetooth Low Energy (BLE) made simple with pfodApp™ Custom BLE controls with no Android coding just scroll down to the Arduino 101 section. The sketch I used from the site was Arduino101_led_control.ino .

You can try a few of the other sketches as well. To use the tie the Bluegiga CRP service to the sketch you have to change the following lines:

// ====  create Nordic UART service =========
BLEService               uartService          = BLEService("6E400001B5A3F393E0A9E50E24DCCA9E");
// create characteristic
BLECharacteristic    txCharacteristic = BLECharacteristic("6E400003B5A3F393E0A9E50E24DCCA9E", BLENotify , 20); // == RX on central (android app)
BLECharacteristic    rxCharacteristic = BLECharacteristic("6E400002B5A3F393E0A9E50E24DCCA9E", BLEWriteWithoutResponse, 20);  // == TX on central (android app)

to

// ====  create Nordic UART service =========
BLEService uartService = BLEService("0bd51666e7cb469b8e4d2742f1ba77cc");
// create characteristic
BLECharacteristic txCharacteristic = BLECharacteristic("e7add780b0424876aae1112855353cc1", BLENotify, 20); // == RX on central (android app)
BLECharacteristic rxCharacteristic = BLECharacteristic("e7add780b0424876aae1112855353cc1", BLEWriteWithoutResponse, 20);  // == TX on central (android app)

After getting this set up I moved on to the Java version of the BGLIB working using the BGLIB-GUI example in in the libarary. Unfortunately this took a couple weeks to get working. I finally got it working with the Arduino sketch and am able to read the acceleration values and send commands compatible with pfod sketch :). Was even able to get the led blinking on the Arduino 101 board.

Now that this is done I hoping get it ported over to processing in some form or there. If I had any clue what I was doing instead of trial and error the process would probably go faster.

Cheers
Mike

Mike,

Thank you for the help as well as your blood, sweat and tears. The ultimate interface to Processing should prove useful.

Thank you also for your posts.

Vic

Vic

Thanks for your comments its nice to be appreciated. Working on converting the Java BGLIB-GUI to processing as we speak. Will have more in the next few days.

Mike

Just a quick update. I am using the BLED112 to connect to the Arduino 101 over the serial port of the pc. I haven't been able to get it to work with processing but with Python there does not seem to be any problem. As a proof of concept I made added a Matplot plot of the accel data coming over the ble to the PC using the BLED112 CRP Python code from Jeff Rowberg. Here is a quick screen shot.

Accel Plot Over BLE

Adding a "standard" Bluetooth chip (along the BLE chip) to Genuino 101 board would have been a win-win. But...this situation sucks

Well, that's what ESP32 will have: BLE+Bluetooth 2.0 (+ wifi, but that's another story). It's clearly the path Arduino ís missing

Anybody porting ESP32 chip to Arduino?