Bird
Raised Fist0
IOT Protocolsdevops~10 mins

GATT profile architecture in IOT Protocols - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to define a GATT service UUID.

IOT Protocols
service_uuid = "[1]"
Drag options to blanks, or click blank then click option'
A00001101-0000-1000-8000-00805f9b34fb
B12345678-1234-5678-1234-56789abcdef0
C0000180d-0000-1000-8000-00805f9b34fb
Dabcdefab-cdef-abcd-efab-cdefabcdefab
Attempts:
3 left
💡 Hint
Common Mistakes
Using a random UUID instead of a standard service UUID.
2fill in blank
medium

Complete the code to add a characteristic to a GATT service.

IOT Protocols
characteristic = service.add_characteristic("[1]")
Drag options to blanks, or click blank then click option'
A00002a00-0000-1000-8000-00805f9b34fb
B0000180f-0000-1000-8000-00805f9b34fb
C00002a19-0000-1000-8000-00805f9b34fb
D00002a37-0000-1000-8000-00805f9b34fb
Attempts:
3 left
💡 Hint
Common Mistakes
Confusing characteristic UUIDs with service UUIDs.
3fill in blank
hard

Fix the error in the code to correctly read a characteristic value.

IOT Protocols
value = characteristic.[1]()
Drag options to blanks, or click blank then click option'
Aread
Bnotify
Cwrite
Dsubscribe
Attempts:
3 left
💡 Hint
Common Mistakes
Using write() instead of read(), which sends data rather than receiving.
4fill in blank
hard

Fill both blanks to define a GATT descriptor with its UUID and permission.

IOT Protocols
descriptor = characteristic.add_descriptor("[1]", permission="[2]")
Drag options to blanks, or click blank then click option'
A00002902-0000-1000-8000-00805f9b34fb
Bread
Cwrite
D00002a29-0000-1000-8000-00805f9b34fb
Attempts:
3 left
💡 Hint
Common Mistakes
Using characteristic UUID instead of descriptor UUID.
5fill in blank
hard

Fill all three blanks to create a GATT profile dictionary with service, characteristic, and descriptor UUIDs.

IOT Protocols
gatt_profile = {
  "service": "[1]",
  "characteristic": "[2]",
  "descriptor": "[3]"
}
Drag options to blanks, or click blank then click option'
A0000180a-0000-1000-8000-00805f9b34fb
B00002a29-0000-1000-8000-00805f9b34fb
C00002902-0000-1000-8000-00805f9b34fb
D00002a37-0000-1000-8000-00805f9b34fb
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up characteristic and descriptor UUIDs.

Practice

(1/5)
1. What is the main purpose of the GATT profile architecture in Bluetooth Low Energy (BLE)?
easy
A. To encrypt data during Bluetooth transmission
B. To increase the Bluetooth signal strength between devices
C. To manage device battery usage during Bluetooth communication
D. To organize data into profiles, services, characteristics, and descriptors for clear communication

Solution

  1. Step 1: Understand GATT architecture purpose

    The GATT profile architecture structures data into profiles, services, characteristics, and descriptors to organize communication.
  2. Step 2: Compare with other options

    Options A, B, and D describe other Bluetooth features but not the main purpose of GATT architecture.
  3. Final Answer:

    To organize data into profiles, services, characteristics, and descriptors for clear communication -> Option D
  4. Quick Check:

    GATT architecture = Organize data clearly [OK]
Hint: Remember GATT structures data for clear device communication [OK]
Common Mistakes:
  • Confusing GATT with Bluetooth signal or encryption features
  • Thinking GATT manages battery usage
  • Mixing GATT with lower-level radio functions
2. Which of the following correctly represents the hierarchy in GATT profile architecture from highest to lowest level?
easy
A. Service > Profile > Characteristic > Descriptor
B. Characteristic > Service > Profile > Descriptor
C. Profile > Service > Characteristic > Descriptor
D. Descriptor > Characteristic > Service > Profile

