Git Product home page Git Product logo

arduinoble's People

Contributors

aentinger avatar agdl avatar alranel avatar bboyho avatar bigbearishappy avatar cparata avatar dependabot[bot] avatar dominsch avatar eltos avatar facchinm avatar fpistm avatar giulcioffi avatar grobx avatar ippie52 avatar jacobhylen avatar karlsoderby avatar konikoni428 avatar laviator98 avatar leonardocavagnis avatar liamaljundi avatar lukas-kv avatar manchoz avatar mklemarczyk avatar per1234 avatar polldo avatar roleroz avatar sallasia avatar sandeepmistry avatar tlossen avatar wenn0101 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

arduinoble's Issues

BLE central read characteristic takes 400 m/s

Not sure if this is the right place to ask, tried de Arduino Forum without succes.

With a Arduino Nano 33 IOT, as central device, I'm able to connect with my Ultrasonic anemometer, discover services (180d) and subscribe to the characteristic (2a39) which holds the value with the wind data. Each time when I read this value it takes 400 milliseconds (where it sends at 4 Hz) between the results. The code is based on the Peripheral Explorer example.

The characteristic has read and notify capability. Think I'm sending a "read" each time instead of responding on notification. Tried setEventHandler, the value is 1 but the length is 0 (where with read the length was 10).

The developers instruction from the Ultrasonic:
https://calypsoinstruments.com/website/static/Dev_manual_Ultrasonic_Portable_1.8.pdf

Hope someone can give some guidance. Thanks in advance.

No low power mode possible

Hello everybody,
I read that the BLE part of the processor runs on its own. Now I wanted to put the main processor into sleep mode.
Normally the processor should find sleep/deepsleep by itself if there is nothing to do. However, I still measure currents in the examples of about 16-18mA (Arduino Nano 33 BLE).
So I assume that the sleep-mode is blocked by a function.
Can someone confirm this or give me a clue how to put the controller into sleep mode? I tried the mbed::sleep() command, but without luck too.
It should be possible to send the main core to sleep and maintain the BLE functionality, right?

I miss the register list where I could try to make the changes by my self. Could someone help me and say where the software guide is?

Greetings,
Knowless

setManufacturerData not advertising for me w/MKR WIFI1010 brd

Hi, despite setting the ble manufacturer data in code, it is not advertised based on 4-5 different ble peripheral detector apps including Light Blue. The local name, device name, and service id are being advertised...just the manufacturer data is never visible.

Tried smaller byte sizes of manufacturers data...I think we are well under the max byte size for an advertising packet. Tried to advertise just manufacturer data w/o service id, tried to advertise w/ the optional argument of company id....nothing seems to make it visible. Since other information set in code is being advertised, then it seems like something specific to manufacturer data is an issue. The lib source code seems good but I'm not an expert. Hope you can help us! We need this for our product.

Here is latest code snippet.

  while (!Serial);
  //begin initialization
  if (!BLE.begin()) {
    Serial.println("starting BLE failed!");
    while (1);
  }
  Serial.println("Bluetooth device active, waiting for connections...");
  // connect to HG iphone apps
  BLE.setLocalName("ICBHR");
  BLE.setDeviceName("ICBHR2");
  //
  uint8_t data[10] = {0x31, 0x37, 0x30, 0x33, 0x30, 0x30, 0x32, 0x37, 0x31, 0x31};
  BLE.setManufacturerData(data, sizeof(data));
  BLE.setAdvertisedService(HGService);
  BLE.addService(HGService);
  BLE.advertise();
}

Sending classes

Trying to send my own object from peripheral to central and from what I can work out, this should work:

peripheral:

class TestClass
{
  public:
    unsigned long id;
};

TestClass t;

void sendData()
{
  testDataChar.writeValue(&t, sizeof(TestClass)); // and update the battery level characteristic

  t.id = t.id + 1;
  Serial.printf("id: %lu\n", t.id);
}

central:

class TestClass
{
  public:
    unsigned long id;
};

void readData()
{
    TestClass t;
    characteristic.readValue(&t, sizeof(TestClass));
    Serial.printf("id: %lu\n", t.id);
}

... but all I'm getting back is id: 0 for each packet sent. Is there something I'm doing wrong? I couldn't find any examples anywhere.

Arduino WiFi Rev2 RGB control

Please add API to control the built-in RGB which is connected to pins 25,26,27 for Arduino MKR and Arduino WiFi Rev2

Thanks

Output/Transmit power

According to nina B3 datasheet the output power can vary from 0dBm to 8dBm.

Can we change it from ArduinoBLE library?

if not, does anyone know the default value?

Thank you in advance.

No #defines for Nano 33 BLE/Sense in BLELocalDevice.cpp

Looking at the .begin() and .end() functions inside BLELocalDevice.cpp, there are defines for the following boards:

#if defined(ARDUINO_SAMD_MKRWIFI1010) || defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_SAMD_NANO_33_IOT)

But there's nothing for the Nano 33 BLE or Sense.

Is this why you have to power cycle the board rather than issuing a BLE.end() followed by BLE.start() to reconnect?

If I knew what the internal definition name was for the Nano 33 BLE, I'd try a quick fix myself, so if anyone can point me in the right direction, it would be much appreciated.

Forced to sleep mode after a while?

Hello,
Configuration: Arduino ble 33 nano, cutted 3.3V jumper in order to supply with 3.3v direct to 3.3pin, soldered vusb jumper in order to have serial debug and re-flushing.

Here is my sketch:

#include <ArduinoBLE.h>
#include "LSM9DS1.h"
//Services
BLEService BatteryService("180F");
BLEService SensorService("92a041f8-69de-48ae-a610-6d2e54854fe0");
//Characteristics
BLEUnsignedCharCharacteristic batteryLevelChar("2A19", BLERead | BLENotify);
BLEStringCharacteristic accelerometer_data("abb6f371-c8d4-4c65-9470-140b686698bd", BLERead | BLENotify, 48);
BLEStringCharacteristic gyroscope_data("f1abb263-686f-4a5b-8a8f-39690d3f3020", BLERead | BLENotify, 48);
BLEStringCharacteristic debug_system("f1abb263-686f-4a5b-8a8f-39690d3f3020", BLERead | BLENotify, 48);

String values_to_send = " ";
float x_accel, y_accel, z_accel, x_gyro, y_gyro, z_gyro;
float x_accel_f, y_accel_f, z_accel_f, x_gyro_f, y_gyro_f, z_gyro_f = 0;
String debug_to_send = " ";

