MicrOBU
V2X Companion — Phase 02
English
Deutsch
Dashboard
Sensors
Record
Log
V2X
Settings
Connection
GNSS
IMU
OBU Connection
Acquiring fix…
Permission required
Tap V2X to connect
Connected
MQTT connected
Connecting to broker…
Broker unreachable — check V2X settings
Recording
samples
Start Driving Session
Initialising…
Pressure
Altitude
Heading
Accuracy
Sensor Monitor
Phone GNSS
Accelerometer
Gyroscope
Magnetometer
Barometer
Latitude
Longitude
Altitude
Speed
Heading
Accuracy
Pressure
Est. altitude
Waiting for location fix…
Initialising…
Sensor not present on this device
Connection Setup
Connect to the micrOBU hardware via Bluetooth (primary) or USB-C (fallback).
USB-C tethering is the primary transport in Phase 02. Plug the OBU in and tap Connect.
Bluetooth
Bluetooth
Bluetooth connection is planned for Phase 03 and is not yet implemented.
ESP32-C5 (USB Serial)
USB-serial connection to the ESP32-C5 is scaffolded for Phase 03 but not yet functional — it needs the ESP32 firmware protocol translated to Kotlin first.
Not connected — plug the ESP32-C5 into the native USB-C port and tap Connect.
Device detected, opening…
Waiting for USB permission…
Connected
Connection error — check the cable and native USB-C port, then try again.
Connect to ESP32-C5
Scan for Devices
Scanning…
USB-C (Primary)
Connect via USB-C (not yet implemented)
Cable detected
No cable
OBU IP
Detecting…
IP source
Auto-detected
Manual override
⚠ Connect the USB-C cable to detect the OBU, or disable auto-detect in Settings → Connection to use a manual IP.
Connect
Connect to OBU
Disconnect
Selected
Connected (stub)
⚠ Bluetooth stack not yet implemented. This screen shows the target UI layout.
Recording Session
Ready to record
%1$d samples captured
Active Streams
STOP
REC
Phone GNSS
Accelerometer
Gyroscope
Magnetometer
Barometer
OBU / MQTT
Session Log
%1$d session stored on device
%1$d sessions stored on device
Session #%1$d
Share CSV
Save to device
Export trip CSV
Delete session
No sessions yet
Go to Record and start a session
Delete session?
This will permanently remove the session recorded on %1$s from the device.
Delete
Cancel
Export session
GNSS Location
Open in Maps App
Opens in your preferred maps application
View in App
Show current location on an in-app map
No GPS fix yet — move to an open area
Location Map
Current Location
%1$d tracked remote road user(s)
Own (ego)
Remote #%1$d
Remote #%1$d · Info
Remote #%1$d · Awareness
Remote #%1$d · Warning
Settings
Language
Appearance
Dark theme
Sensor Streams
Phone GNSS
Accelerometer
Gyroscope
Magnetometer
Barometer
Units
Metric (m, km/h, hPa)
MQTT Broker
Broker IP
Port
Username
Password
optional
Show
Hide
Developer
Developer mode
Wi-Fi OBU connection
Dev mode only — not implemented
About
App version
0.5.0 (Phase 03 — ESP32-C5 serial link + phone-built CAM)
Connection
Auto-detect OBU via USB-C
Manual OBU IP
OBU Hardware
CiT One
ESP32-C5
ESP32-C5 acts as a "dumb" transceiver: CAM is built and encoded on the phone, sent to the ESP32 over USB serial, and broadcast over ITS-G5. No MQTT broker or DENM use-case engine on this path — see the V2X Monitor screen\'s CAM Pinger for a manual test tool.
Active transport
USB-C
Wi-Fi
Save Broker Settings
V2X Monitor
Connect
Disconnect
Auto-scroll to latest
No messages yet
List
Map
Connect to the OBU and wait for V2X traffic
No messages on this topic yet
Last transmitted payload:
DENM Transmission (Manual Test)
Send Test DENM
Stop DENM
Aftermarket Stationary Vehicle (causeCode 94)
Connect to the OBU to enable DENM triggering
DENM active — OBU broadcasting via ITS-G5
Manual antenna/RSU range test — publishes uca-denmctrl (retained) to v2x-uca/input/denmtrg. Not triggered by detected events or use case alerts.
Show last TX
Hide
CAM Pinger (Manual Test)
1 Hz CAM ping built from live GNSS and IMU data — verifies the serial link and ESP32 radio path without needing a trip recording.
Waiting for GNSS fix — nothing transmitted yet
%1$d station(s) in range — latest CAM per station
No CAMs received
Decoded CAMs from nearby stations appear here as they arrive over the serial link.
Station %1$d · %2$s
%1$.1f km/h · heading %2$.0f°
%1$.0f m
— m
%1$d dBm
Hazard: cause %1$d/%2$d (station %3$d)
Hazard from station %1$d
Pedestrian
Cyclist
Car
Bus
Truck
Roadside unit
Type %1$d
Connect the ESP32-C5 to enable the CAM pinger
Pinging — 1 CAM/s over the serial link
Sent: %1$d
Write failures: %1$d consecutive — CAMs are not reaching the ESP32
ESP32: tx fail %1$d · oversize %2$d · crc err %3$d
Start Pinger
Stop Pinger
CAM Use Case Alerts
Connect to the OBU to evaluate CAM-based use cases
No active use case alerts
Station %1$d · %2$.0f m · closing %3$.1f m/s · TTC %4$.1f s · %5$s
Crossing vehicle ahead — %1$.0f s to conflict
Stopped vehicle may pull out — %1$.0f s
Car turning right toward you — %1$.0f s
Car turning left toward you — %1$.0f s
Fast-closing vehicle nearby — %1$.0f s
Use Case Alerts
Per-use-case enable/disable for the CAM-based Use Case Alert panel on the V2X Monitor screen. All use cases are CAM-only — none of them trigger a DENM.
Alert level thresholds (read-only)
Warning
Awareness
Info
≤ %1$.0f s to conflict
USB-C
USB Serial
Wi-Fi
BT
⚠ OBU stationType ≠ 2 (cyclist) — VRU detection may be impaired at equipped intersections
Platform
Android / Kotlin / Jetpack Compose
Project
MicrOBU — HAW Hamburg & consider it GmbH
Trips
Detected Events
Braking
Turning
Stopping
Event Detection
CSV Session Log
Trip History
%1$d trip stored on device
%1$d trips stored on device
Trip #%1$d
Delete trip?
This will permanently remove the trip recorded on %1$s.
No trips yet
Go to Record and start a session
Trip Review