BleuIO Python Library v1.6.0 Now Available

We are thrilled to announce the release of the latest update to the BleuIO Python library, version 1.6.0, bringing enhanced functionality and improved performance.

What’s New in BleuIO Python Library v1.6.0?

This update introduces several key features and improvements that will enhance your development experience:

Support for Latest Firmware Versions:

This update adds functions to support all commands introduced up to BleuIO firmware version 2.7.6 and BleuIO Pro firmware v1.0.1. This makes it easier for developers to use the full range of capabilities offered by the latest BleuIO firmware versions.

Enhanced Auto-Detection of COM Ports:

The auto-detect feature has been improved, ensuring better handling of available COM ports. When COM port is not specified , the system will now automatically detect and select the correct BleuIO COM port.

If a detected BleuIO COM port is already in use, the library will now search for the next available unused port. This continuous search for available ports makes it even easier for developers to get started with their projects without manually configuring COM ports.

Why Should You Update to Version 1.6.0?

This update makes it even simpler to integrate BleuIO into your BLE applications by improving ease of use and expanding support for the latest hardware capabilities. Whether you’re working with BleuIO or the BleuIO Pro model, version 1.6.0 will simplify your development process and ensure you’re utilizing the most up-to-date features.

How to Update

Updating to BleuIO Python library v1.6.0 is simple. Just follow these steps:

Install the latest version of the BleuIO Python library using pip:

pip install --upgrade bleuio

Start using the new features and commands in your BLE applications, and enjoy the improved auto-detection of COM ports.

For more details, check out the full documentation for the BleuIO Python library, and stay tuned for future updates!

Share this post on :

BleuIO Pro Now Available on Digi-Key – Smart Sensor Devices Expands Global Accessibility for Advanced BLE Development

Stockholm, SwedenSmart Sensor Devices, a leading innovator in IOT and Bluetooth Low Energy (BLE) solutions, is thrilled to announce the availability of its flagship product, BleuIO Pro, on Digi-Key, one of the world’s largest distributors of electronic components. This strategic move will provide global access to the BleuIO Pro, enabling developers worldwide to effortlessly enhance their BLE applications using Bluetooth 5.2 technology.

The BleuIO Pro is the latest addition to the BleuIO product line, designed specifically for developers working on advanced BLE applications. With support for Bluetooth 5.2, the BleuIO Pro offers improved data transfer speeds, extended range, and enhanced performance, making it the ideal tool for complex IoT, smart home, healthcare, and industrial BLE projects.

“Making the BleuIO Pro available on Digi-Key expands our reach and provides developers across the globe with easy access to the latest in Bluetooth Low Energy technology,” said Axel Hammar, CEO of Smart Sensor Devices. “We are committed to supporting innovation in BLE development, and the BleuIO Pro is a key part of that mission, offering the performance and flexibility needed to bring solutions to life.”

A Commitment to Global Innovation

By partnering with Digi-Key, Smart Sensor Devices ensures that the BleuIO Pro is readily accessible to developers in every corner of the world. With Digi-Key’s established distribution network, the BleuIO Pro can now be purchased quickly and easily, with dependable international shipping and top-tier customer support.

Availability

The BleuIO Pro is now available for purchase through Digi-Key and can also be found on the BleuIO website at www.bleuio.com. With this launch, developers now have an even more convenient way to access one of the most advanced BLE dongles on the market.

About Smart Sensor Devices

Smart Sensor Devices is a leading solution provider of IOT and Bluetooth Low Energy (BLE), specializing in providing powerful, easy-to-use tools for BLE application development. The company’s products, including HibouAir and BleuIO series, help developers create innovative and efficient solutions across various industries, including IoT, healthcare, automotive, and smart home technologies. The company was founded by Axel Hammar, who serves as the CEO.

For more information on the BleuIO Pro and other products, visit www.bleuio.com.

Contact
Smart Sensor Devices
Website: www.bleuio.com
Email: sales@bleuio.com
Phone: +46 703 709 706