void setup() {
  Serial.begin(9600);

  pinMode(LED_PWR, OUTPUT);
  digitalWrite(LED_PWR, LOW);
  
  if (!lsm9ds1.begin()) {
    Serial.println("Failed to initialize lsm9ds1!");
    while (1);
  }
  lsm9ds1.init();// initialize sensors and parameters
  if (!BLE.begin()) {
    Serial.println("starting BLE failed!");
    while (1);
  }

  // set advertised local name and service UUID:
  BLE.setLocalName(SENSOR_NAME);
  BLE.setAdvertisedService(BatteryService);
  BLE.setAdvertisedService(SensorService);
  // add the characteristic to the service
  BatteryService.addCharacteristic(batteryLevelChar);
  SensorService.addCharacteristic(accelerometer_data);
  SensorService.addCharacteristic(gyroscope_data);
  SensorService.addCharacteristic(debug_system);
  // add services
  BLE.addService(BatteryService);
  BLE.addService(SensorService);
  // start advertising
  BLE.advertise();
  Serial.println("BLE Peripheral");
}

void loop() {
  // listen for BLE peripherals to connect:
  BLEDevice central = BLE.central();

  // if a central is connected to peripheral:
  if (central) {
    Serial.print("Connected to central: ");Serial.println(central.address());
    Serial.print("Acceleration binary status: "); Serial.println(lsm9ds1.read_accel_status(), BIN);
    Serial.print("Gyroscope binary status: "); Serial.println(lsm9ds1.read_gyro_status(), BIN);
    // print the central's MAC address:
    Serial.println(central.address());

    // while the central is still connected to peripheral:
    while (central.connected()) {
      if (lsm9ds1.accelerationAvailable()) {
        lsm9ds1.readAcceleration(x_accel, y_accel, z_accel);
        // set alpha to zero if you don't want to apply the low pass filter
        accelerometer_data.writeValue(low_pass_filter(x_accel, y_accel, z_accel, 0.01, 0));
      }
      if (lsm9ds1.gyroscopeAvailable()) {
        lsm9ds1.readGyroscope(x_gyro, y_gyro, z_gyro);
        gyroscope_data.writeValue(low_pass_filter(x_gyro, y_gyro, z_gyro, 0.01, 1));
      }
      updateBatteryLevel();
      update_temperature();
    }
    // when the central disconnects, print it out:
    Serial.print("Disconnected from central: ");
    Serial.println(central.address());
  }
  BLE.advertise(); // start advertising again 
}
void updateBatteryLevel() {
  int batteryLevel = map(analogRead(A0), 612, 815, 0, 100);//815 is analog max
//  Serial.print("analogRead(A0): ");Serial.println(analogRead(A0));
//  Serial.print("batteryLevel: ");Serial.println(batteryLevel);
//  delay(250);
  batteryLevelChar.writeValue(batteryLevel);  // and update the battery level characteristic
}
void update_temperature() {
  debug_to_send = " ";
  lsm9ds1.read_system_temperature();
  debug_to_send += String(lsm9ds1.temperature) + "|";
  debug_to_send += String(analogRead(A0));
  debug_system.writeValue(debug_to_send);
}

String low_pass_filter(float x_axis, float y_axis, float z_axis, float alpha, int sensor) {
  values_to_send = " ";// re initialize array
  if (!sensor) { // sensor = accelerometer
    x_accel_f = alpha * x_accel_f + (1 - alpha) * x_axis;
    y_accel_f = alpha * y_accel_f + (1 - alpha) * y_axis;
    z_accel_f = alpha * z_accel_f + (1 - alpha) * z_axis;
    values_to_send += String(x_accel_f) + "|";
    values_to_send += String(y_accel_f) + "|";
    values_to_send += String(z_accel_f);
  }
  else {
    x_gyro_f = alpha * x_gyro_f + (1 - alpha) * x_axis;
    y_gyro_f = alpha * y_gyro_f + (1 - alpha) * y_axis;
    z_gyro_f = alpha * z_gyro_f + (1 - alpha) * z_axis;
    values_to_send += String(int(x_gyro_f)) + "|";
    values_to_send += String(int(y_gyro_f)) + "|";
    values_to_send += String(int(z_gyro_f));
  }
  return values_to_send;
}

In short the sketch creates services and characteristics and advertises it self. When a central is connected, i write some values on the characteristics. I am using nrf connect android app to debug the procedure.

Everything running smoothly expects when waiting for a central for "too long". I cannot specify "too long" time period yet, but i can say that is about 20-30 minutes.
When this time period exceeds, while my device still adverises and seeking for a connection, despite the fact that the device is discoverable and connectable, the central device cannot read its services. More specifically, it seems that the connection is made (i am assuming that because the application let me to disconnect from the device ) and tries to read the advertised services without a success. After a few seconds the connection is lost.

Bellow are the logs from the application. The error is "Error 22 (0x16): GATT CONN TERMINATE LOCAL HOST"
Screenshot_20191107_092548_no nordicsemi android log

I am assuming that this is not a bug from the application because the same thing happens with other apps too. I believe that the device is going to sleep mode by default (i have to prove that by measuring the current). Despite that, the "library" should interact with radio signal and quit from sleep mode, if this is the case.

Does anyone experienced something similar?
Is it true that the device is forced to sleep mode? and if yes why central's cannot read its services?

P.S. I know that i have to power with 3.3v to 3.3v pin, but i am connecting 3.3v pin direct to lipo battery (4.2-3.2 V). I dont have a clue that this is the problem.

---------------UPDATE--------------
When the device is attached to usb the above problem never occurs.

begin() doesn't work after end() on Nano BLE 33, have to power cycle

Hi,

The begin() function does not behave as expected following an end() and instead I have to power cycle. This is similar to #33

I've created two minimal examples for people to try below:

Example 1:

  1. Initialise BLE
  2. Call BLE.disconnect() 10 seconds after connected to central
  3. Re-advertise 15 seconds later to allow reconnection

Expected behaviour - disconnect from central and allow reconnection after re-advertising
Actual behaviour - works as expected

#include <ArduinoBLE.h>

BLEService TestService("DEAD");
BLECharacteristic TestData("BEEF", BLEIndicate | BLENotify, 2, true);
BLEDescriptor TestDescriptor("BEEF", "Test");

uint32_t genericTimer = 0;
bool wasConnected = false;

void setup(){
    initBLE();
}

void loop(){
    BLEDevice central = BLE.central(); // begin listening for centrals to connect

    if(central){
        genericTimer = millis();
        while(central.connected()){
            if(millis() - genericTimer >= 10000){ // Wait 10 seconds after connect
                BLE.disconnect(); // Disconnect BLE
                wasConnected = true;
            }
        }
    }

    if(wasConnected){
        genericTimer = millis();
        while(millis() - genericTimer <= 15000){} // Wait 15 seconds after disconnect
        wasConnected = false;
        BLE.advertise();
    }
}

void initBLE(void){
    BLE.begin();
    BLE.setEventHandler(BLEConnected, blePeripheralConnectHandler);
    BLE.setEventHandler(BLEDisconnected, blePeripheralDisconnectHandler);
    BLE.setLocalName("TestName");
    BLE.setDeviceName("Test Device Name");
    TestService.addCharacteristic(TestData);
    TestData.addDescriptor(TestDescriptor);
    BLE.addService(TestService);
    BLE.setAdvertisedService(TestService);
    BLE.advertise();
}

