RACEFIRMWARE BY ALEX_V LABS
Features

What the rider gets.

Everything the firmware lets you set, section by section: what each setting does, how it feels on the bike and where the limits are. The numbers are the firmware's defaults; all of it changes in the app while the bike stands.

Modes

ECO · DAILY · SPORT

The mode is picked with the stock switch on the right bar block: up — SPORT, middle — ECO, down — DAILY. On the move the limits glide to the new mode in 0.3 s, without a jolt.

Each mode has three limits. Phase current sets the torque: while there is voltage to spare, the pull is constant. Power takes over above the "knee": from there torque falls with speed while the power holds. The speed ceiling is soft: over the last 5 km/h the pull fades to zero. It is not a brake — downhill the bike can go faster.

ECO

Gentle response and economy.

  • Phase current500 A
  • Power6 kW
  • Speed60 km/h
DAILY

Everyday balance of pull and control.

  • Phase current700 A
  • Power18 kW
  • Speed95 km/h
SPORT

Maximum output and speed.

  • Phase current800 A
  • Powerbattery rating
  • Speed115 km/h

The firmware's defaults. Current — no more than the board's design current, 800 A. Power — no more than the battery's rating: Ultra24 18 kW (230 A), Ultra25 28 kW (350 A), your own pack — full voltage × rated current; the app won't let you set more. Temperature derating of the motor and the controller applies in every mode.

What each mode sets

Phase current 0–800 A

The pull off the line and up to the knee. 0 — no mode limit, only the absolute ones. The app shows the torque estimate at the motor and at the wheel right away.

On the bike: more current — a harder launch and an easier front wheel; less — a softer start, longer-lived tyre and chain.

Power limit 0–60 kW · 0.5 steps

Power at the motor: the firmware works it out from the currents and voltages every tick and trims the current when the limit is reached.

On the bike: decides how the bike pulls at mid and high speed. A lower limit — calmer acceleration past the knee, a cooler battery and motor.

Speed ceiling 0–150 km/h

A soft limit: full pull up to "ceiling minus 5 km/h", zero at the ceiling. 0 — no mode limit.

On the bike: the bike leans into its speed smoothly, no cut-out; under load it settles just below the ceiling.

Mode transition 50–2000 ms · 300

How fast the limits change when you switch on the move. Disarmed — instantly.

On the bike: SPORT → ECO on the move — the pull drops smoothly, no hole.

Throttle

Throttle profiles TP1–TP3

The grip sets torque, not speed: grip position → curve → ramp → the mode's current. There are three profiles, shared by ECO, DAILY and SPORT, switched from the stock dash menu (item F) or in the app. A new profile applies at once; the ramp smooths the change.

27 % 100500 50 %grip →
TP1 · exponential, k = 2. A soft start: half the travel — 27 % torque, the full pull at the end.
50 % 100500 50 %grip →
TP2 · linear. Torque in proportion to the grip.
31 % 100500 50 %grip →
TP3 · polynomial, k = 0.5. Softer than linear: half the travel — 31 %.
73 % 100500 50 %grip →
Exponential, k = −2. A sharp start: half the travel — already 73 %.

Profile settings

Curve type linear · polynomial · exponential

How grip travel turns into torque. Every curve runs through 0 and 100 %: full throttle always gives the mode's full current.

On the bike: the curve decides where on the grip the pull lives. A soft one is easier to meter on slippery ground and technical sections; a sharp one answers from the first degrees.

Shape k polynomial −0.5…1 · exponential −6…6

Positive — a soft start, negative — an aggressive one. Not used by the linear curve.

On the bike: k = 2…3 is a calm grip for mud and rocks; a negative k suits racing and climbs, where the pull is needed at once.

Ramp up 0–750 ms · 300

How fast the command may rise from 0 to 100 %. 0 — no limit.

On the bike: how softly the pull arrives when you snap the throttle open. Shorter — a harder hit on the chain and easier wheelspin; longer — softer and more predictable.

Ramp down 0–750 ms · 200

How fast the command falls from 100 % to zero.

On the bike: shorter — the pull goes at once and the bike pitches harder when you roll off; longer — a smooth roll-off that doesn't upset the suspension.

Rest dead band 1–10 % · 3

The first part of the grip travel the motor ignores.

On the bike: the bike doesn't creep from grip play or a shaking hand over bumps.