Share this post on :

BleuIO Pro Firmware Update v1.0.1 – Exciting New Features, Improvements, and Bug Fixes

We are excited to announce the release of BleuIO Pro (SSD005) Firmware v1.0.1. This latest update brings several new features, enhancements, and bug fixes, ensuring a more stable and flexible experience for developers using the BleuIO Pro (SSD025) device. Below, we’ll explore the key highlights of this update and how it will improve your BLE application development.

Key Features in Firmware v1.0.1

1. Integration of Commands from BleuIO Versions 2.7.5 and 2.7.6

One of the most significant additions to BleuIO Pro firmware v1.0.1 is the inclusion of commands from BleuIO versions 2.7.5 and 2.7.6. This means BleuIO Pro is now fully up to date with the latest functionality available in the BleuIO series, while also maintaining exclusive commands that are specific to the Pro model.

2. Unique Organization ID (UOI) Support

With this update, BleuIO Pro introduces the ability to set a Unique Organization ID (UOI). This ID will be stored in the device’s flash memory, ensuring it persists even after power cycles. The Unique Organization ID can be displayed in the ATI command response if it is set, providing a simple and effective way for developers to manage and identify their devices across larger projects or multiple devices.

3. Extended ASCII Character Support

As part of our continued effort to enhance the functionality and versatility of BleuIO Pro, this firmware update includes support for Extended ASCII characters. This change allows for the handling of a broader range of characters, expanding the potential use cases for your BLE applications.

4. Device Address Type Command (ATSAT)

Firmware v1.0.1 introduces a new command, ATSAT, which allows developers to toggle the visibility of the device’s address type in the advertising data/scan responses. This feature applies to the AT+FINDSCANDATA and AT+SCANTARGET commands, as well as the AT+GAPSCAN command, which will always show the device address type. This added flexibility allows developers to easily track whether devices are using a Private or Public address type, making it easier to manage multiple devices in your BLE applications.

5. Enhanced Bonded Device Storage

One of the significant improvements in this update is the increased storage capacity for bonded devices. Previously, BleuIO Pro could store information for up to 8 bonded devices. With the v1.0.1 update, this number has been expanded to 16 devices. When the number of bonded devices exceeds 16, the firmware will automatically remove the first device in the list that is not currently connected, ensuring that bonding can continue seamlessly. This improvement ensures that BleuIO Pro can handle larger device networks, especially in scenarios with multiple connections.

New Commands in Firmware v1.0.1

Along with the new features, firmware v1.0.1 introduces several important commands:

  • AT+SETUOI – Set the Unique Organization ID, which will be stored in flash memory and persist through power cycles.
  • AT+CLRUOI – Clear any set Unique Organization ID.
  • ATSAT – Toggle the visibility of the device address type in scan results for AT+FINDSCANDATA and AT+SCANTARGET.

These commands offer greater control over device management, especially in environments with many BLE devices.

Bug Fixes in v1.0.1

Firmware updates aren’t just about adding new features – they also address known issues to improve the overall stability and performance of the device. In v1.0.1, we’ve resolved several bugs that impacted the performance of BleuIO Pro:

  • Device Reset During Scanning: A bug has been fixed where BleuIO Pro would reset when scanning and connecting to two or more devices, especially during a disconnection event.
  • Command Handling Improvements: Several fixes have been implemented for commands that require parameters. Previously, some commands would cause BleuIO Pro to reset if parameters were not provided, especially immediately after boot. This issue has now been resolved.
  • Error Handling for String Parameters: We’ve fixed a bug that caused errors when certain commands with string parameters, such as AT+DEVICENAME, AT+SCANPARAM=NAME, and AT+SETUOI, included an equal sign (=) within the string.
  • AT+AUTOEXEC Command Fix: The AT+AUTOEXEC command, which failed to execute in certain cases, is now fully operational.

How to Update Your BleuIO Pro

To take advantage of the new features and bug fixes in firmware v1.0.1, simply download the latest firmware from our website and follow the provided update instructions. We recommend upgrading to the latest version to ensure your device is running optimally and to access the newest functionality available.