Example 2:

  1. Initialise BLE
  2. Disconnect and end() after 10 seconds of connection to central
  3. Wait 15 seconds and try to re-start BLE system again

Expected behaviour - system disconnects, then ends BLE service, and restarts it correctly
Actual behaviour - unable to restart BLE with begin() after calling end()

#include <ArduinoBLE.h>

BLEService TestService("DEAD");
BLECharacteristic TestData("BEEF", BLEIndicate | BLENotify, 2, true);
BLEDescriptor TestDescriptor("BEEF", "Test");

uint32_t genericTimer = 0;
bool wasConnected = false;

void setup(){
    initBLE();
}

void loop(){
    BLEDevice central = BLE.central(); // begin listening for centrals to connect

    if(central){
        genericTimer = millis();
        while(central.connected()){
            if(millis() - genericTimer >= 10000){ // Wait 10 seconds after connect
                BLE.disconnect(); // Disconnect BLE
                BLE.end(); // End BLE service
                wasConnected = true;
            }
        }
    }

    if(wasConnected){
        genericTimer = millis();
        while(millis() - genericTimer <= 15000){} // Wait 15 seconds after disconnect
        wasConnected = false;
        initBLE();
    }
}

void initBLE(void){
    BLE.begin();
    BLE.setEventHandler(BLEConnected, blePeripheralConnectHandler);
    BLE.setEventHandler(BLEDisconnected, blePeripheralDisconnectHandler);
    BLE.setLocalName("TestName");
    BLE.setDeviceName("Test Device Name");
    TestService.addCharacteristic(TestData);
    TestData.addDescriptor(TestDescriptor);
    BLE.addService(TestService);
    BLE.setAdvertisedService(TestService);
    BLE.advertise();
}

Weak signal doesn't trigger disconnect() and hangs in multiple places

I noticed several problems when disconnecting on Arduino Nano 33 BLE board. Code execution remained locked in the writeValue() function, specifically in the HCIClass::sendAclPkt() function of the HCI.cpp file. The code remained locked in the while loop, because the device is disconnected.
This is the original code:

while (_pendingPkt> = _maxPkt) {
    poll (); 
}

I solved this way:

int k = 0;
while (_pendingPkt> = _maxPkt) {
    k ++;
    if (k> _maxPkt) break;
    poll ();
}

Everything seems to work well, when it freezes in the cycle if the counter k exceeds _maxPkt exits the cycle.
Is this the right way to correct? Has anyone found similar problems?

Possible HCI.Poll() bug with _recvIndex and _recvBuffer

Hello,

I came across an occasional crash while using BLE/HCI.poll(). The crash occurs when _recvIndex goes above the size of _recvBuffer. The crash in my tests occurs when _recvIndex = 533.

I explained how I came across it in this Arduino forum post: https://forum.arduino.cc/index.php?topic=680797.0 but the long and the short of it is that it seems to happen after receiving an HCI_ACLDATA_PKT (possibly without being connected to anything) which leads to _recvIndex++ over and over without being caught and reset by the if statements and reset (not sure why). The basic fix I currently have running in HCI.cpp within the while (HCITransport.available()) loop is:

if (_recvIndex > 257) { _recvIndex = 0; if (_debug) { _debug->println(); _debug->println("***Overflow Catch***"); _debug->println(); } }

Not groundbreaking but seems to be stopping the crash.

The "overflow catch" is still occurring in my tests, however it may be something else. Please let me know if more information would help or if I am missing something obvious.

Thanks,
Matt

Encryption at connection level?

I know ble works by broadcasting and that methods like ccm are available.

In cryptography, a cipher block chaining message authentication code (CBC-MAC) is a technique for constructing a message authentication code from a block cipher. The message is encrypted with some block cipher algorithm in CBC mode to create a chain of blocks such that each block depends on the proper encryption of the previous block. This interdependence ensures that a change to any of the plaintext bits will cause the final encrypted block to change in a way that cannot be predicted or counteracted without knowing the key to the block cipher.

The trouble with that is that anyone could publish a message and it would mess up the next block process of decryption, effectively rendering the encryption and communication useless and still be legal as defined by fcc part 15.

Doesn’t this practically make ble useless as a protocol if there is no connection state tracking and layered encryption?

BLEDevice.connected() causing device to hang

Hi all,
Have some weird behavior with BLEDevice.connected().
On the arduino 33 BLE sense, when i call the BLEDevice.connected() the entire device will soft brick with the yellow light blinking 3 long blinks & 5 short blinks.
When i mean soft-brick, I mean the device enters into some error state where it doesn't respond to USB commands and the code is not running. Only power cycling works on it and holding the reset button down.

Any idea whats going on?
Apologies if it is something obvious i have missed.
Code below to replicate the problem:
Omitted unnecessary parts.

void loop() {
  BLEDevice peripheral = BLE.available();
  if (peripheral) {
    BLE.stopScan();
    log(peripheral);
    BLE.scanForAddress(BTaddress);
  }
  delay(1000);
}

void log(BLEDevice pp) {
  if (pp.connect()) {
    blinkL(BluePin);
    if (!discoverServiceWithRetry(pp)) {
      return;
    }
    BLECharacteristic logger = pp.service("00000001-710e-4a5b-8d75-3e5b444bc3cc").characteristic("00000005-710e-4a5b-8d75-3e5b444bc3cc");
    if (logger) {
      while (pp.connected()) { <-- crashes here!
        sendLog(logger);
        delay(1000);
      }
    } else {
      pp.disconnect();
      return;
    }
  } else {
    return;
  }
}

Supports for BLE Central or Master

Hi I know that: This library currently supports creating a BLE peripheral.

But I wonder if its possible to use the board as Central or Master device? Will arduino release any lib for this purpose?

Thanks

ibeacon and eddystone

Hi, i am wondering if the library can be used to read beacon (eg., ibeacon and eddystone) data?

BLECharacteristic::subscribe() fails with iTag

My BLE central iTag program based on the SensorTag example fails at the simpleKeyCharacteristic.subscribe() step. I "fixed" the problem as shown below. The characteristics properties are not available at this point but I assume the correct way to handle this is to check for BLEWrite versus BLEWriteWithoutResponse. Without this change the subscribe() blocks for a few seconds then returns an error.

int BLERemoteDescriptor::writeValue

#if 0
  uint8_t resp[4];
  int respLength = ATT.writeReq(_connectionHandle, _handle, value, length, resp);

  if (!respLength) {
    return 0;
  }

  if (resp[0] == 0x01) {
    // error
    return 0;
  }

#else
  ATT.writeCmd(_connectionHandle, _handle, value, length);
#endif

MTU negotiation not effective?

