BleuIO Python Library Update (v1.4.0): Supports BleuIO Firmware v2.7.1

BleuIO Python library received a significant update to version 1.4.0, allows compatibility with BleuIO firmware v2.7.1. This update introduces several new commands, expanding the capabilities of BleuIO and helps developers to innovate further.

Enhanced Functionality: The latest BleuIO Python library update includes latest commands, aligning with the advancements in firmware v2.7.1. Let’s have a look into the key additions:

  1. at_autoexec(): This command corresponds to AT+AUTOEXEC in the BleuIO firmware. It enables developers to configure automatic execution of specific actions upon device boot-up. Whether it’s initializing connections or setting parameters, at_autoexec() enables the initialization process, enhancing the efficiency of BLE applications.
  2. at_clrautoexec(): This command corresponds to AT+CLRAUTOEXEC. It helps developers to clear the configured automatic execution settings on the BleuIO device. This function provides flexibility in modifying device behavior dynamically, ensuring seamless adaptability to changing project requirements.
  3. at_connparam(): BLE connection parameters play a pivotal role in defining the characteristics of data transmission between devices. The addition of at_connparam() facilitates precise control over connection parameters, helps developers to optimize communication efficiency based on specific use cases.
  4. at_getbond(): Security is paramount in BLE applications, especially concerning device bonding. The introduction of at_getbond() allows developers to retrieve bonding information from the BleuIO device, enabling seamless integration of security features and enhancing overall data integrity.

How to update: Updating to BleuIO Python library 1.4.0 is a straightforward process. Developers can leverage the command python -m pip install --upgrade bleuio to ensure they have access to the latest functionalities and optimizations.

Documentation and Further Details: Comprehensive details, usage examples, and guidelines to use the new functionalities introduced in version 1.4.0 of the BleuIO Python library is available at the official PyPI page https://pypi.org/project/bleuio/.

Share this post on :

BleuIO Firmware Update 2.7.0 Featuring Dynamic Connection Parameter Adjustment

BleuIO, the versatile Bluetooth Low Energy (BLE) USB dongle renowned for simplifying BLE application development, has released a new firmware upgrade to version 2.7.0. This latest update brings forth new features and commands, further enables developers to create innovative BLE applications with ease.

Added Features:

  • Dynamic Connection Parameter Adjustment: One of the standout additions in firmware 2.7.0 is the ability to change connection parameters on the fly, even while maintaining a connection. This feature not only facilitates fine-tuning of BLE connections but also provides flexibility in adapting to varying network conditions. Additionally, developers can modify default connection parameters for improved efficiency when utilizing the AT+GAPCONNECT command with just the MAC address as an argument.

New Commands:

  • AT+CONNPARAM: This command emerges as a powerful tool for setting or displaying preferred connection parameters. When executed while connected, it enables seamless updating of connection parameters on the current target connection, streamlining the optimization process for BLE applications.

With these enhancements, BleuIO offers rapid BLE development solution. Whether you’re a seasoned developer or pro in BLE applications development, firmware 2.7.0 unlocks new possibilities and simplifies the path to crafting cutting-edge solutions.

How to Upgrade:

To take advantage of these enhancements, make sure to update your BleuIO dongle to firmware version 2.7.0. You can find the firmware update and detailed instructions on the official BleuIO website. Click here to know more about firmware updates.

Share this post on :

BleuIO Firmware Update v2.6.0: Introduces Auto Execution Command

BleuIO, a pioneer in Bluetooth Low Energy (BLE) technology, is thrilled to introduce its latest firmware update, version 2.6.0. This release contains auto execution functionality, which enables users to automate tasks and execute commands effortlessly upon device startup.

Added Features:

Users can now configure up to 10 commands that will execute automatically upon the BleuIO device starting up. This commands are stored in the device’s flash memory, ensures that the commands persist even through power cycles, eliminating the need for manual intervention.

What truly sets this feature apart is its ability to function independently of a host computer. Unlike previous iterations where a host computer was necessary to trigger commands, BleuIO v2.6.0 allows AT COMMANDS execution directly from the device itself. Imagine the possibilities – from initiating beacon advertising to executing custom routines – all with the simple power cycle of the device, no additional hardware required.