Share this post on :

BleuIO Pro Now Available on Tindie

We are excited to announce that our BleuIO Pro (SSD025) is now available for purchase on Tindie, the premier marketplace for innovative electronic products. This marks a significant milestone as it expands accessibility for developers seeking easy-to-use solutions for Bluetooth Low Energy (BLE) application development.

In addition to the BleuIO Pro, our standard BleuIO (SSD005), which was listed earlier, is also available on Tindie. Both products aim to simplify BLE application development by providing an efficient and developer-friendly experience with the help of built-in AT commands.

Introducing BleuIO Pro (SSD025)

The BleuIO Pro builds on the capabilities of BleuIO by introducing enhanced features tailored for advanced development projects. With improved performance and additional support for demanding BLE applications, BleuIO Pro is perfect for developers looking to create robust and scalable BLE solutions.

Whether you’re working on IoT projects, industrial automation, or custom BLE devices, the BleuIO Pro provides the tools and flexibility required to bring your ideas to life.

Why Tindie?

Tindie is a trusted marketplace for unique electronic products and development tools. By listing both BleuIO and BleuIO Pro on Tindie, we aim to make these tools more accessible to developers worldwide. With Tindie’s shopping experience, finding the right BLE development dongle for your project has never been easier.

Visit the BleuIO store today on Tindie to order your desired BleuIO product.

Share this post on :

BleuIO Firmware Update v2.7.6 – Unique Organization ID and Extended ASCII Support

We are excited to announce the release of BleuIO firmware version 2.7.6! 

This update brings important new features, bug fixes, and enhanced functionality that will make BLE application development even smoother. Here’s a breakdown of what’s included in this latest release:

New Features in v2.7.6

  • Unique Organization ID
    A key new feature in this update is the ability to set a Unique Organization ID (UOI). This ID will be stored in the device’s flash memory, allowing it to persist through power cycles. If the Unique Organization ID is set, it will be displayed in the response to the ATI command. This is particularly useful for users managing multiple BLE devices, as it helps uniquely identify each device by the organization. The Unique Organization ID can also be cleared as needed.
  • Support for Extended ASCII Characters
    BleuIO now handles Extended ASCII characters, broadening the range of compatible inputs for developers. This improvement enhances the device’s ability to handle more complex data and increases flexibility when working with BLE communication.

New Commands

With this firmware update, two new commands have been introduced to set and clear the Unique Organization ID:

  • AT+SETUOISet Unique Organization ID
    This command allows you to set a Unique Organization ID, which will be saved in flash memory and persist through power cycles. When set, the Unique Organization ID will be displayed in the response to the ATI command. You can set a Unique Organization ID up to 100 characters in length.
  • AT+CLRUOIClear Unique Organization ID
    If you need to clear the Unique Organization ID that was previously set, this command will allow you to do so. It removes the ID and resets the field to its default state.

Bug Fixes

  • Fixed Stability Issue During Device Connections
    A bug has been fixed in this update where BleuIO would reset when connected to two or more devices while scanning, especially when a disconnection event occurred. This issue could cause instability and interrupts during device connections. With the release of v2.7.6, this problem has been resolved, ensuring smoother operation when connecting to multiple BLE devices.

How to Update

Visit our firmware download page to access the latest firmware and ensure your BleuIO device benefits from these enhanced capabilities. Be sure to select the correct firmware version for your device model—BleuIO or BleuIO Pro—before downloading.

This update makes BleuIO more powerful, with improved stability and added flexibility for developers. The new Unique Organization ID feature and Extended ASCII support will certainly enhance the way you can use BleuIO in your projects. If you haven’t already, be sure to download the latest firmware and take advantage of these exciting new features!

Share this post on :

Building a Remote BLE Interface: Access BLE devices from Any Location

