Inspire IC15D internal-UART support request
Summary
QZ 2.21.6 installs and runs on the Inspire IC15D Android console, but it cannot
detect the bike because this console receives controller data over an internal
UART rather than from the BLE device expected by QZ's existing inspirebike
driver.
Console
- Manufacturer: Smile-smart
- Model:
BX_RK3326_A11_INSPIRE_IC15D
- Bike: Inspire IC15D
- Android: 8.1 / API 27
- ABI: 32-bit
armeabi-v7a
- SoC: Rockchip RK3326
- RAM: approximately 1 GB
- QZ tested: 2.21.6, official nightly 2026-08-04
- APK SHA-256:
361df7e67cf9519251069a5ff50e661cfbbd0599f7d4c37a517c12bf1a963720
Observed data path
- The stock package is
com.inspire.inspireconsole.cycle.
- It has privileged serial and Android Things peripheral-I/O permissions.
- Detached boot opens the stock app's
SerialErrorActivity.
- SELinux audit records show the stock process performing serial operations on
/dev/ttyS2.
/dev/ttyS2 is system:system, mode 0666; SELinux is permissive.
- During a 93-second training capture, the stock app received live ride data
while its BLE scan returned zero devices and USB host mode was inactive.
- The stock app logged a repeating four-byte polling sequence, but it did not
log the corresponding metric responses or their packet format.
Current QZ result
- Installation succeeds and the UI loads at 1280 x 800.
- QZ uses approximately 177 MB PSS after setup.
- The existing
inspirebike driver only selects a remote BLE name beginning
with IC and exactly eight characters long and uses service
7ee7e1fa-6fd8-4cbd-b648-a2cdcfa4e7f4.
- No such BLE peripheral was observed.
- QZ remains at
Connecting...; no bike metrics, virtual GATT server, or BLE
advertiser are created.
Requested implementation
A dedicated IC15D internal-UART driver, using the existing Freebeat UART code
only as an architectural reference. The first implementation should be
receive-only and must not flush/configure the active stock-app port, send
queries, or issue resistance commands until the protocol is documented and
tested. QZ and the stock application should run in separate serial-owner test
sessions.
The remaining information needed is the UART baud/parity/framing and the
controller response packet format for power, speed, cadence, and resistance.
Full static, passive, and controlled-install evidence is available in
qz-compatibility-report.md with raw logcat, Bluetooth dumps, screenshots,
package metadata, and resource measurements.
Inspire IC15D internal-UART support request
Summary
QZ 2.21.6 installs and runs on the Inspire IC15D Android console, but it cannot
detect the bike because this console receives controller data over an internal
UART rather than from the BLE device expected by QZ's existing
inspirebikedriver.
Console
BX_RK3326_A11_INSPIRE_IC15Darmeabi-v7a361df7e67cf9519251069a5ff50e661cfbbd0599f7d4c37a517c12bf1a963720Observed data path
com.inspire.inspireconsole.cycle.SerialErrorActivity./dev/ttyS2./dev/ttyS2issystem:system, mode0666; SELinux is permissive.while its BLE scan returned zero devices and USB host mode was inactive.
log the corresponding metric responses or their packet format.
Current QZ result
inspirebikedriver only selects a remote BLE name beginningwith
ICand exactly eight characters long and uses service7ee7e1fa-6fd8-4cbd-b648-a2cdcfa4e7f4.Connecting...; no bike metrics, virtual GATT server, or BLEadvertiser are created.
Requested implementation
A dedicated IC15D internal-UART driver, using the existing Freebeat UART code
only as an architectural reference. The first implementation should be
receive-only and must not flush/configure the active stock-app port, send
queries, or issue resistance commands until the protocol is documented and
tested. QZ and the stock application should run in separate serial-owner test
sessions.
The remaining information needed is the UART baud/parity/framing and the
controller response packet format for power, speed, cadence, and resistance.
Full static, passive, and controlled-install evidence is available in
qz-compatibility-report.mdwith raw logcat, Bluetooth dumps, screenshots,package metadata, and resource measurements.