Hi
I am using v1.1.0 of the library with a Nano 33 Iot (NINA w10) and Android API 26. When I request a larger MTU on central I get an apparent success:
bleQueue.requestMtu(256);
D/BluetoothGatt: onConfigureMTU() - Device=... mtu=242 status=0

I then write this MTU to the peripheral and use the nearest lower power of 2 (I tried various values, all the same):
newMTUsize = 128;
dataCharacteristic.setValue(mVals, newMTUsize);
However, the byte[] data received on central via
final byte[] data = characteristic.getValue();
has data.length: 34

I found a variable _maxMtu in utils/ATT.cpp set to the conventional 23 - changing this has no observable effect.

Is this a user, device or code issue?
EDIT
User issue:
BLECharacteristic dataCharacteristic(DATA_CHARACTERISTIC_UUID, BLERead | BLEIndicate, origMTUsize);

BLEStringCharacteristic

There seems to be no way to define a BLE gatt characteristic as a string, BLECharCharacteristic exists, but not BLEStringCharacteristic.

nRF connect does not display temperature as value

Hi,

I have a simple "181A" environment sensing service with "2A6E" temperature.
But the nRF app only shows HEX values.
Do I have to set the format descriptor manually?

// Temperature & Humidity Sensor

#include <ArduinoBLE.h> // The library to work with Bluetooth, docs https://www.arduino.cc/en/Reference/ArduinoBLE
#include <Arduino_HTS221.h> // The library to read Temperature and Humidity, install "Arduino_HTS221", docs https://www.arduino.cc/en/Reference/ArduinoHTS221

BLEService sensors("181A"); // Environment Sensing Service, docs https://www.bluetooth.com/specifications/gatt/services/
// NOTE: It's a short with implied exponent of 10^-2. For example a value of 2321 = 23.21 degrees Celsiusa
BLEShortCharacteristic currentTemperature("2A6E", BLERead); // short (sint16), degrees Celsius with a resolution of 0.01 https://www.bluetooth.com/xml-viewer/?src=https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Characteristics/org.bluetooth.characteristic.temperature.xml

BLEUnsignedShortCharacteristic currentHumidity("2A6F", BLERead); // uint16, %, with a resolution of 0.01, https://www.bluetooth.com/xml-viewer/?src=https://www.bluetooth.com/wp-content/uploads/Sitecore-Media-Library/Gatt/Xml/Characteristics/org.bluetooth.characteristic.humidity.xml

void setup() {
  Serial.begin(9600); // initialize serial communication
  while (!Serial);

  pinMode(LED_BUILTIN, OUTPUT); // initialize the built-in LED pin to indicate when a central is connected

  if (!HTS.begin()) { // Initialize Temperature and Humidity sensor 
    Serial.println("Failed to initialize Temperature and Humidity Sensor!");
    while (1);
  }

  if (!BLE.begin()) {
    Serial.println("starting BLE failed!");
    while (1);
  }
  BLE.setDeviceName("");
  BLE.setLocalName("Temperature & Humidity Sensor");
  
  BLE.setAdvertisedService(sensors);
  sensors.addCharacteristic(currentTemperature);
  currentTemperature.setEventHandler(BLERead, readTemperature);
  readTemperature(BLE.central(), currentTemperature);
  currentHumidity.setEventHandler(BLERead, readHumidity);
  readHumidity(BLE.central(), currentHumidity);
  sensors.addCharacteristic(currentHumidity);
  BLE.addService(sensors);

  /* Start advertising BLE. It will start continuously transmitting BLE
     advertising packets and will be visible to remote BLE central devices
     until it receives a new connection */
  
  BLE.setEventHandler(BLEConnected, blePeripheralConnectHandler);
  BLE.setEventHandler(BLEDisconnected, blePeripheralDisconnectHandler);
  BLE.advertise();
  Serial.println("Bluetooth device active, waiting for connections...");
}

void loop() {
  BLE.poll();
}

void blePeripheralConnectHandler(BLEDevice central) {
  digitalWrite(LED_BUILTIN, HIGH);
  Serial.print("Connected event, central: "); Serial.println(central.address());
}

void blePeripheralDisconnectHandler(BLEDevice central) {
  digitalWrite(LED_BUILTIN, LOW);
  Serial.print("Disconnected event, central: "); Serial.println(central.address());
}

void readTemperature(BLEDevice central, BLECharacteristic characteristic) {
  float temperature = HTS.readTemperature();
  short t = convertFloatToShort(temperature);
  currentTemperature.writeValue(t);
  Serial.print("Temperature = "); Serial.println(temperature);
}

void readHumidity(BLEDevice central, BLECharacteristic characteristic) {
  float humidity = HTS.readHumidity();
  short t = convertFloatToShort(humidity);
  currentHumidity.writeValue(humidity);
  Serial.print("Humidity = "); Serial.println(humidity);
}


short convertFloatToShort(float x) {
  x = x * 100;
  if (x < -32768) {
    return -32768;
  }
  if (x > 32767) {
    return 32767;
  }
  return (short)round(x);
}

disconnect() does not trigger callback

Example:

  1. Initialise BLE
  2. Create callbacks for central connection and disconnection to turn LED on and off
  3. Connect to central
  4. disconnect() after 10 seconds

Expected behaviour - disconnection from central should trigger callback and turn off LED
Actual behaviour - disconnection from central with disconnect() method does not trigger callback

#include <ArduinoBLE.h>

BLEService TestService("DEAD");
BLECharacteristic TestData("BEEF", BLEIndicate | BLENotify, 2, true);
BLEDescriptor TestDescriptor("BEEF", "Test");

uint32_t genericTimer = 0;

void setup(){

  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LOW);

  initBLE();
}

void loop(){
  BLEDevice central = BLE.central(); // begin listening for centrals to connect

  if(central){
    genericTimer = millis();
    while(central.connected()){
      if(millis() - genericTimer >= 10000){ // Wait 10 seconds
        BLE.disconnect(); // Disconnect BLE - LED should go out
      }
    }
  }
}

void initBLE(void){ 
  BLE.begin();
  BLE.setEventHandler(BLEConnected, blePeripheralConnectHandler);
  BLE.setEventHandler(BLEDisconnected, blePeripheralDisconnectHandler);
  BLE.setLocalName("TestName");
  BLE.setDeviceName("Test Device Name");
  TestService.addCharacteristic(TestData);
  TestData.addDescriptor(TestDescriptor);
  BLE.addService(TestService);
  BLE.setAdvertisedService(TestService);
  BLE.advertise();
}

void blePeripheralConnectHandler(BLEDevice central){
    // turn on the LED to indicate the connection:
    digitalWrite(LED_BUILTIN, HIGH);
}

void blePeripheralDisconnectHandler(BLEDevice central){
    // when the central disconnects, turn off the LED:
    digitalWrite(LED_BUILTIN, LOW);
}

Issue in the disconnection event

