On Mon, Aug 24, 2020 at 1:40 PM Matias N. <mat...@imap.cc> wrote: > > > > I have been puzzling through the Goobledegook GATT server (GGK, > > https://github.com/moovel/gatt-server fork). It uses the Bluez D-Bus > > interface. It is GPLv3 so not a candidate for porting. And also not > > much use for understanding APIs since the OS interface is hidden inside > > of the Bluez D-Bus interface > > (https://core.docs.ubuntu.com/en/stacks/bluetooth/bluez/docs/reference/dbus-api) Yeah I am very familiar with this having shipped devices on top of the dbus API. The dbus API is provided by bluetoothd which intern is using the kernel socket interface. Goobledegook is not really providing us anything here since the underlying bindings between sockets and GATT are still in bluetoothd.
> > I think all the GATT logic in NuttX is very complete so it would be better to > use that as a base. > Right now it kind of looks like a library already so I think it would mostly > have to be reworked > to interface to the kernel part of the host layer via L2CAP sockets I think you are missing something here, the interface that needs to be supported is not L2CAP, it is HCI. You would need to write a binding between the link layer and HCI. Long as your device implements the interfaces here wireless/bluetooth/bt_hcicore.c we should already be in a great place. --Brennan