Deep Dive w/Scott: BLE GATT on ESP32-S3 #adafruit
Channel: Adafruit Industries
Date: 04/02/2022

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