Hi @sandeepmistry ,
I found a bug in the management of the disconnection event. Basically, the prototype of the "removeConnection" API has bad parameters that do not match the type of the relative variables. In particular, with the current code, the handle is truncated from uint16_t to uint8_t and it causes bad handle values, so I'm not able to get the disconnection notifications on my side.
You can find the fix for this issue in the STM32duinoBLE fork:

stm32duino#4

Best Regards,
Carlo

Found two problems on ArduinoBLE.h with Arduino Nano 33 BLE Sense

  1. Use BLE.setConnectionInterval(40, 40), the theoretical communication rate is 1/(40ms*1.25) = 20 Hz, but I test this funtion physically, its communication rate is actually only 10 Hz.
    setConnectionInterval()
    Description
    Set the minimum and maximum desired connection intervals in units of 1.25 ms.

  2. Use BLE.setConnectionInterval(8, 8), but the communication rate is limited to 40 Hz maximumly. but the theoretical communication rate should be 100Hz and the BLE module on Arduino Nano 33 BLE Sense should support up to 800Hz maximumly, even though I set BLE.setConnectionInterval(4, 4) or less connection interval, the communication rate is limited to 40 Hz (already test on Arduino Nano 33 BLE Sense to Arduino Nano 33 BLE Sense, Arduino Nano 33 BLE Sense to win10 PC, Arduino Nano 33 BLE Sense to Raspberry Pi 3 B+, all of them is limited to the communication rate of 40 Hz))

BLE nano 33 does not report or disconnect from centra

When using for example the button peripheral and central examples in the arduinoBLE library
If for example the central is a MKR1010 powered by usb and the peripheral is a nanoBLE 33 then if I remove the power from the central the peripheral still reports it as connected.

If instead of a Nano BLE 33 I use a Nano IOT33 then when the central is de powered the peripheral reports it as being disconnected.

there are several issues regarding disconnection & this library when using the Nana BLe 33.

Arduino support said the following

================================================================

Hello Russell,

Thank you for reporting us this issue,

We request you to open an issue on Github here and our developers will provide you further guidance.

Have a nice day!

Best Regards,
Sravya Amirisetti

subscribe()/valueUpdated() not working

I've been using an Arduino Nano 33 BLE to communicate with my PC over the BlueFruit LE Friend's UART characteristic. Using the default ArduinoBLE library, I'm able to connect to the BlueFruit from the Nano33 as a central device, and write to the BlueFruit and have it show up in a serial terminal. I can get the Nano33 to read from the Bluefruit as well, by sending a Characteristic.read() request and a subsequent Charcterisitc.readValue() command. Subscribing to the rx characterisitic on the Nano33 is an issue, however, even though the Bluefruit's info page says that the rx characterisitc (address 0x0003) is capable of Notify. At first, Charcteristic.subscribe() would always return false, until I followed @gdsport's advice here and modified BLERemoteDescriptor.cpp. Now, although subscribe() returns true, Charcteristic.valueUpdated() always returns false, even when opening up a serial port to the BlueFruit and sending data with the UART service. This is the relevant Arduino code:

BLECharacteristic rxCharacteristic = peripheral.characteristic("6e400003-b5a3-f393-e0a9-e50e24dcca9e");

  // make sure BlueFruit UART characteristics have been loaded properly are of
  // proper format
  if (!rxCharacteristic) {
    Serial.println("Peripheral does not have RX characteristic!");
    peripheral.disconnect();
    return;
  } else if (!rxCharacteristic.canSubscribe()) {
    Serial.println("rxCharacteristic is not subscribable!");
    peripheral.disconnect();
    return;
  } else if (!rxCharacteristic.subscribe()) {
    Serial.println("rxCharacteristic subscription failed!");
    peripheral.disconnect();
    return;
  }
  Serial.println("subscribed");

  while (peripheral.connected()) {

      if (rxCharacteristic.valueUpdated()) {
        Serial.println("value updated");
      }
}

For reference, this is the modified code from BLERemoteDescriptor.cpp:

int BLERemoteDescriptor::writeValue(const uint8_t value[], int length)
{
  if (!ATT.connected(_connectionHandle)) {
    return false;
  }

  uint16_t maxLength = ATT.mtu(_connectionHandle) - 3;

  if (length > (int)maxLength) {
    // cap to MTU max length
    length = maxLength;
  }

  _value = (uint8_t*)realloc(_value, length);
  if (_value == NULL) {
    // realloc failed
    return 0;
  }  

#if 0
  uint8_t resp[4];
  int respLength = ATT.writeReq(_connectionHandle, _handle, value, length, resp);

  if (!respLength) {
    return 0;
  }

  if (resp[0] == 0x01) {
    // error
    return 0;
  }
#else 
    ATT.writeCmd(_connectionHandle, _handle, value, length);
#endif

  memcpy(_value, value, length);
  _valueLength = length;

  return 1;
}

Any thoughts on what might be causing this?

Arduino IDE version 1.8.12 and ArduinoBLE version 1.1.2

Setting custom Advertising Data

Creating temperature sensor on Arduino Namo 33 IoT, and to save battery, non-connected broadcast would do fine. Otherwise great library, but I cannot figure out how to set custom Advertising Data (those 31 octets). Maybe using the setLocalName(name)? Am I missing something or has this a feature not yet been implemented? If not, could you please implement something like BLE.setAdvertisingData(byte[])?

Transferring 512 byte packets of data

Hello,

A colleague and I have been working on a research project that uses the Nano 33 BLE Senses and IoTs. As part of this project, we need to transfer data logs between SD cards (BLE Sense to IoT) over Bluetooth. We have managed to get transfer working well however we noticed that packets over 246 bytes (approximately) become "garbled" beyond/around the 246th byte.

What is curious is that if the message is received by a smartphone (from the Sense) the full 512 bytes are received correctly, whereas the IoT receives a garbled message. I have attached an example of the message error.
Garbled_Message.txt

My colleague traced the issue to the function:
void HCIClass::handleAclDataPkt(uint8_t /*plen*/, uint8_t pdata[])

However, he informed me that he could not go any deeper as he can't access the firmware. When he tested it he used a raspberry pi to transmit a 512 packet which was unsuccessfully collected by the IoT.

What might be the cause of this? Please let me know if you require more information, if needed I will try to portion out the code we are permitted to upload.

Thank you for your time.
Matt

Multiple concurrent connections

Hi everyone,
I'm trying to connect 3 ble modules working as peripherals to an Arduino Nano 33 BLE working as central. In the datasheet of the micro says that it can handle 20 bluetooth connections, but I can't connect to a second peripheral when it is one connected already. Taking a quick view to the library I have not found any problem to connect more than one device, I only found this parameter ATT_MAX_PEERS that I understand that limit the connections to three. It is my first time using BLE and I'm not agood programmer, so I don't know if my reasoning is correct.
It is possible to connect more than one peripheral to the Arduino Nano 33 BLE using this library?
Thanks

UUIDs must be lower case

e.g.,

