The Bosch Cross Domain Development Kit (XDK) is a programmable sensor device for building IoT applications.
It contains a wide range of sensors and means of connectivity, is extensible using its extension bus.
Due to its versatility it also serves as reference platform for XDK LIVE.
To learn more about the XDK head over to http://xdk.io.
Sensor: environment (BME280)
Configuration Items
Name
Description
optional power_mode : BME280_PowerMode
Defaults to BME280_PowerMode.Normal. The BME280 power mode
optional standby_time : uint32
The standby time used in normal mode in milliseconds.
Beware that the value supplied here will be clipped to the nearest valid value.
Reduces noise in the temperature measurement by over sampling.
Higher over sampling settings reduce noise but increase measurement time and power consumption.
Reduces noise in the pressure measurement by over sampling.
Higher over sampling settings reduce noise but increase measurement time and power consumption.
Reduces noise in the humidity measurement by over sampling.
Higher over sampling settings reduce noise but increase measurement time and power consumption.
Modalities
Name
Description
temperature : int32
The temperature in milli-celcius
pressure : uint32
The pressure in pascal
humidity : float
The relative humidity as percentage
humidity_fixed_point : uint32
The relative humidity as percentage in Q22.10 integer format.
Divide this value by 1024 to get the percentage.
Sensor: accelerometer (BMA280)
Configuration Items
Name
Description
optional range : BMA280_Range
Defaults to BMA280_Range.Range_2G. The range of acceleration we want to measure.
optional bandwidth : BMA280_Bandwidth
Defaults to BMA280_Bandwidth.BW_500Hz. The low-pass filter bandwidth used by the BMA.
optional any_motion_threshold : uint32
Defaults to 20. The threshold of acceleration that has to be crossed before an any motion event is triggered.
optional no_motion_threshold : uint32
Defaults to 20. The threshold of acceleration that must not be exceeded for a no motion event to be triggered.
Modalities
Name
Description
x_axis : int32
The X axis of the BMA280
y_axis : int32
The Y axis of the BMA280
z_axis : int32
The Z axis of the BMA280
magnitude : uint32
The L2 norm of the acceleration vector: sqrt(x^2 + y^2 + z^2)
Events
Name
Description
any_motion
The any motion event (also called activity) uses the change between two successive
acceleration measurements to detect changes in motion. An event is generated when this change
exceeds the any_motion_threshold.
no_motion
The no motion event (also called any inactivity) uses the change between two successive
acceleration measurements to detect changes in motion. An event is generated when this change
consecutively stays below the no_motion_threshold.
low_g
high_g
single_tap
double_tap
flat
orientation
fifo_full
fifo_wml
new_data
This event serves the asynchronous reading of data. It is generated after storing a new value
of z-axis acceleration data in the data register.
Sensor: light (MAX44009)
Configuration Items
Name
Description
optional manual_mode : bool
Defaults to false. Enables the manual configuration of integration time and high brightness mode.
If set to false (default) the chip automatically selects those values.
Defaults to MAX44009_IntegrationTime.MS_800. The integration time is the time the sensor collects light for. In automatic mode
(manual mode set to false) the chip automatically selects the integration time.
This configuration item is only used when manual_mode is set to true.
optional high_brightness : bool
Defaults to false. Set to true so that only 1/8 of the photo diode current goes to the ADC. This mode is used in
high-brightness situations to avoid saturation/clipping effects of the ADC.
This configuration item is only used when manual_mode is set to true.
optional continuous_mode : bool
Defaults to false. In default mode (false) the IC measures lux intensity only once every 800ms regardless
of integration time. This mode allows the part to operate at its lowest possible supply current.
In continuous mode (true) the IC continuously measures lux intensity. That is, as soon as one
reading is finished, a new one begins. If integration time is 6.25ms, readings are taken every 6.25ms.
If integration time is 800ms, readings are taken every 800ms. In this mode, the part consumes slightly
higher power than in the default mode.
Modalities
Name
Description
intensity : uint32
The light intensity in millilux.
Sensor: button_one (Button)
Modalities
Name
Description
is_pressed : bool
True if the button is pressed in this very right moment. False otherwise.
Events
Name
Description
pressed
Fires after the button was pressed.
released
Fires after the button was released.
Sensor: button_two (Button)
Modalities
Name
Description
is_pressed : bool
True if the button is pressed in this very right moment. False otherwise.
Events
Name
Description
pressed
Fires after the button was pressed.
released
Fires after the button was released.
Connectivity: BLE
BLE is Bluetooth Low Energy using GATT profiles.
At the moment we only support slave mode where the XDK becomes a device that can be connected to (as compared to connecting to some other device).
Configuration Items
Name
Description
optional deviceName : string
The name of the device as advertised via GAP.
optional serviceUid : uint32
The last four bytes of the UUID of the GATT service we'll create.
optional advertisingInterval : int16
Defaults to 1000. The advertising interval in milliseconds.
Variable Configuration Items
Name
Description
Parameters
bool_characteristic : bool
Creates a boolean GATT characteristic.
UUID : uint32
The last four bytes of the characteristic UUID. Defaults to the hash code of the VCI name.
uint32_characteristic : uint32
Creates an unsigned integer GATT characteristic.
UUID : uint32
The last four bytes of the characteristic UUID. Defaults to the hash code of the VCI name.
int32_characteristic : int32
Creates a signed integer GATT characteristic.
UUID : uint32
The last four bytes of the characteristic UUID. Defaults to the hash code of the VCI name.
Connectivity: LED
Displays state using three differently colored LEDs on the device.
Variable Configuration Items
Name
Description
Parameters
light_up : bool
color : LedColor
Connectivity: WLAN
Specifies the connection to a wireless wide-area network, also refered to as WiFi.
Configuration Items
Name
Description
ssid : string
The SSID of the WLAN network we want to connect to.
psk : string
The pre-shared key of the WLAN we're connecting to. Note that this
setting implies WPA2-PSK as authentication method. At this moment
the WLAN connectivity does not support enterprise WLAN.
optional useDHCP : bool
Defaults to true. If true we'll attempt to configure the wireless interface using DHCP and
all static settings will be ignored. If false, the static settings have to
be present.
optional staticIP : string
The static IP address to use. This field has to be in the number-dot
customary for IPv4 addresses (see IETF draft-main-ipaddr-text-rep-02).
If useDHCP is true this field is ignored. If useDHCP is false, this field
is mandatory.
optional staticGW : string
The IP address of the default gateway. This field has to be in the number-dot
customary for IPv4 addresses (see IETF draft-main-ipaddr-text-rep-02).
If useDHCP is true this field is ignored. If useDHCP is false, this field
is recommended.
optional staticDNS : string
The IP address of the default DNS server. This field has to be in the number-dot
customary for IPv4 addresses (see IETF draft-main-ipaddr-text-rep-02).
If useDHCP is true this field is ignored. If useDHCP is false, this field
is recommended.
optional staticMask : string
The IP address of the default Subnet Mask. This field has to be in the number-dot
customary for IPv4 addresses (see IETF draft-main-ipaddr-text-rep-02).
If useDHCP is true this field is ignored. If useDHCP is false, this field
is recommended.
Connectivity: MQTT
MQTT (Message Queuing Telemetry Transport) is an ISO standard (ISO/IEC PRF 20922) publish-subscribe-based messaging protocol.
This MQTT connectivity requires WLAN to be setup as well.
Configuration Items
Name
Description
transport : WLAN
The underlying transport connectivity we use to send the data out. In the future we might also
support LoRa here.
url : string
The URL pointing to the MQTT broker, for example: mqtt://does-not.exist:8000
clientId : string
The client identifier (here: clientID) is a identifier of each MQTT client
connecting to a MQTT broker. It needs to be unique for the broker to
know the state of the client.
optional cleanSession : bool
Defaults to false. The clean session flag indicates to the broker whether the client wants
to establish a clean session or a persistent session where all
subscriptions and messages (QoS 1 & 2) are stored for the client.
optional keepAliveInterval : uint32
Defaults to 60. The keep alive interval (in seconds) is the time the client commits to for
when sending regular pings to the broker. The broker responds to the
pings enabling both sides to determine if the other one is still alive and
reachable.
Variable Configuration Items
Name
Description
Parameters
topic : string
Publishes a message to a particular topic.
name : string
optional qos : uint32
Connectivity: HttpRestClient
Implements an HTTP REST Client over WIFI
Configuration Items
Name
Description
transport : WLAN
The underlying transport connectivity we use to send the data out. In the future we might also
support LoRa here.
endpointBase : string
The part of the endpoint URL common to all requests, e.g. http://foobar.com/api/v1
optional header : string
A custom header which is added to each HTTP request. Example:
X-Auth: MySecretToken\nX-Version: 1.0