Alternative légère à la bibliothèque ArduinoBLE

Bonjour à tous,

Je souhaite réaliser un projet qui utilise la fonctionnalité Bluetooth BLE de la carte WiFi Rev2, cependant l'inclusion de la bibliothèque ArduinoBLE consomme déjà 89% de la mémoire de la carte :frowning:

En ajoutant d'autres bibliothèques (EEPROM, StringSplitter) ainsi qu'un peu de code supplémentaire, je dépasse les 100%.

En ce qui concerne les fonctionnalités purement BT BLE, je n'ai pas besoin de plus que de créer un service contenant une seule caractéristique (StringCharacteristic) en lecture et écriture.

Je me dis que je ne suis sans doute pas le seul à regretter la taille de cette bibliothèque, et qu'il est possible qu'une version "allégée" ait été réécrite par quelqu'un de plus compétent que moi en C++, en supprimant certaines fonctionnalités moins importantes.

Merci d'avance pour vos retours.

Bonjour @alan1412

C'est déjà beaucoup !! car pour faire cette chose apparrement simple il faut s'engager assez profondément dans une pile protocolaire un peu lourdingue , réaliser diverses conditions préalables. Tous ces éléments protocolaires indissociables prennent nécessairement pas mal de place.

Sur ce forum il me semble que les utilsateurs de BLE codent pour ESP32 :heart:
ou pour pour diverses puces NordicSemiconductor utilisées par Adafruit.
Il est aussi possible de jouer un peu avec une ou deux caractéristiques en reconfigurant un module HM-10 câblé sur un port série de carte Arduino

Pour ESP32 , nimBLE, est une bibliothèque un peu moins lourde que celle initialement proposée.... reste à voir comment en tirer profit dans l'ESP32 'bridé' logé dans le module NINA

BLE peu paraître un peu 'chiant' à programmer, avec un carte étriquée ça devient un calvaire

La pile est gère par le microcontrôleur ?
Je pensais que justement c'est la puce qui gère le Bluetooth qui faisait ça et qu'il était assez difficile d'intervenir au niveau de la pile ?

oui , la puce (ESP32 ..... idem sur Raspberry PI) ne contenant qu'un module radio compatible BT et BLE (et WiFI bien entendu) en gros MAC en hard, GAP et GATT en soft (API IDF Espressif avec ou sans couche Arduino)

ça rappelle l'époque des ENC26J60 Microchip pour Ethernet :wink:

Ok, du coup le profile final, au dessus du GAP est forcément aussi logiciel.

oui les 2 : GAP et GATT, donc pour arriver agérer une seule caractéristique (notification , lecture, ecriture ) il y a tout un bazar à (bien) mettre en place sur le plan du soft avec un soc ou micro contenant une 'radio BLE' rien de plus

Merci @al1fch :+1:

Bin entendu dans le cas des puces dédiées 100% BLE comme la puce Texas Instruments des modules HM-10, la pile BLE est présente dans la mémoire Flash du microncontrôleur interne
ça se pilote (éventuelment sans bibliothèque avec des commandes AT)

En flashant un ESP32 avec un AT firmware BLE on y loge l'encombrante pile BLE , on peut ensuite piloter ce 'modem BLE' par un AVR n'ayant à gérer que qq commandes AT

@al1fch
@terwal
Merci pour vos réponses.
Si je résume, et si j'ai bien compris,j'ai deux options :

  • Soit j'utilise un module externe genre le hc-05 en bluetooth classique ( mais c'est quand même domage avec une carte qui possède une antenne bt intégrée)
  • Soit je vois si la bibliothèque nimBle est compatible avec le chip bt de la WiFi rev.2 ==> si qqun a déjà essayé et peut donner un petit feedback...

C'est quand même étrange de la part d'arduino d'avoir mis si peu de mémoire sachant que la bibliothèque pour prendre en charge un des composants principaux soit si volumineuse non ?

Bonjour

Concernant sa bibliothèque ArduinoBLE , Arduino énumère une liste de cartes compatibles mais ajoute ensuite :

Compatibility Note

Note: while the library is supposed to compile correctly on these architectures, it might require specific hardware features that may be available only on some boards.

ça relativise les choses.....

C'est quand même étrange de la part d'arduino d'avoir mis si peu de mémoire sachant que la bibliothèque pour prendre en charge un des composants principaux soit si volumineuse non ?

Pratique commerciale de plus en plus courante de nos jours, on vend des promesses, ici on laisse entendre que la carte UNO WiFI R2 est utilisable sans réserve en BLE en disant à mots couverts que ce n'est pas certain

N.B N'utilisant ni la carte UNO WIFI R2 ni aucune autre carte Arduino dotée du module U-Blox NINA-W102 je ne vois sans doute pas les diverses possibilités éventuelles de reconfiguration de cette carte pour pemettre d'occuper moins de place en mémoire Flash de l'AT4809 tout en bébéficiant du BLE du module

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.