This article describes what the different blinking patterns of the XDK mean and what is the reaction to it if an error occurs.
The Bosch XDK 110 sensor kit is a freely programmable sensor whcih provides 8 different measurements. For the TeamViewer IoT starter kit it is programmed to send all to the TeamViewer IoT agent which then are visible and usable in the TeamViewer IoT solution.
The follwing measurements are possible and shown in the TeamViewer IoT cloud:
Accoustic noise sensor
Air humidity sensor
Air pressure sensor
Vibration (derived from 3-axis accelerometer)
Datasheet + supplier information for the sensor
For exact product features operation conditions and the ability to program the sensor please check the supplier's homepage:
Datasheet: see attachment of this article
Attaching other sensors to the GPIO pins
The XDK sensor is freely programmable and also supports that other devices are attached to it. This requires a new program written for the XDK. The instruction on how to do this can be found in the XDK community.
Note: To attach new devices to the starter kit and the TeamViewer IoT solution, TeamViewer in general recommends to attach additional devices directly to the gateway instead of adding them to the sensor.
The battery lifetime of the XDK sensor is up to 24 hours depending on environmental conditions like temperature.
The XDK has 4 LEDs on the top side. Each indicates a different status:
Charging indicator (lights on when the XDK is connected to a power source and the internal battery is charging)
Flashes every time when sensor data is transmitted to the gateway.
Blinking while it tries to connect to the gateway
Blinking while the XDK is connecting to the Teamviewer IoT service
Lights on when it is connected
Position of the LEDs
Meaning and action
No LED is on
The battery is empty, please connect it to a power source with a micro USB cable
Green LED is off, but the power source is connected
The battery is fully charged
Orange LED is constantly blinking
Check if the gateway is powered
Check if with another device (e.g. smartphone or laptop) the Wifi network "TV_Starter_Kit" is available. If yes restart the XDK, if not move closer to the gateway or restart it.
Red LED is lighting, yellow LED not flashing
No data is received from this XDK on the dashboards
Restart the XDK
This article explains how to move the Teamviewer Starter Kit from the preassigned account to another Teamviewer account.
Step 1: Find out the IP address of the gateway in the local network
Option 1: Ask your network administrator to connect the gateway to the network and provide you with IP address
Option 2: You can remotely access the gateway from TeamViewer desktop client application as it is already assigned to the predefined account.
Open TeamViewer desktop client application
Login with the provided account credentials
From the Contacts and Computers tab connect to your gateway
Switch to the “Remote Terminal” tab
In the Remote SSH window type “ifconfig” command and write down the IP address of the eth0 interface
Close TeamViewer remote connection session
Step 2: Install SSH client
Install SSH client on your desktop computer (e.g Putty). Open SSH connection to the gateway in the local network using the IP address obtained in Step 1.
Step 3: Unmanage the gateway
Use the bellow Linux command to unmanage the TV Agent from the current account
$ sudo teamviewer-iot-agent unmanage
Step 4: Create a new TeamViewer IoT account
Open your web browser and navigate to https://teamviewer-iot.com.
Click “Sign Up” and follow the instructions to create a new TeamViewer IoT account.
Remember your E-Mail and Password that has been used for the account creation.
Step 5: Provision the gateway to the newly created account.
In your SSH session use the below command to provision the gateway to your new account using the E-Mail and Password obtained in Step 4 and follow the instruction.
$ sudo teamviewer-iot-agent setup
Upon successful provisioning of the gateway, you will have a new device in the TeamViewer desktop client application as well as in your cloud dashboard under the “Devices” tab. Its name will be the hostname of the gateway.
Step 6: Configure the TeamViewer IoT Agent to receive measurements from Bosch XDK sensors
Disable TeamViewer Monitoring Agent
$ sudo teamviewer-iot-agent disable system-health
Restore the configurations for the Monitoring Agent
$ sudo su
$ sudo cat /var/lib/teamviewer-iot-agent/system_monitors_kit.conf > /var/lib/teamviewer-iot-agent/system_monitors.conf
Enable TeamViewer Monitoring Agent
$ sudo teamviewer-iot-agent enable system-health
Step 7 - Configure the digital input and output (DIO) pins
To use the DIOs of the Dell gateway with TV Agent first you need to create corresponding Sensors/Metrics.
Open your web browser and type the IP address obtained in Step 1 to open the Edge Management application. Navigate to the “API Clients” tab and create a new client.
Enter "Digital Out" as a client name and push the "Create" button then "Manage API Client".
Create "New Sensor" (name "Digital Outputs") with 8 metrics (names "Out 0...7") according to the screenshot below (Value Type: Bool, Display Unit: I/O).
After Pushing the “Create” button you will be provided with the Connector, Sensor and Metric IDs which will be required to edit “teamviewer_gpio.py” file in the next step.
Open the “teamviewer_gpio.py” file
$ sudo nano teamviewer_gpio.py
Replace the “client_id”, “sensor_id” and “Out0_id” to “Out7_id” on the top of the file with corresponding IDs obtained in the previous Step 7. Example:
client_id = "5385da5e6c854abc8d65c0c80b5d79e9"
sensor_id = "e6218136a1144c8e9d117dc55a24297c"
Out0_id = "4ee43a05e70a4a97a20fe13e6baf286e"
Out1_id = "58f38038ea0b48519332a190688a325e"
Out2_id = "cf1aceeb62f3479fb07d81213dd21269"
Out3_id = "05f12c7970704172a374f777bedc83ef"
Out4_id = "d67d349dba2347699096bc0989f638c8"
Out5_id = "8dac154dfeef4d5aa4ec33b39a675ee4"
Out6_id = "cefdd235b1c243a2b6f7d89a6ce639e3"
Out7_id = "50835cca2df34f19bb13b8a5e0873ed2"
Step 9: Restart the service for the GPIOs
$ sudo service teamviewer_gpio restart
Step 10: Check if the DIOs are working
To control the DIOs from the dashboard user needs to pin the "Out 0..7" metric from the "Metrics" tab to the dashboard and configure it as a "Control" with "Toggle-Switch" function. Use "true" and "false" for the control values as presented in the below screenshot.
This article describes how to connect the Teamviewer IoT Starter Kit to the internet using its internal modem
Connect the antennas to the gateway
Insert a sim card into the sim card slot
Connect the Gateway with LAN cable to the internet and power it up
Connect with Teamviewer Client or SSH to the device and login to the remote terminal
Enable the WWAN Connectivity
Unlock the card
The gateway can automatically connect to mobile internet if the SIM card does not require a pin.
If the SIM card inserted into the gateway requires a pin, there are 2 ways to unlock it:
Insert the SIM card into a phone and follow the settings to unlock it
Follow the steps below to unlock the pin from the gateway:
$ sudo nano /etc/systemd/system/pinunlock.service
Copy and paste the below text and provide the correct pin instead of **** [Unit] Description=Sim pin unlock After=network.target Requires=snap.modem-manager.modemmanager.service [Service] Type=idle ExecStartPre=/bin/sleep 60 ExecStart=/snap/bin/mmcli -i 0 --pin= **** [Install] WantedBy=multi-user.target
Exit the nano editor and execute the service
$ sudo systemctl enable pinunlock.service
Activate the WWAN modem
Check the modem model
The gateway is currently equipped with one of 2 gateway options and depending on the version the commands are different
Description / expected output
$ sudo mmcli -L
shows the installed modem
based on the output from the last section follow instruction either 1 or 2
1. Instructions for [Sierra Wireless, Incorporated] Qualcomm™ Snapdragon™ X7 LTE DW5818 modem
Description / expected output
$ sudo nmcli c add type gsm ifname cdc-wdm0 con-name <ConnecctionName> apn <operator_apn>
$ sudo reboot
create a connection with a meaningful connection name and set the apn from your sim card provider (e.g. web.vodafone.de)
reboot the modem
2. Instructions for the [Dell] MBIM modem
Unlock the SIM via phone or use below commands
Description / expected output
$ sudo mmcli -m 0
$ sudo mmcli - i 0 --pin=<pin_number> --disable-pin
$ sudo nmcli c add con-name <ConnectionName> type gsm ifname cdc-wdm0 apn <apn-name>
$ sudo nmcli r wwan
$ sudo nmcli c up <Connection-Name>
$ sudo reboot
modem status display --> check if card was found
unlock card and disable the pin
create a connection with a meaningful connection name and set the apn from your card provider (e.g. web.vodafone.de)
All the gateways of the TeamViewer IoT Starter Kit come with built-in GPS receiver. If the Starter Kit that you have received does not have the "Location" client in the "API Clients" list you can simply enable it using this article.
TeamViewer IoT Starter Kit
How To Enable GPS receiver
From TeamViewer desktop client connect to the Starter Kit then switch to the "Remote Terminal" tab. Another way is to use a remote SSH client to the Dell gateway.
For the SSH credentials use "admin" for the user name and password from your Starter Kit account.
Install python3-pip package
sudo apt-get update
sudo apt-get install -y python3-pip
Wait for the completion of the installation. At some point, you will receive a message to stop some services. Accept it and continue.
Download the Starter Kit configuration package and install it.
wget -q https://download.teamviewer-iot.com/teamviewer-iot-kit/v2.0.1/teamviewer_iot_kit-2.0.1-py3-none-any.whl
sudo -H pip3 install teamviewer_iot_kit-2.0.1-py3-none-any.whl
Configure the location receiver of the gateway.
sudo teamviewer-iot-kit -e location_receiver
Wait for the configuration process to complete.
Configuration On TeamViewer Edge Device Management
Switch to the "Remote AppControl" tab and check the "API Clients". You will find the "Location" client which contains data from the location receiver.
Make sure that the WiFi antenna is connected to the gateway. The WiFi antenna is also being used for the GPS receiver. Place the gateway next to the window so it will have the sky view.
Go to the "Metrics" tab, and pin "Latitude", "Longitude" and "Mode" metrics to the dashboard. Switch to the "Dashboard" tab and configure newly added widgets.
You should be receiving data from the location receiver. As soon as "Mode" becomes 2 or 3 you will receive accurate "Altitude" and "Longitude" values.
The GPS data is "NMEA 0183" formatted and packed into a JSON object called "NMEA 0183: TPV". In the "Metrics" tab you will find the data in the raw format as well as dedicated metrics for each parameter.
The location receiver provides the "NMEA 0183: SKY" object as well which is not presented in the Starter Kit. From that object, two metrics are being calculated and presented separately with the names "In View" and "Used".
The below table represents all the available parameters/metrics and their descriptions of the location receiver.
Time/date stamp in ISO8601 format, UTC. May have a fractional part of up to .001sec precision. May be absent if the mode is not 2 or 3
NMEA 0183: TPV
NMEA 0183 formatted JSON data of the TPV class
NMEA mode: %d, 0=no mode value yet seen, 1=no fix, 2=2D, 3=3D
Estimated timestamp error
Estimated timestamp error in seconds. Present if time is present
Latitude in degrees: +/- signifies North/South. Present when the mode is 2 or 3
Estimated latitude error
Latitude error estimate in meters. Present if the mode is 2 or 3 and DOPs can be calculated from the satellite view
Longitude in degrees: +/- signifies East/West. Present when the mode is 2 or 3
Estimated longitude error
Longitude error estimate in meters. Present if the mode is 2D or 3D and DOPs can be calculated from the satellite view
Altitude in meters. Present if the mode is 3
Estimated vertical error
Estimated vertical error in meters. Present if the mode is 3 and DOPs can be calculated from the satellite view
Speed over ground, meters per second
Estimated speed error
Estimated speed error in meters per second. Present for consecutive 2D or 3D fixes.
Climb (positive) or sink (negative) rate, meters per second
Estimated vertical error
Estimated climb error in meters per second. Present if consecutive 3D fixes.
Course over ground, degrees from true north
Number of satellites which are in view of the location receiver
Number of satellites to which the location receiver is locked