Go Down

Topic: Bluetooth Serial with Arduino 101 (Read 17318 times) previous topic - next topic

MarvinMaker

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

luckysam

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

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).

sasabs

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.

edsa

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.

MarvinMaker

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.

AdrieK

imho 101 should have a wireless programming option.

MarvinMaker

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?

Merlin513

#8
Feb 29, 2016, 03:59 pm Last Edit: Feb 29, 2016, 06:42 pm by Merlin513
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 - https://devzone.nordicsemi.com/question/53565/nrf-51822-normal-usb-dongle/

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

http://forum.arduino.cc/index.php?topic=382753.0  -- 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

westfw

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 :-(

Merlin513

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: http://www.forward.com.au/pfod/BLE/index.html

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.


Merlin513

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.


Merlin513

#12
Mar 19, 2016, 10:33 pm Last Edit: Mar 20, 2016, 02:12 am by Merlin513 Reason: Updated info
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   :)

Merlin513

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 http://www.forward.com.au/pfod/BLE/index.html 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:

Code: [Select]
// ====  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

Code: [Select]
// ====  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

vdolcourt

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

Go Up