This article will discuss about accessing a Bluetooth Low Energy (BLE) device—specifically the BleuIO BLE USB dongle—from a cloud-based computer. This setup is invaluable for developers, researchers, and organizations that need to control or monitor BLE devices located in remote or hard-to-reach locations. We will explain how to set up both local and cloud servers, and how to establish a secure connection between them, allowing you to send commands and receive data from a remote BLE device with ease.

Why Do We Need Remote Access to BLE Devices?

Remote access to BLE devices opens up new possibilities in IoT, distributed applications, and various remote monitoring and management scenarios. Here are a few key use cases where this approach can be especially beneficial:

Remote Device Monitoring: In scenarios where BLE devices like sensors or trackers are deployed in different physical locations—such as environmental monitoring stations, healthcare devices in hospitals, or industrial sensors in manufacturing facilities—remote access allows centralized monitoring and control. For example, an environmental monitoring company could deploy BLE sensors in different regions and access data from all devices from a single central hub.

Distributed Development and Testing: Developers and QA engineers can use remote access for testing and debugging BLE applications from any location, without needing to be physically near the BLE devices. This is particularly useful for teams working on IoT applications who want to test BLE functionality across different device types or networks. For instance, a developer could work on BLE application features from home, while the test device is connected to a machine in the office.

Centralized Management of BLE Devices: Organizations that manage multiple BLE devices across various locations, such as in retail stores, hospitals, or warehouses, can benefit from a centralized server setup to communicate with and manage all devices remotely. A central server could send updates, retrieve data, or manage configurations for multiple BLE devices, providing an efficient and scalable solution for distributed IoT applications.

Remote Troubleshooting and Maintenance: For businesses that deploy BLE devices at customer sites or in field locations, remote access allows technical support teams to troubleshoot issues without requiring on-site visits. This can reduce downtime and improve customer satisfaction. For example, a support technician could diagnose issues with a BLE-enabled device at a remote client site, identifying and resolving problems directly from the company’s central office.

By using BleuIO with AT commands, we make BLE application development much simpler and more accessible. The BleuIO dongle is compatible with Windows, macOS, and Linux, allowing consistent development across platforms.

Project Structure and Components

In this project, we’ll use the following components to remotely access and control BLE devices:

  • Device with BleuIO Connected (Local Device): This is the device with the BleuIO dongle physically attached, acting as the local interface for sending and receiving BLE commands. It will run a small server to manage communication with the BLE dongle over a serial connection.
  • Remote Access Server (Cloud Server): This is the server that provides remote access to the local device. By connecting to the local server, it enables us to send commands and receive data from the BLE dongle remotely.
  • LocalTunnel: We’ll use LocalTunnel to generate a secure public URL, allowing the cloud server to communicate with the local device without needing complex router configurations. This URL acts as a bridge, making the local device accessible from anywhere with internet access.
  • Node.js: Both the local device and the cloud server will use Node.js to run simple server scripts that facilitate communication between the cloud server and the BLE dongle.

Step-by-Step Guide

Step 1: Setting Up the Local Server with BleuIO dongle connected to it

Local device is where the BleuIO dongle is physically connected. We’ll set up a Node.js server that communicates with the dongle through the serial port. This server will accept commands from the cloud server and send them to the BLE dongle, then return the response.

Install Node.js (if not already installed) on Local device.

Create a project folder and initialize a Node.js project:
mkdir local_serial_server
cd local_serial_server
npm init -y

Install Dependencies:

  • Install serialport to handle serial communication with the BLE dongle.Install socket.io to manage WebSocket connections.
npm install serialport socket.io

Create the Local Serial Server Script:

  • Create a file named local_serial_server.js. This script will:
    • Listen for WebSocket connections from the cloud server.Accept commands, pass them to the BleuIO dongle, and send back responses.

const http = require('http');
const { SerialPort } = require('serialport');
const socketIo = require('socket.io');

const server = http.createServer();
const io = socketIo(server);

// Define the serial port path and baud rate
const portPath = 'COM592'; // Replace 'COM3' with your dongle's port
const serialPort = new SerialPort({ path: portPath, baudRate: 9600 });

