Ble characteristic enable indication

I need to enable a custom characteristic descriptor indication in ble,
Register for...block in Ble extension doesnt work.
I not aware if there is any trick to write directly, a way to implement directly java script to write the bytes i need to start the indication from the device, the project i assembled already and now i stuck in this issue.
Thank you

Please read your post again, and imagine that you are one of us, who have no idea what you are trying to do or what your problem really is. Then try again!

You are right, I'm sorry for my English.
I need to enable the indications of the cccd Client Characteristic Configuration Descriptor = 0x2902 of a BLE Custom Characteristic of a Custom Service
I tried to use the blocks RegisterFor Bytes...When BytesReceived but don't trigger the indications to start, if i do it with an app like nRF it works 0x2902 /03 00, is enabling the indications but I don't know how to do it with appinventor. then there is the problem to acknowledge the device that the indication has been received.
is there any way to write directly the bytes to the descriptor in appinventor or with ....?

service type: primary
characteristic: write, notify, indicate, write without response
descriptor: 0x2902

We need to see your App Inventor Project and the microcontroller Script/Sketch.

All the details of your hardware:

  1. Android device (smartphone) Make, Model, Android Version, Bluetooth Version
  2. Microcontroller Make, Model, Bluetooth Version
  3. If the microcontroller does not have Bluetooth built-in, then the Make, Model, Bluetooth Version of the Bluetooth module.
  4. A photograph of your circuit that clearly shows what goes to which pin.
  5. Tell us what your Project is doing - if other hardware is involved, list the make and model.

Note that for BLE, the BLE extension may not work with short form UUIDs, depending on the microcontroller.

Depending on Android + Bluetooth version you probably need to enable Location on your Android device.

galaxy a30
android 11
galaxy a53
android 13

microchip rn487x
Bluetooth SIG v5.0 Core Specification

the project is very easy, it works fine with other 3 ble devices that have characteristic that can be read or read on notify, but since i don't know how to manage indications seems like Ble extension in app inventor don't start the broadcasting of the ** indications**
kind regards

If you'd like to answer my post properly, maybe we can help you.

the only thing that matter to me is
** appinventor ble can manage indications or not?**
** how can i write the 00002902-0000-1000-80000-00805f9b34fb ?**
if yes, how, and thank you
if not, no problem and thank you
anyway this is the last message if i don't have a clear answer i give up with this app inventor!

If you study the BLE Blocks you will see that they include provision for the UUIDs.

If you search the forum for 'BLE' there are many examples. If you visit my website you will find a lot of useful information on BLE. You can create your own UUIDs on my site too.

00002902-0000-1000-80000-00805f9b34fb is an invalid UUID for use with BLE



I know that the post didn't start with Arduino.
I don't want to be polemic, but really don't suffer this way of talk to me
I need to respected, I studied everything before post, I was about to start to modify the blocks to add this feature but I think is pointless. if I have to create a block I write all the app in java directly its easier.
cccd = "00002902-0000-1000-80000-00805f9b34fb" is a specific part of the gatt ble
this is the the descriptor of a characteristic, need to write = true to enable the indications
from the characteristic that accept only write, write without response, notify, indicate.
the blocks don't have option to stick to a descriptor a true or false.
I was wondering if there was any way to bypass this.
if yes thank you.
if not thank you anyway
that's all

At the moment the BLE extension does not support indications. If you register for a characteristic it immediately switches into notification mode. We'd need to add some other flag or methods to support using indications over notifications.

IF IS POSSIBLE can you pls send me a link where I can modify only the register for bytes and the When bytes received of Bluetoothle extension without process all the burocracy of the App Inventor extensions.
Or Better if you could do it for me i will be glad to be the sponsor of this functionality.
just send me the ink to pay in [mod edit email address removed].
thank you again anyway

  1. this is what does Register for bytes write Value: 01 00
    should be 02 00 indications only, 03 00 to enable indications ad
  2. When bytes received as it is now would not acknowledge that has received the bytes,
    and if it doesn't the Characteristic don't fire any indication again.

That should be "00002902-0000-1000-8000-00805f9b34fb" ?

Is it not possible to work with Notifications instead? Although they are not acknowledged, when we get down to detail, the accurate exchange of data is the critical requirement.