The startup execution mechanism further enhances the user experience. Upon startup, BleuIO checks for configured commands in the auto execute (AUTOEXEC) list and proceeds to execute them in the specified order. This streamlined process not only accelerates development but also ensures consistent performance, enabling rapid deployment of BLE applications with minimal effort.

New AT Commands:

The AT+AUTOEXEC command enables users to both set and display commands in the AUTOEXEC list. Setting auto execution commands is as simple as using the syntax AT+AUTOEXEC=<cmd>, providing developers with a straightforward means of configuring device behavior.

Additionally, the AT+CLRAUTOEXEC command facilitates the removal of all commands set in the AUTOEXEC list, allowing for easy modification and refinement of device functionality. This level of flexibility helps developers to iterate quickly, experiment freely, and ultimately create BLE applications.

How to Upgrade:

To take advantage of these enhancements, make sure to update your BleuIO dongle to firmware version 2.6.0. You can find the firmware update and detailed instructions on the official BleuIO website. Click here to know more about firmware updates.

By introducing persistent auto execution commands and enhancing command management capabilities, BleuIO continues to lead the way in innovation, providing developers with the tools they need to create exceptional BLE solutions.

Share this post on :

BleuIO Firmware Update v2.5.0: Enhanced Bonding Persistence

We are thrilled to announce the latest firmware update for BleuIO, version 2.5.0. In this release, we’ve introduced exciting features and commands that significantly enhance the user experience.

Added Features:

Bonding Information Persistence:

The standout feature of this update is the persistence of bonding information across power cycles. Now, when you establish a bond with another device using either the AT+GAPPAIR=BOND command from the dongle or the corresponding command from the paired device, the bond will remain active even after unplugging the BleuIO dongle. This ensures a seamless reconnection experience, saving you time and effort.

To check the bonding status, simply run AT+GETCONN when connected. This command will indicate whether you are bonded or not. To remove bonding information, the AT+GAPUNPAIR command can be used. This command provides the flexibility to either remove all bonded device information or selectively remove the bonding information of a specific device using the AT+GAPUNPAIR=[addrType]MacAddress format.

New AT Command: AT+GETBOND

We have introduced a new AT command – AT+GETBOND. This command allows you to display the MAC addresses of all bonded devices, providing valuable insights into the devices currently paired with your BleuIO dongle. What’s more, you can run this command at any time, even when not connected, giving you the flexibility to manage your bonded devices effortlessly.

Bug Fixes:

Command AT+GETCONN Enhancement:

In this release, we’ve addressed a minor issue related to the AT+GETCONN command. We removed a verbose line that was displayed when the BleuIO dongle was not in verbose mode. This ensures a cleaner and more streamlined experience when using this command.

How to Upgrade:

To take advantage of these enhancements, make sure to update your BleuIO dongle to firmware version 2.5.0. You can find the firmware update and detailed instructions on the official BleuIO website. Click here to know more about firmware updates.

We are committed to continuously improving BleuIO and providing you with the latest features and capabilities.

Share this post on :

BleuIO Releases Python Library v1.3.1 to support BleuIO firmware v2.4.0

BleuIO, has recently unveiled its latest offering: Python Library v1.3.1. This release brings a range of improvements and features, including support for the SUOTA (Software Updates Over The Air) commands introduced in BleuIO firmware version 2.4.0. Additionally, it addresses a bug that affected MacOS users, making the library more robust and user-friendly.

Support for SUOTA Commands:

One of the standout features of BleuIO’s Python Library v1.3.1 is its support for SUOTA commands. SUOTA, which stands for Software Updates Over The Air, is a critical feature for any BLE device. It allows users to update firmware wirelessly, eliminating the need for physical connections or manual updates. With this library update, developers working with BleuIO now have a powerful tool at their disposal to streamline firmware updates for their BLE devices. Whether it’s fixing bugs or adding new features, the ability to update firmware over the air provides flexibility and convenience, ultimately enhancing the user experience.

Bug Fix for MacOS Users:

The new Python library also includes a significant bug fix for MacOS users. Previously, there was an issue where serial responses were sometimes returned in two parts instead of one when using the library on MacOS. This inconsistency could lead to compatibility problems and hinder the development process. BleuIO has promptly addressed this issue, ensuring that the library can now handle serial responses that come in multiple parts. This improvement guarantees a smoother experience for MacOS users and eliminates a common frustration during development.

