Can anyone please define for me what are the differences between GATT and ATT? I didn't manage to understand.
I know that they are both generic protocol to handle BLE services. but didn't really understand it. Please explain.
Thanks!
You can find the Bluetooth specifications here: Specification Adopted Documents
Check out Core Version 4.2, Specification Volume 3 - Core System Package [Host Volume]. ATT is defined in Part F, and GATT in Part G.
ATT (page 2160): "This specification defines the Attribute Protocol; a protocol for discovering, reading, and writing attributes on a peer device."
GATT (page 2207): "This specification defines the Generic Attribute Profile that describes a service framework using the Attribute Protocol for discovering services, and for reading and writing characteristic values on a peer device."
So yes, GATT uses ATT as its transport protocol to exchange data between devices, and the spec describes in detail how each of these protocols are defined. Most application developers are mostly concerned with GATT, which is also used to define the API for some BLE libraries.