Unable to detect Arduino 101 BLE

Hi all,

I have recently recieved my Arduino/Genuino 101 after a time fiddling with UNOs and Mini Pro, i have run and modified for my proyects the "Arduino/Genuino 101 CurieIMU Orientation Visualiser" tutorial and no problem.

The issue is that when I have tried either of the BLE tutorials, Heart Beat Monitor, ButtonLED, CallBackLED etc, I have not been able to found the device in the Cellphone.

The cellphone is a BQ Aquaris 4.5 with Android 6.0.

I have tried nRF Toolbox, nRF Master Control and even BLE 101 (that i found here in the forum from a user) and have not been able to find the device.

I also tried with a Samsumg Galaxy S4 Mini, this one does have bluetooth 4.0, but i'm not sure about BLE capabilities. Android version i do think is 4.3, but neither sure about this.

Does someone else experienced the same problem?

Thanks.

Try add "CurieBLE" library manually before you download sketch into Arduino 101.

Hi linletian,

I’ve tried, as you suggested, including the library, but still I have not been able to detect the BLE.

I’ve used the following code:

/*
Copyright (c) 2015 Intel Corporation. All rights reserved.

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-
1301 USA
*/

#include <CurieBLE.h>

const int ledPin = 13; // set ledPin to on-board LED
const int buttonPin = 4; // set buttonPin to digital pin 4

BLEPeripheral blePeripheral; // create peripheral instance
BLEService ledService(“19B10010-E8F2-537E-4F6C-D104768A1214”); // create service

// create switch characteristic and allow remote device to read and write
BLECharCharacteristic ledCharacteristic(“19B10011-E8F2-537E-4F6C-D104768A1214”, BLERead | BLEWrite);
// create button characteristic and allow remote device to get notifications
BLECharCharacteristic buttonCharacteristic(“19B10012-E8F2-537E-4F6C-D104768A1214”, BLERead | BLENotify); // allows remote device to get notifications

void setup() {
Serial.begin(9600);
while (!Serial); // wait for the serial port to open
pinMode(ledPin, OUTPUT); // use the LED on pin 13 as an output
pinMode(buttonPin, INPUT); // use button pin 4 as an input

// set the local name peripheral advertises
blePeripheral.setLocalName(“ButtonLED”);
// set the UUID for the service this peripheral advertises:
blePeripheral.setAdvertisedServiceUuid(ledService.uuid());

// add service and characteristics
blePeripheral.addAttribute(ledService);
blePeripheral.addAttribute(ledCharacteristic);
blePeripheral.addAttribute(buttonCharacteristic);

ledCharacteristic.setValue(0);
buttonCharacteristic.setValue(0);

// advertise the service
blePeripheral.begin();

Serial.println(“Bluetooth device active, waiting for connections…”);
}

void loop() {
// poll peripheral
blePeripheral.poll();

// read the current button pin state
char buttonValue = digitalRead(buttonPin);

// has the value changed since the last read
boolean buttonChanged = (buttonCharacteristic.value() != buttonValue);

if (buttonChanged) {
// button state changed, update characteristics
ledCharacteristic.setValue(buttonValue);
buttonCharacteristic.setValue(buttonValue);
}

if (ledCharacteristic.written() || buttonChanged) {
// update LED, either central has written to characteristic or button state has changed
if (ledCharacteristic.value()) {
Serial.println(“LED on”);
digitalWrite(ledPin, HIGH);
} else {
Serial.println(“LED off”);
digitalWrite(ledPin, LOW);
}
}
}

The only change i’ve introduced from the example of the 1.6.9 IDE is the inclusion of line:

while (!Serial); // wait for the serial port to open

So the sketch will not start unitl the Serial port is open so i can be sure when it starts.

Thanks.

Ok,

I get in contact with support from Arduino and they told me that the issue is that my phone only has Bluetooth 4.0 and in order to be able to detect and use Arduino 101 BLE it is necessary that it is either 4.0+EDR or 4.1

Something I have not found previously in the description of the board, they just either said "BLE" or Bluetooth 4.0

Quite pissed, to be honest.

Regards, Manuel.

Update regarding the BLE conection.

Besides contacting support, I ordered another two 101 boards from the same supplier, these boards arrived this weekend and testing them the example utilities ButtonLED and HeartRateMonitor worked without any problem with the same smartphone I was using, with Bluetooth 4.0

I'm getting in contact with the supplier to return the first board that is not working.

Anyway, I am profoundly disappointed with the support guy who told me that the issue was that Bluetooth 4.1 was required.