The Python Library v1.3.1 by BleuIO is readily available for developers on the Python Package Index (PyPI). You can access and download the library from the following link: BleuIO Python Library on PyPI. This convenient accessibility ensures that developers can easily integrate the library into their projects and start benefiting from the new features and bug fixes immediately.

Share this post on :

BlueIO Firmware Update v2.3.1: Enhanced Features and Critical Bug Fixes

BlueIO, a prominent player in the Bluetooth industry, has recently unveiled its firmware version v2.3.1. This update comes packed with exciting additions and crucial bug fixes, promising a more seamless and efficient Bluetooth experience.

Enhanced Features:

AT+SCANFILTER Upgrade: One of the standout features of the v2.3.1 firmware update is the enhancement made to the AT+SCANFILTER functionality. Previously, this feature only filtered based on UUID, but now, it has been extended to include “Service Data – 128-bit UUID” and “Service Data – 16-bit UUID” packets. This means that when filtering devices, you can now fine-tune your criteria even further, ensuring that only the most relevant devices are detected. This added flexibility is a significant boon for developers and users alike, enabling a more tailored Bluetooth experience.

Critical Bug Fixes:

SPS Message Recognition: Before the v2.3.1 update, some users may have encountered a frustrating issue where the dongle failed to recognize SPS (Serial Port Service) messages correctly. This problem stemmed from the system incorrectly handling messages due to a different handle, resulting in an improper display format that did not align with previous firmware versions. However, with the diligent efforts of the BlueIO team, this bug has been decisively squashed. Now, SPS messages are correctly recognized and displayed in a consistent manner, eliminating the confusion and inconvenience experienced by users.

AT+GETCONN Bonded Device Display: Another critical bug addressed in this firmware update relates to the AT+GETCONN command. Previously, when users attempted to reconnect with previously bonded or paired devices, these devices would not show up as bonded or paired during the reconnection process. This inconsistency could lead to unnecessary complications and frustration for users. Thankfully, BlueIO has rectified this issue in v2.3.1. Now, when you reconnect with your trusted devices, they will correctly appear as bonded or paired, streamlining the reconnection process and ensuring a smoother user experience.

Be sure to update your BlueIO firmware to v2.3.1 to take full advantage of these improvements and enjoy a more hassle-free Bluetooth experience.
Details of the update can be found at

https://www.bleuio.com/getting_started/docs/firmware/

Share this post on :

BleuIO Python Library Upgraded to support firmware v2.3.0: Simplifying Custom Service Management

BleuIO, a leading provider of Bluetooth Low Energy (BLE) solutions, has recently released an exciting new Python library update that supports its latest firmware version 2.3.0. This Python library is a powerful tool that allows developers to manage BLE custom services effortlessly. In this article, we will explore the key features of BleuIO’s Python library, its benefits, and how it simplifies the process of creating custom BLE services.

BleuIO’s Python Library Update

BleuIO’s Python library is a comprehensive set of tools and functions that interface with the BleuIO Bluetooth Low Energy USB dongle. The latest update, which supports firmware version 2.3.0, introduces enhanced capabilities for managing custom BLE services, making it easier for developers to create and deploy custom services for their applications.

The Python library comes with a range of convenient AT commands that can be used to control various aspects of the BleuIO dongle, including scanning, advertising, connecting, and, most importantly, setting up custom services. With just a few lines of Python code, developers can now configure their own custom BLE services, tailoring them to meet the specific requirements of their projects.

Benefits of the Python Library for Custom Services

The new Python library from BleuIO offers several benefits that simplify the process of working with custom BLE services:

  1. Ease of Use: The library abstracts the complexities of interacting with the BLE dongle through simple and easy-to-understand Python functions. This allows even those new to BLE development to get started quickly.
  2. Time Efficiency: By providing high-level functions for custom service setup, the library saves developers valuable time. No need to write low-level code for every aspect of the BLE service creation; instead, developers can focus on implementing the unique features of their applications.
  3. Flexible Customization: With the library, developers have complete control over the configuration of custom services. They can define custom UUIDs, set permissions, properties, and values for each characteristic, tailoring the service to their specific use case.
  4. Real-time Updates: The example script demonstrates how to continuously update the values of characteristics and notify/indicate subscribers. This feature is invaluable for applications that require real-time data exchange.

