This project demonstrates the credit-based L2CAP communication layer used specifically in Bluetooth Low Energy devices.
The completed project should look like this after the implementation of lwIP and the addition of a Cloud architecture
The corrent scope of the project is to have a network of BLE gateways (centrals) that control subnetworks of server devices (peripherals). Currently the central device seeks a specified service value (UUID), which, if implemented by the advertiser, our central device will be able to connect to. Once connected, we initiate the L2CAP connection and can receive messages either directly from the peripheral or upon request by our central device. The triggers for data events are currently implemented as button-press actions.
Sent data is fragmented and reassembled depending on the specified PDU (functional message that is sent) and SDU (the entire, original message that may need to be fragmented if it can't fit inside a single PDU) sizes. There is also currently a GATT overhead, which, although not part of the scope of the project, functions well. We can discover the implemented services and characteristics of the peripheral devices and can subscribe to GATT indications to receive data more dynamically.
Silicon Labs WSTK, our peripheral device (and GATT server)
Silicon Labs Thunderboard, our central device (and GATT client)
Boot process and successful BT + L2CAP connection based upon specified service UUID
Data received by a request from central via button-press
Data received by central after being generated peripheral-side via button-press





