Thank you, now I understand the situation better.
I also found V. Hunter Adams’s documentation very helpful.
I'd like to share two sample projects that use multiple characteristics with 128-bit UUIDs:
https://github.com/oyama/pico-ble-wifi-provisioning
https://github.com/oyama/pico-stdio-ble
Both projects automatically generate the ATT database header (which includes profile_data) from a .gatt file using pico_btstack_make_gatt_header in CMakeLists.txt. The generated files can be found in the generated directory inside the build folder.
For the format of the .gatt file, you can refer to the BTstack manual:
https://bluekitchen-gmbh.com/btstack/#p ... att-server
One thing to be careful about: when you change the structure of your GATT services or characteristics, central devices like nRF Connect may cache the peripheral's information deep in the OS. In some cases, a reboot might be needed during testing to reflect the changes properly.
Since the advertising packet is limited to 31 bytes, when including 128-bit UUIDs, you’ll likely need to reduce or adjust other information included in the packet to make it fit.
I also found V. Hunter Adams’s documentation very helpful.
I'd like to share two sample projects that use multiple characteristics with 128-bit UUIDs:
https://github.com/oyama/pico-ble-wifi-provisioning
https://github.com/oyama/pico-stdio-ble
Both projects automatically generate the ATT database header (which includes profile_data) from a .gatt file using pico_btstack_make_gatt_header in CMakeLists.txt. The generated files can be found in the generated directory inside the build folder.
For the format of the .gatt file, you can refer to the BTstack manual:
https://bluekitchen-gmbh.com/btstack/#p ... att-server
One thing to be careful about: when you change the structure of your GATT services or characteristics, central devices like nRF Connect may cache the peripheral's information deep in the OS. In some cases, a reboot might be needed during testing to reflect the changes properly.
Since the advertising packet is limited to 31 bytes, when including 128-bit UUIDs, you’ll likely need to reduce or adjust other information included in the packet to make it fit.
Statistics: Posted by 0yama — Wed Apr 09, 2025 2:32 am