Known Issues

Android 10 USB Permissions

Some versions of Android 10 (SDK 29) have a bug which broke USB permissions if the running app uses targetSdkVersion 28 or above. Some devices running Android 10 have patched this bug. This includes all Zebra TC devices. The “Six15 ST1” app which is deployed through the Google Play Store is susceptible to this bug. The other variants of “Six15 ST1” are not affected.

Intent Interface Background Start

Sometimes the Intent Interface Service can fail to start from 3rd party apps. Android 11 blocks apps (even foreground ones) from starting services inside 3rd party applications when that 3rd party application is not already running. This situation can happen when attempting to start the Intent Interface. This always happens after the Six15 app is force quit, but can also happen after a reboot, or other time Android kills our app.

Avoid this issue by starting the Intent Interface Activity instead of the Intent Interface Service. The Activity simply starts the Service, then immediately quits.

SDK Changelog

SDK 4.1.4

Six15 ST1:
  • Hotfix: Fixed blank screen when USB connection is rapidly disconnected/connected.

SDK 4.1.3

  • Update Firmware to version 6.10

  • Resolved an issue causing occasional system instability leading to reboot into firmware update mode

SDK 4.1.2

  • Hotfix: Fixed issue where ST1 crashes when USB interface is under heavy load.

Six15 ST1:
  • Hotfix: Fixed issue with intent interface where messages can be backed-up under heavy load. Older images may be dropped if a newer image is sent. The newest image will never be dropped.

SDK 4.1.1

Six15 ST1:
  • Hotfix: Disable “Optimize Rendering for Low Latency” by default

  • Change keyboard in SmartVelocity Project to default keyboard set

SDK 4.1.0

Six15 ST1:
  • Revamp overall UI

    • Add help button separate from settings

    • Move FW update button

    • Disable swipe between home screen tabs

    • Remove first time run setup screens (still available in settings)

    • Remove alignment screen (still available in settings)

    • Remove experience screen (splash screen)

  • Add config to Smart Configurator “Show Fields Without Keywords”

  • Add confirmation dialog to delete entries in smart configurator

  • Add additional options for Smart Velocity deploy button (Smart Web)

  • Remove slim build

  • Rename Smart OCR to “Picking Test Drive”

SDK 4.0.2

Six15 ST1:
  • Hotfix to update firmware to 6.08, fix bug in low latency rendering

SDK 4.0.1

Six15 ST1:
  • Hotfix to disable by default low latency rendering.

SDK 4.0.0

Six15 ST1:
  • Add Smart Velocity interface (Send Screen Intent)

  • Add OCR mirroring

  • Add smart configurator screen for smart intent and OCR mirroring

  • Fix potential crash if UVC camera fails

  • Added new Hud Operation modes

  • Removed support for x86 and x86_64

  • Added beta implementation of Bluetooth

  • Example Warehouse Picking Workflow - Added additional HUD modes

  • Update Firmware to version 6.07

  • Correct bug where display crashes if frames are sent too fast.

Examples Test:
  • Add Scandit, Honeywell and Google ML Kit barcode scan using ST1 camera

  • Removed IMU Calibration app (functionality now in Six15 ST1 App)

  • Removed Screen Mirror app (functionality now in Six15 ST1 App)

  • Removed Updater app (functionality now in Six15 ST1 App)

SDK 3.1.2

Six15 ST1:
  • Add compatibility with action “intent com.wavelink.intent.action.BARCODE” in the warehouse demo to enable Intent based barcode scanners.

  • Allow scanning any barcode to restart the warehouse demo when at the “finished” screen.

  • Fix a broken link to the warehouse demo barcodes PDF document.

  • Create example HudSurfaceViewRenderingHelper

  • Support setting Auto Focus state in HudCameraHelper

  • HudIntentInterface now starts the Activity in a new task.

  • Rename IntentInterfaceActivity to IntentInterfaceExampleActivity to avoid name confusion.

Examples Test:
  • Don’t ask for camera permissions if the app already has them. This caused the app to go into the paused state unnecessarily.

SDK 3.1.1

Six15 ST1:
  • Fixed a rare crash when clients disconnect from the AIDL interface.

  • Do not propagate HC_DISP_CLEAR events to clients. This is known to crash the Zebra SDK.

  • Fix regression where “clearHudDisplay()” no longer worked in firmware versions < 6.0.

  • Fixed Intent Interface image share example using ACTION_SEND to work on Android 13.

  • Allow HudBitmapHelper to save JPEG’s to external storage. This allows easier access to them over ADB.

SDK 3.1.0

Six15 ST1:
  • Added PIP (Picture in picture) HUD image preview for debugging

  • Added Compression quality settings for screen mirror and intent interface

  • Improve UI for firmware update.

  • Add Open Source Licenses to Settings menu

  • Add Settings to Expose Camera through SDK

  • Add Settings enable/disable microphone

  • Add switch to enable presentation mode

  • Intent Interface - Add “max_lines” as an argument.

  • Intent Interface - Support array colors.

  • Target SDK 33, min SDK: 21

  • Bug Fix - Intent interface crash when color has length 0

  • Bug Fix - Intent interface padding depended on the host screen DPI

Android Demo:
  • Improve UI to fit better on small screens

  • Bug Fix - Fix crash when run with newest firmware 6.05