Creating a Custom Service with BleuIO’s Python Library

Let’s take a look at a sample Python script that showcases how to create a custom BLE service using BleuIO’s Python library:

# (C) 2023 Smart Sensor Devices AB

import time
from datetime import datetime

from bleuio_lib.bleuio_funcs import BleuIO

# This example will show how to setup your own service
# Press Ctrl-C to exit the script.


# Scan result Callback function
def my_scan_callback(scan_input):
    print("\n\nmy_scan_callback: " + str(scan_input))


# Event Callback function
def my_evt_callback(scan_input):
    print("\n\nmy_evt_callback: " + str(scan_input))


# Start BleuIO
my_dongle = BleuIO()
# Register callback functions for scan results and events
my_dongle.register_evt_cb(my_evt_callback)
my_dongle.register_scan_cb(my_scan_callback)

# Run ATI Command
resp = my_dongle.ati()
print(resp.Cmd)
print(resp.Ack["errMsg"])
print(resp.Rsp)

print("My Role: " + my_dongle.status.role)
print("Is Adv: " + str(my_dongle.status.isAdvertising))
print("Is Connected: " + str(my_dongle.status.isConnected))

# Set role to dual if it isn't set already
if not my_dongle.status.role == my_dongle.gaproles.DUAL:
    resp = my_dongle.at_dual()
    print(resp.Cmd)
    print(resp.Ack)

# Disconnect if we're connected
if my_dongle.status.isConnected:
    resp = my_dongle.at_gapdisconnectall()
    print(resp.Cmd)
    print(resp.Ack)

# Stop Advertising if we're advertising
if my_dongle.status.isAdvertising:
    resp = my_dongle.at_advstop()
    print(resp.Cmd)
    print(resp.Ack)

# Stop custom service just in case it had been started previously
resp = my_dongle.at_customservice_stop()
print(resp.Cmd)
print(resp.Ack)

# Service

# Set service UUID
resp = my_dongle.at_customservice(
    0, my_dongle.UUID, "ee6ec068-7447-4045-9fd0-593f3ba3c2ee"
)
print(resp.Cmd)
print(resp.Ack)

# Characteristic 1

# Set characteristic 1 UUID
resp = my_dongle.at_customservice(
    2, my_dongle.UUID, "018f55d9-d747-4c4e-a87b-e9b074ffd2b6"
)
print(resp.Cmd)
print(resp.Ack)

# Set characteristic 1 value length
resp = my_dongle.at_customservice(1, my_dongle.CHAR_LENGTH, "100")
print(resp.Cmd)
print(resp.Ack)

# Set characteristic 1 value
# Here we set it to the current time in hours, minutes and seconds format.
cbTime = datetime.now()
char1_data = cbTime.strftime("%H:%M:%S")
resp = my_dongle.at_customservice(1, my_dongle.CHAR_VALUE, char1_data)
print(resp.Cmd)
print(resp.Ack)

# Set characteristic 1 permissions
resp = my_dongle.at_customservice(1, my_dongle.CHAR_PERMISSION, "R")
print(resp.Cmd)
print(resp.Ack)

# Set characteristic 1 properties
# We set it to Read and Notify
resp = my_dongle.at_customservice(1, my_dongle.CHAR_PROPERTY, "NR")
print(resp.Cmd)
print(resp.Ack)

# Characteristic 2

# Set characteristic 2 UUID
resp = my_dongle.at_customservice(
    2, my_dongle.UUID, "a693ba2c-f0df-40cb-aea7-8ae47281d997"
)
print(resp.Cmd)
print(resp.Ack)

# Set characteristic 2 value length
resp = my_dongle.at_customservice(2, my_dongle.CHAR_LENGTH, "100")
print(resp.Cmd)
print(resp.Ack)

# Set characteristic 2 value
# Here we set it to the current time in month, days and years format.
cbTime = datetime.now()
char2_data = cbTime.strftime("%m/%d/%Y")
resp = my_dongle.at_customservice(2, my_dongle.CHAR_VALUE, char2_data)
print(resp.Cmd)
print(resp.Ack)

