Clear characteristic cccd value when disconnect
Problem
If the peripheral sketch with a subscribeable characteristic closes the connection with the central calling the BLE.disconnect() all subsequent subscriptions, after the first connection, are not notified and the characteristic stays always as "subscribed".
Solution
In this PR the characteristic CCCD value is cleared when the BLE.disconnect() is called for resetting the characteristic subscription status and allowing new subscriptions.
Sketches for reproducing the problem
Central
#include <ArduinoBLE.h>
void setup() {
Serial.begin(9600);
while (!Serial);
// initialize the Bluetooth® Low Energy hardware
BLE.begin();
BLE.scanForUuid("19B10000-E8F2-537E-4F6C-D104768A1214");
}
void loop() {
// put your main code here, to run repeatedly:
BLEDevice peripheral = BLE.available();
if (peripheral) {
// discovered a peripheral, print out address, local name, and advertised service
Serial.print("Found ");
Serial.print(peripheral.address());
Serial.print(" '");
Serial.print(peripheral.localName());
Serial.print("' ");
Serial.print(peripheral.advertisedServiceUuid());
Serial.println();
// stop scanning
BLE.stopScan();
controlLed(peripheral);
delay(10000);
// peripheral disconnected, start scanning again
BLE.scanForUuid("19b10000-e8f2-537e-4f6c-d104768a1214");
}
}
void controlLed(BLEDevice peripheral) {
// connect to the peripheral
Serial.println("Connecting ...");
if (peripheral.connect()) {
Serial.println("Connected");
} else {
Serial.println("Failed to connect!");
return;
}
// discover peripheral attributes
Serial.println("Discovering attributes ...");
if (peripheral.discoverAttributes()) {
Serial.println("Attributes discovered");
} else {
Serial.println("Attribute discovery failed!");
peripheral.disconnect();
return;
}
BLECharacteristic byteCharacteristic = peripheral.characteristic("19B10001-E8F2-537E-4F6C-D104768A1214");
if (!byteCharacteristic) {
Serial.println("Peripheral does not have LED characteristic!");
peripheral.disconnect();
return;
} else if (!byteCharacteristic.canSubscribe()) {
Serial.println("Peripheral does not have a writable LED characteristic!");
peripheral.disconnect();
return;
} else if (!byteCharacteristic.subscribe()) {
Serial.println("subscription failed!");
peripheral.disconnect();
return;
} else {
Serial.println("Subscribed");
}
while (peripheral.connected()) {
// while the peripheral is connected
// check if the value of the simple key characteristic has been updated
if (byteCharacteristic.valueUpdated()) {
// yes, get the value, characteristic is 1 byte so use byte value
byte value = 0;
byteCharacteristic.readValue(value);
Serial.print("received: ");
Serial.println(value, HEX);
}
}
Serial.println("Disconnected");
}
Peripheral
#include <ArduinoBLE.h>
BLEService testService("19B10000-E8F2-537E-4F6C-D104768A1214");
BLEByteCharacteristic byteCharacteristic("19B10001-E8F2-537E-4F6C-D104768A1214", BLERead | BLEIndicate | BLEWrite);
volatile bool disconnect = false;
void byteRead(BLEDevice central, BLECharacteristic characteristic){
Serial.println("Characteristic subscribed, sending data");
byte c = 0x01;
int written = byteCharacteristic.writeValue(c);
disconnect=true;
}
void setup() {
Serial.begin(9600);
while (!Serial);
// put your setup code here, to run once:
if (!BLE.begin()) {
Serial.println("starting Bluetooth® Low Energy module failed!");
while (1);
}
// set advertised local name and service UUID:
if(!BLE.setLocalName("TEST-LOCAL-NAME")){
Serial.println("error setting the local name");
}
byteCharacteristic.setEventHandler(BLESubscribed, byteRead);
BLE.setAdvertisedService(testService);
// add the characteristic to the service
testService.addCharacteristic(byteCharacteristic);
// add service
BLE.addService(testService);
// start advertising
BLE.advertise();
Serial.println("BLE Peripheral");
}
void loop() {
// put your main code here, to run repeatedly:
if(disconnect){
BLE.disconnect();
disconnect = false;
Serial.println("disconnected");
}
BLE.poll();
}
Logs
Here the logs of the current behaviour. Central
11:18:48.793 -> Found 34:94:54:27:05:66 'TEST-LOCAL-NAME' 19b10000-e8f2-537e-4f6c-d104768a1214
11:18:48.829 -> Connecting ...
11:18:48.897 -> Connected
11:18:48.897 -> Discovering attributes ...
11:18:49.291 -> Attributes discovered
11:18:49.330 -> Subscribed
11:18:49.330 -> received: 1
11:18:49.330 -> Disconnected
//End of the first run
11:18:59.416 -> Found 34:94:54:27:05:66 'TEST-LOCAL-NAME' 19b10000-e8f2-537e-4f6c-d104768a1214
11:18:59.448 -> Connecting ...
11:18:59.527 -> Connected
11:18:59.527 -> Discovering attributes ...
11:18:59.948 -> Attributes discovered
11:18:59.948 -> Subscribed
//Has never received new data since the peripheral never sends it
Peripheral
11:18:27.926 -> BLE Peripheral
11:18:49.291 -> Characteristic subscribed, sending data
11:18:49.330 -> disconnected
// Note that the subscribed event at 11:18:59.948 has never been notified to the sketch
Memory usage change @ d909b6c80d4b54f81e3329877e8a953496b8f454
| Board | flash | % | RAM for global variables | % |
|---|---|---|---|---|
arduino:mbed_nano:nano33ble |
:green_heart: -64 - 0 | -0.01 - 0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:mbed_nano:nanorp2040connect |
:green_heart: -8 - -8 | -0.0 - -0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:megaavr:uno2018:mode=on |
:small_red_triangle: +256 - +256 | +0.53 - +0.53 | 0 - 0 | 0.0 - 0.0 |
arduino:renesas_uno:unor4wifi |
:green_heart: -32 - -32 | -0.01 - -0.01 | 0 - 0 | 0.0 - 0.0 |
arduino:samd:mkrwifi1010 |
:green_heart: -8 - -8 | -0.0 - -0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:samd:nano_33_iot |
:green_heart: -8 - -8 | -0.0 - -0.0 | 0 - 0 | 0.0 - 0.0 |
Click for full report table
| Board | examples/Central/LedControlflash |
% | examples/Central/LedControlRAM for global variables |
% | examples/Central/PeripheralExplorerflash |
% | examples/Central/PeripheralExplorerRAM for global variables |
% | examples/Central/Scanflash |
% | examples/Central/ScanRAM for global variables |
% | examples/Central/ScanCallbackflash |
% | examples/Central/ScanCallbackRAM for global variables |
% | examples/Central/SensorTagButtonflash |
% | examples/Central/SensorTagButtonRAM for global variables |
% | examples/Peripheral/Advertising/EnhancedAdvertisingflash |
% | examples/Peripheral/Advertising/EnhancedAdvertisingRAM for global variables |
% | examples/Peripheral/Advertising/RawDataAdvertisingflash |
% | examples/Peripheral/Advertising/RawDataAdvertisingRAM for global variables |
% | examples/Peripheral/BatteryMonitorflash |
% | examples/Peripheral/BatteryMonitorRAM for global variables |
% | examples/Peripheral/ButtonLEDflash |
% | examples/Peripheral/ButtonLEDRAM for global variables |
% | examples/Peripheral/CallbackLEDflash |
% | examples/Peripheral/CallbackLEDRAM for global variables |
% | examples/Peripheral/EncryptedBatteryMonitorflash |
% | examples/Peripheral/EncryptedBatteryMonitorRAM for global variables |
% | examples/Peripheral/LEDflash |
% | examples/Peripheral/LEDRAM for global variables |
% |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
arduino:mbed_nano:nano33ble |
-64 | -0.01 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 |
arduino:mbed_nano:nanorp2040connect |
-8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 |
arduino:megaavr:uno2018:mode=on |
256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 |
arduino:renesas_uno:unor4wifi |
-32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 |
arduino:samd:mkrwifi1010 |
-8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 |
arduino:samd:nano_33_iot |
-8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 |
Click for full report CSV
Board,examples/Central/LedControl<br>flash,%,examples/Central/LedControl<br>RAM for global variables,%,examples/Central/PeripheralExplorer<br>flash,%,examples/Central/PeripheralExplorer<br>RAM for global variables,%,examples/Central/Scan<br>flash,%,examples/Central/Scan<br>RAM for global variables,%,examples/Central/ScanCallback<br>flash,%,examples/Central/ScanCallback<br>RAM for global variables,%,examples/Central/SensorTagButton<br>flash,%,examples/Central/SensorTagButton<br>RAM for global variables,%,examples/Peripheral/Advertising/EnhancedAdvertising<br>flash,%,examples/Peripheral/Advertising/EnhancedAdvertising<br>RAM for global variables,%,examples/Peripheral/Advertising/RawDataAdvertising<br>flash,%,examples/Peripheral/Advertising/RawDataAdvertising<br>RAM for global variables,%,examples/Peripheral/BatteryMonitor<br>flash,%,examples/Peripheral/BatteryMonitor<br>RAM for global variables,%,examples/Peripheral/ButtonLED<br>flash,%,examples/Peripheral/ButtonLED<br>RAM for global variables,%,examples/Peripheral/CallbackLED<br>flash,%,examples/Peripheral/CallbackLED<br>RAM for global variables,%,examples/Peripheral/EncryptedBatteryMonitor<br>flash,%,examples/Peripheral/EncryptedBatteryMonitor<br>RAM for global variables,%,examples/Peripheral/LED<br>flash,%,examples/Peripheral/LED<br>RAM for global variables,%
arduino:mbed_nano:nano33ble,-64,-0.01,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:mbed_nano:nanorp2040connect,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0
arduino:megaavr:uno2018:mode=on,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0
arduino:renesas_uno:unor4wifi,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0
arduino:samd:mkrwifi1010,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0
arduino:samd:nano_33_iot,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0
Hi @fabik111. Thanks for your pull request. Please disregard the failed spell check.
This is a spurious failure caused by bit rot in the antiquated infrastructure used for that check, nothing to do with the changes you propose here. The failed check won't block the reviewers from merging your PR and we'll be sure to fix the broken spell check system separately ASAP.
Memory usage change @ 2355c4d1cc487a64ea9de1c390b09fb364c4ce69
| Board | flash | % | RAM for global variables | % |
|---|---|---|---|---|
arduino:mbed_nano:nano33ble |
:green_heart: -64 - 0 | -0.01 - 0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:mbed_nano:nanorp2040connect |
:green_heart: -8 - -8 | -0.0 - -0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:megaavr:uno2018:mode=on |
:small_red_triangle: +256 - +256 | +0.53 - +0.53 | 0 - 0 | 0.0 - 0.0 |
arduino:renesas_uno:unor4wifi |
:green_heart: -32 - -32 | -0.01 - -0.01 | 0 - 0 | 0.0 - 0.0 |
arduino:samd:mkrwifi1010 |
:green_heart: -8 - -8 | -0.0 - -0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:samd:nano_33_iot |
:green_heart: -8 - -8 | -0.0 - -0.0 | 0 - 0 | 0.0 - 0.0 |
Click for full report table
| Board | examples/Central/LedControlflash |
% | examples/Central/LedControlRAM for global variables |
% | examples/Central/PeripheralExplorerflash |
% | examples/Central/PeripheralExplorerRAM for global variables |
% | examples/Central/Scanflash |
% | examples/Central/ScanRAM for global variables |
% | examples/Central/ScanCallbackflash |
% | examples/Central/ScanCallbackRAM for global variables |
% | examples/Central/SensorTagButtonflash |
% | examples/Central/SensorTagButtonRAM for global variables |
% | examples/Peripheral/Advertising/EnhancedAdvertisingflash |
% | examples/Peripheral/Advertising/EnhancedAdvertisingRAM for global variables |
% | examples/Peripheral/Advertising/RawDataAdvertisingflash |
% | examples/Peripheral/Advertising/RawDataAdvertisingRAM for global variables |
% | examples/Peripheral/BatteryMonitorflash |
% | examples/Peripheral/BatteryMonitorRAM for global variables |
% | examples/Peripheral/ButtonLEDflash |
% | examples/Peripheral/ButtonLEDRAM for global variables |
% | examples/Peripheral/CallbackLEDflash |
% | examples/Peripheral/CallbackLEDRAM for global variables |
% | examples/Peripheral/EncryptedBatteryMonitorflash |
% | examples/Peripheral/EncryptedBatteryMonitorRAM for global variables |
% | examples/Peripheral/LEDflash |
% | examples/Peripheral/LEDRAM for global variables |
% |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
arduino:mbed_nano:nano33ble |
-64 | -0.01 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 |
arduino:mbed_nano:nanorp2040connect |
-8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 |
arduino:megaavr:uno2018:mode=on |
256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 |
arduino:renesas_uno:unor4wifi |
-32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 |
arduino:samd:mkrwifi1010 |
-8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 |
arduino:samd:nano_33_iot |
-8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 |
Click for full report CSV
Board,examples/Central/LedControl<br>flash,%,examples/Central/LedControl<br>RAM for global variables,%,examples/Central/PeripheralExplorer<br>flash,%,examples/Central/PeripheralExplorer<br>RAM for global variables,%,examples/Central/Scan<br>flash,%,examples/Central/Scan<br>RAM for global variables,%,examples/Central/ScanCallback<br>flash,%,examples/Central/ScanCallback<br>RAM for global variables,%,examples/Central/SensorTagButton<br>flash,%,examples/Central/SensorTagButton<br>RAM for global variables,%,examples/Peripheral/Advertising/EnhancedAdvertising<br>flash,%,examples/Peripheral/Advertising/EnhancedAdvertising<br>RAM for global variables,%,examples/Peripheral/Advertising/RawDataAdvertising<br>flash,%,examples/Peripheral/Advertising/RawDataAdvertising<br>RAM for global variables,%,examples/Peripheral/BatteryMonitor<br>flash,%,examples/Peripheral/BatteryMonitor<br>RAM for global variables,%,examples/Peripheral/ButtonLED<br>flash,%,examples/Peripheral/ButtonLED<br>RAM for global variables,%,examples/Peripheral/CallbackLED<br>flash,%,examples/Peripheral/CallbackLED<br>RAM for global variables,%,examples/Peripheral/EncryptedBatteryMonitor<br>flash,%,examples/Peripheral/EncryptedBatteryMonitor<br>RAM for global variables,%,examples/Peripheral/LED<br>flash,%,examples/Peripheral/LED<br>RAM for global variables,%
arduino:mbed_nano:nano33ble,-64,-0.01,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:mbed_nano:nanorp2040connect,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0
arduino:megaavr:uno2018:mode=on,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0
arduino:renesas_uno:unor4wifi,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0
arduino:samd:mkrwifi1010,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0
arduino:samd:nano_33_iot,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0
Memory usage change @ 67d0048e3315f0f9ae38477225a308a693040ff8
| Board | flash | % | RAM for global variables | % |
|---|---|---|---|---|
arduino:mbed_nano:nano33ble |
:green_heart: -64 - 0 | -0.01 - 0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:mbed_nano:nanorp2040connect |
:green_heart: -8 - -8 | -0.0 - -0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:megaavr:uno2018:mode=on |
:small_red_triangle: +256 - +256 | +0.53 - +0.53 | 0 - 0 | 0.0 - 0.0 |
arduino:renesas_uno:unor4wifi |
:green_heart: -32 - -32 | -0.01 - -0.01 | 0 - 0 | 0.0 - 0.0 |
arduino:samd:mkrwifi1010 |
:green_heart: -8 - -8 | -0.0 - -0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:samd:nano_33_iot |
:green_heart: -8 - -8 | -0.0 - -0.0 | 0 - 0 | 0.0 - 0.0 |
Click for full report table
| Board | examples/Central/LedControlflash |
% | examples/Central/LedControlRAM for global variables |
% | examples/Central/PeripheralExplorerflash |
% | examples/Central/PeripheralExplorerRAM for global variables |
% | examples/Central/Scanflash |
% | examples/Central/ScanRAM for global variables |
% | examples/Central/ScanCallbackflash |
% | examples/Central/ScanCallbackRAM for global variables |
% | examples/Central/SensorTagButtonflash |
% | examples/Central/SensorTagButtonRAM for global variables |
% | examples/Peripheral/Advertising/EnhancedAdvertisingflash |
% | examples/Peripheral/Advertising/EnhancedAdvertisingRAM for global variables |
% | examples/Peripheral/Advertising/RawDataAdvertisingflash |
% | examples/Peripheral/Advertising/RawDataAdvertisingRAM for global variables |
% | examples/Peripheral/BatteryMonitorflash |
% | examples/Peripheral/BatteryMonitorRAM for global variables |
% | examples/Peripheral/ButtonLEDflash |
% | examples/Peripheral/ButtonLEDRAM for global variables |
% | examples/Peripheral/CallbackLEDflash |
% | examples/Peripheral/CallbackLEDRAM for global variables |
% | examples/Peripheral/EncryptedBatteryMonitorflash |
% | examples/Peripheral/EncryptedBatteryMonitorRAM for global variables |
% | examples/Peripheral/LEDflash |
% | examples/Peripheral/LEDRAM for global variables |
% |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
arduino:mbed_nano:nano33ble |
-64 | -0.01 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 | 0 | 0.0 |
arduino:mbed_nano:nanorp2040connect |
-8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 |
arduino:megaavr:uno2018:mode=on |
256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 | 256 | 0.53 | 0 | 0.0 |
arduino:renesas_uno:unor4wifi |
-32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 | -32 | -0.01 | 0 | 0.0 |
arduino:samd:mkrwifi1010 |
-8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 |
arduino:samd:nano_33_iot |
-8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 | -8 | -0.0 | 0 | 0.0 |
Click for full report CSV
Board,examples/Central/LedControl<br>flash,%,examples/Central/LedControl<br>RAM for global variables,%,examples/Central/PeripheralExplorer<br>flash,%,examples/Central/PeripheralExplorer<br>RAM for global variables,%,examples/Central/Scan<br>flash,%,examples/Central/Scan<br>RAM for global variables,%,examples/Central/ScanCallback<br>flash,%,examples/Central/ScanCallback<br>RAM for global variables,%,examples/Central/SensorTagButton<br>flash,%,examples/Central/SensorTagButton<br>RAM for global variables,%,examples/Peripheral/Advertising/EnhancedAdvertising<br>flash,%,examples/Peripheral/Advertising/EnhancedAdvertising<br>RAM for global variables,%,examples/Peripheral/Advertising/RawDataAdvertising<br>flash,%,examples/Peripheral/Advertising/RawDataAdvertising<br>RAM for global variables,%,examples/Peripheral/BatteryMonitor<br>flash,%,examples/Peripheral/BatteryMonitor<br>RAM for global variables,%,examples/Peripheral/ButtonLED<br>flash,%,examples/Peripheral/ButtonLED<br>RAM for global variables,%,examples/Peripheral/CallbackLED<br>flash,%,examples/Peripheral/CallbackLED<br>RAM for global variables,%,examples/Peripheral/EncryptedBatteryMonitor<br>flash,%,examples/Peripheral/EncryptedBatteryMonitor<br>RAM for global variables,%,examples/Peripheral/LED<br>flash,%,examples/Peripheral/LED<br>RAM for global variables,%
arduino:mbed_nano:nano33ble,-64,-0.01,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0
arduino:mbed_nano:nanorp2040connect,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0
arduino:megaavr:uno2018:mode=on,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0,256,0.53,0,0.0
arduino:renesas_uno:unor4wifi,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0,-32,-0.01,0,0.0
arduino:samd:mkrwifi1010,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0
arduino:samd:nano_33_iot,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0,-8,-0.0,0,0.0
Codecov Report
Attention: Patch coverage is 0% with 8 lines in your changes missing coverage. Please review.
Project coverage is 9.60%. Comparing base (
c91c02c) to head (80036ba). Report is 8 commits behind head on master.
| Files with missing lines | Patch % | Lines |
|---|---|---|
| src/utility/ATT.cpp | 0.00% | 8 Missing :warning: |
Additional details and impacted files
@@ Coverage Diff @@
## master #376 +/- ##
=========================================
- Coverage 9.62% 9.60% -0.03%
=========================================
Files 28 28
Lines 3656 3665 +9
=========================================
Hits 352 352
- Misses 3304 3313 +9
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.