Device Attribute Registry

Each Afero device will have a number of attributes associated with it. Attributes are identified by a 2-byte ID and can contain a variable amount of information based on the type of attribute. Attributes can come in many types and have specific ID ranges.

ID Description Data Type Usage Notes
1-1023 Afero Cloud, Device MCU An attribute residing on an external MCU defined by the third-party developer. The size and meaning of these attributes are defined by the developer using the Afero Profile Editor. To get the default value of one of these attributes, the MCU must call getAttribute.
1024 I/O 0 Value Attribute Modulo LED:
  • 0 = On
  • 1 = Off
1026 I/O 1 Value Attribute Configurable
1028 I/O 2 Value Attribute Configurable
1030 I/O 3 Value Attribute Modulo button
2001 Bootloader Version SINT64 The boot loader is always the first thing to be upgraded as it is responsible for installing firmware images. This firmware type is used for the Afero Secure Hub and Afero Secure Radios.
2002 BLE Stack Version SINT64 This is the Bluetooth stack for the radio module. This will likely never be updated, but is included here for completeness. If the stack is updated, the application must always be updated at the same time, before the device is rebooted.
2003 FW Application Version SINT64 This is the radio module application responsible for reading the device description and handling attributes. This firmware type is used for the Afero Secure Hub and Afero Secure Radios.
2004 Profile Version SINT64 The description of the attributes for a particular Afero application.
65012 Command BYTES This value will have a one-byte command followed by parameters, if any. The format of the last three bytes are dictated by the first byte. This will be used to send useful commands to ASR, such as reboot. Current commands are:
  • 1 = Reboot (last three bytes are ignored)
  • 2 = Clear user data (factory reset; last three bytes are ignored)
65013 ASR State SINT8 This byte will hold ASR state information, including:
  • 0 = Rebooted
  • 1 = Linked
  • 2 = Updating
  • 3 = Update Ready to Apply (Reboot Requested)
65018 Attribute ACK SINT16 Reserved
65019 Reboot Reason A variable-length string of bytes in which the first two bytes represent a specific reason for the most recent boot by ASR, and the remainder provides context-dependent data used internally. The data is provided as ASCII. The reasons represented are:
  • 01 = Reset pin asserted
  • 02 = Watchdog reset
  • 04 = Software reset
  • 08 = CPU Lockup
65020 BLE Comms BYTES Reserved
65021 MCU Interface SINT8 This attribute is required in the profile. The default value for this attribute is set by the Afero Profile Editor and any changes to the value at runtime are ignored. The following values are valid:
  • 0 = No MCU
  • 1 = SPI SLAVE
  • 2 = UART