peripheral.characteristic("f000aa22-0451-4000-b000-000000000000"); // WORKS
peripheral.characteristic("F000AA22-0451-4000-B000-000000000000"); // DOES NOT WORK

Recompile times very long

I'm not sure if this is problem of ArduinoBLE library or ArduinoIDE but looks like the IDE recompiles whole ArduinoBLE library every time, even when nothing has changed in the user project code or settings. This makes code iteration very slow, especially because Arduino build environment does not support multicore building.

Here is verbose build log for reference.

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\Teemu Ikonen\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\Teemu Ikonen\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Teemu Ikonen\Documents\Arduino\libraries -fqbn=arduino:mbed:nano33ble -vid-pid=0X2341_0X805A -ide-version=10810 -build-path C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769 -warnings=default -build-cache C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_cache_195006 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.openocd.path=C:\Users\Teemu Ikonen\AppData\Local\Arduino15\packages\arduino\tools\openocd\0.10.0-arduino9 -prefs=runtime.tools.openocd-0.10.0-arduino9.path=C:\Users\Teemu Ikonen\AppData\Local\Arduino15\packages\arduino\tools\openocd\0.10.0-arduino9 -prefs=runtime.tools.arm-none-eabi-gcc.path=C:\Users\Teemu Ikonen\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4 -prefs=runtime.tools.arm-none-eabi-gcc-7-2017q4.path=C:\Users\Teemu Ikonen\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4 -prefs=runtime.tools.bossac.path=C:\Users\Teemu Ikonen\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.9.1-arduino1 -prefs=runtime.tools.bossac-1.9.1-arduino1.path=C:\Users\Teemu Ikonen\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.9.1-arduino1 -verbose C:\Users\Teemu Ikonen\Documents\Arduino\nano33_ble_test\nano33_ble_test.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\Teemu Ikonen\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\Teemu Ikonen\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Teemu Ikonen\Documents\Arduino\libraries -fqbn=arduino:mbed:nano33ble -vid-pid=0X2341_0X805A -ide-version=10810 -build-path C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769 -warnings=default -build-cache C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_cache_195006 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.openocd.path=C:\Users\Teemu Ikonen\AppData\Local\Arduino15\packages\arduino\tools\openocd\0.10.0-arduino9 -prefs=runtime.tools.openocd-0.10.0-arduino9.path=C:\Users\Teemu Ikonen\AppData\Local\Arduino15\packages\arduino\tools\openocd\0.10.0-arduino9 -prefs=runtime.tools.arm-none-eabi-gcc.path=C:\Users\Teemu Ikonen\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4 -prefs=runtime.tools.arm-none-eabi-gcc-7-2017q4.path=C:\Users\Teemu Ikonen\AppData\Local\Arduino15\packages\arduino\tools\arm-none-eabi-gcc\7-2017q4 -prefs=runtime.tools.bossac.path=C:\Users\Teemu Ikonen\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.9.1-arduino1 -prefs=runtime.tools.bossac-1.9.1-arduino1.path=C:\Users\Teemu Ikonen\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.9.1-arduino1 -verbose C:\Users\Teemu Ikonen\Documents\Arduino\nano33_ble_test\nano33_ble_test.ino
Using board 'nano33ble' from platform in folder: C:\Users\Teemu
Using core 'arduino' from platform in folder: C:\Users\Teemu
Detecting libraries used...
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\sketch\\nano33_ble_test.ino.cpp" -o nul
Alternatives for ArduinoBLE.h: [[email protected]]
ResolveLibrary(ArduinoBLE.h)
  -> candidates: [[email protected]]
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\sketch\\nano33_ble_test.ino.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\BLECharacteristic.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\BLEDescriptor.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\BLEDevice.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\BLEService.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\BLEStringCharacteristic.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\BLETypedCharacteristics.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\local\\BLELocalAttribute.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\local\\BLELocalCharacteristic.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\local\\BLELocalDescriptor.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\local\\BLELocalDevice.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\local\\BLELocalService.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\remote\\BLERemoteAttribute.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\remote\\BLERemoteCharacteristic.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\remote\\BLERemoteDescriptor.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\remote\\BLERemoteDevice.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\remote\\BLERemoteService.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\utility\\ATT.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\utility\\BLEUuid.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\utility\\GAP.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\utility\\GATT.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\utility\\HCI.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\utility\\HCICordioTransport.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\utility\\HCIUartTransport.cpp" -o nul
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src\\utility\\L2CAPSignaling.cpp" -o nul
Generating function prototypes...
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -w -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -mcpu=cortex-m4 -w -x c++ -E -CC -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\sketch\\nano33_ble_test.ino.cpp" -o "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\preproc\\ctags_target_for_gcc_minus_e.cpp"
"C:\\Program Files (x86)\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\preproc\\ctags_target_for_gcc_minus_e.cpp"
Compiling sketch...
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" -c -g -Os -nostdlib "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/defines.txt" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/cxxflags.txt" -DARDUINO_ARCH_NRF52840 -MMD -mcpu=cortex-m4 -DARDUINO=10810 -DARDUINO_ARDUINO_NANO33BLE -DARDUINO_ARCH_MBED "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE" "-IC:\\Users\\Teemu Ikonen\\Documents\\Arduino\\libraries\\ArduinoBLE\\src" "-IC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino/api/deprecated" "-iprefixC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\cores\\arduino" "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/includes.txt" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\sketch\\nano33_ble_test.ino.cpp" -o "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\sketch\\nano33_ble_test.ino.cpp.o"
Compiling libraries...
Compiling library "ArduinoBLE"
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\BLEStringCharacteristic.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\BLEService.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\BLETypedCharacteristics.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\BLECharacteristic.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\BLEDescriptor.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\BLEDevice.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\local\BLELocalCharacteristic.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\local\BLELocalAttribute.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\local\BLELocalService.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\local\BLELocalDescriptor.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\local\BLELocalDevice.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\remote\BLERemoteService.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\remote\BLERemoteAttribute.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\remote\BLERemoteDescriptor.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\remote\BLERemoteCharacteristic.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\remote\BLERemoteDevice.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\utility\HCIUartTransport.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\utility\L2CAPSignaling.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\utility\HCICordioTransport.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\utility\HCI.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\utility\GAP.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\utility\BLEUuid.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\utility\ATT.cpp.o
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\libraries\ArduinoBLE\utility\GATT.cpp.o
Compiling core...
Using previously compiled file: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_build_47769\core\variant.cpp.o
Using precompiled core: C:\Users\TEEMUI~1\AppData\Local\Temp\arduino_cache_195006\core\core_arduino_mbed_nano33ble_2cf743b453681e401d01e36be04161bd.a
Linking everything together...
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-g++" "-LC:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769" -Wl,--gc-sections -Wl,--as-needed "@C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/ldflags.txt" "-TC:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/linker_script.ld" "-Wl,-Map,C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769/nano33_ble_test.ino.map" --specs=nano.specs --specs=nosys.specs -o "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769/nano33_ble_test.ino.elf" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\sketch\\nano33_ble_test.ino.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\BLECharacteristic.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\BLEDescriptor.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\BLEDevice.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\BLEService.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\BLEStringCharacteristic.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\BLETypedCharacteristics.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\local\\BLELocalAttribute.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\local\\BLELocalCharacteristic.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\local\\BLELocalDescriptor.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\local\\BLELocalDevice.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\local\\BLELocalService.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\remote\\BLERemoteAttribute.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\remote\\BLERemoteCharacteristic.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\remote\\BLERemoteDescriptor.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\remote\\BLERemoteDevice.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\remote\\BLERemoteService.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\utility\\ATT.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\utility\\BLEUuid.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\utility\\GAP.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\utility\\GATT.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\utility\\HCI.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\utility\\HCICordioTransport.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\utility\\HCIUartTransport.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\libraries\\ArduinoBLE\\utility\\L2CAPSignaling.cpp.o" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769\\core\\variant.cpp.o" -Wl,--whole-archive "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769/..\\arduino_cache_195006\\core\\core_arduino_mbed_nano33ble_2cf743b453681e401d01e36be04161bd.a" "C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/libs/libmbed.a" "C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/libs/libcc_310_core.a" "C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/libs/libcc_310_ext.a" "C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\mbed\\1.1.4\\variants\\ARDUINO_NANO33BLE/libs/libcc_310_trng.a" -Wl,--no-whole-archive -Wl,--start-group -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys -Wl,--end-group
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-objcopy" -O binary "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769/nano33_ble_test.ino.elf" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769/nano33_ble_test.ino.bin"
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-objcopy" -O ihex -R .eeprom "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769/nano33_ble_test.ino.elf" "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769/nano33_ble_test.ino.hex"
Multiple libraries were found for "ArduinoBLE.h"
 Used: C:\Users\Teemu