Nobody is disrespecting you Alex, we are unpaid volunteers supporting a free programming language, trying to help the 0.9 million Users this month as best we can. Your English language posts are difficult to read (I'm English). You can write posts in your native language.....

this device works only with indications.
with Wireshark and nRF, I tried to look at the behaviour with the vendor android app that control it, and microchip rn487x is configured to use only indications.

nRF Connect, 2023-01-25
980009220031 (E8:EB:1B:8E:9E:6A)
V 21:05:26.320 Connecting to E8:EB:1B:8E:9E:6A...
D 21:05:26.323 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 21:05:26.519 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I 21:05:26.519 Connected to E8:EB:1B:8E:9E:6A
D 21:05:26.519 wait(1600ms)
D 21:05:26.533 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
V 21:05:28.119 Discovering services...
D 21:05:28.119 gatt.discoverServices()
D 21:05:28.139 [Callback] Services discovered with status: 0
I 21:05:28.139 Services discovered
V 21:05:28.161 Generic Access (0x1800)

  • Device Name [R] (0x2A00)
  • Appearance [R] (0x2A01)
    Generic Attribute (0x1801)
  • Service Changed [I] (0x2A05)
    Client Characteristic Configuration (0x2902)
    Device Information (0x180A)
  • Manufacturer Name String [R] (0x2A29)
  • Model Number String [R] (0x2A24)
  • Serial Number String [R] (0x2A25)
  • Hardware Revision String [R] (0x2A27)
  • Firmware Revision String [R] (0x2A26)
  • Software Revision String [R] (0x2A28)
  • System ID [R] (0x2A23)
  • IEEE 11073-20601 Regulatory Certification Data List [R] (0x2A2A)
    Unknown Service (49535343-fe7d-4ae5-8fa9-9fafd205e455)
  • Unknown Characteristic [I N W WNR] (49535343-1e4d-4bd9-ba61-23c647249616)
    Client Characteristic Configuration (0x2902)
  • Unknown Characteristic [W WNR] (49535343-8841-43f4-a8d4-ecbe34729bb3)
  • Unknown Characteristic [N W] (49535343-4c8a-39b3-2f49-511cff073b7e)
    Client Characteristic Configuration (0x2902)
    D 21:05:28.161 gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
    D 21:05:28.166 gatt.setCharacteristicNotification(49535343-1e4d-4bd9-ba61-23c647249616, true)
    D 21:05:28.171 gatt.setCharacteristicNotification(49535343-4c8a-39b3-2f49-511cff073b7e, true)
    I 21:06:06.455 Connection parameters updated (interval: 30.0ms, latency: 0, timeout: 5120ms)
    I 21:06:06.501 Indication received from 49535343-1e4d-4bd9-ba61-23c647249616, value: (0x) FF-FF-4C-01-08-06-06-15-19-03-01-17-00-5C
    A 21:06:06.501 "(0x) FF-FF-4C-01-08-06-06-15-19-03-01-17-00-5C" received
    I 21:06:08.027 Indication received from 49535343-1e4d-4bd9-ba61-23c647249616, value: (0x) FF-FF-5E-01-04-4D-00-05-6F-7C
    A 21:06:08.027 "(0x) FF-FF-5E-01-04-4D-00-05-6F-7C" received
    I 21:06:08.687 Indication received from 49535343-1e4d-4bd9-ba61-23c647249616, value: (0x) FF-FF-06-01-01-04-02
    A 21:06:08.687 "(0x) FF-FF-06-01-01-04-02" received
    I 21:06:08.717 Indication received from 49535343-1e4d-4bd9-ba61-23c647249616, value: (0x) FF-FF-0D-00-06-04-01-80-03-4A-00-C7
    A 21:06:08.717 "(0x) FF-FF-0D-00-06-04-01-80-03-4A-00-C7" received
    I 21:06:08.808 Indication received from 49535343-1e4d-4bd9-ba61-23c647249616, value: (0x) FF-FF-4C-01-08-08-06-15-19-03-01-17-00-52
    A 21:06:08.808 "(0x) FF-FF-4C-01-08-08-06-15-19-03-01-17-00-52" received
    I 21:06:08.927 Indication received from 49535343-1e4d-4bd9-ba61-23c647249616, value: (0x) FF-FF-0C-00-04-04-01-80-03-8E
    A 21:06:08.927 "(0x) FF-FF-0C-00-04-04-01-80-03-8E" received
    I 21:06:09.317 Indication received from 49535343-1e4d-4bd9-ba61-23c647249616, value: (0x) FF-FF-0C-00-04-04-01-80-03-8E
    A 21:06:09.317 "(0x) FF-FF-0C-00-04-04-01-80-03-8E" received
    I 21:06:09.707 Indication received from 49535343-1e4d-4bd9-ba61-23c647249616, value: (0x) FF-FF-0C-00-04-04-01-80-03-8E

I'm doing for free ( unpaid) as well, I'm happy to provide a useful tool for my colleagues, one tool for different popular brands of devices.
i need to include in the app this last device and then is done.

1 Like

From the MicroChip website:
50002466B.pdf (1.7 MB)

Page 69, Table D-1: Status Messages Returned By RN4870 /71
indications and notifications both supported?