All projectsA closer look / 2025
Selected work / Case study

Rabet

An OBD-II dongle and a crash-hardened black box connecting real-time vehicle diagnostics, collision telemetry, emergency alerts, and driving scores to a mobile app — with an insurance integration that never shipped.

01 / The hardware, up close

Two devices,
pulled apart.

Rotate the dongle and the black box on the canvas below. The dongle's shell is translucent, so its board and status LEDs show through the plastic — strip either device to a wireframe, or explode the assembly to see what every layer is for.

Rabet / device labIllustrative models · not production hardware
OBD-II dongleThe listener · CAN bus → BLE → phone
  • Connector shell
  • 16-pin OBD array
  • Main housing
  • Main PCB
  • Interface MCU
  • BLE radio
  • Status LEDs

Illustrative 3D models of the two Rabet prototypes, drawn after the ELM327-class adapter and its companion recorder. The dongle listens to the CAN bus and bridges to the phone; the black box keeps its own sensors, storage, and backup power for the worst day.

A car talks constantly.
Almost nobody is listening.

Rabet — Arabic for “the link” — is an OBD-II hardware and software module built as a startup venture on the InnovEgypt track (ITIDA / TIEC, 2025). A dongle in the diagnostics port streams what the car already knows; a crash-hardened black box freezes what happens when physics takes over. Health checks, decoded warnings, driving scores, and an emergency alert chain — feeding a B2B insurance model that never quite crossed the finish line.

Devices in the kit
02
Live signals polled
12+
Score dimensions
04

Two devices. One link.

Rabet splits the problem in two. The dongle answers “how is the car?” — it plugs into the standard OBD-II diagnostics port, polls the CAN bus, and bridges everything to the phone over Bluetooth Low Energy. The black box answers “what just happened?” — a separate event data recorder with its own inertial sensors, GPS, storage, and backup power, designed to survive the collision it records.

The kitAlways-on · crash-hardened
01 / OBD-II dongle

The listener.

CAN bus → BLE → phone

  • Plugs into the J1962 diagnostics port and speaks OBD-II over the CAN bus.
  • Polls live PIDs: engine speed, vehicle speed, coolant temperature, battery voltage, fuel trims, throttle position, engine load.
  • Reads and clears diagnostic trouble codes, pushing decoded faults to the app as plain-language warnings.
  • Lives in the port. The car never notices it; the driver never waits for it.
02 / Black box

The witness.

IMU · GPS · camera · flash

  • A 6-axis inertial unit samples acceleration and rotation continuously into a ring buffer.
  • On a sustained g-spike, the pre-impact window is frozen and write-protected: velocity vectors, heading, position, and active trouble codes.
  • A dashcam feed runs continuously, with event-triggered snapshot isolation around erratic driving or telemetry anomalies.
  • Backup power keeps the recorder writing if the collision severs the vehicle’s own supply.
One device for the steady state, one for the worst day. Both are rendered as interactive 3D models at the top of this page — rotate them, strip them to a wireframe, or pull the assembly apart.

Why two devices at all?

A dongle alone dies with the harness it draws power from. A recorder alone can’t ask the car how it feels. Splitting the roles keeps each device simple, cheap to replace, and honest about its failure mode: if the crash kills the port, the black box is still writing; if the black box is offline, the dongle still reports health on every trip.

Health checks, before the light comes on.

The check-engine light is the car’s last word. Rabet listens for the whole sentence: while the driver sees a dashboard, the app sees the live parameter IDs (PIDs) behind it, polled trip after trip, with every reading kept in the context of the ones before it.

Battery voltage
Sag below 12.4 V while running, or a weakening crank signature across trips.
“Battery is fading — test it before the summer heat does.”
Coolant temperature
Sustained readings above 105 °C, or a climb rate that outpaces the thermostat curve.
“Running hot — check coolant level and radiator fans.”
Fuel trims
Long-term trim drifting beyond ±10 % — the engine compensating for something.
“Mixture drifting — possible vacuum leak or a tired sensor.”
Pending trouble codes
Manufacturer pending DTCs surface here before the MIL ever lights.
Decoded to plain language, with severity and whether it’s safe to drive.

Three states, no false alarms.

Every signal folds into a traffic-light verdict: OK, watch, or act. A single odd sample does nothing — rules fire on sustained readings and multi-trip trends, so a pothole or a cold morning doesn’t become a warning. The dongle also clears a fault code once it’s fixed, and the app remembers which warnings the car has already given, and how long the driver ignored them.

The fifteen seconds that matter.

Collision detection is a state machine, not a single sample. A sustained acceleration spike — well beyond any speed bump or kerb strike — combined with the gyro signature of a rollover or side impact, freezes the ring buffer and starts the emergency chain.

  1. DetectIMU · sustained g-spike + gyro signature

    Impact is confirmed across a window of samples, not one jolt, before anything is sent.

  2. FreezeBlack box · write-protected event file

    Pre-impact velocity vectors, g-trace, GPS trail, and active DTCs are sealed in flash, powered by the backup cell if the car’s supply is cut.

  3. IsolateDashcam · event-triggered snapshots

    The seconds around the anomaly are quarantined from the continuous buffer, so the footage of the event can’t be overwritten.

  4. AlertApp → contacts · cloud → services

    The phone dispatches SMS alerts to emergency contacts while the cloud feed carries location, severity, and vehicle data to the emergency-services integration.

A score the driver can argue with.

Every trip ends with a score from 0 to 100, and — more importantly — every deduction points at the exact moment that caused it. No opaque modelling: the driver can replay the trip and watch the points fall.

Smoothness
Harsh acceleration and braking events, measured on the IMU’s longitudinal axis. The single heaviest weight.
Speed discipline
Time spent above the limit for the road, scaled by how far above it.
Cornering
Sustained lateral g in bends — the difference between a curve and a swerve.
Context
Time of day and trip purpose: the same manoeuvre at 2 a.m. costs more than at 2 p.m.

Trips roll up into a driver profile, and the profile was designed to be portable: a record the driver owns, with the evidence attached, rather than a number an insurer computes behind a wall. That portability is exactly what the insurance chapter wanted to consume.

The chapter that never completed.

The business model bundled Rabet’s telemetry cloud with insurance products: usage-based pricing from driving scores, claims triage from black-box evidence, and dashcam snapshots to cut fraud and reconstruction time. Insurers were interested. Conversations happened. The integration never completed.

With hindsight, the reasons were structural. Actuarial teams wanted fleet-scale data before underwriting anything; the pilot had cars, not fleets. Integration roadmaps on the insurer side were heavier than either party had budgeted. And the model had a cold start: without a discount, no driver adopts the device; without drivers, there is nothing to underwrite.

Small kit. Clear responsibilities.

Dongle
ELM327-class OBD-II interface over CAN, bridged to Bluetooth Low Energy
Black box
Microcontroller, 6-axis IMU, GPS module, flash storage, camera interface, backup cell
Firmware
Embedded C/C++: sampling loops, a ring buffer, and the collision trigger state machine
Mobile app
BLE central, live health dashboard, trip history, decoded warnings, emergency contacts
Cloud
Trip ingestion, score computation, event and evidence storage, operations dashboard
Recognition
InnovEgypt startup track (ITIDA / TIEC) — Certificate of Acknowledgement C0505S25T0677

Both devices were prototyped together with the app and cloud pipeline, so a demo could run the full loop live: plug in, drive, watch the health screen, trigger a staged impact, and see the alert chain fire with the frozen evidence attached.

The engineering takeaway

A telemetry pipeline is easy to demo —
and hard to underwrite.

Signals, thresholds, and the trip replayed on this page are illustrative design parameters, not a logged incident.
02 / A trip, replayed

Ninety seconds,
measured.

Speed, engine speed, and g-forces from one illustrative trip. Every harsh manoeuvre costs the score a specific number of points — and at the end, the black box earns its keep.

