How it works

From "I need power" to back on the road.

Four taps. No staff at the station. No paperwork. The cabinet handles the unlock-detect-relock loop in the background while the rider just inserts and lifts.

A rider performing a battery swap : insert depleted, take charged
Step 1 . Insert
Depleted pack goes into the empty pod. CAN bus confirms the insert in <200ms.
Step 2 . Collect
Charged pod unlocks automatically. Lift, slot into the bike, ride away.
The swap loop

Sixty seconds, step by step.

The rider only ever taps four things. Cabinet unlock, payment authorisation, telemetry sync, and history log all happen in the background.

1

Scan or Tap

Rider scans the cabinet QR or taps an RFID card from the User App. Cloud verifies that the rider is live, KYC-approved, deposit-paid.

2

Pay in seconds

Razorpay UPI authorisation. Single click. No paperwork. Receipt issued automatically.

3

Drop & pick up

Empty pod unlocks. Insert old pack. Pod relocks. Charged pod unlocks. Lift it out.

4

Ride away

Receipt in History. Admin Dashboard updates instantly. Old pack starts charging.

Under sixty seconds, every time
Behind the scenes

Three handshakes the rider never sees.

The cabinet, the cloud, and the apps coordinate over MQTT in real time. By the time the rider lifts the new pack, every system in the network already knows.

1. App → Cloud

QR scan or RFID tap fires /swap/check. Cloud verifies KYC, deposit, available pod. Returns target station and pod number in under 300ms.

2. Cloud → Cabinet

Cloud publishes unlock_pod over MQTT to electica/station/<id>/command. ESP32 acknowledges on /status, throws the solenoid. Door unlocks within 1s.

3. Cabinet → Cloud

CAN bus detects pack insertion or removal in <200ms. ESP32 publishes the swap event. Server writes to Postgres + fans out via MQTT to all open admin dashboards.

Timing breakdown

Sixty seconds, accounted for.

StepAvg timeWhat's happening
Scan QR3-5sCamera focus, decode, app handshake with cloud.
Pay5-8sRazorpay UPI flow. Single click in most cases.
Pod unlock<1sMQTT command + solenoid actuation.
Insert old pack8-12sRider walks up, slots pack, door auto-locks on detect.
Charged pod unlock<1sSystem picks the highest-SOC pack, unlocks that pod.
Lift & install15-25sRider lifts, walks to bike, slots into bike.
Receipt + historyInstantServer writes the swap record before the rider is off the bike.
Total observable : 35-55 seconds for the rider, 50-60 seconds end-to-end including server-side fanout.
When things go sideways

What happens if a swap fails?

Payment fails

Razorpay returns an error. No pod unlocks. Rider sees a "Try again" prompt with a fallback to UPI Intent. No charge, no swap.

Pod doesn't unlock

If the cabinet doesn't ACK within 30s, the cloud retries automatically. After 3 retries the rider is auto-refunded. Operator gets an alert.

Bad pack returned

BMS detects swollen / overheated / faulty pack. Cabinet auto-isolates the slot. Provider App gets a fault notification. Refund processed if needed.

Watch a swap in person.

Live cabinet at Station IDR001 (LIG, Indore). Real BMS, real Razorpay, real riders. Visit by appointment.

Book a demo →