Skip to main content
Version: 2.4.0

Configuration

The cube's information, such as communication specification version numbers and configuration information, is stored on the cube. This information can be obtained and modified using the following characteristic.

PropertyValue
Characteristic UUID10B201FF-5B3B-4571-9508-CF3EFCD7BBAE
PropertiesWrite, Read, Notify
DescriptorConfiguration

Write operations

note

While the different setting values can be changed depending on the write operation used, if connection to the cube is interrupted, all changes are discarded and the cube is returned to default values.

Requesting the BLE protocol version

The BLE protocol version of the cube can be requested by writing the following data. See Obtaining the BLE protocol version for how to obtain the response.

Data locationTypeContentExample
0UInt8Configuration type0x01 (BLE protocol version request)
1UInt8Reserved0x00

Horizontal detection threshold settings

Horizontal detection value obtained through the Motion detection becomes 0x00 (not horizontal) if the angle between the bottom of the cube and the horizontal plane (θ in the figure below) exceeds the threshold. This threshold can be changed by writing the following data.

Data locationTypeContentExample
0UInt8Configuration type0x05 (Horizontal detection threshold settings)
1UInt8Reserved0x00
2UInt8Threshold0x0A (10 degrees)

The threshold apply to both the roll and pitch orientation of rotation. The threshold range and default value are as follows

Roll orientation Flat Status Threshold - Roll

Pitch orientation Flat Status Threshold - Pitch

PropertyRangeDefault value
Threshold1 - 45 (degrees)45 (degrees)

Collision detection threshold settings

Collision detection value obtained through the Motion detection becomes 0x01 (collision) if the force of the collision applied to the cube exceeds the threshold. This threshold can be changed by writing the following data.

Data locationTypeContentExample
0UInt8Configuration type0x06 (Collision detection threshold settings)
1UInt8Reserved0x00
2UInt8Threshold0x0A (Level 10)

The threshold range and default value are as follows. These values represent the magnitude of the collision.

PropertyRangeDefault value
Threshold1 - 10 (Level)7 (Level)

Double-tap detection time interval settings

Double-tap detection obtained through the Motion detection becomes 1 (with double-tap) if the cube is tapped once and then tapped again within the specified time interval. The time interval between the two taps can be changed by writing the following data.

Data locationTypeContentExample
0UInt8Configuration type0x17 (Double-tap detection time interval settings)
1UInt8Reserved0x00
2UInt8Time interval0x07 (Level 7)

The threshold range and default value for the time interval are as follows. The larger the value, the longer the time interval will be.

PropertyRangeDefault value
Time interval0 - 7 (Level)5 (Level)

Identification sensor ID notification settings

Set the notification frequency for the Position ID and Standard ID from the identification sensor. Notifications are sent when both the [Minimum Notification Interval] and [Notification Conditions] are met. See Responses to identification sensor ID notification settings for how to obtain the response.

Data locationTypeContentExample
0UInt8Configuration type0x18 (Identification sensor ID notification settings)
1UInt8Reserved0x00
2UInt8Minimum notification interval0x01 (10 msec)
3UInt8Notification condition0x01 (Notifications for changes only)

Minimum notification interval

Sets the minimum interval between notifications. The range and default value are as follows. This is set in multiples of 10 milliseconds intervals. For example, setting 5 will send notifications at intervals of 50 milliseconds or longer. This is only the minimum value for the notification interval, and does not guarantee constant intervals between notifications. Please note that the notification interval may vary depending on the status of the central unit.

PropertyRangeDefault value
Minimum notification interval0 - 2551 (10 milliseconds)

Notification conditions

Select one of the following three types of conditions for notifications to be sent. The default value is 0xff.

Notification conditionContent
0x00Notifications are sent even if there is no change in the notification content.
0x01Notifications are sent when there is a change of 2 or more coordinates and 3 or more degrees in angle.
0xffNotifications are stopped for 300 milliseconds if there is no change in coordinates or angle, otherwise notifications continue to be sent.

Identification sensor ID missed notification settings

Set the Position ID missed and Standard ID missed notification sensitivity of the identification sensor. See Responses to identification sensor ID missed notification settings for how to obtain setting results.

Data locationTypeContentExample
0UInt8Configuration type0x19 (Identification sensor ID missed notification settings)
1UInt8Reserved0x00
2UInt8Notification sensitivity0x0A (100ms)

Notification sensitivity