Solution

  1. Step 1: Recall GATT hierarchy order

    The correct order is Profile at the top, then Service, followed by Characteristic, and Descriptor at the bottom.
  2. Step 2: Match options with hierarchy

    Profile > Service > Characteristic > Descriptor matches this order exactly; others have incorrect sequences.
  3. Final Answer:

    Profile > Service > Characteristic > Descriptor -> Option C
  4. Quick Check:

    Hierarchy order = Profile > Service > Characteristic > Descriptor [OK]
Hint: Profile contains services, services contain characteristics, characteristics have descriptors [OK]
Common Mistakes:
  • Mixing up the order of profile and service
  • Confusing characteristics with descriptors
  • Reversing the hierarchy levels
3. Given a BLE device with a GATT profile containing a Heart Rate Service (UUID 0x180D) and a Heart Rate Measurement characteristic (UUID 0x2A37), what will the device send when the heart rate changes?
medium
A. A profile change event to the connected device
B. A notification containing the new heart rate value from the Heart Rate Measurement characteristic
C. A descriptor update with the heart rate value
D. A new service registration with updated UUID

Solution

  1. Step 1: Identify characteristic role

    The Heart Rate Measurement characteristic sends updated heart rate data via notifications.
  2. Step 2: Understand BLE data flow

    Services and profiles define structure but do not send data directly; descriptors provide metadata, not values.
  3. Final Answer:

    A notification containing the new heart rate value from the Heart Rate Measurement characteristic -> Option B
  4. Quick Check:

    Characteristic sends data notifications [OK]
Hint: Characteristics send data updates via notifications [OK]
Common Mistakes:
  • Confusing descriptors with data carriers
  • Thinking services send data directly
  • Assuming profile changes on data update
4. A developer tries to add a characteristic directly under a profile without defining a service first. What is the likely issue?
medium
A. The characteristic will not be recognized because characteristics must belong to a service
B. The profile will automatically create a default service for the characteristic
C. The characteristic will work but descriptors will fail
D. The BLE device will crash due to invalid hierarchy

Solution

  1. Step 1: Understand GATT hierarchy rules

    Characteristics must be part of a service; profiles contain services, not characteristics directly.
  2. Step 2: Analyze consequences of skipping service

    Without a service, the characteristic is invalid and won't be recognized by BLE clients.
  3. Final Answer:

    The characteristic will not be recognized because characteristics must belong to a service -> Option A
  4. Quick Check:

    Characteristic requires service parent [OK]
Hint: Characteristics must be inside services, never directly under profiles [OK]
Common Mistakes:
  • Assuming profiles can contain characteristics directly
  • Expecting automatic service creation
  • Believing device crashes on hierarchy errors
5. You want to design a BLE device that measures temperature and humidity. Which GATT profile architecture setup is best to organize these measurements for easy client access?
hard
A. Create one profile with two services: Temperature Service and Humidity Service, each with their own measurement characteristic
B. Create one profile with one service containing both temperature and humidity characteristics
C. Create two profiles: one for temperature and one for humidity, each with one service and characteristic
D. Create one service with one characteristic that alternates between temperature and humidity values

Solution

  1. Step 1: Consider GATT design best practices

    Grouping related measurements under separate services for temperature and humidity allows clear separation and easier client handling.
  2. Step 2: Evaluate options for clarity and efficiency

    Creating one profile with two services, each with their own characteristic, is a common and clear design pattern for distinct sensor types.
  3. Final Answer:

    Create one profile with two services: Temperature Service and Humidity Service, each with their own measurement characteristic -> Option A
  4. Quick Check:

    Separate services for distinct sensor types [OK]
Hint: Use separate services for distinct sensor measurements [OK]
Common Mistakes:
  • Creating multiple profiles unnecessarily
  • Using one characteristic for multiple data types
  • Grouping unrelated data into one service
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard