Release History of BleuIO (SSD005)
Important Change:
Starting with firmware version 2.6.0 and above, the Control signal Data Terminal Ready (DTR) must be enabled when communicating with BleuIO over the serial port to ensure proper reception of responses.
Release v2.7.6
Added functionality:
- Added ability to set a Unique Organization ID string. It will be stored in flash memory, and will persist through power cycles. The Unique Organization ID string will be displayed in the ATI command's response if set.
- Changed so the BleuIO also can handle Extended ASCII Characters.
Added Commands
- Added command AT+SETUOI to set Unique Organization ID.
- Added command AT+CLRUOI to clear any set Unique Organization ID.
Bug fixes
- Fixed bug where BleuIO could reset when connected to two or more devices while scanning and a disconnection event occurred.
Release v2.7.5
Added functionality:
- Added new command ATSAT that will show device address type ([1] = Private or [0] = Public) in the advertising data/scan response for scan command AT+FINDSCANDATA and AT+SCANTARGET. AT+GAPSCAN always shows the device address type.
- Improved how bonded devices are stored.
Changes to storing Bonded Information
- Increased number of bonded device stored in flash to 16, up from 8.
- Previously, the BleuIO could save the bonding information of up to 8 devices. When 8 devices had been stored, no new bonding could be done until the user manually removed one or all bonding information using the AT+GAPUNPAIR command.
- Now the BleuIO can save the bonding information of up to 16 devices. When 16 devices had been stored, the user can still bond. The BleuIO will remove the bonding information of the first bonded device that was added to the list that isn't currently connected.
Since BleuIO support up to 8 connections at the time, there will always be at least 8 bonded devices that isn't currently connected. The first device that was bonded will be removed to make room for the new bonded device information.
Added Commands
- ATSAT for toggling showing address types on/off in scan results when using AT+FINDSCANDATA and AT+SCANTARGET.
Release v2.7.4
Added functionality:
- Added new commands that will show device name and/or manufacturer specific ID (Company ID) if present in the advertising data/scan response. For all modes of scans (AT+GAPSCAN, AT+FINDSCANDATA, AT+SCANTARGET).
- Added command to set the scan interval and scan window for connections.
- Added command to set scan parameters used in all the different modes of scans (AT+GAPSCAN, AT+FINDSCANDATA, AT+SCANTARGET). The parameters are scan mode, scan type, scan interval, scan window and filter duplicate.
Added Commands
- ATASSN for toggling showing device name on/off in scans using AT+FINDSCANDATA and AT+SCANTARGET.
- ATASSM for toggling showing manufacturing specific ID (Company ID) on/off in scans using AT+GAPSCAN, AT+FINDSCANDATA and AT+SCANTARGET.
- AT+CONNSCANPARAM for setting scan interval and scan window used in connections.
- AT+SCANPARAM for setting scan parameters when using the three different scan commands (AT+GAPSCAN, AT+FINDSCANDATA, AT+SCANTARGET).
Release v2.7.3
Added functionality:
- Added new command that will scan for and connect to a bonded device even if the bonded is using a Private Random Resolvable Address.
- Added new command to toggle on/off showing resolved addresses in scan results when scanning using AT+GAPSCAN command.
- New command improvement. The AT+GAPCONNECT can now use the index from scan results from the AT+GAPSCAN command instead of the mac address for argument.
- Added new command to toggle on/off showing the indexes from AT+GAPSCAN scan results in verbose mode.
Added Commands
- AT+CONNECTBOND for connecting with already bonded devices, even if device is advertising using Private Random Resolvable Address.
- ATSRA for showing the resolved addresses in the scan result.
- ATSIV for showing indexes in the verbose mode scan results.
Release v2.7.2
Added functionallity:
- Added Authentication and Encryption Permission support for the Custom Service attributes. The permissions are used by the server (BleuIO) to determine whether a client is allowed to read from or write to a characteristic or descriptor value, and whether an Authenticated and/or Encrypted Connection is required to access that particular characteristic or descriptor.
Bug fixes:
- Fixed bug were the command AT+GETBOND would sometimes report back incorrect mac addresses.
- Removed the address type part of the mac address returned from the command AT+GETBOND. This isn't stored with the bonding information and would always return as PUBLIC_ADDRESS (0).
- Fixed bug were the command AT+GAPSCAN= with the argument left empty would result in a reset.
- Fixed bug were you could attempt to initiate a connection with AT+GAPCONNECT while also advertising which would led to some unpredictible behavior like being unable to connect or scan.
Release v2.7.1
Bug fixes:
- Fixed bug were ATI command in verbose mode failed to return information.
Release v2.7.0
Added features:
- Added command to change connection parameters while connected. It can also be used when not connected to change the default connection parameters used when using the AT+GAPCONNECT command with only the mac address as argument.
Added Commands
- AT+CONNPARAM for setting or displaying preferred connection parameters. When run while connected will update connection parameters on the current target connection.
Release v2.6.1
Changes:
- Increased the auto execute (AUTOEXEC) list command size from 99 per command to 255.
Bug fixes:
- Fixed a bug where the dongle would reset if plugged in to just power.
- Clear input buffer when closing interface that is connected to the Bleuio, like a terminal. So for example, if the BleuIO is connected through TeraTerm and a command is typed without sending the carriage return signal (enter) and TeraTerm is closed, next time TeraTerm is open the command will not still be in the buffer and executed when sending carriage return (enter).
Release v2.6.0
Important Change:
This release and future releases requires Control signal Data Terminal Ready (DTR) when communicating with the BleuIO over the serial port to be able to receive responses.
Added features:
- You can now set up to 10 commands that will be run upon the BleuIO starting up. These commands are saved in the flash memory and will persists after power cycles.
Upon startup the BleuIO will check if there is any commands set in the auto execute (AUTOEXEC) list, if there is it will try to execute them in order, one after another.
This means that you can use the BleuIO to for example create beacons that will start advertising as soon as they are powered. No need to connect it to a computer!
Added Commands
- AT+AUTOEXEC for setting or displaying commands in a list that will be run when the BleuIO starts up. The commands set will persist after power cycles.
- AT+CLRAUTOEXEC for removing all commands set in the AUTOEXEC list.
Release v2.5.0
Added features:
- Bonding information now persists after power cycles. To remove bond use the AT+GAPUNPAIR command to remove all bonded device information or AT+GAPUNPAIR=[addrType]MacAddress to remove selected device's bonding information.
Added Commands
- AT+GETBOND for displaying any bonded device's mac addresses.
Bug fixes
- For command AT+GETCONN removed a verbose line that was shown when the BleuIO dongle was not in verbose mode.
Release v2.4.0
Added features:
- Added option to update the firmware of the BleuIO Dongle using BLE SUOTA (Software Update Over the Air). The feature can be activated and deactivated. It is deactivated per default.
Added Commands
- AT+SUOTASTART for enabling the SOUTA service and starting the SOUTA Advertising.
- AT+SUOTASTOP for disabling the SUOTA Service and stopping the SUOTA Advertising.
Release v2.3.1
Added features:
- In AT+SCANFILTER added that the UUID filter will also check for "Service Data - 128-bit UUID" and "Service Data - 16-bit UUID" packets.
Bug fixes
- Fixed a bug where the dongle did not recognize SPS messages due to a different handle and displays the messages in a way that doesn't conform to previous versions.
- Fixed a bug where, using the AT+GETCONN, previously bonded/paired devices would not show up as bonded/paired when reconnected despite being bonded/paired.
Release v2.3.0
Added features:
BleuIO now has the ability to create a custom Service!
You can:
- Set a custom UUID for the Service
- Add up to 5 characteristics
- Set custom UUID for each of the characteristics
- Add read/write/write without response properties and Notify or Indicate for each characteristic
- Add a descriptor to each characteristic
- Change/update value of the characteristic and descriptor in ASCII or Bytes
- Notify/Indicate all peers that subscribe to any characteristic with either Notify or Indication properties when updating the characteristic value
Added Commands
- AT+CUSTOMSERVICE for setting up or querying the settings for the custom service.
- AT+CUSTOMSERVICESTART for starting service.
- AT+CUSTOMSERVICESTOP for stopping the service, but keeping the user settings.
- AT+CUSTOMSERVICERESET for stopping the service and clearing the user settings.
Release v2.2.2
Added features:
- Added new command to set or query the currently set maximum MTU size allowed used in MTU negotiation upon connecting to device.
- Added new command that applies a filter on the results from AT+FINDSCANDATA and AT+GAPSCAN.
Three filters are currently avalible: Local Name, Service UUID and Manufacturer Specific ID.
You can have one active, or two active in any combination or all three active at once.
Results will only be shown if the selected filter value is present in the advertising or scan response data.
You can for example set a filter to only show data packets from devices that has the Local Name BleuIO (either Complete or Shortened) by running AT+SCANFILTER=NAME=BleuIO.
Release v2.2.1
Added features:
- Increased MTU to 512
- Added an MTU event that shows the negotiated MTU when connected or when changed: (MTU CHANGED: xxx) (using verbose mode: {779:"0000","evt":{"action":"mtu changed","mtu":xxx}})
- Added new AT command: AT+GETMAC for getting bleuio mac address.
Bugfixes
- Fixed format errors of some messages when using verbose mode that doesn't comform to JSON.
Release v2.2.0
Added features:
BleuIO has been updated with the new VERBOSE mode that changes the format of all the output. This new mode changes the output to a more structured and unified format and includes command IDs for all command-related messages. The command-releated outputs are more easily separatable from the event outputs. The idea is to make the BleuIO output more consistent, easier to use in scripts and generate more useful error messages.
Visit Verbose Mode details to get more information about the formatting, as well as the error and event code lists. The AT-Command list has also been updated so that evey command can be toggled between showing the examples in normal mode or in advanced mode.
Release v2.1.4
Added features:
- BleuIO can now toggle on/off the written data echo after a gattcwrite command.
- It is now possible to set a timer for AT+FINDSCANDATA & AT+SCANTARGET scans just like with AT+GAPSCAN. Just end the command with "=<scan_time>". Like AT+FINDSCANDATA=123456=5.
Release v2.1.3
Added features:
- BleuIO can filter scan results based on RSSI value with the new AT command AT+FRSSI=<max_rssi>. Only results at or below set value will be displayed.
- BleuIO can now toggle show/hide RSSI values in AT+FINDSCANDATA and AT+SCANTARGET scans.
Bugfixes
- Removed bug where if trying to connect to a device already connected to the dongle would result in a disconnection of that device.
Improvments
- When connecting to a device sometimes the dongle fails to establish a connection right after a successful connection event and disconnect. Now it will automatically try to reconnect with the response: "Connection failed to be established. Reconnecting...". It will try up to 6 times before giving up and showing the disconnection event and the response: "FAILED TO ESTABLISH CONNECTION!".
Release v2.1.2
Added features:
- BleuIO can now change or view the current device name used in GAP Service by using the new command AT+DEVICENAME.
Release v2.1.1
Added features:
- BleuIO now support Security Level 4! Use the AT+SECLVL command to set security level to 4 and protect the connection with Secure Connection. Secure Connection uses an algorithm called Elliptic curve Diffie–Hellman (ECDH) for key generation, and a new pairing procedure for the key exchange.
- BleuIO can now change it's address type. By using the new command AT+GAPADDRTYPE the BleuIO can now switch between: Public Static Address, Private Static Address, Private Random Resolvable Address, Private Random Non-resolvable Address and Private Random Resolvable address using Bluetooth LE Privacy v1.2.
Release v2.1.0
Improvements:
- Improved performance on slower systems by increasing the timeout for how long the BleuIO Dongle will wait for an acknowledgment from the USB Host that data has been received.
Bugfix
- Fixed a bug where the BleuIO Dongle sometimes missed or only received partial data from Notifications.
Release v2.0.9
Added features:
- Added support to set the information in the Device Service Information (DIS). Information can only be set before starting advertising. If no custom information is set, the default BleuIO device information will be used. Once advertising is started the information set to be used will be locked in and cannot be changed during runtime.
Added Commands
- Added a new command AT+DIS, that is used to view current information used in the Device Information Service (DIS).
- Added a new command AT+SETDIS that is used to set current information used in the Device Information Service (DIS).
Release v2.0.8
Added features:
- Added support for indication type notifications.
- You now have more control over indications and notifications. Notifications and indications will only be shown if you have enabled them. Exception is when connecting to another BleuIO Dongle; it will still enable the required notifications used by the SPS service. You can of manually disable them if you want with the AT+CLEARNOTI command.
- Added a new command AT+SETINDI that will allow you to easily enable indications.
- Added a new command AT+CLEARINDI that will allow you to easily disable indications.
- Added a new command AT+NOTI that will show a list of enabled notifications and on which connection.
- Added a new command AT+INDI that will show a list of enabled indications and on which connection.
Improvements:
- You can now set decimal values in the connection interval parameters (min connection interval & max connection interval). The new lowest value on min connection interval is now 7.5 miliseconds.
Release v2.0.7
Bugfixes:
- Problem sending over 99 bytes using AT-commands "AT+GATTCWRITEB" and "AT+GATTCWRITEWRB" resulted in an unexpected behaviour.
Release v2.0.6
Added features:
- Added a new command AT+CLEARNOTI that will allow you disable notifications.
- Added connection parameters to the AT+GAPCONNECT command. The parameters are: Connection Interval Min, Connection Interval Max, Slave Latency and Supervision Time-out.
Release v2.0.5
Added features:
- Added a new command ATASPS that will allow you to choose if the SPS responses will be shown as ASCII or Hex. ASCII is shown by default at startup.
Bug fixes
- Fixed a bug where if you sent more than 244 characters at once before sending a carriage return (or pressed Enter) the dongle would restart.
Release v2.0.4
Added features:
- Added two new AT command for writing without response. AT+GATTCWRITEWR for ASCII and AT+GATTCWRITEWRB for hex.
- Added a new command AT+GETSERVICESONLY that will discover only all the services of the connected peripherals.
- Added a new command AT+GETSERVICEDETAILS that will discover all the characteristics and descriptors of a selected service. Must run AT+GETSERVICESONLY command first to get the service handle.
Release v2.0.3
Added features:
- Added new AT command ATDS that turns on (ATDS0) or turns off (ATDS1) auto-discovery of services from the device, the dongle is connected to or when is in DUAL mode, and a device connects to it.
Auto discovers services are on by default. - Added a new command AT+GAPDISCONNECTALL that disconnects all current connections.
Bug fixes
- Fixed a bug where the services that were being auto-discovered upon a connection event was from the connection set in target connection instead of the current connection.
- Fixed a bug where you had to put a small timeout between the actual command and the carriage return ('\r') to run a command when using scripts to communicate with the dongle. You should now be able to send the command and the return character at the same time.
- Updated the response from a successful AT+GAPDISCONNECT command. It should now reply with a 'handle_evt_gap_disconnected: conn_idx=conn_idx address=mac_address_of_disconnected_device.' and then the 'DISCONNECTED.' line for easily discerning which device has been disconnected.
Release v2.0.2
Added features:
- Added new AT command ATA that hides (ATA0) or shows (ATA1) ASCII values from Notification, Indication, or GATT Read responses. Ascii values are shown by default.
Bug fixes
- Fixed a bug where running a scan and stopping it repeatedly would, in rare cases, cause a hard restart of the dongle.
Release v2.0.1
Bug fixes
- Fixed a bug where you wouldn't get the data from a AT+GATTCREAD command.
Release v2.0.0
Improvments:
- You can now connect to up to 8 devices at the same time. And with the new dual mode role, you can scan, advertise, and connect to other devices without changing roles or disconnect. While in Peripheral mode, you will always be acting as a server and in Central mode as a client. But in dual mode you can switch between acting as a server or client depending on your needs.
- When connected to multiple devices, keep an eye on the conn_idx (connection index) when receiving or sending data to know which device you are sending to/receiving from.
Added features:
- Increased possible connections to max 8. (Previously max 1).
- Added a new dual role with the capabilities of both Peripheral and Central.
- Added 5 new AT commands; AT+DUAL for dual role, AT+CLIENT and AT+SERVER for switching behaviour in Dual role towards targeted connection, AT+GETCONN for getting a list of active connections, AT+TARGETCONN for choosing which connection you want to interact with.
- Added number of connections and maximum connections when connected in the ATI command info.
- Added a line with (connidx=**_conn_idx**) above the [Received]: line when using the SPS service as a server with multiple connections to be able to tell which device sent the data.
- Added a line with (connidx=**_conn_idx**) above the DISCONNECTED. line when connected to more than one other device to be able to tell which device disconnected.
Bug fixes
- Fixed a bug that caused notifications received to be cut off by other data, making parsing the correct data difficult.
Release v1.3.1
Bug fixes
- Fixed a bug that caused a hard reset if the dongle was printing something but was not connected anything that would receive it, like a terminal.
Release v1.3.0
Added features:
- Added AT Command AT+SETPASSKEY for setting or quering set passkey for passkey authentication.
- Added AT Command AT+SECLVL for setting or quering minimum security level used when connected to other devices.
- Added AT Command AT+NUMCOMPA for accepting a numeric comparison authentication request or enabling/disabling auto-accepting numeric comparisons. Enabled by default.
Improvments:
- You can now set the passkey for passkey authentication on your dongle yourself.
- You can now set the security minimum level your dongle will use. This can be done either when already connected to a device or before. If the device you are connecting to does not meet the security level requierment the dongle will disconnect from it.
- You can now choose if the dongle should auto accept the numeric comparison authentication request or if it should be accepted manually.
Bug fixes
- You no longer need to run the AT+CANCELCONNECT twice, just once.
- Security Level will be displayed when queried via the AT+SECLVL command rather than when changed. As the security level shown when changed could be misleading.
Release v1.2.0
Added features:
- Added AT Command AT+GAPIOCAP for setting or quering dongle input and output capabilities. Important for what type of security responses is availible.
- Added AT Command AT+GAPPAIR for manually starting a pairing or bonding procedure.
- Added AT Command AT+GAPUNPAIR for unpairing all or selected devices.
- Added AT Command AT+ENTERPASSKEY for handling passkey requests when pairing/bonding.
- You are now able to secure the connection between other devices and the dongle or between dongles via pairing/bonding. The dongle is now capable of initialising or handeling pairing and/or bonding requests. Depending on what Input/Output capability you've set on the dongle the dongle can now handle numeric comparision authentication or passkey authentication (with the new AT+ENTERPASSKEY command).
Improvments:
- It is now possible to access protected characeristics that needs a increeced Security Level. Security Level can be increeced by succefully pairing/bonding.
- Security Level will know be displayed when changed.
Release v1.1.0
Added features:
- Added AT Command AT+GETSERVICES for manually discovering services and characteristics when connected.
- Added AT Command AT+SETNOTI for manually enabling notifications.
- Added AT Command AT+CANCELCONNECT for canceling an ongoing connection attempt.
Improvments:
- Added some more helpful error messages when in Central Mode and an ongoing connection attempt is in progress. Now when you are trying to change to Peripheral Mode or start a scan while still waiting to connect to a peripheral the dongle will throw an error. Warning you that the connection attempt must be resolved first, either by itself or the user canceling the attempt.
Bug fixes
- Fixed a bug where the user could still attempt a scan, that always returned an empty scan result, or change to Peripheral Mode while an ongoing connection attempt was unresolved.
Release v1.0.9
Added features:
- Added AT Command ATE for turning on/off echo.
- Added AT Command AT+FINDSCANDATA for scanning andvertising/response data packages which includes a specific value.
Improvments:
- Removed unnecessary CR and LF in response messages and redundant OK responses.
Bug fixes
- Fixed a bug where null values where sometimes returned in the response message.
- Querying ADVDATA and ADVRESP now works as intended.
- Fixed a bug where SCANTARGET sometimes included normal scan results.
Release v1.0.8
Bug fixes
- Fixed a bug where the serial number of the USB Dongle got scrambled. It is now working as intended.
Release v1.0.7
Bug fixes
- Fixed a bug where two or more dongles couldn't be plugged into the same computer due to that the computer thought they were the same device because they had the same device information. Each dongle will now generate a unique serial number which will help the computer to differentiate between them.
Release v1.0.6
Added features:
- Removed AT Command AT+SPSRECEIVE as it was pretty unnecessary. Incoming data will now be shown by default.
- Added information on AT+GAPSTATUS and ATI about current role, connection status and if advertising.
- When using the SPS added the line [Recieved]: infront of recieved data to make it easier to find and use from scripts etc.
- Added a separate AT command: AT+GATTCWRITEB for when you want to write hexvalues.
- Added some more information about the size (in bytes) of the value read or written when you use AT+GATTCWRITE, AT+GATTCWRITEB or AT+GATTCREAD.
Minor Bug fixes
- Fixed a lot of minor bugs that caused unwanted restarts
- AT+GATTCREAD now also properly displayes the hexvalue not just the ASCII value.
Release v1.0.5
Added features:
Added possibility to scan up to three target devices with AT+SCANTARGET=
Added command AT+FINDSCANDATA=argument that displays Advertising and Response Data that contains argument, or if left empty shows all scan adv and response data
When doing a AT+TARGETSCAN= or AT+FINDSCANDATA=, the displayed data will show if it is Advertising Data or Response Data. Or if other it will display the corresponding Type code.
Release v1.0.4
Bugfixes:
- Fixed the inconsistency were the BleuIO were referred to as SSD005 Dongle in several places.
- Fixed a bug were you won't get the whole 31 bytes of Advertising and Response Data when using AT+SCANTARGET=
- Fixed a bug were no data would be shown when using SCANTARGET= after either Connecting/Disconnecting to a device or first doing a GAPSCAN
- Fixed a bug were GATTCREAD and GATTCWRITE would not translate the user input correctly, resulting in getting incorrect values