Nicla Vision transfer images over BLE and detect persons sample

Could we have a sample code for sending images over Bluetooth Low Energy using the Nicla Vision board.
In addition, could we have an algorithm to run on the Nicla Vision board that detect persons not only faces as the samples in OpenMV.

Farid Hage

You can’t send images over bluetooth low energy. This is what WiFi is for.

As for detecting people. You should train a custom CNN using edge impulse to run on the board. There’s not algorithm for this. It’s all data-driven. You need to collect a dataset of subjects and train a CNN on that dataset. You can then load that CNN into the Nicla Firmware.

Note, the firmware space on the nicla is limited. For loading a custom network, you’ll need to make space on the board. Once you have an acceptable CNN trained I can provide instructions on how to free up firmware space to fit a larger custom network.

Thank you for your clarification. We don’t want to have a video stream sent over bluetooth low energy. We just want to send one image if certain condition met, or a request is received from a phone. Then we just need to send one image over BLE to a phone for example. Is this possible, and is there a library to do it, or some samples.
Thank you in advance.

No, BLE is meant for very low data applications and signaling. E.g. like 20 byte messages. Sending 38KB or so of a JPEG is for WiFi.

That’s not to say you can’t try to make sending a large file over BLE work. It’s just not what the protocol is for.

There’s likely a way to do what you want. But, I don’t know how it would work.

I want to explain more about our task: we are working on a project in USA which connects to mobile phones. Their hotspot is disabled by USA operators, so for that reason we want to check the possibility of dividing the image into several parts and sent it over Bluetooth low energy.
On the other hand, what is the royalty fees for OpenMV to deploy their solution in a product in the market once launched.
Best Regards.

You just buy our cameras and deploy them. E.g. once you buy the Nicla it’s free to use how you like.

Seems like this is possible:

You need to figure out how to implement it though given the MicroPython Bluetooth stack.

This seems to be what you want:

But, use the higher level aioble library:

As for sending images, jpeg compressed images are can be accessed like bytearray objects. So, you can slice them up as granular as you want to transfer via BLE.