// Listen for incoming connections from the cloud server
io.on('connection', (socket) => {
console.log('Connected to cloud server');

// Receive command from cloud and send to serial port
socket.on('sendCommand', (command) => {
const formattedCommand = `${command}\r\n`;
console.log(`Sending command to serial port: ${formattedCommand}`);
serialPort.write(formattedCommand);
});

// Send serial responses to cloud server
serialPort.on('data', (data) => {
console.log(`Data received from serial port: ${data}`);
socket.emit('serialResponse', data.toString());
});
});

// Start the server on a specified port
const LOCAL_PORT = 4000; // Choose any port, ensure firewall allows it
server.listen(LOCAL_PORT, () => {
console.log(`Local Serial Server running on http://localhost:${LOCAL_PORT}`);
});

Find and Set the Serial Port Path:

In your local_serial_server.js, specify the correct serial port path for your BLE dongle (e.g., COM3 on Windows or /dev/ttyUSB0 on Linux).

Run the Local Serial Server:

  • Start the server by running: node local_serial_server.js

At this point, the local server is ready, but it’s only accessible to itself. Next, we’ll use LocalTunnel to make it accessible to the cloud server.

Step 2: Exposing the Local Server to the Internet Using LocalTunnel

Since local device 1 and cloud device are on different networks, we’ll need to create a public URL for the local server. There are several options to make a local server accessible publicly, including tools like ngrok, Pagekite, and LocalTunnel. For this tutorial, we’ll be using LocalTunnel as it’s free and easy to set up, but feel free to explore other solutions if they better meet your needs.

  1. Install LocalTunnel:
    • On local device, install LocalTunnel globally npm install -g localtunnel
  2. Start LocalTunnel:
    • Open a new terminal window on local device and run lt --port 4000
    • LocalTunnel will generate a public URL (e.g., https://five-sides-live.loca.lt). This URL will allow cloud device to access the local server running on port 4000 of Local device.
  3. Save the LocalTunnel URL:
    • Copy the URL provided by LocalTunnel. This URL will be used in the cloud server configuration on Cloud device.

Step 3: Setting Up the Cloud Server on Cloud device

In this setup, Cloud device will act as the cloud server that connects to local device’s LocalTunnel URL, allowing remote access to the BLE dongle. Cloud device can be any machine with Node.js installed—located anywhere, such as a remote computer in New York. You could also deploy this server on a cloud platform like Heroku, Replit, or Vercel for persistent access.

For simplicity, in this example, we’ll demonstrate how to set up the cloud server on another computer running Node.js, not connected to the same network as local device.

Create a Project Folder on cloud device and Initialize Node.js:

Open a terminal or command prompt on cloud device and create a folder for the cloud server mkdir cloud_serial_server
cd cloud_serial_server
npm init -y

Install Dependencies:

You’ll need express to serve the front-end pages and socket.io to manage WebSocket communication.

Install socket.io-client to allow the cloud server to connect to the LocalTunnel URL created on Local device
npm install express socket.io socket.io-client

Create the Cloud Server Script: In the cloud_serial_server folder, create a file named cloud_server.js. This script will Connect to the LocalTunnel URL (generated by Local device) and forward BLE commands to the local server.Serve the front-end pages (index.html and page2.html) for interacting with the BLE device remotely.

const express = require('express');
const http = require('http');
const socketIo = require('socket.io');
const ioClient = require('socket.io-client'); // Client for local serial server

const app = express();
const server = http.createServer(app);
const io = socketIo(server);

// Connect to the local serial server via WebSocket
const LOCAL_SERVER_URL = 'https://real-poets-count.loca.lt';
const localSocket = ioClient(LOCAL_SERVER_URL);

// Serve static files (frontend files for Page 1 and Page 2)
app.use(express.static('public'));

// Handle messages from Page 2 and forward to local serial server
io.on('connection', (socket) => {
  console.log('Client connected to cloud server');

  // Receive command from Page 2 and forward to local serial server
  socket.on('sendCommand', (command) => {
    console.log(`Forwarding command to local server: ${command}`);
    localSocket.emit('sendCommand', command); // Send to local serial server
  });

  socket.on('disconnect', () => {
    console.log('Client disconnected from cloud server');
  });
});

// Receive data from local serial server and forward to clients
localSocket.on('serialResponse', (data) => {
  console.log(`Received data from local serial server: ${data}`);
  io.emit('serialResponse', data); // Broadcast to connected clients
});

const PORT = process.env.PORT || 3000;
server.listen(PORT, () => {
  console.log(`Cloud server is running on http://localhost:${PORT}`);
});

Update the LocalTunnel URL in Cloud Server:

Replace the LOCAL_SERVER_URL in cloud_server.js with the LocalTunnel URL you generated on Local device (e.g., https://five-sides-live.loca.lt).

Run the Cloud Server:

Start the cloud server by running:bashCopy codenode cloud_server.js

This will start a server that listens for connections on Cloud device. You can open a web browser on Cloud device and go to http://localhost:3000 to access the front-end pages.

Access the Front-End Pages:

Open a browser and navigate to http://localhost:3000/index.html (for displaying BLE responses) and http://localhost:3000/page2.html (for sending commands).

Note: If you decide to deploy this server to a cloud platform (e.g., Heroku, Replit, or Vercel), replace localhost with the appropriate URL provided by the platform.

With this setup, Cloud device can be anywhere in the world, allowing you to control and receive data from the BLE dongle on Local device (in Stockholm) remotely.

Source code

The source code is available here at https://github.com/smart-sensor-devices-ab/remote_bleuio.git

Output

This tutorial demonstrates the potential of combining Node.js, BLE technology, and tunneling services for remote BLE access. The BleuIO dongle’s compatibility and simplicity make it an excellent choice for developers interested in building BLE applications across various operating systems.

Share this post on :

Firmware Update v2.7.5 for BleuIO: Enhanced Bonding and Device Address Type Display

We’re excited to announce the latest firmware update for the BleuIO Bluetooth Low Energy USB dongle: Firmware Version 2.7.5. This update introduces valuable new features and optimizations designed to improve usability and functionality. Here’s an in-depth look at what’s new and improved with this release.

Key Features and Improvements in v2.7.5

New Command: ATSAT

With version 2.7.5, BleuIO introduces a new command, ATSAT, which allows users to view the device address type—indicating whether the address is public or private—within scan results. This functionality is particularly useful for users looking to distinguish between public and private address types during Bluetooth scanning. When enabled, ATSAT will display:

  • [1] for private addresses
  • [0] for public addresses The ATSAT command works seamlessly with the AT+FINDSCANDATA and AT+SCANTARGET commands, which display the address type in scan results. Additionally, AT+GAPSCAN now always shows the device address type, ensuring that users have visibility into the address type for more effective management of scanned devices.

Expanded Bonded Device Capacity

In a significant enhancement to the device’s bonding functionality, this update expands the number of bonded devices that BleuIO can store from 8 to 16. Previously, when the bonding capacity reached the limit of 8 devices, new bonding was not possible until the user manually removed one or all existing bonded devices using the AT+GAPUNPAIR command. With the updated firmware, BleuIO can now store bonding information for up to 16 devices, simplifying the management of Bluetooth connections.

Automatic Removal of Oldest Bonded Devices:

When the 16-device limit is reached, BleuIO will now automatically remove the oldest bonded device that is not currently connected. Given that BleuIO supports a maximum of 8 simultaneous connections, there will always be at least 8 devices in the list that are not actively connected. This new functionality ensures users can always establish a new bond without the need to manually manage bonded devices, thereby improving convenience and user experience.

How to Update

Visit our firmware download page to access the latest firmware and ensure your BleuIO device benefits from these enhanced capabilities. Be sure to select the correct firmware version for your device model—BleuIO or BleuIO Pro—before downloading.

Share this post on :