This page tracks additions or changes to the AT command set based on the firmware version number (which you can obtain via the 'ATI' command):
The following AT commands and features were added in the 0.7.7 release:
- Added AT+BLEUARTTXF (F for force) to immediately send the specified data out in an BLE UART packet (max 20 bytes), bypassing any FIFO delays and avoiding packets potentially being transmitted in two transactions.
- Adjusted BLE UART service to use min connection interval as the tx interval
- Added AT+DFUIRQ to enable using the DFU Pin for IRQ purposes when there is a supported event on the nRF51822
- Enabled the internal pullup resistor on the CS pin for Bluefruit SPI boards
- Added AT+MODESWITCHEN to enable/disable +++ mode switching from the local (serial or SPI) or BLE UART side. By default local = enabled, ble = disabled, meaning commands can only be executed via the local interface by default.
- Implemented a '\+' escape code to immediately send '+' chars without trigger the +++ delay waiting for further similar input
- Added AT+BLEHIDGAMEPADEN to separately enable HID Gamepad, since iOS/OSX has a conflict with gamepad devices causing HID keyboard to not work properly.
The following bugs were fixed in release 0.7.7:
- Fixed a factory reset issue when a long delay occurs in app_error_handler()
- Fixed an issue where strings were being truncated at 64 chars in UART
- Fixed HID keyboard support not working with iOS 9 & 10
The following AT commands were added in the 0.7.0 release:
Change the HW UART baudrate
Enable or disable HW UART flow control
Enable/disable MIDI service, requires a reset to take effect
Send a MIDI event
Receive an available MIDI event
Added this read only command to read binary (instead of ASCII) data from a characteristic. It is non-printable but less overhead and easier for writing library in Arduino
Writes data to 256 byte user NVM. Datatype must be STRING (1), BYTEARRAY (2), or INTEGER (3)
Reads data back from 256 bytes user NVM
- AT+NVMREADRAW=offset,size binary data
Binary data (instead of ASCII) is returned, ending with "OK\r\n". It is non-printable but less overhead and easier to use in some situations.
- X is LEFT, RIGHT: X=-1 LEFT is pressed, X=1 RIGHT is pressed, X=0 no pressed
- Y is UP, DOWN: Y=-1 i UP, Y=1 is DOWN, Y=0 no pressed
- Button [0x00-0xFF] is a bit mask for 8 button 0-7
Allow/disallow connection to the device
Add/remove EddyStone service to GATT table (requires reset)
Start/stop broadcasting url using settings from NVM
Enable battery service. Reset required due to the service change.
Updates the Battery level, percent is 0 to 100
The following commands were changed in the 0.7.0 release:
- Added a DATATYPE option to indicate the data type for the GATT characteristic's payload. Valid option are: AUTO (0, default), STRING (1), BYTEARRAY (2), INTEGER (3)
- Added characteristic user description option via the DESCRIPTION flag
- Added characteristic presentation format support via the PRESENTATION flag
Added a new 'adv_lowpower_interval' parameter, default value is 417.5 ms. Current arguments are now: min_conn, max_conn, adv_interval, adv_timeout, adv_lowpower_interval
Key bug fixes and changes in this release:
- Significant BTLE UART speed and reliability improvements
- Added callback support (work in progress) for:
- BLE UART RX
- GATT Characteristic(s) RX
- MIDI RX
- Increased MAX_LEN for each characteristic from 20 to 32 bytes
- Changed the default GAP parameters:
- Advertising interval = 20ms
- Min connection interval = 20 ms
- Max connection interval = 40 ms
- Increased the maximum number of CCCDs saved to flash from 8 to 16
- Eddystone config service disabled by default
- Removed AT+EDDYSTONEENABLE to avoid confusion
- Changed advertising timeout for Eddystone to 'unlimited'
- Fixed Write-No-Response characteristic property, which wasn't being handled properly
- Fixed timing constraints to meet Apple design guidelines
- Fixed systick to ms calculation
- Fixed all tests with google eddystone validator except for writing tx_power = 1 dB (not valid on nrf51)
- Fixed a bug where writing from the central does not update the value on the characteristic correctly
- Fixed an issue with HID examples, where when paired with Central, a disconnect then reconnect could not send HID reports anymore
The following AT commands were added in the 0.6.7 release:
Returns the number of free bytes available in the TX and RX FIFOs for the Bluetooth UART Service.
The following commands were changed in the 0.6.7 release:
If the TX FIFO is full, the command will wait up to 200ms to see if the FIFO size decreases before exiting and returning an ERROR response due to the FIFO being full.
This command will go back to using the old (deprecated) UriBeacon UUID (0xFED8), and only the AT+EDDYSTONEURL command will use the newer Eddystone UUID (0xFEAA).
- AT+BLEKEYBOARD and AT+BLEUARTTX
These commands now accept '\?' as an escape code since 'AT+BLEKEYBOARD=?' has another meaning for the AT parser. To send a single question mark the following command should be used: 'AT+BLEKEYBOARD=\?' or 'AT+BLEUARTTX=\?'
This command now accepts an optional third parameter for RSSI at 0m value (default is -18dBm).
Running this command with no parameters ('AT+EDDYSTONEURL\r\n') will now return the current URL.
Key bug fixes in this release:
- The FIFO handling for the Bluetooth UART Service was improved for speed and stability, and the TX and RF FIFOs were increased to 1024 bytes each.
- An issue where a timer overflow was causing factory resets every 4 hours or so has been resolved.
- Fixed a problem with the GATT server where 'value_len' was being incorrectly parsed for integer values in characteristics where 'max_len' >4
The following AT commands were added in the 0.6.6 release:
Update the URL for the beacon and switch to beacon mode
Enable/disable beacon mode using the configured url
Enable advertising for the the Eddystone configuration service for the specified number of seconds
Allows the user to override the default MODE LED behaviour with one of the following options: DISABLE, MODE, HWUART, BLEUART, SPI, MANUAL
Allows HID media control values to be sent to a bonded central device (volume, screen brightness, etc.)
Enables or disables BLE HID support in the Bluefruit LE firmware (mouse, keyboard and media control)
To move the HID mouse
To set the state of the HID mouse buttons
The following commands were changed in the 0.6.6 release:
- AT+BLEKEYBOARDEN - Now an alias for AT+BLEHIDEN
- AT+GATTADDCHAR - Added a new UUID128 field to allow custom UUIDs
Key bug fixes in this release:
- Fixed issues with long beacon URLs
- Fixed big endian issue in at+blebeacon for major & minor number
Known issues with this release:
- Windows 10 seems to support a limited number of characteristics for the DIS service. We had to disable the Serial Number characteristic to enable HID support with windows 10.
The following AT commands were added in the 0.6.5 release:
The following commands were changed in the 0.6.5 release:
- Increased the UART buffer size (on the nRF51) from 128 to 256 bytes
- +++ now responds with the current operating mode
- Fixed a bug with AT+GATTCHAR values sometimes not being saved to NVM
- Fixed a bug with AT+GATTCHAR max_len value not being taken into account after a reset (min_len was always used when repopulating the value)
This is the first release targetting 32KB SRAM parts (QFAC). 16KB SRAM parts can't be used with this firmware due to memory management issues, and should use the earlier 0.5.0 firmware.
The following AT commands were changed in the 0.6.2 release:
Basic escape codes were added for new lines, tabs and backspace
Also works with OS X now, and may function with other operating systems that support BLE HID keyboards
The following AT commands were added in the 0.5.0 release:
The following AT commands were changed in the 0.5.0 release:
The SoftDevice, SoftDevice version and bootloader version were added as a new (7th) record. For Ex: "S110 7.1.0, 0.0" indicates version 7.1.0 of the S110 softdevice is used with the 0.0 bootloader (future boards will use a newer 0.1 bootloader).
Other notes concerning 0.5.0:
Starting with version 0.5.0, you can execute the AT+FACTORYRESET command at any point (and without a terminal emulator) by holding the DFU button down for 10 seconds until the blue CONNECTED LED starts flashing, then releasing it.
The following AT commands were added in the 0.4.7 release:
The following commands were changed in the 0.4.7 release:
The chip revision was added after the chip name. Whereas ATI would previously report 'nRF51822', it will now add the specific HW revision if it can be detected (ex 'nRF51822 QFAAG00')
- First public release