BleuIO

BleuIO

  • Get Started
  • Buy Now
  • Manual
  • AT Commands
  • Help

›Scripts & Tutorials

Manual

  • How it works
  • How to use
  • Verbose Mode
  • Known Issues
  • Troubleshooting

Firmware Updates

    BleuIO Pro (SSD025)

    • Firmware Updates
    • Release History

    BleuIO (SSD005)

    • Firmware Updates
    • Release History of BleuIO (SSD005)

AT-Commands

  • List of AT Commands

BleuIO Libraries

  • JavaScript Library
  • Python Library

Scripts & Tutorials

  • Python: iBeacon
  • Python: Eddystone Beacon
  • Python: Scan
  • Python: Scan and Store
  • Python: SPS Script
  • Python: File transfer Script
  • Python: Repeater Script
  • Javascript: Google chrome.serial Beacon
  • C# Console App Example
  • C# WFA Example

Script using libraries

    Python library > v1.2.0

    • Custom Services example using Python library
    • Eddystone example using Python library
    • IBeacon example using Python library
    • Scan example using Python library
    • Scan and store example using Python library

    Python library < v1.2.0

    • Eddystone example using Python library
    • IBeacon example using Python library
    • Scan example using Python library
    • Scan and store example using Python library
    • SPS example using Python library
    • Security Example using Python library

    JS library

    • Eddystone example using Javascript library
    • IBeacon example using Javascript library
    • Scan example using Javascript library
    • Security Example using Javascript library
    • Get Device Distance

Projects

    Arduino

    • Arduino Example

    Beaglebone

    • Beaglebone Example

    Raspberry Pi

    • Raspberry PI into Beacon
    • Raspberry PI home automation

    Raspberry PI Pico

    • BleuIO integration (Part1)
    • BleuIO integration (Part2)
    • BleuIO integration (Part3)

    Renesas RA4M2

    • Signal Strength Monitoring
    • Real-Time CO2 monitor
    • Monitoring Air Quality

    STM32 Nucleo-144

    • Nucleo-144 board example
    • Smart Bulb Example

    M5Stack's CoreMP135

    • M5Stack's CoreMP135 board example

Build Your Own Firmware

  • Build Your Own Firmware
  • Advertising Example

More

  • Links
Order Now

BleuIO

$19.99

Buy Now

iBeacon

Introduction

iBeacon technology allows Mobile Apps to understand their position on a micro-local scale, and deliver content to users based on location. It is a Bluetooth Low Energy technology.

BLE Advertising uses a one-way communication method. Beacons that want to be discovered can Advertise self-contained packets of data in set intervals. Smartphones collect these packets, which can be used for various applications to trigger things like push messages, prompts or app actions.

Beacons ideal for indoor location tracking because a standard BLE has a broadcast range of up to 100 meters. With an iBeacon network, any retailer, app, platform or brand will be able to locate a customer and send contents and advertisements to customers on their smartphones.

You can set up your own IBeacon easily using Smart USB dongle 2.0 and Python script. This device works equally well in Windows 10, Linux or macOS.

iBeacon are defined by the Apple company including following parameters: UUID, Major and Minor

You can build your own beacon by defining your own parameter values.

What is UUID?

UUID stands for Universally Unique Identifier. It contains 32 hexadecimal digits, split into 5 groups, like this:

5f2dd896-b886-4549-ae01-e41acd7a354a0203010400

The UUID is a standard identifying system which allows a 'unique' number to be generated for a beacon network. The purpose of the UUID is to identify iBeacons in your network, from all other possible beacons in networks not in your control.

What are Major and Minor values?

Major and Minor values are numbers assigned to your iBeacons, in order to identify individual iBeacon within your UUID network. Minor and Major are unsigned integer values between 0 and 65535. The iBeacon standard requires both a Major and Minor value to be assigned.

Getting started

Connect the Bluetooth USB Adapter to your computer. It opens a virtual serial port (COM port) that you can use to send commands to and from the Bluetooth USB Adapter.

Device Manger

Control Bluetooth USB Adapter using predefined commands. List of AT Commands

The BleuIO includes a bootloader which allows you to easily update the firmware (or flash your own application to the dongle)

After connecting, you can use the following sample python script to set up your own iBeacon.

import serial
import time

connecting_to_dongle = 0
print("Connecting to dongle...")
# Trying to connect to dongle until connected. Make sure the port and baudrate is the same as your dongle.
# You can check in the device manager to see what port then right-click and choose properties then the Port Settings
# tab to see the other settings
while connecting_to_dongle == 0:
    try:
        console = serial.Serial(
                port='COM14',
                baudrate=57600,
                parity="N",
                stopbits=1,
                bytesize=8,
                timeout=0
                )
        if console.is_open.__bool__():
            connecting_to_dongle = 1
    except:
        print("Dongle not connected. Please reconnect Dongle.")
        time.sleep(5)


print("\n\nConnected to Dongle.\n")
print("\n Welcome to the iBeacon example!\n\n")


new_input = 1
while 1 and console.is_open.__bool__():
    # get keyboard input once
    if (new_input == 1):
        # Python 2 users
        # input = raw_input("Enter the UUID... ")
        new_input = input("Enter the UUID (x) string with Major (j), Minor (n) and TX (t) (format:"
                          "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxjjjjnnnntt): ")
        time.sleep(0.1)
        # sends the commands to the dongle. Important to send the \r as that is the return-key.
        console.write(str.encode("AT+ADVDATAI="))
        console.write(new_input.encode())
        console.write('\r'.encode())
        time.sleep(0.1)
        console.write(str.encode("AT+ADVSTART=0;200;3000;0;"))
        console.write('\r'.encode())
        out = ''
        # let's wait one second before reading output (let's give device time to answer)
        time.sleep(1)
    while console.inWaiting() > 0:
        out += console.read(console.inWaiting()).decode()
    else:
        if not out.isspace():
            # We make sure it doesn't print the same message over and over again by setting [out] to blankspace
            # after printing once and check for blankspace before print again
            print(">>" + out)
            out = "  "

Full source also available on our GitHub page.

Youtube Tutorial

Follow the Youtube tutorial.

← Python LibraryPython: Eddystone Beacon →
  • Introduction
  • What is UUID?
  • What are Major and Minor values?
  • Getting started
  • Youtube Tutorial

Support Request

If you have any queries or technical questions, please don't hesitate to send us a message. We will reply within 24 hours.

Message Sent!

Docs
ManualAT CommandsHelp
Community
YouTubeLinkedInFacebook
More
BleuIOSmart Sensor DevicesGitHub
Sales & Support
support@bleuio.comsales@bleuio.com
Copyright © 2025 BleuIO. A product of Smart Sensor Devices