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):

Version 0.7.7

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

Version 0.7.0

The following AT commands were added in the 0.7.0 release:

  • AT+BAUDRATE
    Change the HW UART baudrate
  • AT+UARTFLOW
    Enable or disable HW UART flow control
  • AT+BLEMIDIEN=on/off/0/1
    Enable/disable MIDI service, requires a reset to take effect
  • AT+BLEMIDITX
    Send a MIDI event
  • AT+BLEMIDIRX
    Receive an available MIDI event
  • AT+GATTCHARRAW
    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
  • AT+NVMWRITE=offset,datatype,data
    Writes data to 256 byte user NVM. Datatype must be STRING (1), BYTEARRAY (2), or INTEGER (3)
  • AT+NVMREAD=offset,size,datatype
    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.
  • AT+BLEHIDGAMEPAD=x,y,buttons
    • 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
  • AT+GAPCONNECTABLE=on/off/1/0
    Allow/disallow connection to the device
  • AT+EDDYSTONESERVICEEN
    Add/remove EddyStone service to GATT table (requires reset)
  • AT+EDDYSTONEBROADCAST=on/off/0/1
    Start/stop broadcasting url using settings from NVM
  • AT+BLEBATTEN=on/off/1/0
    Enable battery service. Reset required due to the service change.
  • AT+BLEBATTVAL=percent
    Updates the Battery level, percent is 0 to 100

The following commands were changed in the 0.7.0 release:

  • AT+GATTADDCHAR
    • 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
  • AT+GAPINTERVALS
    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
    • Connect/Disconnect
  • 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

Version 0.6.7

The following AT commands were added in the 0.6.7 release:

  • AT+BLEUARTFIFO
    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:

  • AT+BLEUARTTX
    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.
  • AT+BLEURIBEACON
    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=\?'
  • AT+EDDYSTONEURL
    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

Version 0.6.6

The following AT commands were added in the 0.6.6 release:

  • AT+EDDYSTONEURL
    Update the URL for the beacon and switch to beacon mode
  • AT+EDDYSTONEENABLE
    Enable/disable beacon mode using the configured url
  • AT+EDDYSTONECONFIGEN
    Enable advertising for the the Eddystone configuration service for the specified number of seconds
  • AT+HWMODELED
    Allows the user to override the default MODE LED behaviour with one of the following options: DISABLE, MODE, HWUART, BLEUART, SPI, MANUAL
  • AT+BLECONTROLKEY
    Allows HID media control values to be sent to a bonded central device (volume, screen brightness, etc.)
  • AT+BLEHIDEN
    Enables or disables BLE HID support in the Bluefruit LE firmware (mouse, keyboard and media control)
  • AT+BLEMOUSEMOVE
    To move the HID mouse
  • AT+BLEMOUSEBUTTON
    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.

Version 0.6.5

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)

Version 0.6.2

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:

  • AT+BLEUARTTX
    Basic escape codes were added for new lines, tabs and backspace
  • AT+BLEKEYBOARD
    Also works with OS X now, and may function with other operating systems that support BLE HID keyboards

Version 0.5.0

The following AT commands were added in the 0.5.0 release:

The following AT commands were changed in the 0.5.0 release:

  • ATI
    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.

Version 0.4.7

The following AT commands were added in the 0.4.7 release:

The following commands were changed in the 0.4.7 release:

  • ATI
    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')

Version 0.3.0

  • First public release

This guide was first published on Nov 18, 2015. It was last updated on Nov 18, 2015.

This page (History) was last updated on Dec 22, 2014.

Text editor powered by tinymce.