Rabet / trip replayIllustrative telemetry · not a logged incidentT+00 s
12.6 V battery84 °C coolant0 stored DTCs62 % fuel
SPEED
ENGINE
G-FORCE (IMU)
ignition on · dongle connected · health check OK · no stored DTCs

01 / 08Ignition on

The g-trace comes from the black box IMU, not the speed chart’s derivative — impact peaks are sharper than any speed curve. Score penalties are the design weights from the case study, not a live product.

03 / The emergency chain

From impact
to an ambulance.

What happens in the seconds after a detected collision: evidence frozen in the car, alerts out through the phone and the cloud — and one dashed line that never carried traffic.

Rabet / network mapIllustrated flow · not a live dispatch
Rabet’s communication chain during a collisionAn illustrated flow, not live traffic. Inside the vehicle, the CAN bus feeds the dongle and the black box watches its own IMU, GPS, and dashcam. Both speak Bluetooth Low Energy to the phone app, which syncs trips to the Rabet cloud. On impact, the app texts emergency contacts while the cloud calls the emergency-services API with location and severity. The dashed path to the insurer dashboard was designed but never completed.THE VEHICLEOBD-II portJ1962CAN bus · 500 kbit/severy signal the car already knowsRabet dongleELM327health polling · DTC decodebridges the bus to BLERabet black boxEDR6-axis IMU · GPS · flash ring bufferfreeze on impact · write-protectDashcamcontinuousbuffer → event snapshotsRabet appBLE centrallive dashboard · trips · warningsemergency contacts + SMS dispatchtrigger alert →Rabet cloudtrips · events · scoresevent storage + alert APIEmergency contactsSMS + map link · secondswho the driver choseEmergency servicesalert API · location · severitydispatch triageInsurer dashboardplannedusage-based pricing · claimsnever completedDASHED = DESIGNED, NEVER COMPLETED — EVERY SOLID PATH RAN IN THE PILOTRabet’s communication chain during a collisionAn illustrated flow, not live traffic. Inside the vehicle, the CAN bus feeds the dongle and the black box watches its own IMU, GPS, and dashcam. Both speak Bluetooth Low Energy to the phone app, which syncs trips to the Rabet cloud. On impact, the app texts emergency contacts while the cloud calls the emergency-services API with location and severity. The dashed path to the insurer dashboard was designed but never completed.THE VEHICLEOBD-II portJ1962CAN bus · 500 kbit/severy signal the car already knowsRabet dongleELM327health polling · DTC decodebridges the bus to BLERabet black boxEDR6-axis IMU · GPS · flash ring bufferfreeze on impact · write-protectDashcamcontinuousbuffer → event snapshotsRabet appBLE centrallive dashboard · trips · warningsemergency contacts + SMS dispatchRabet cloudtrips · events · scoresevent storage + alert APIEmergency contactsSMS + map link · secondsEmergency servicesalert API · location · severityInsurer dashboardplannedusage-based pricing · claims
The dongle polls the CAN bus; the black box keeps its own sensors and storage. On impact the ring buffer freezes, the app texts emergency contacts, and the cloud calls the emergency-services API with location and severity. The insurer dashboard link is dashed because that integration never completed.
dongle: ELM327 ready · CAN 500 kbit/s · BLE advertising

01 / 08The dongle joins the bus

The pilot’s alerts reached emergency contacts and the operations dashboard. The emergency-services API ran in demos; the dashed insurer path was designed, demoed, and never completed.

04 / The car, annotated

Where the
senses live.

Five subsystems, one car. Pick a layer to see where each part of the Rabet kit sits — the tour also walks itself until you take over.

Rabet / vehicle mapIllustrative placement · sedans vary
Top view of a car: OBD port and dongle under the dash, black box and GPS under the rear seat, dashcam at the windshield, wheels and engine bay monitored through the CAN busOBD port + dongleBlack boxGPSDashcamEngine bay

Placement is illustrative: the dongle goes wherever the diagnostics port is, and the black box mounts flat against the chassis so the IMU reads the car’s motion, not a console’s rattle.