Set the notification sensitivity when the cube is removed from the top of something on which a Position ID or Standard ID is printed. The range and default value are as follows. This is set in multiples of 10 millisecond intervals. For example, if 5, is set, "missed" notifications are sent when the cube is removed from the mat or card for 50 milliseconds or longer. If the cube is put back on the mat or card within 50 milliseconds after it is removed, no notifications are sent.

PropertyRangeDefault value
Notification sensitivity0 - 2557 (70 milliseconds)

Magnetic sensor settings

Write the following data to enable or disable the Magnetic sensor function. This function is disabled by default. See Responses to magnetic sensor settings for how to obtain setting results.

Data locationTypeContentExample
0UInt8Configuration type0x1b (Magnetic sensor function settings)
1UInt8Reserved0x00
2UInt8Function settings0x01 (Activation of magnet state detection)
3UInt8Notification interval0x01 (20 milliseconds)
4UInt8Notification condition0x01 (Notifications for changes only)

The setting values are as follows. Magnet status detection and magnetic force detection cannot be enabled at the same time.

Function SettingDefinition
0x00Disable (default value)
0x01Enable magnet state detection
0x02Enable magnetic force detection

Notification interval

Sets the interval for notifications. This is set in multiples of 20 milliseconds. If 0 is set, notifications are disabled. Note that this is set in multiples different from that of the notification interval settings for high-precision position and tilt information.

PropertyRange
Notification interval0 - 255 (0 disables notifications)

Notification conditions

Sets the conditions for notifications to be sent. When 0x00 is set, notifications are sent according to the notification interval even if there is no change. When 0x01 is set, notifications are sent only when there is change in the magnet state. However, even if there are great changes, notifications are not sent at intervals shorter than that of the above notification interval settings.

Function SettingDefinition
0x00Notifications even if there is no change
0x01Notifications only when there are changes

Motor speed information acquisition settings

Enable or disable Motor - Obtaining motor speed information by writing the following data. Motor speed information acquisition is disabled by default. See Responses to motor speed information acquisition settings for how to obtain setting results.

Data locationTypeContentExample
0UInt8Configuration type0x1c (Motor speed information acquisition settings)
1UInt8Reserved0x00
2UInt8Setting value0x01 (Enable)

The setting values are as follows

Setting valueMeaning
0x00Disabled (default value)
0x01Enabled

Posture angle detection settings

Write the following data to enable or disable the Posture Angle detection function. The posture angle detection function is disabled by default. See Responses to posture angle detection settings for how to obtain setting results.

Data locationTypeContentExample
0UInt8Configuration type0x1d (Posture angle detection settings)
1UInt8Reserved0x00
2UInt8Type of notification content0x01 (Euler angle)
3UInt8Notification interval0x01 (10 milliseconds)
4UInt8Notification condition0x01 (Notifications only where there are changes)

The types of notifications are as follows.

Type of notificationsDefinition
0x01Notifications in Euler angles
0x02 Notifications in quaternions
0x03 Notifications in high precision Euler angles

Notification interval

Sets the interval for notifications. This is set in multiples of 10 milliseconds. If 0 is set, notifications are disabled. Note that this is set in multiples different from that of the magnetic sensor notification interval settings.

PropertyRange
Notification interval0 - 255 (0 disables notifications)

Notification conditions

Sets the conditions for notifications to be sent. If 0x00 is set, notifications are sent according to the notification interval even if there is no change. When 0x01 is set, notifications are sent only when there is change in the tilt status. However, even if there are great changes, notifications are not sent at intervals shorter than that of the above notification interval settings.

Function SettingDefinition
0x00Notifications even if there is no change
0x01Notifications only when there is a change

Request to change connection interval

The cube requests the Central device to change the connection interval by writing the following data. If the Central device accepts the change request, the connection interval is changed. If the Central device responds to the change request, the connection interval is changed.

note

The connection interval value is determined by the central device. It may be a different value than the one requested by the cube side, or it may not be changed. Central device may disconnect the BLE connection if the Central side requests an unacceptable value.

Data locationTypeContentExample
0UInt8Configuration type0x30 (Request to change connection interval)
1UInt8Reserved0x00
2UInt16minimum value0x0008 (10 milliseconds)
4UInt16maximum value0x0050 (100 milliseconds)

minimum / maximum value

Sets the minimum and maximum connection interval time. Allowed values are defined by the BLE specifications. Possible values are 0xFFFF (no requested value) or values from 0x0006 to 0x0C80. The connection interval time is the specified value x1.25 [ms].

Obtaining the requested connection interval value

Get the requested value set in "Connection Interval Change Request" by writing the following data.
This value is not the actual connection interval value.

