about ArduinoBLE_P
jerabaul29 opened this issue · 4 comments
Many thanks for bringing bluetooth to the Apollo3 :) . I am considering to start using it in a project.
A few questions:
- is this fully functional? I.e. does it allow simple back and forth transfer of data?
- any caveats / know problems or bugs?
- do you personally consider it usable / "production-ready"?
- would it be possible to / if not any reason why not pushing it to the sparkfun apollo3 repo? :)
hi
this Arduino BLE is for V1. It works with ArduinoBLE in exactly the same way as it does on V2. The BLE EXACTLE stack was taken over by ARM and integrated with CORDIO as part of MBED. From the testing that I have done, it worked stable. Actually, I am only using a limited amount of the driver files to connect the HCI layer in the chip with ArduinoBLE. Maybe max 50 files, but I wanted to keep it easy to include the complete stack, for future compatibility.
The EXACTLE stack V1 was removed in one of the minor version updates. So you need to do some copying as described in the install and I would use the ArduinoBLE_P. This is a Patched version that has the EXACTLE- driver connection included AND solves a number of bugs that have been discovered but not solved by ArduinoBLE team.
Not sure what kind of info you want to send. Are these large files or is it max 20 bytes. I can advise you better. Maybe drop me an email directly.
I have sent the complete package before to Sparkfun and had also made an integration with Openlog to exchange data from the MicroSD over Bluetooth with an integrated menu, but they did not seem to be interested. I think they want to keep moving on V2.
Currently, I am writing a number of sketches that work directly on the Cordio stack, not using ArduinoBLE. Not only peripheral / server, but also Client/central on Artemis. Next to that, I am using Python BLEAK on Linux (which also works on Windows) for the client. I have created examples (peripheral and client) for a BME280, Heartrate monitor, and NUS (Nordic Uart Service).
Now implementing ADM transfer protocol (AMDTP) to allow larger data structures to be exchanged between peripheral and central.
regards,
Paul
@paulvha
Sounds really exciting what you are working on. I managed to stream 1Kbyte/s constantly during data acquisition, but could not find a way to transfer large files (5-10 MB) recorded to an uSD card over BLE after the data acquisition was done.
Amazing. I'm currently using V2 on customized apollo3b boards. I want to infer a fast(not actually) data transfer for getting live data like ECG. Arduino BLE and MBED seems to limit the MTU size to 23 and that only reaches 26k byte/s. I have reached 160k byte/s on esp32 with ESP-BLE. I wonder if it is possible.
BTW, this repository is really amazing, the official example only contains a simple BLE advertise.
Not necessary. BLE can/will change it's MTU size on request of a central af connect
You can take ArduinoBLE_P.zip and install that next to ArduinoBLE in the IDE library folder. It does work on V2 as well (no need to install the Exactle etc.) Then in your sketch change to include ArduinoBLE to include ArduinoBLE_P. See example13_ph_MTU_size.ino on how to read the MTU size that has been agreed.
If you want me to take a further look, drop me your sketch to my private email (paulvha@hotmail.com) and I will have a look