Full dead band 0–10 % · 2

The last few per cent of travel already count as 100 %.

On the bike: full throttle is guaranteed at the stop, even if the grip falls a little short.

The ramps delay only the throttle. Speed and power limits, ASR and the brake act at once. The profile at switch-on is set in the app: TP1, TP2 or TP3.

Brake and coast

Motor braking and coast regen

Two levels and two ramps. To the controller the brake lever is the brake-light signal: the motor braking force comes from the level, not from how hard you squeeze. The levels change in the app and in the dash menu (items B and E).

Brake B0–B5 6 % current per step · B2

Motor braking strength, B5 is 30 % of phase current. Without regen the brake only takes the drive away: you can't ride "against the brake", and the battery isn't charged.

On the bike: touch the brake — the throttle stops pushing; with regen the motor brakes the bike as well.

Coast E0–E5 6 % current per step · E3

Motor braking with the throttle closed. Works only with regen on.

On the bike: like engine braking: E0 — a free coast, E5 — the bike slows noticeably the moment you roll off.

Brake ramp up and release 0–2000 ms · 300 / 150

How fast the motor braking builds and lets go.

On the bike: a soft entry into braking without locking the rear wheel.

Regen off by default

Turned on only for a battery that accepts charge. The charge current stays within the rating (Ultra24 100 A, Ultra25 150 A). It stops at 95 % of the full voltage and fades out between 5 and 3 km/h.

On the bike: braking that returns energy; on a full pack it weakens — the firmware protects the battery.

Traction control

Two-wheel ASR

ASR compares the front and rear wheel speeds from the stock sensors — 42 pulses a turn, recomputed every millisecond. Slip λ = (rear − front) / front. Below the threshold the throttle is as it is; above it, torque is multiplied by k and reaches the minimum at the "full cut".

On and off — a long press of the ASR button on the bar (0.7 s). A double press — the next level, A1 → A2 → A3; a single press shows the level. The choice is saved at once; the level can also be picked in the dash menu (item A) or in the app.

A1 A2 A3 100500 01020304050 % slip λ → torque k, %
Torque k against slip λ: where the cut starts, where it is full and how much torque is left. The levels' defaults.
A1

Soft. Allows noticeable slip and cuts shallow — dry tarmac, racing.

  • Threshold18 %
  • Full cut45 %
  • Torque minimum55 %
A2

Medium. Balanced: steps in on clear wheelspin.

  • Threshold10 %
  • Full cut30 %
  • Torque minimum30 %
A3

Strong. Acts early and nearly to zero — wet, mud, ice.

  • Threshold6 %
  • Full cut18 %
  • Torque minimum8 %

Level settings

Slip threshold 2–50 %

The slip at which the cut begins.

On the bike: a lower threshold — ASR steps in earlier; a higher one lets the wheel work and clear the mud.

Full cut 3–100 %

The slip at which torque reaches the minimum. At least 1 % above the threshold.

On the bike: close to the threshold — a sharp cut; further away — smooth, almost unnoticed.

Torque minimum 0–95 %

How much torque is left in heavy wheelspin. 0 % cuts to zero: the wheel stops.

On the bike: a higher minimum keeps the bike driving through wheelspin; a lower one nearly stops the wheel so it grips.

Cut and return 10–500 ms · 50 / 50–3000 ms · 500

Cut — how fast torque falls from full to the minimum; return — how fast it comes back. Shared by all levels.

On the bike: a fast cut catches wheelspin, a slow return keeps it from starting again.

A standing front wheel with the rear spinning is wheelspin too: torque drops to the minimum and holds until the throttle is closed; lifting the front wheel makes ASR cut as well. If the rear sensor goes silent, ASR takes the rear speed from the motor. Switch a faulty front sensor off with the ASR button. ASR is off in crawl and reverse. Accuracy depends on the wheel diameters: the firmware measures the front one itself from the motor while coasting.

Power

The power stage and peak power

The firmware runs on the Ultra Bee's stock controller. Its power stage is three half-bridges: 24 Magnachip MDY10N025RH MOSFETs, four in parallel in each of the six switch positions.

