I’m sure you’re aware that implementing Bluetooth Low Energy (BLE) for devices that interact with smartphones is one of the best ways to achieve a great user experience for your IoT device. However, designing BLE devices can be a daunting process! You're probably thinking: "Where do I even start??" One thing I wish I had when I started developing for BLE is more blog posts that walk you step-by-step on how to tackle the different phases of the system design and implementation. The Bluetooth GATT (Generic Attribute Profile) is the foundation for the design of any BLE system and [...]
The answer: 512 bytes. But to understand where that came from, let's first look at what a characteristic really is. Attributes are the generic term describing the smallest element in the Generic Attribute Profile (GATT). So each of Services, Characteristics, and Descriptors is actually an attribute, and according to the Bluetooth 4.2 spec (Volume 3, Part F, section 3.2.9): "The maximum length of an attribute value shall be 512 octets" which leads us to the answer: 512 bytes.