Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

You can use an M5Stack Core ESP32 and Visuino to scan for nearby Bluetooth Low Energy (BLE) devices and show discovered devices on the board’s screen. The scan detects devices that are broadcasting BLE advertisements; it does not automatically connect to them, pair with them, or read their data. The tutorial demonstrating this build was published on June 20, 2023, and does not establish a universal scan range or device limit.

What you need for the M5Stack Bluetooth scanner

  • M5Stack Core ESP32 development kit: This is the scanner platform used in the tutorial. Check the exact board revision: the original Core/Gray ESP32 is not the same hardware target as Core2 or CoreS3.
  • A computer and compatible USB cable: These are practical setup items; the tutorial description does not specify a particular cable model.
  • Visuino: The tutorial uses this visual development environment to build the scanner.

M5Stack’s Core/Gray documentation describes an ESP32 development kit with Wi-Fi, 4 MB SPI flash, dual-core operation, and Arduino IDE support. Those are board characteristics, not a guarantee that every M5Stack product or revision uses the same hardware.

How the scan finds Bluetooth devices

A passive BLE scan listens for advertising packets sent by devices in radio range. Devices that are not advertising, or whose packets the scanner does not receive, will not necessarily appear. Nearby interference, obstacles, the devices’ advertising behavior, and scan configuration can all affect what is discovered.

The tutorial shows scan results on the M5Stack display, but reports no universal range, maximum device count, latency, or accuracy figure. Treat the display as a view of devices observed during that scan, not an exhaustive inventory of every Bluetooth device nearby.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
M5Stack CoreS3 ESP32S3 IoT Develpment Kit
  • Powerful ESP32-S3 Chip: The M5Stack CoreS3 is powered by the advanced ESP32-S3 chip, offering improved performance and enhanced capabilities for IoT projects.
  • Built-in Wi-Fi and Bluetooth: The CoreS3 comes with built-in Wi-Fi and Bluetooth connectivity, allowing seamless wireless communication and integration with other devices.
  • Integrated Camera Interface: This development board features an integrated camera interface, enabling users to easily connect a camera module for capturing images or implementing computer vision applications.
  • Expandable Modular Design: The CoreS3 follows M5Stack's modular design philosophy, making it compatible with various stackable modules and expansion boards. Users can easily extend its functionality by adding sensors, actuators, or displays.
  • A rduino-Compatible Development Platform: With support for the A rduino ecosystem, the CoreS3 offers a familiar programming environment for developers to create IoT projects using C/C++ or A rduino IDE.

Scanning, connecting, and pairing are different steps

Operation What it does Does it require pairing?
Passive BLE scanning Receives advertising packets from devices that are broadcasting. No. Observing advertisements does not itself require pairing.
GATT connection Connects to a device to interact with its services and characteristics. Not necessarily; requirements depend on the device and the data or operation involved.
Protected GATT access Exchanges data or performs operations protected by the device’s security settings. Authentication or other BLE security procedures may be required.

Espressif’s ESP-IDF multi-connection example lays out a broader workflow: initialize the system, configure scanning, discover devices, connect to selected devices, and register for notifications. It demonstrates an ESP32 central device working with three peripherals; that example is not a scan-capacity guarantee for the M5Stack/Visuino build.

Development options beyond the demonstrated Visuino build

Visuino is the workflow used in the tutorial. Developers building their own scanner may instead use Arduino or ESP-IDF, but those are separate implementation paths rather than steps required to reproduce the demonstrated project.

Rank #2
M5Stack Official ESP32 Basic Core IoT Development Kit V2.7
  • Dual-Core Power: Powered by the ESP32 chipset with dual-core Xtensa 32-bit microprocessors, delivering high performance at 240MHz.
  • High Integration: Includes a 2.0-inch full-color HD IPS display, built-in speaker, and TF card slot, all packed in a compact design.
  • Rich Interface Support: Features 15x IO pins and supports ADC/DAC/I2C/UART/SPI interfaces, offering flexibility for various applications.
  • Expandable: Compatible with M5Stack's stacking modules and rich sensor expansions, making it ideal for product prototyping and IoT projects.
  • Easy Development: Supports UIFlow, Arduino, MicroPython, and .NET nanoFramework, perfect for low-code and no-code projects.

Espressif’s Arduino BLE documentation distinguishes the original ESP32 Arduino core’s Bluedroid stack, which supports Bluetooth Classic and BLE, from NimBLE, a BLE-only stack with lower flash and RAM requirements. The appropriate stack depends on the application; a passive BLE scanner does not need Bluetooth Classic simply because the board can support it.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Saving scan results to a MicroSD card

The tutorial’s screen display is not the same as persistent logging. For a more advanced implementation, the open-source ESP32-BLECollector project describes a passive BLE scanner with a user interface that stores discovered data in SQLite on an SD card.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
M5Stack Officail Dial v1.1-ESP32-S3 Smart Rotary Knob w 1.28" Round Touch Screen
  • ESP32-S3 CORE & WI-FI: Stamp-S3A with Xtensa LX7 dual-core 240 MHz, 8 MB Flash and 2.4 GHz Wi-Fi – delivers enhanced processing power for smart home control, IoT, and industrial control applications.
  • 1.28" ROUND TOUCH DISPLAY & ENCODER: GC9A01 1.28" 240×240 round TFT touch screen with FT3267 driver and 64-pulse rotary encoder – enables intuitive parameter control and real-time status monitoring.
  • RFID & ALERT INTERACTION: WS1850S RFID (13.56 MHz, ISO/IEC 14443 Type A/B), 80dB buzzer, RTC and under-screen buttons – enable access control, timed alerts, and device wake-up functions.
  • WIDE VOLTAGE & BATTERY SUPPORT: DC 6~36V wide-voltage input with lithium battery interface and charging circuit; ultra-low 6μA sleep current – ideal for flexible industrial and portable IoT deployments.
  • PORT.A/B EXPANSION & MULTI-PLATFORM: Reserved PORT.A (I2C) and PORT.B (GPIO) interfaces; supports UiFlow2, Arduino IDE, ESP-IDF & PlatformIO – easily adds sensors for smart home and industrial builds.

That project documents requirements of an ESP32-WROOM or WROVER, an SD card, FAT32 MicroSD up to 4 GB, and a 320×240 display. It also warns that BLE and SQLite libraries consume substantial memory and recommends using a large application partition scheme. These requirements describe that project, not the basic M5Stack/Visuino tutorial; confirm hardware and library compatibility before adapting it to a Core board.

What this scanner can—and cannot—tell you

  • It can show BLE devices whose advertisements the scanner receives during its scan.
  • It does not, through scanning alone, reveal protected GATT data or establish a connection.
  • A missing device is not proof that the device is absent; it may not be advertising or its packets may not be received under the current radio conditions.
  • The cited tutorial does not provide a tested range, device limit, or timing benchmark, so results should be evaluated in the environment where you plan to use the scanner.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.