Using library ArduinoBLE at version 1.1.2 in folder: C:\Users\Teemu Ikonen\Documents\Arduino\libraries\ArduinoBLE
"C:\\Users\\Teemu Ikonen\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4/bin/arm-none-eabi-size" -A "C:\\Users\\TEEMUI~1\\AppData\\Local\\Temp\\arduino_build_47769/nano33_ble_test.ino.elf"
Sketch uses 284228 bytes (28%) of program storage space. Maximum is 983040 bytes.
Global variables use 65664 bytes (25%) of dynamic memory, leaving 196480 bytes for local variables. Maximum is 262144 bytes.

How to activate Bootloader? (Nano 33 BLE - for OTA app)

Hi guys,

Is there a way to activate the bootloader from code in sketch on the nano 33 BLE?

I want to add an OTA software update function to my iOS App (that already communicates well with the nano 33 BLE). Are there any examples/tips to help me to develop this (OTA) further?

BTW: Thanks for the new StringCharacteristic - makes it easy to emulate the Nordic UART Characteristic (and do many other useful things!).

Thanks!

Gerard

PS: Sorry - posted in wrong thread... Closing it - Gerard

What is the correct approach to transmit rapidly changing real-time data?

I have modified the BatteryMonitor example to send the accelerometer data instead - by removing the map function and the 200ms timer. It seems to work. And when I write the float values of accelerometer values to the characteristic using writeValue(x); I don't get any errors HOWEVER the value received on the other side i.e a central device like my App or WebBluetooth is always integer and positive.
Any idea why that is happening?

More importantly is this the correct way to send float values?

I am also thinking if modifying the BatteryMonitor example is the correct approach to transmit rapidly changing real-time data. If it isn't then could you please guide me/point me to some resources so that I can contribute an example for the official library?

#error "Unsupported board selected!"

Hey there,

i got a KeeYees ESP32 ESP-32S NodeMCU with a ESP-WROOM-32 Chip.

The problem is, i am currently just trying to import the necessary library to start with BLE:

#include <ArduinoBLE.h>

But i keep getting:

/Users/USER/.platformio/lib/ArduinoBLE_ID5878/src/utility/HCIUartTransport.cpp:29:2: error: #error "Unsupported board selected!" #error "Unsupported board selected!"

This is my current plattformio.ini:

[env:nodemcu-32s]
platform = espressif32
board = nodemcu-32s
framework = arduino

I could not really find anything. Is it true that the Board is not supported for the standard ArduinoBLE library or am i doing something wrong?

`BLE.poll` waits for next data transfer event.

This can be found out by experimenting with different connectionIntervals and measuring the maximum time that BLE.poll takes.

This behaviour is very inconvenient, because it wastes a lot of CPU cycles on MKR Wifi 1010. The only workaround would be to do all computation in interrupts.

Slowly increasing BLE Scan return times

I have a range monitoring application on an Arduino Nano 33 BLE. It monitors for a specific BLE peripheral and will perform an alarm function if that peripheral is not in range.

The issue I'm seeing is slowly increasing BLE.scanForAdress or BLE.scanForName times. The log entries show the device and details, last field is the elapsed time in ms using millis(); The elapsed time starts out quite useable, the code sleeps 5 seeconds (delay(5000)) after a successful return from BLE.scanForAddress, and 50ms if unsuccessful. Heres a log example where the scan is returning as expected....

13:57:24.387 -> BLE Scan Initiated
13:57:25.318 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -45 Time: 886
13:57:30.328 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -45 Time: 0
13:57:35.476 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -45 Time: 75
13:57:40.668 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 130
13:57:45.816 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -45 Time: 100
13:57:50.833 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -46 Time: 0
13:57:55.975 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 75
13:58:01.052 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -41 Time: 0
13:58:06.099 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -41 Time: 0
13:58:11.119 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -39 Time: 0
13:58:16.158 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -46 Time: 0
13:58:21.296 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 103
13:58:26.330 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -47 Time: 0
13:58:31.353 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -46 Time: 0
13:58:36.433 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -47 Time: 20
13:58:41.510 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -42 Time: 20
13:58:46.518 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -41 Time: 0
13:58:52.207 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -47 Time: 640
13:58:57.293 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -42 Time: 21
13:59:02.301 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 0
13:59:08.373 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -42 Time: 1000
13:59:13.374 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -46 Time: 0
13:59:18.409 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 0
13:59:23.439 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -46 Time: 0
13:59:28.447 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 0
13:59:33.532 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -47 Time: 20
13:59:38.597 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -46 Time: 22
13:59:43.680 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -41 Time: 19
13:59:48.707 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -46 Time: 0
13:59:53.848 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -46 Time: 72
13:59:58.930 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -42 Time: 26
14:00:03.938 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -49 Time: 0
14:00:08.954 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -42 Time: 0
14:00:13.977 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 0
14:00:19.123 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -42 Time: 73
14:00:24.192 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 21
14:00:29.301 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -42 Time: 73
14:00:34.325 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -46 Time: 0
14:00:39.414 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -46 Time: 22
14:00:44.438 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -42 Time: 0

