EPISODE · Feb 4, 2022 · 2H 5M
Deep Dive w/Scott: BLE GATT on ESP32-S3
from Adafruit Industries · host Adafruit Industries
Join Scott as he continues bluetooth low energy (BLE) GATT client code on the ESP32-S3. Chat on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific. Next week is on Friday. All notes are available on GitHub with links into the videos. Thanks to @askpatrickw and @dcd for making and maintaining the notes. https://github.com/adafruit/deep-dive-notes/ 0:00 Cat cam in main window 1:00 hello 3:50 introduction and housekeeping 4:40 introduce Vin and Spook 6:55 linkedin and restream streams as well 7:20 https://github.com/adafruit/deep-dive-notes 8:29 did you ever cover how the compiler works in CP on one of these deep dives? 10:40 Did you see that Zephyr now has support for RP2040? 11:03 Linker was for the actual linking of the CP core (and just general knowledge). The compiler for more how the internal Python compiler works 12:02 Smokey Brights / https://www.smokeybrights.com/ 12:50 https://docs.micropython.org/en/latest/develop/compiler.html 13:40 # 5881Thank you for an example how to use DeviceInfoService for connections 15:55 continue CP 2022 discussion 18:22 Axel - 19:00 crashes that happen after several days are very hard to debug 19:13 Does Adafruit have any plans to support a 5 GHz wifi chip? Espressif c6 20:25 kattni’s #circuitpython2022 22:30 https://blog.adafruit.com/2022/02/01/the-circuitpython-community-a-round-up-and-a-look-forward-to-2022/ 28:15 “it takes a village” 32:45 thank you Kattni for reminding us that CircuitPython requires its community 33:05 PlatformIO? 33:40 How does the CP2022 resolve? Are you going to publish a manifesto or something? 37:06 Does anyone know about a driver for Windows to make a Bluetooth COM-Port to the adafruit_ble.services.nordic UARTService accessible 37:50 Kattni will be my first guest on Paul Cutler’s CP podcast, too, which will give a chance for people to hear her March 1st - 39:35 BlueTooth - review last week / broadcast and observer roles 43:28 next step - initiating the connection 45:04 BatteryService 46:45 Declarative form of python used 47:22 BLE - GAP advertising 47:39 GATT - use to build this library upon 48:35 github BLE example uart examples (client ) 50:55 Can you point me to a CP joystick hid example that uses analog inputs for pi pico? 57:00 what makes up a service 59:30 where is serial_number? 1:00:20 Bluetooth.com specifications and more BLE service api and espressif/common-hal/bleio/Connetion.c 1:09:10 Nimble callbacks *_cb / FreeRTOS 1:12:35 Discover by UUID will be faster 1:13:05 Discover all characteristics 1:15:35 nRF 52840 with BLE 1:16:09 esp s3 board - client board 1:17:14 nimble screen - demo 1:18:35 and example code - Unhandled connection event 12 1:19:20 uart.read(4) is not reading - how does it work… 1:20:00 NUX Nordic Uart Service 1:21:08 passing up the lower level services 1:22:20 StreamIn and StreamOut 1:24:35 Characteristics_buffer - native 1:28:00 This is a deep dive ( notify vs indicate ) 1:28:41 two ways to write ( write and write without response ) 1:30:30 then there is the security stuff 1:32:10 how do we go about building circuitpython uf2 files for missing boards? https://learn.adafruit.com/building-circuitpython and https://learn.adafruit.com/how-to-add-a-new-board-to-circuitpython 1:37:35 “there’s no software engineering problem that can’t be solved with another layer of abstraction.” - ( in the right place ) 1:39:02 implementation for nRF version 1:39:48 *GATTS - server, and *GATTC client 1:40:39 adding event handler in constructor, need to add to espressif version also 1:42:28 need an event handler system 1:42:40 this is all BLE workflow stuff you're working on now right, not just "standard BLE" support for S3? 1:45:10 HVX is short for “Handle Value Notification or Indication” 1:47:30 CP joystick hid example that uses analog inputs for pi pico? https://learn.adafruit.com/customizing-usb-devices-in-circuitpython/hid-devices and https://learn.adafruit.com/getting-started-with-raspberry-pi-pico-circuitpython/potentiometer-and-pwm-led and of course - reach out on discord https://adafru.it/discord 1:50:15 again - take the the nRF code, and change it for the espressif version 1:52:40 we need two callbacks here for espressif and review ble_gap.h 1:56:12 could be more complicated due to non-consecutive buffers 1:57:22 Has there been any discussion of doing BLE Mesh support 1:59:06 Need to figure out how to split apart the om buffer os_mbuf 2:01:44 "Apache Mynewt offers the world’s first fully open-source Bluetooth Low Energy (BLE) or Bluetooth Smart stack fully compliant with Bluetooth 5 specifications with support for Bluetooth Mesh. It is called NimBLE." https://mynewt.apache.org/latest/network/index.html# 2:02:00 Check out the git repos 2:03:03 circuit-python dev channel 2:03:59 Next week on Friday 2:04:19 Pet the cat 2:05:02 have a great weekend
What this episode covers
Join Scott as he continues bluetooth low energy (BLE) GATT client code on the ESP32-S3. Chat on the Adafruit Discord at https://adafru.it/discord. Deep Dive happens every week. Normally Fridays at 2pm Pacific. Next week is on Friday. All notes are available on GitHub with links into the videos. Thanks to @askpatrickw and @dcd for making and maintaining the notes. https://github.com/adafruit/deep-dive-notes/ 0:00 Cat cam in main window 1:00 hello 3:50 introduction and housekeeping 4:40 introduce Vin and Spook 6:55 linkedin and restream streams as well 7:20 https://github.com/adafruit/deep-dive-notes 8:29 did you ever cover how the compiler works in CP on one of these deep dives? 10:40 Did you see that Zephyr now has support for RP2040? 11:03 Linker was for the actual linking of the CP core (and just general knowledge). The compiler for more how the internal Python compiler works 12:02 Smokey Brights / https://www.smokeybrights.com/ 12:50 https://docs.micropython.org/en/latest/develop/compiler.html 13:40 # 5881Thank you for an example how to use DeviceInfoService for connections 15:55 continue CP 2022 discussion 18:22 Axel - 19:00 crashes that happen after several days are very hard to debug 19:13 Does Adafruit have any plans to support a 5 GHz wifi chip? Espressif c6 20:25 kattni’s #circuitpython2022 22:30 https://blog.adafruit.com/2022/02/01/the-circuitpython-community-a-round-up-and-a-look-forward-to-2022/ 28:15 “it takes a village” 32:45 thank you Kattni for reminding us that CircuitPython requires its community 33:05 PlatformIO? 33:40 How does the CP2022 resolve? Are you going to publish a manifesto or something? 37:06 Does anyone know about a driver for Windows to make a Bluetooth COM-Port to the adafruit_ble.services.nordic UARTService accessible 37:50 Kattni will be my first guest on Paul Cutler’s CP podcast, too, which will give a chance for people to hear her March 1st - 39:35 BlueTooth - review last week / broadcast and observer roles 43:28 next step - initiating the connection 45:04 BatteryService 46:45 Declarative form of python used 47:22 BLE - GAP advertising 47:39 GATT - use to build this library upon 48:35 github BLE example uart examples (client ) 50:55 Can you point me to a CP joystick hid example that uses analog inputs for pi pico? 57:00 what makes up a service 59:30 where is serial_number? 1:00:20 Bluetooth.com specifications and more BLE service api and espressif/common-hal/bleio/Connetion.c 1:09:10 Nimble callbacks *_cb / FreeRTOS 1:12:35 Discover by UUID will be faster 1:13:05 Discover all characteristics 1:15:35 nRF 52840 with BLE 1:16:09 esp s3 board - client board 1:17:14 nimble screen - demo 1:18:35 and example code - Unhandled connection event 12 1:19:20 uart.read(4) is not reading - how does it work… 1:20:00 NUX Nordic Uart Service 1:21:08 passing up the lower level services 1:22:20 StreamIn and StreamOut 1:24:35 Characteristics_buffer - native 1:28:00 This is a deep dive ( notify vs indicate ) 1:28:41 two ways to write ( write and write without response ) 1:30:30 then there is the security stuff 1:32:10 how do we go about building circuitpython uf2 files for missing boards? https://learn.adafruit.com/building-circuitpython and https://learn.adafruit.com/how-to-add-a-new-board-to-circuitpython 1:37:35 “there’s no software engineering problem that can’t be solved with another layer of abstraction.” - ( in the right place ) 1:39:02 implementation for nRF version 1:39:48 *GATTS - server, and *GATTC client 1:40:39 adding event handler in constructor, need to add to espressif version also 1:42:28 need an event handler system 1:42:40 this is all BLE workflow stuff you're working on now right, not just "standard BLE" support for S3? 1:45:10 HVX is short for “Handle Value Notification or Indication” 1:47:30 CP joystick hid example that uses analog inputs for pi pico? https://learn.adafruit.com/customizing-usb-devices-in-circuitpython/hid-devices and https://learn.adafruit.com/getting-started-with-raspberry-pi-pico-circuitpython/potentiometer-and-pwm-led and of course - reach out on discord https://adafru.it/discord 1:50:15 again - take the the nRF code, and change it for the espressif version 1:52:40 we need two callbacks here for espressif and review ble_gap.h 1:56:12 could be more complicated due to non-consecutive buffers 1:57:22 Has there been any discussion of doing BLE Mesh support 1:59:06 Need to figure out how to split apart the om buffer os_mbuf 2:01:44 "Apache Mynewt offers the world’s first fully open-source Bluetooth Low Energy (BLE) or Bluetooth Smart stack fully compliant with Bluetooth 5 specifications with support for Bluetooth Mesh. It is called NimBLE." https://mynewt.apache.org/latest/network/index.html# 2:02:00 Check out the git repos 2:03:03 circuit-python dev channel 2:03:59 Next week on Friday 2:04:19 Pet the cat 2:05:02 have a great weekend
NOW PLAYING
Deep Dive w/Scott: BLE GATT on ESP32-S3
No transcript for this episode yet
Similar Episodes
Apr 21, 2026 ·73m
Apr 18, 2026 ·14m
Apr 18, 2026 ·95m
Apr 15, 2026 ·55m
Apr 13, 2026 ·68m
Apr 11, 2026 ·59m