If the requested connection interval value is obtained without a Request to change connection interval, 0x08 (as minimum value) and 0x50 (as maximum value) can be obtained.

Data locationTypeContentExample
0UInt8Configuration type0x31 (Obtaining the requested connection interval value)
1UInt8Reserved0x00

Obtaining the actual connection interval value

Get the actual connection interval value between the cube and the central device by writing the following data.

You can check if the connection interval was changed as requested by comparing this value with the requested value set in the Request to change connection interval.

Data locationTypeContentExample
0UInt8Configuration type0x32 (Obtaining the actual connection interval value)
1UInt8Reserved0x00

Read operations

Obtaining the BLE protocol version

See Requesting the BLE protocol version for the request method.

Data locationTypeContentsExample
0UInt8Configuration type0x81 (Obtaining the BLE protocol version)
1UInt8Reserved0x00
2StringBLE protocol version (5 bytes utf-8) 

Responses to identification sensor ID notification settings

If Identification sensor ID notification settings is written, the following responses are obtained depending on the results of the identification sensor ID notification settings.

Data locationTypeContentExample
0UInt8Configuration type0x98 (Responses to identification sensor ID notification settings)
1UInt8Reserved0x00
2UInt8Resulting value0x00 (Set successfully)

The definitions of the result values are as follows.

Result valueDefinition
0x00OK/Set successfully
Value other than 0x00NG/Setting failed

Responses to identification sensor ID missed notification settings

If Identification sensor ID missed notification settings is written, the following responses are obtained depending on the results of the identification sensor missed ID notification settings.

Data locationTypeContentExample
0UInt8Configuration type0x99 (Responses to identification sensor missed ID notification settings)
1UInt8Reserved0x00
2UInt8Resulting value0x00 (Set successfully)

The definitions of the result values are as follows.

Result valueDefinition
0x00OK/Set successfully
Value other than 0x00NG/Setting failed

Responses to magnetic sensor settings

If Magnetic sensor settings is written, the following responses are obtained depending on the setting results.

Data locationTypeContentExample
0UInt8Configuration type0x9b (Responses to magnetic sensor settings)
1UInt8Reserved0x00
2UInt8Resulting value0x00 (Set successfully)

The definitions of the result values are as follows.

Result valueDefinition
0x00OK/Set successfully
Value other than 0x00NG/Setting failed

Responses to motor speed information acquisition settings

If Motor speed information acquisition settings is written, the following responses are obtained depending on the result.

Data locationTypeContentExample
0UInt8Configuration type0x9c (Responses to motor speed information acquisition settings)
1UInt8Reserved0x00
2UInt8Resulting value0x00 (Set successfully)

The definitions of the result values are as follows.

Result valueDefinition
0x00OK/Set successfully
Value other than 0x00NG/Setting failed

Responses to posture angle detection settings

If Posture angle detection settings is written, the following responses are obtained depending on the result.

Data locationTypeContentExample
0UInt8Configuration type0x9d (Responses to posture angle detection settings)
1UInt8Reserved0x00
2UInt8Resulting value0x00 (Set successfully)

The definitions of the result values are as follows.

Result valueDefinition
0x00OK/Set successfully
Value other than 0x00NG/Setting failed

Responses to request to change connection interval

If Request to change connection interval is written, the following responses are obtained depending on the result.

Data locationTypeContentExample
0UInt8Configuration type0xb0 (Responses to request to change connection interval)
1UInt8Reserved0x00
2UInt8Resulting value0x00 (Set successfully)

The definitions of the result values are as follows.

Result valueDefinition
0x00OK/Set successfully
Value other than 0x00NG/Setting failed

Responses to obtain the requested connection interval value

If Obtaining the requested connection interval value is written, the following responses are obtained depending on the result.

Data locationTypeContentExample
0UInt8Configuration type0xb1 (Responses to obtain the requested connection interval value)
1UInt8Reserved0x00
2UInt16minimum value0x0008 (10 milliseconds)
4UInt16maximum value0x0050 (100 milliseconds)

Responses to obtain the actual connection interval value

If Obtaining the actual connection interval value is written, the following responses are obtained depending on the result.

Data locationTypeContentExample
0UInt8Configuration type0xb2 (Responses to obtain the actual connection interval value)
1UInt8Reserved0x00
2UInt16minimum value0x0008 (10 milliseconds)
4UInt16maximum value0x0050 (100 milliseconds)

Notifications

The data obtained from Read operations can also be received through notifications.