Slowly the return times increase.... here's an output 4 hours later, eventually it will go out to 8000+ elapsed times.... Not usable.

18:04:40.282 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -45 Time: 19
18:04:45.805 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 482
18:04:52.855 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -40 Time: 1976
18:04:57.968 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -45 Time: 70
18:05:03.056 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -44 Time: 19
18:05:08.534 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 431
18:05:13.596 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 25
18:05:19.146 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 482
18:05:24.675 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -44 Time: 480
18:05:29.745 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 20
18:05:35.268 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -40 Time: 484
18:05:40.355 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -40 Time: 22
18:05:46.427 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 999
18:05:51.950 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -40 Time: 484
18:05:57.025 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -44 Time: 22
18:06:09.546 -> BLE Device - TIMED OUT... Time: 7514
18:06:13.156 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 3081
18:06:20.263 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 2025
18:06:26.816 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 1507
18:06:33.367 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 1511
18:06:39.431 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -40 Time: 991
18:06:45.997 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -44 Time: 1508
18:06:51.569 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -44 Time: 538
18:06:57.632 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 993
18:07:03.156 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -44 Time: 485
18:07:10.219 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -40 Time: 2020
18:07:15.292 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -40 Time: 21
18:07:21.874 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -40 Time: 1508
18:07:28.424 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 1508
18:07:34.489 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 992
18:07:42.569 -> BLE Device - Name: BR532397 ADDR: 20:18:ff:00:3f:e2 RSSI: -38 Time: 3049

I think it's pretty simple code, most of it's bog standard from the BLE library examples. I've tried many scan options but it all ends up the same... its not the Peripheral device, restarting that has no impact, however restarting the Nano 33 improves the latency immediately...

#include <ArduinoBLE.h>

unsigned long sTime, eTime;
const int eTimeOut = 7500, maxMisses = 2;
int missCounter = 0;
BLEDevice peripheral;

void setup()
{
// put your setup code here, to run once:

Serial.begin(9600);
while (!Serial);

if (!BLE.begin()) // initialize the BLE device
{ // 1 on success, 0 on failure
Serial.println("Failed to start BLE!");
while (1); // only wait out is to kill execution
}
else
{
Serial.println("BLE Scan Initiated");
}

//elapsed time
eTime = millis();
sTime = eTime;
}

void loop()
{

// start scanning for peripheral
//BLE.scan();
BLE.scanForAddress("20:18:ff:00:3f:e2");
//BLE.scanForName("BR532397");

peripheral = BLE.available();

if (peripheral)
{

  //show address and signal strength   
  Serial.print("BLE Device - Name: ");
  Serial.print(peripheral.localName());
  Serial.print(" ADDR: ");
  Serial.print(peripheral.address());
  Serial.print(" RSSI: ");
  Serial.print(peripheral.rssi());
  Serial.print(" Time: ");
  Serial.println(sTime-eTime);

  delay(5000);

  //reset the timer
  eTime = millis();
  sTime = eTime;

  //clear the miss counter
  missCounter = 0;

}
else
{
sTime = millis();
if (sTime > (eTime + eTimeOut))
{
//increment counter
missCounter++;

    if (missCounter >= maxMisses)
    {
      Serial.println("BLE Device - Missing.... ALL STOP!!");
    }  
    else      
    {      
      Serial.print("BLE Device - TIMED OUT... Time: ");
      Serial.println(sTime-eTime);
    }

    //reset the elapsed time counter
    eTime = millis();
    sTime = eTime;

  }
    
  // wait for a bit  
  delay(50);

}

}

BLE Bonding/Pairing

Does anyone know if there is plans to add bonding to the library? I would like to pair with a keyboard but it requires a passkey to establish a secure connection to start reading keys. I was looking at the mbed library to see if I can use their security manager but haven't made any progress.

It would be great if there are some examples of how to use with the mbed BLE libaray to fill in the missing features on the Arduino side and how all that can work together. The Arduino blog says that Cordio API can do this. but I am not clear on how to actually implement it.

https://blog.arduino.cc/2019/07/31/why-we-chose-to-build-the-arduino-nano-33-ble-core-on-mbed-os/

Thanks. This will be a open source project that I will be sharing once I have a proof of concept that it can work.

GATT client: support long reads

In my current setup I have a MKR 1010 acting as master, which is current reading from an iPad acting as a peripheral. On the apple side, the CBPeripheralDelegate expects the Central to read data in multiple attempts with different offsets for chunking, as of now I don't see a way to override the offset in the library. I would expect this to either be abstracted, or allow readValue to expose an offset.

Pheripheral connection lost / frozen after multiple connect / disconnects from central

Hello,

i have a simple app with a arduino nano ble and a android device.

The android device search the arduino nano and show the pheripheral. The android app reads a value from the nano device. After multiple connect and disconnects on the android app the arduino nano is not reachable. Only a restart solves the problem.

How can i debug the problem and can get more information about the problem?

Best regards
Andreas

central.address() function returns wrong value

Hi, I noticed this issure on Arduino Nano 33 BLE board, the central.address() function returns an incorrect MAC address. In addition, the value also not appears to be unique and change despite being reconnected to the same central device. I await news for the solution.

Best way to observe a peripheral’s RSSI

I want to build a key bowl which detects whether a certain keychain was placed in it by detecting the attached Tile tag via BLE.

What is the most energy-efficient yet reliable way to observe a peripheral’s RSSI?

Currently, I am scanning repeatedly, limited to 4x per second and the specific peripheral address I am interested in:

#include <ArduinoBLE.h>

void setup() {
  Serial.begin(9600);
  while (!Serial); // wait
  
  Serial.println("setup");
  BLE.begin();
  BLE.setEventHandler(BLEDiscovered, discovered);
  BLE.scanForAddress("xx:yy:zz:aa:bb:cc", true);
}

void logDevice(BLEDevice dev) {
  Serial.print("BLE device found: ");
  Serial.print("address=");
  Serial.print(dev.address());
  Serial.print(", rssi=");
  Serial.print(dev.rssi());
  if (!dev.hasLocalName()) {
    Serial.println("");
    return;
  }
  Serial.print(", name=");
  Serial.print(dev.localName());
  Serial.println("");
}

void discovered(BLEDevice dev) {
  BLE.stopScan();
  logDevice(dev);
  delay(250); // ms
  BLE.scanForAddress("xx:yy:zz:aa:bb:cc", true);
}

void loop() {
  BLE.poll(1000); // ms
}

I’m a bit hesitant to connect to the device, because I don’t want to disrupt any other functionality of the Tile.

Is there a better way than the approach displayed above?

Thanks,

Mesh

Hi, is there any plan to add the support for BLE mesh? Thanks.

BLE Client support

Hello,
does the library support BLE Client mode or it can be used only as device? It does not seem to be available.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.