I have 3 Atmel MCU based BLE scanners, each uses TI CC2540 based BLE module (PDF User Manual) chip to scan for the advertise packets (bluetooth Beacons) around. There are approx. 10 Beacons at a time around the scanner sending advertisiment packets every 100ms. The scanner needs only Minor, Major and the txPower of the each beacon.

The scanner sends an "AT+DISI" (start Beacon discovery s. User Manual) command over serial interface to the BLE Module and waits for the data response.

Everything works fine, but the time, until all data completely arrives takes around 5 seconds.

Since I want to scan for the Beacons one or two times a second, I need to improve the scanning time. Some possible options I thought about:

  1. connect 5 BLE modules to the microcontroller using serial port expander, successively send scan command with 1s time offset and at the same time collect data recieved so data arrives every second.
  2. Make use the 8051 MCU inside the CC2540, which may improve the speed, since no serial communication to external MCU is needed.
  3. Develop custom BLE profile, which has less payload and Beacon / scanner firmware that sends / listens on the constant frequency.
  4. Using another chip / technology

What is the best way to scan for a dozen of the BLE Beacons one-two times a second?

Related questions I read:

  1. How to scan for all available beacons with BLE – similar scenario, except I have 10 beacons at a time and less than a second to scan.
  2. BLE scan interval and window
  • \$\begingroup\$ Have you used a beacon scanner app on your phone to see if your beacons are working as intended? \$\endgroup\$ Jul 18, 2016 at 21:06
  • \$\begingroup\$ If you are comfortable coding in 8051 assembler (ugly), then that would either give you better performance, or at least allow you to determine why you can't get better performance. \$\endgroup\$
    – Mark
    Jul 19, 2016 at 0:41
  • \$\begingroup\$ @DigitalNinja The beacons are working properly and are configured via the Smartphone app. \$\endgroup\$ Jul 19, 2016 at 9:24

1 Answer 1


The BLE Chip that was used, uses the Serial communication to send the data to the µC. In this case it produces some overhead for the chip. The problem was solved by 4. option using the another BLE chip with SoftDevice on the emedded µC. So there no more serial communication needed and the scanning and procesing happens in a single chip.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.