Bird
Raised Fist0
IOT Protocolsdevops~5 mins

BLE advertising and scanning in IOT Protocols - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is BLE advertising in simple terms?
BLE advertising is like a device shouting out its name and some info so nearby devices can hear and decide if they want to connect.
Click to reveal answer
beginner
What does BLE scanning do?
BLE scanning is when a device listens quietly to find nearby devices that are advertising, so it can learn about them or connect.
Click to reveal answer
intermediate
Name two types of BLE advertising.
1. Connectable advertising: invites devices to connect.
2. Non-connectable advertising: just shares info without allowing connections.
Click to reveal answer
intermediate
Why is advertising interval important in BLE?
It controls how often a device sends out its advertisement. Short intervals mean faster discovery but use more battery; longer intervals save battery but slow discovery.
Click to reveal answer
intermediate
What is the difference between active and passive scanning in BLE?
Active scanning sends a request to get more info from advertisers, while passive scanning just listens without sending anything.
Click to reveal answer
What does BLE advertising primarily do?
AEncrypts data for security
BConnects directly to Wi-Fi
CBroadcasts device info to nearby devices
DSaves battery by sleeping
Which BLE advertising type allows other devices to connect?
AConnectable advertising
BActive advertising
CPassive advertising
DNon-connectable advertising
What is the main difference between active and passive scanning?
AActive scanning listens only, passive sends requests
BPassive scanning listens only, active sends requests
CBoth send requests
DNeither listens
Why might a device use a longer advertising interval?
ATo save battery life
BTo connect to more devices
CTo increase discovery speed
DTo improve signal strength
What role does scanning play in BLE communication?
AIt sends data to other devices
BIt powers the device
CIt encrypts the connection
DIt listens for advertising devices
Explain how BLE advertising and scanning work together in device discovery.
Think of one device shouting and another listening.
You got /3 concepts.
    Describe the impact of advertising interval on battery life and device discovery speed.
    Compare it to how often you shout to get attention.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of BLE advertising in Bluetooth Low Energy communication?
      easy
      A. To broadcast small packets of data repeatedly to nearby devices
      B. To establish a full connection between devices
      C. To encrypt data between devices
      D. To scan for other devices' signals

      Solution

      1. Step 1: Understand BLE advertising role

        BLE advertising sends small data packets repeatedly to announce presence.
      2. Step 2: Differentiate from scanning and connection

        Advertising is broadcasting, not scanning or connecting.
      3. Final Answer:

        To broadcast small packets of data repeatedly to nearby devices -> Option A
      4. Quick Check:

        Advertising = broadcast small data [OK]
      Hint: Advertising means sending out info repeatedly [OK]
      Common Mistakes:
      • Confusing advertising with scanning
      • Thinking advertising establishes connections
      • Assuming advertising encrypts data
      2. Which of the following is the correct command to start BLE scanning using the Linux tool bluetoothctl?
      easy
      A. ble scan start
      B. start scan
      C. scan start
      D. scan on

      Solution

      1. Step 1: Recall bluetoothctl scan command

        The correct command to start scanning is exactly scan on.
      2. Step 2: Check other options for syntax

        Other options are incorrect commands or invalid syntax in bluetoothctl.
      3. Final Answer:

        scan on -> Option D
      4. Quick Check:

        bluetoothctl scan on = start scanning [OK]
      Hint: Use exact command 'scan on' in bluetoothctl [OK]
      Common Mistakes:
      • Using 'start scan' instead of 'scan on'
      • Typing commands not supported by bluetoothctl
      • Confusing scan commands with advertising commands
      3. Given this Python snippet using a BLE library to scan devices:
      devices = scanner.scan(5.0)
      for dev in devices:
      print(dev.addr)

      What will this code output?
      medium
      A. Empty list because scan time is too short
      B. List of device addresses found during 5 seconds scan
      C. Error because scan() needs no arguments
      D. List of device names found during 5 seconds scan

      Solution

      1. Step 1: Understand scan() usage with timeout

        The scan method scans for devices for given seconds and returns device objects.
      2. Step 2: Identify printed attribute

        Printing dev.addr outputs device MAC addresses found.
      3. Final Answer:

        List of device addresses found during 5 seconds scan -> Option B
      4. Quick Check:

        scan(5.0) returns devices; dev.addr prints addresses [OK]
      Hint: scan(timeout) returns devices; print dev.addr for addresses [OK]
      Common Mistakes:
      • Thinking scan() takes no arguments
      • Confusing device address with device name
      • Assuming scan always returns empty list
      4. You wrote this code to scan BLE devices but get no output:
      scanner = Scanner()
      devices = scanner.scan()
      for dev in devices:
      print(dev.addr)

      What is the likely problem?
      medium
      A. print(dev.addr) is incorrect attribute
      B. Scanner() class does not exist
      C. Missing scan timeout argument causes no devices found
      D. scan() method should be called with 'start' keyword

      Solution

      1. Step 1: Check scan() method requirements

        scan() requires a timeout argument to specify scan duration.
      2. Step 2: Understand effect of missing timeout

        Without timeout, scan may return immediately with no devices.
      3. Final Answer:

        Missing scan timeout argument causes no devices found -> Option C
      4. Quick Check:

        scan() needs timeout to find devices [OK]
      Hint: Always provide scan timeout to get results [OK]
      Common Mistakes:
      • Omitting scan timeout argument
      • Assuming dev.addr is invalid
      • Thinking scan() uses 'start' keyword
      5. You want to filter BLE scan results to only show devices advertising a specific service UUID. Which approach correctly applies this filter in Python?
      hard
      A. Use a list comprehension: [dev for dev in devices if '1234' in dev.getScanData()]
      B. Check if '1234' in dev.addr for each device
      C. Filter devices by comparing dev.name to '1234'
      D. Use devices.filter('1234') method directly

      Solution

      1. Step 1: Understand filtering by service UUID

        Service UUIDs appear in scan data, not in address or name.
      2. Step 2: Use list comprehension with getScanData()

        getScanData() returns advertised data; check if UUID '1234' is present.
      3. Final Answer:

        Use a list comprehension: [dev for dev in devices if '1234' in dev.getScanData()] -> Option A
      4. Quick Check:

        Filter by UUID in scan data using list comprehension [OK]
      Hint: Filter devices by checking UUID in scan data list [OK]
      Common Mistakes:
      • Checking UUID in device address
      • Filtering by device name instead of UUID
      • Using non-existent filter() method on devices
      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