# Set characteristic 2 permissions
resp = my_dongle.at_customservice(2, my_dongle.CHAR_PERMISSION, "R")
print(resp.Cmd)
print(resp.Ack)

# Set characteristic 2 properties
# We set it to Read and Indicate
resp = my_dongle.at_customservice(2, my_dongle.CHAR_PROPERTY, "IR")
print(resp.Cmd)
print(resp.Ack)

# Here we check that the service data we set has gone in
resp = my_dongle.at_customservice()
print(resp.Cmd)
print(resp.Ack)
print(resp.Rsp)
print(resp.End)

# Here we start the custom service so next time we advertise and someone connects they will see the new service
resp = my_dongle.at_customservice_start()
print(resp.Ack)

# Here we start advertising so other devices can detect us and connect
resp = my_dongle.at_advstart()
print(resp.Ack)

# Going in a never ending loop that will just update the values of Characteristic 1 and 2 every second.
# If anyone is subscribed we will notify/indicate them.
while True:
    cbTime = datetime.now()
    notiCharTime = cbTime.strftime("%H:%M:%S")
    resp = my_dongle.at_customservice(1, my_dongle.CHAR_VALUE, notiCharTime)
    print(resp.Cmd)
    print(resp.Ack)

    indiCharTime = cbTime.strftime("%m/%d/%Y")
    resp = my_dongle.at_customservice(2, my_dongle.CHAR_VALUE, indiCharTime)
    print(resp.Cmd)
    print(resp.Ack)
    time.sleep(1)

The example script demonstrates the process of setting up a custom service with two characteristics. Characteristic 1 holds the current time in hours, minutes, and seconds format, while Characteristic 2 contains the date in month, day, and year format. The script registers callbacks for scan results and events, sets up the service UUID, characteristic UUIDs, permissions, properties, and starts advertising the custom service.