Power switches24 × Magnachip MDY10N025RHN-channel, 100 V, M2PAK-7P package with a separate driver-source pin
Layout6 positions × 4 switches in parallel8 switches per phase
On-resistance per switch2.2 mΩ typ., 2.5 mΩ max at 25 °Ca group of four — 0.63 mΩ at most
Rated switch current240 A package, 306 A silicon at 25 °C217 A at a 100 °C case; 960 A pulsed; junction up to 175 °C
A position of four868 A at a 100 °C case4 × 217 A, from the switch datasheet
Phase current in the firmwareup to 800 Athe board's design current
Gate drivers6 × IR2127
Current sensors3 ring sensors on the phase wiresmeasuring range ≈ ±1550 A
DC-link capacitors7950 µF, 120 V
ProcessorNXP S32K142, Cortex-M4F, 112 MHz
Current loop32 kHztwo updates in every 16 kHz PWM period

Peak power

Electrical power into the motor is P = 1.5 · U · I, with U and I the phase voltage and current amplitudes. Using the full voltage of a 74 V (20S) pack, U ≈ 40.8 V, and at 800 A that is ≈ 49 kW; on a fully charged pack (86 V) — ≈ 57 kW. The battery has to deliver about 660 A for it.

This is a calculation from the switch datasheet and the maximum modulation, not a measurement on the bike. In practice the battery sets the power: the firmware won't give a mode more than its rating — Ultra24 18 kW, Ultra25 28 kW, your own pack voltage × current. A mode limit in the firmware goes up to 60 kW. Heat keeps 800 A from lasting, which is why the current derates with the motor and controller temperatures.

More

More features

Reverse 1–12 km/h · strength 1–40 % · 15 %

Engages in READY when the bike is almost still (±2 km/h by the motor and the front wheel) with the throttle closed: hold R/T for 0.5 s. The throttle is linear in reverse. Let R/T go — a coast, then forward again, no new READY needed.

On the bike: 15 % is about 120 A at 800 A: enough to roll back gently. Hard uphill or out of a rut — raise it to 25–30 %.

Crawl L1–L3 5 / 8 / 12 km/h · 1–12

Low speed for the trail and manoeuvres: the throttle pulls with full torque but no faster than the level's ceiling. To switch on — in READY, standing, throttle closed: hold READY 1 s; double press — the next level. ASR is off in crawl.

On the bike: full torque up to three quarters of the ceiling — rocks, roots and steep climbs at walking pace, without metering the throttle.

Crawl current 0–800 A · 0

0 — all the available torque, whatever the ECO, DAILY or SPORT mode; the temperature and other protections still apply.

On the bike: limit it if the wheel breaks loose too easily in crawl.

Park H

Hold the brake 2 s at a standstill in READY — the throttle no longer drives the bike, the dash shows "H". Let the brake go — the drive is back.

On the bike: a throttle nudged at a stop won't jerk the bike.

Function menu on the stock dash

ASR + READY for 2 s with the bike still: brake B, coast E, ASR level A, tip-over sensor C, side stand P, throttle profile F, crawl level L. After 10 s without a press the menu closes and saves.

On the bike: change the setup at the track without a phone.

READY

Hold READY 0.5 s; optionally only with the brake; leave READY after 0–3600 s idle. It needs the key, the kill switch in run, the bike upright and the throttle closed.

On the bike: the bike won't move until you clearly switch it on.

Motor

Motor profiles (stock Ultra Bee 2025, Sotion GTS01 Pro) or your own: the firmware measures the resistance, inductances and flux linkage itself. The encoder, the switch dead time and the temperature sensor are calibrated from the app; the setup wizard has 7 steps.

Battery

Ultra24, Ultra25 or your own: 10–24S, currents from the datasheet. With the stock pack — cell voltages, temperatures, cycles and the serial over CAN; without a BMS the stock dash shows the charge from the voltage.

Bluetooth updates

New versions install from the app. Every build is signed and bound to your controller.

The app

A dashboard for your bars — portrait and landscape, telemetry, peaks, CSV recording, rides with the route on a map, GPX and CSV export. iPhone and Android.

Safety

Protections in the firmware

There are two kinds of reaction. A soft stop: zero current, the bike coasts under control until the motor stops, then the bridge is disarmed — the response to overheating, overvoltage, a faulty current sensor or throttle. Every other fault disarms the bridge at once. A fault stays until it is cleared, and its cause goes into the log.

Bus overvoltage