HMD Service:
  • Deprecated app and replaced with Six15 ST1 Slim

  • Use Flow instead of GridLayout since GridLayout doesn’t work well with scrolling

  • Create example for ACTION_SEND in the Intent Interface

  • Add helper for clear display as mentioned in docs

  • Improve Camera examples

  • Update to 6.05 - Added render interface to show screens from intent interface (disabled by default in Six15 ST1 app) - Improved buffer handling in display pipeline.

Known issues:
  • None

SDK 2.7.1

Android Service:
  • Fix that screen mirror crop selection UI could be cutoff on some devices.

  • Fix crash if USB device disconnects while connecting. This was more likely on slow phones.

  • Add convenience constructor to ByteFrame taking a byte[].

  • Fix crash if Intent Interface was sent a broadcast with no extras in the Intent.

  • Fix that the Intent Interface could fail to start from 3rd party code if the Six15 service app was killed. 3rd party code should now start the service via the IntentInterfaceActivity.

  • Enable display dither.

Six15 ST1:
  • Update Warehouse Picking demo to use the Intent Interface and follow a simpler picking workflow.

  • Remove voice control from Warehouse Picking demo.

SDK 2.7.0

  • Add display dither functionality (disabled by default)

Android Service:
  • Created Intent Interface for sending simple text images to the display

  • Added function setDitherEnabled() to AIDL interface

  • Callback onInfo() will now be called with HC_VERSIONS_EXTRA (0x04)

Known Issues:
  • In the demo app, streaming the host device’s camera to the ST1 display can cause camera stack instability on Zebra TC devices.

SDK 2.6.5

  • Fixed issue where device sometimes reboots into bootloader when autofocus is enabled.

SDK 2.6.4

  • Fixed issue where screen would flicker when using screen mirror and camera.

  • Fixed issue where image display was sometimes delayed when recovering from low-power mode.

Android Service:
  • Added button for screen mirror and presentation mode.

  • Fixed issue where old camera frames are returned when restarting camera.

  • Fixed issue that caused camera to stop when calling startRawCameraCapture() with highest resolution.

Android Demo:
  • Code cleanup/ stability fixes

SDK 2.5.3

  • Tracker (IMU)

    • Corrected bug where IMU data is corrupted when calibrating some IMUs.

  • Microphone

    • Corrected bug where ST1 reboots into bootloader if mic is opened/closed many times.

Android Service
  • Corrected bug where video stops on USB disconnect when connecting through a USB hub.

SDK 2.5.0

  • Tracker (IMU)

    • Improved calibration routine

    • Added calibration progress reporting.

    • Improved filter for calculating pose (roll, pitch, yaw)

    • Samples are output at 60Hz (from 30Hz).

    • Breaking Change: magnetometer readings are in units of uT (instead of mG). This is to conform to the Android sensor specification.

    • Breaking Change: The orientation of the accel/gyro/magnetometer is changed to adhere to Android standard (see: Android Sensors)

  • Camera

    • Corrected bug where video locked up on highest resolution.

Android Service
  • Re-enabled presentation mode and screen mirroring through the API

  • (Internal) Automatic build of project

  • Target SDK 30

Android Demo
  • UI Clean-up

  • Example slideshow images are included.

  • Example slideshow images may come from galley instead of a single folder.

  • Example slideshow supports Bluetooth remote next/previous.

  • Corrected microphone bug where mic didn’t work on Android 11

  • Added check for HMD microphone in microphone screen

Android Calibration
  • Project UI Clean-up

  • Added progress bar when calibrating.

APK Installation

APK File on Device


You will have to enable “Install unknown apps” permission with this option.

  1. Copy APK file to local phone storage or download

  2. Open “Files” app

  3. Select apk file

  4. Change Android permission (if asked)

  5. Select “Install”

Install App From Downloads Allow Unknown Sources Check allow Press Install

ADB Sideload

  1. Get ADB (from Android Studio or SDK platform tools

  2. Install app-name.apk

adb install app-name.apk

Wireless ADB

You may want to use ADB while having your ST1 plugged into your phone’s USB port.

Unfortunately all USB HUBs/phones we’ve tried don’t allow a phone to act as a host to the ST1 and a device to the PC at the same time. This means wired ADB and the ST1 can’t be used at the time time.

Many USB HUBs have power passthrough or external power. This means the HUB can power the phone and ST1 while the phone controls the ST1. This method, along with wirelessly charging the phone, can be useful for long development sessions.

Wireless ADB is very useful when working with the ST1. See Google’s documentation about wireless adb.

On many devices, even non-rooted ones, a command like the following can extract the IP address

adb shell ip addr show wlan0 | grep " inet " | sed -E 's#.*inet ([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*).*#\1#'

With your device connected to ADB over USB, you can then connect to WiFi ADB automatically with a script like this:

set -e
adb disconnect || true
sleep 2
adb usb
sleep 2
adb shell exit || true
sleep 2
DEVICE_IP=$(adb shell ip addr show wlan0 | grep " inet " | sed -E 's#.*inet ([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*).*#\1#')
echo "Connecting to ${DEVICE_IP}"
adb tcpip 5555
sleep 2
adb connect ${DEVICE_IP}:5555

Unfortunately the 2 second delays and no-op shell command are sometimes necessary. After the script runs, unplug wired ADB and plug in the ST1.

Connecting WiFi ADB this way doesn’t require looking up the device IP in Settings or typing a PIN.

Windows SDK

Download the Windows SDK.

Located in the SDK Package:

  • Windows Service installer

  • API documentation