With BleuIO’s Python library and the user-friendly AT commands, BLE application development becomes accessible to a wider audience, fostering a new era of creative and groundbreaking IoT solutions. Developers can explore the BleuIO Python library further by visiting the official PyPI page (https://pypi.org/project/bleuio/) and start harnessing the power of BLE for their projects.

Share this post on :

BlueIO Firmware Update v2.3.0: Empowering Custom Service Management

BlueIO, a leading provider of Bluetooth Low Energy (BLE) solutions, has recently announced the release of its latest firmware version, v2.3.0. This firmware update brings a host of new features and improvements, enabling developers to create better and more customizable applications. With a focus on flexibility and enhanced functionality, BlueIO’s new firmware empowers developers to tailor their applications to meet specific requirements while offering seamless integration with other devices.

One of the key highlights of the BlueIO v2.3.0 firmware is the ability to create a custom service. This feature provides developers with unprecedented control over their applications, allowing them to define characteristics that handle data in a way that aligns with their unique needs. The custom service can be identified by other devices using a custom UUID, ensuring seamless communication and interoperability.

Custom Service Features:

BlueIO’s custom service offers several powerful features that enable developers to build highly specialized applications:

  1. Custom UUID for the Service: Developers can set a custom UUID for the custom service, ensuring its unique identification and compatibility with other devices.
  2. Multiple Characteristics: Up to five characteristics can be added to the custom service, offering increased versatility and flexibility.
  3. Custom UUID for Each Characteristic: Developers can assign custom UUIDs to individual characteristics within the service, enabling precise identification and interaction.
  4. Read/Write Properties: Each characteristic can be configured with read/write properties, allowing bidirectional data transfer between devices.
  5. Write Without Response: Developers can choose to configure specific characteristics with the write without response property, optimizing data transfer efficiency.
  6. Notify or Indicate: Characteristics can be configured to notify or indicate changes, enabling real-time updates to connected devices.
  7. Descriptor Support: Developers can add descriptors to each characteristic, providing additional information and fine-grained control.
  8. Value Manipulation: The firmware update allows developers to change and update the values of characteristics and descriptors, supporting both ASCII and byte data formats.
  9. Peer Notifications: When updating the characteristic value, BlueIO can automatically notify all connected devices that have subscribed to any characteristic with either Notify or Indication properties.

New Commands:

The BlueIO v2.3.0 firmware introduces a set of new commands that facilitate easy setup and control of the custom service:

  1. AT+CUSTOMSERVICE: This command allows developers to configure and query the settings for the custom service.
  2. AT+CUSTOMSERVICESTART: Enables the start of the custom service, initiating its functionality.
  3. AT+CUSTOMSERVICESTOP: Stops the custom service while retaining the user-defined settings.
  4. AT+CUSTOMSERVICERESET: Disables the custom service and clears all user settings associated with it.

The release of BlueIO’s v2.3.0 firmware marks a significant milestone in meeting the demands of developers seeking advanced BLE solutions. The BlueIO team remains committed to enhancing their offerings and will continue to provide updates and new features to support developers in their application development journey.

Share this post on :

BleuIO Firmware update v2.2.2: Enhanced MTU Control and Advanced Scan Filtering

The BleuIO team is excited to announce the release of their latest firmware version, v2.2.2, packed with new features and improvements for Bluetooth Low Energy (BLE) developers. This firmware update aims to provide an enhanced development experience and empower developers with more control over their BLE applications.

What’s new in this firmware :

One of the notable additions in this release is the inclusion of a new command that allows developers to set or query the maximum MTU (Maximum Transmission Unit) size used in MTU negotiation upon connecting to a device. This feature provides flexibility in adjusting the MTU size, enabling better optimization and efficiency in data transmission between devices.

Additionally, the BleuIO firmware v2.2.2 introduces a powerful filtering mechanism for scan results. A new command has been added to apply filters on the outcomes from AT+FINDSCANDATA and AT+GAPSCAN commands. This feature allows filtering based on three different parameters: Local Name, Service UUID, and Manufacturer Specific ID.

It enables the flexibility to activate one filter, two filters in combination, or all three filters simultaneously. Results will only be displayed if the selected filter value is present in the advertising or scan response data. For example, a filter can be set to exclusively show data packets from devices with the Local Name “BleuIO” (either Complete or Shortened) by executing the command AT+SCANFILTER=NAME=BleuIO.

By leveraging these filtering capabilities, developers can easily focus on specific devices or data packets that meet their criteria, streamlining the development and testing process.

To explore the full range of features and improvements introduced in BleuIO firmware v2.2.2, developers are encouraged to visit the official BleuIO documentation at https://www.bleuio.com/getting_started/docs/firmware/. The comprehensive documentation provides detailed information on firmware updates and guides on how to leverage these new features effectively.

The BleuIO team is committed to continuously enhancing the BLE development experience and providing tools needed to build robust and innovative applications. With each firmware release, BleuIO demonstrates its dedication to empowering developers and enabling seamless Bluetooth Low Energy development.

Stay tuned for future updates from the BleuIO team, as they continue to introduce new features and improvements to meet the evolving needs of the BLE developer community.

Share this post on :

BleuIO Python library v1.2.0 includes verbose mode with easier event handling features

BleuIO Python library is updated and supports firmware version 2.2.1 .This update utilizes the new Verbose mode of the dongle and make it a lot simpler to work with Bluetooth Low Energy with Python.
Now the AT commands returns an object with 4 members

  • Command
  • Acknowledge
  • Response
  • End

Each contains a JSON object, except Response. The Response contains a list of JSON objects since a command can have several responses.

This new update of the library makes it easier to get the relevant information without building your own parser.
Status variables : Helpful status variables has been added which helps to keep track of the dongle status ; whether it is scanning, advertising or connected along with the dongle role.
Callback function : A callback function should be registered for both scan results and events. The callback functions will run every time a new event or scan result is detected.

Using the library

List of AT commands are available at https://www.bleuio.com/getting_started/docs/commands/

and how to access these AT commands using python library can be found at
https://pypi.org/project/bleuio/

Before starting to install our library, make sure you have the latest python installed on your system.

If you have never installed a library from PyPI, you must install the pip tool enabling you to download and install a PyPI package. There are several methods that are described on this page.

Now Install the library by running

pip install bleuio

pip automatically downloads and installs the most recent library on your system in the correct directory. To check that the installation went well, you can launch a Python interpreter and run the following lines:

from bleuio_lib.bleuio_funcs import BleuIO
my_dongle = BleuIO()
print(my_dongle.ati().Rsp)

Good luck on creating amazing Bluetooth Low Energy application using BleuIO and Python.

Share this post on :