Checked every current-loop tick: 200 µs above the threshold and the outputs switch off in the same tick; at high revs the drive goes into a controlled coast. The default threshold is 90 V (90 % of the switch rating), and no more than "the voltage at switch-on + 12 V".

Bus without regen

If the voltage rises 3 V above the switch-on value, the motor puts the energy back into motion; braking current is forbidden on the move.

Regen

Only when allowed, only up to 95 % of the full voltage, the charge current within the battery's rating.

Voltage out of range

A bus outside 10–130 V — no running; below 10 V — a fault.

Phase current

The current vector is limited in magnitude, rises no faster than 5000 A/s, and the limit falls with temperature.

Current sensors

Every tick the sum of the three phases is checked against zero: more than half the ticks bad within 10 ms — a soft stop. Before switch-on the sensor zeros are checked: drift over 3 A — no switch-on.

Motor temperature

Current derates from 100 °C, down to the minimum at 135 °C, a trip at 150 °C. An open or shorted sensor reads as overheating.

Controller temperature

Current derates from 65 °C down to the minimum at 85 °C.

Runaway and overspeed

Speed drifting from the command and rising under current for 30 ms — an immediate trip. Revs 20 % over the limit — the same.

Rotor angle

The angle is confirmed by the encoder and an observer; a tracking error over the limit trips the drive. Without a confirmed angle the bike won't switch on.

Throttle

A signal outside its window — zero torque, a soft stop. Switch-on only with the throttle closed.

Control loops

If the fast or the slow loop hasn't advanced within 5 ms, the bridge is disarmed at once. Numeric errors and a stack overrun stop the drive too.

Interlocks

The key, the kill switch, the tip-over sensor; optionally the side stand and READY only with the brake.

Settings

Written only while standing, with the bridge disarmed, through a before → after review. Kept in two FRAM slots with a CRC: a power cut won't corrupt them.

Calibrations

If the link to the phone is lost for over 0.5 s, the controller cuts the current.

Fault log

Every fault with a snapshot of the drive at the moment it tripped — 32 entries in FRAM.

Secure boot

Before installing and before every start — an RSA-2048 signature, a SHA-256 hash and the binding to the chip. The flash is read-protected.

Updates

The whole package is checked before the old version is erased. If the transfer breaks, the previous firmware runs; if the install fails, it is retried at the next power-up.

Technology

Control at research level

Briefly, without the internals. At the core are methods from research on synchronous motor control and from industrial servo drives, brought to work on a motorcycle's stock controller.

32 kHz current loop

Two measurements and two voltage updates in every PWM period.

Predictive current control

The current is computed a step ahead to cover the delay; a disturbance observer makes up for the model's error.

Delay compensation

Measurement and voltage output are brought to one instant — the angle stays accurate at high revs.

MTPA

Maximum torque per amp for a motor with unequal axis inductances — a closed-form solution.

Field weakening

Feed-forward from the voltage ellipse: the motor runs past its base speed without a dip in pull.

Dead-time compensation

Non-linear, current-dependent, with an automatic calibration on the spot.

Discontinuous PWM

More voltage to the motor without disturbing the current measurement.

Angle sensor fusion

The encoder and an active-flux observer in one tracking loop.

Current-sensor self-trim

The gains are refined on the move by least squares.

Motor identification

Resistance, inductances and flux linkage — by multi-frequency injection and a dead-time-aware regression.

Traction control

Slip from both wheels, with the motor as a backup speed source.

Chain of trust

RSA-2048, SHA-256 and binding to the chip's unique ID — from the boot loader to over-the-air updates.

Limits

Where and how to use it

Off-road and closed tracks only. Changing the controller's settings — power, current, speed — can make the motorcycle non-compliant for public roads and void its warranty. Check new settings standing still, with the wheel lifted, in full gear.

Injury and danger to life

Wrong settings can cause a jolt, the bike speeding up by itself, loss of traction or a drive fault while riding. That can end in a fall or a crash: injury, disability, death — yours and others'.

Short circuit and fire

Wrong currents, voltages, dead time, angles or frequencies can break down the power switches and short the battery through the controller — with a fire. A weakened protection does not trip.

“As is”, no liability

The firmware and the app are provided “as is”, without any warranty; by using them you accept the risk that comes with it. ALEX_V LABS is not liable for injury, damage or fire — to the extent the law allows.

Risks, liability and the full terms