You are about to open a link outside this device. CORE-CUT serves this page from
its own WiFi access point, which has no route to the internet.
Disconnect from the CORE-CUT WiFi and enable mobile data first, otherwise
the link will simply fail to load.
HELP
⚠ RECONNECTING
This page lost its WebSocket link to CORE-CUT and is retrying on its own.
Engine logic on the ESP32 is unaffected — only the numbers on
screen are stale.
link lost
⚠ ENABLE CONTROLLED BACKFIRE?
This feature deliberately cuts the ignition while the throttle is closed so that
unburnt fuel is pushed into a red-hot exhaust and detonated there. It is a
noise effect. It does nothing good for the engine.
Repeated explosions can crack the muffler, blow out packing and destroy a
catalytic converter.
Raw fuel in a hot pipe is a fire risk. Never use it near fuel vapour.
Anti-lag style running raises exhaust temperature far beyond stock design.
Longer cut duration means a louder bang and more stress. Start at the lowest
setting.
Use on a closed course only. You accept full responsibility for any
damage to the exhaust system or the engine.
CORE-CUT
LINK --
ENGINE SPEED
PEAK RPM0
SPEED
0.0km/h
PEAK SPEED
0.0km/h
Reset peak speed
REAL-TIME LOAD TELEMETRY
RPM 0SPD 0HP 0.0Nm 0.0
IGNITION CUT
Cut outputIDLE
Last sourceNone
Total cuts0
Total sparks0
Armed cut features
RELAY & PROTECTION
Relay positionNC
Relay modeAuto
Overheat lockInactive
TEMPERATURE & POWER
ENGINE NTC
--
ESP32 CHIP
--
BATTERY
--
CHARGING
--
PIT LANE LIMITER
⚠ Early Warning RPM is not below Hard Cut RPM —
the warning band can never be reached. Lower the warning limit.
⚠ Overheat protection is active. Cut features cannot be
enabled until the engine cools down.
Enable limiter
Active scenarioInactive
Cut outputIDLE
RPM at last decision0
HARD CUT
Limit RPM 6000
Algorithm
Cut probability 50%
Cut / Fire cycles /
Evaluated 0 cycles · cut 0
EARLY WARNING
Warning RPM 5800
Algorithm
Cut probability 25%
Cut / Fire cycles /
Evaluated 0 cycles · cut 0
SCHEDULING HEALTH
Missed engine cycles0
A rising value means the Core 1 task is starved and the limiter rhythm
drifts. It does not affect anti-misfire safety.
Reset counters
IDLE RUMBLE
⚠ Anti-stall RPM is not below auto-off RPM —
the active band is empty and the rumble can never run.
⚠ Overheat protection is active. Cut features cannot be
enabled until the engine cools down.
⚠ RPM sensor health check failed. Rumble is held off
until a clean rising RPM transition is seen.
Enable rumble
StatusIDLE
Held off byDisabled
Sensor faults0
PATTERN
Mode
Each box is one engine cycle. Red = ignition cut.
Evaluated 0 cycles · cut 0
AUTO-OFF (THROTTLE OPENED)
Detection
Cut-off above 2000 RPM
Acceleration sensitivity 50
Auto-learning only arms below 2000 RPM.
Triggered0
ANTI-STALL
Detection
Hold off below 900 RPM
Deceleration sensitivity 50
Triggered0
RPM RATE
Current rate0
Decel threshold0
Accel threshold0
Rate is RPM change per sample. Tune the sensitivity sliders until the
live rate stays inside both thresholds during a steady idle.
Reset counters
QUICK SHIFTER
⚠ Overheat protection is active. Cut features cannot be
enabled until the engine cools down.
Enable quick shifter
Cut outputIDLE
Total shifts0
RPM at last shift0
Queued for rising edge0
EDGE SIGNAL — GPIO34
Captured after the debounce filter, so edges already rejected by the
filter are not drawn here. Rejected count is shown below.
DEBOUNCE FILTER
Filter window 3000 µs
Shortest edge gap seen—
Suggested filter—
Shift a few times to collect edge data.
Rejected by debounce0
Rejected by lockout0
Rejected below min RPM0
Rejected disabled / engine off0
Rejected by overheat0
ARMING LIMITS
Lockout after shift 500 ms
Minimum RPM to arm 0
Minimum RPM 0 disables the gate entirely.
CUT DURATION BY RPM RANGE
Low / Mid boundary 5000 RPM
Mid / High boundary 8000 RPM
⚠ Mid/High boundary must be above Low/Mid, otherwise the
middle range is unreachable.
Low range cutms
Mid range cutms
High range cutms
Cut duration must stay below the lockout window, otherwise one shift can
overlap the next.
SHIFT HISTORY
#
RPM
AFTER
DROP
CYC
ms
KM/H
No shifts recorded yet.
Reset counters & history
CONTROLLED BACKFIRE
⚠ Overheat protection is active. Cut features cannot be
enabled until the engine cools down.
Enable backfire
PhaseIdle
Phase timer0 ms
StatusDisabled
RPM sensor—
The engine must first rise above Armed RPM, then fall to Trigger RPM
while the throttle is closed. Nothing fires during acceleration.
TRIGGER WINDOW
Armed RPM 7000
Trigger RPM 5000
Trigger RPM is forced to stay below Armed RPM. If they were allowed to
cross, the state machine would fire the moment it armed — that means explosions
under acceleration at full load, which damages the exhaust.
CUT DURATION
Blast level
Softms
Mediumms
Hardms
Active duration0 ms
Longer cut means more raw fuel reaching the exhaust and a louder bang.
Duration is capped at 500 ms in firmware.
TIMING LIMITS
Arming timeout 3000 ms
How long the system waits for deceleration before giving up and
returning to idle.
Cooldown 2000 ms
Enforced pause after every blast. This is what keeps the exhaust from
being cooked by back-to-back explosions, so it cannot be set to zero.
TOTALS
BLASTS
0
TOTAL CUT
0 ms
CUT CYCLES
0
TIMES ARMED
0
Armed but timed out0
Blocked by cooldown0
Fired but won no cycle0
Aborted mid‑blast0
Backfire has the lowest priority of every cut feature, so a blast that
wins no cycle simply means another feature held the output at that moment.
ACTIVATION HISTORY
#
ARMED
TRIG
AFTER
ms
CYC
ARM ms
No activations recorded yet.
Reset counters & history
LAUNCH CONTROL
⚠ Overheat protection is active. Cut features cannot be
enabled until the engine cools down.
Enable launch control
Actuation mode
Virtual: arms whenever the bike is below the speed limit.
ArmedNo
ScenarioInactive
Cut outputIDLE
StatusDisabled
Launch time left10000 ms
RPM at last decision0
SENSOR FAILSAFE
⚠ Speed sensor is not calibrated. Launch control stays
disabled because the speed failsafe would be meaningless. Run the Hall PPR wizard in
Settings → Speed Sensor Calibration first.
Speed calibrated—
Speed sensor—
RPM sensor—
Clutch switch—
Speed is the primary failsafe here. A dead speed sensor reads exactly
0 km/h, which is the same thing a stationary bike reads — so the firmware also
watches for physically impossible drops instead of trusting the number alone.
Rejected — not calibrated0
Rejected — speed sensor fault0
Rejected — RPM sensor fault0
Rejected — clutch missing0
Launch timeouts0
RPM LIMITS
Hard cut RPM 5000
Early warning RPM 4700
⚠ Early warning RPM must be below hard cut RPM,
otherwise the warning band can never be reached.
SPEED LIMIT (VSS FAILSAFE)
Arm below 5 km/h
Launch control only arms below this speed, so it can never hold the
engine back once the bike is already rolling. The upper bound is capped at 30 km/h on
purpose — the sensor fault detector treats a drop from road speed as evidence of a
broken sensor, and a limit set near that threshold would misfire during normal riding.
HARD CUT SCENARIO
Algorithm
Cut probability 50 %
Cut cycles
Fire cycles
Cycles evaluated0
Cut decisions0
EARLY WARNING SCENARIO
Algorithm
Cut probability 25 %
Cut cycles
Fire cycles
Cycles evaluated0
Cut decisions0
TOTALS
LAUNCHES
0
MISSED CYCLES
0
Reset counters
SHIFT LIGHT LED
Enable LED strip
Hardware—
Pattern mode
Bar fills from the left as RPM rises.
Brightness 100 / 255
LED count 16
Set this to the number of LEDs physically on the strip. Extra LEDs in
the buffer are always driven black.
STRIP TEST
Light every LED (calibration)
⚠ All LEDs are on at full white. This is the highest
current the strip will ever draw — check your 5 V supply can handle it, and
switch it off when you are done. This setting is never saved.
Use this to check a sealed eyebrow/case strip for dead pixels and to
confirm the LED count matches the hardware.
Replay boot animation
TACHOMETER RANGE
First LED lights at 1000 RPM
Colour 1 → 2 at 8000 RPM
Colour 2 → 3 (redline) at 10500 RPM
Bar full at 12000 RPM
⚠ These four must rise in order: first LED < colour
change < redline < full scale. Any other order is rejected by the firmware and the
whole set is reset to 1000 / 8000 / 10500 / 12000.
The bar spreads the LEDs evenly between the first and the last RPM, so
this is a real tachometer, not a narrow shift-light window. While the engine turns at
all, at least one LED stays lit.
ZONE COLOURS
Normal zone
Power zone
Limit zone
Colours change at the RPM set in TACHOMETER RANGE, not at fixed
positions on the strip. In mode 3 they are the colours of the three sweeps, one per
RPM band.
FEATURE ANIMATION
Animate feature ON/OFF
Sweep duration 400 ms
ON sweeps left to right, OFF sweeps right to left. A request refused by
the overheat lock flashes red instead, so it never looks like it succeeded.
Quick Shifter
Pit Limiter
Idle Rumble
Backfire
Launch Control
DIAGNOSTICS
Cut flashes rendered0
Counts ignition-cut events picked up from the engine core. If this stays
at zero while a cut feature is clearly working, the cross-core flag is not reaching
the LED task.
Layer on the strip now—
RPM seen by the LED task0
Bar fill0 / 0 LEDs
⚠ The bar is empty at this engine speed. Lower
“First LED lights at” in the TACHOMETER RANGE card if you want it to light
up earlier.
Read these three together. A layer other than RPM bar means
something is covering the bar (cut flash, boot sweep, feature sweep, overheat pulse or
the strip test). If the layer is RPM bar but the fill stays at 0 LEDs while the
engine is running, compare the RPM above with the TACHOMETER RANGE below. If this RPM
reads 0 while the dashboard gauge is alive, the engine core value is not reaching the
LED task.
DWELL TIME TREND — GPIO18
Dwell now0.00 ms
Peak dwell0.00 ms
Duration between each falling edge (ECU starts charging the coil) and
the following rising edge (spark). This is a trend of measured durations, not the raw
waveform.
ANTI‑MISSFIRE DUAL TRACE
DWELL WINDOWCUT — COIL OFFCUT HELD THROUGH DWELL
Cut asserted as dwell began (race)0
Cycles where cut was held through dwell0
Waiting for engine data.
Trace 1 is the dwell window, trace 2 is the coil supply cut on GPIO26.
A cut held across a dwell window is normal and intended — that is how
multi‑cycle cuts work, and the coil simply never charges, so the spark is skipped
cleanly rather than fired early. What must never happen is the cut starting
part‑way through a dwell window, which would collapse a coil that is already
charging. The counter above is the measured number of times a cut landed exactly as a
dwell began.
VOLTAGE & ENGINE TEMPERATURE
BATTERY VENGINE °C
Battery--
Engine temp--
Sampled every 40 ms and sent in batches, so the trace keeps its
sampling resolution instead of being limited to the 10 Hz telemetry rate.
OVERHEAT PROTECTION
⚠ OVERHEAT LOCK ACTIVE. All five ignition cut
features have been switched off, the relay is forced to NC (coil bypass) and the manual
relay override is disabled. This clears itself once the engine cools down.
Overheat protection
Engine temperature--
Peak this session--
Sensor--
Lock engages at--
Lock releases at--
Times tripped0
⚠ Overheat protection is OFF. Nothing will stop the cut
features or force the coil bypass if the engine overheats.
Turning this off while the lock is active is refused while the
engine is running, so a hot engine cannot be unlocked by switching the protection off.
Stop the engine first.
Reset peak temperature
BATTERY — CRANKING TEST
VerdictUnknown
Lowest voltage while cranking--
Cranking sessions recorded0
Battery now--
Recorded automatically while the starter turns the engine (100–500 RPM).
Above 9.5 V is healthy, below 8.5 V means the battery is due for replacement.
Recording only arms after the engine has been fully stopped, so coasting down through the
same RPM range cannot overwrite a real result.
Clear battery & charging verdicts
CHARGING SYSTEM — RECTIFIER
VerdictUnknown
Measured charging voltage--
Measured only above 3000 RPM so it cannot be confused with the
cranking test. 13.5–14.8 V is normal, below 13.0 V means the rectifier or
stator is weak, above 15.0 V is overcharging and will cook the battery.
DWELL TIME
Dwell now--
Peak dwell--
Time the ECU spends charging the coil on each cycle. A healthy value
depends on the ECU and coil fitted, so no verdict is shown here — watch for it
changing over time rather than for one particular number. The live trend is in the
Live Signal Analyser.
OIL HEALTH
--
Engine hours used--
Hours remaining--
Service interval 100 hours
Wear rate right now1.00×
Saved to flash this session0
Saves held back by an active cut0
Counted in engine hours, not kilometres. Every second above
500 RPM counts once; above 8000 RPM it counts 1.5×, above 100 °C
it counts 1.3×, and both together count 1.95×. The total survives power loss
and is written to flash every 10 minutes and whenever the engine stops.
After an oil change
Only possible with the engine stopped.
STORAGE
⚠ FILESYSTEM NOT MOUNTED. Nothing is being
recorded and no file can be downloaded. Everything else on the module keeps working
normally.
Filesystem--
Free space--
Write failures0
Requests refused by safety gate0
Write failures count real I/O errors only. Reaching the size limit is
not a failure — the daily log is designed to stop quietly when it is full.
Refused requests are file operations the firmware declined because the engine was
running, an update was in progress, or a download still had the file open.
DAILY LOG — datalog.csv
--
Status--
Rows written this session0
Daily logging
⚠ Daily logging is switched off. Nothing is being
appended to datalog.csv.
One row per second while the engine is turning: time, RPM, speed,
estimated torque and power, dwell, engine temperature, battery voltage, which feature
cut the ignition, and the number of real spark cycles since the previous row. Recording
stops quietly at 700 KB and is never rotated or erased automatically.
Download
Start a new file
File operations are only possible with the engine stopped.
BURST LOG — burst.csv
SessionIdle
Time left--
Rows captured0
File size--
Rows dropped0
Recording
Records every spark for up to one minute.
Download
Discard this session
One row per spark: cycle number, RPM, speed, estimated torque and power,
dwell and cut source. The session ends by itself after 60 seconds or 300 KB.
Starting a new session deletes the previous file without asking, so download it first.
Dropped rows appear in the file as gaps in the cycle number, never as missing time.
VIRTUAL DYNO
StatusIdle
Duration--
Samples captured0
SOP: 3rd gear — stabilise at 3000–4000 RPM —
press Start — full throttle to redline — press
Stop. Results stay in memory until a new run is started or the device
reboots.
Run
Discard results
PEAK RESULTS
Peak Power--
at RPM--
Peak Torque--
at RPM--
Top Speed--
Max RPM--
POWER & TORQUE CURVE
■ Power (HP)
■ Torque (Nm) vs RPM.
Each Y axis is normalised to its own peak. Bins with no data are skipped.
BUTTON CONTROL
Master Enable
⚠ Overheat lock active — button can only DISABLE features
Button Statereleased
Hold Progress0%
TIMING
Hold Threshold2000 ms
Time (ms) the button must be held before the Hold action fires. Range 500–10000 ms.
Multi-click Window400 ms
Window (ms) after last release to collect additional clicks before firing. Range 150–1500 ms.
MAPPING
Template
Selecting a template instantly applies the binding. Changing individual sliders above does not change the template — the dropdown shows “Custom” when no template matches.
1× press—
2× press—
3× press—
Hold—
STATISTICS
Total Actions0
Rejected (Overheat Lock)0
Reset counters
EVENT HISTORY
Last 8 button actions. Most recent first.
No events yet.
RELAY STATUS
PositionNC
ModeAuto
Cut path activeNo
NC = coil bypass active (relay at rest). Cut via GPIO26 has no effect.
NO = bypass open, P-MOS controls ignition. All cut features become effective.
MANUAL OVERRIDE
⚠ OVERHEAT LOCK ACTIVE. Manual override is disabled
— the relay is forced to NC (bypass) until the engine cools down.
Mode
Auto switches NC→NO above the ON threshold and NO→NC below the OFF
threshold, both debounced. Manual NC forces bypass immediately. Manual NO requests the
armed position — the actual switch to NO is delayed until the next spark pulse to
avoid cutting coil current during dwell (Global Rule §5).
⚠ NC→NO transition pending:
waiting for next spark pulse (safe switching window).
SWITCHING PARAMETERS
NC→NO threshold1800 RPM
RPM at which the relay moves from bypass (NC) to armed (NO). The P-MOS takes
over ignition control above this point. Range 500–6000 RPM.
NO→NC threshold100 RPM
RPM below which the relay returns to bypass (NC). Must be lower than the ON
threshold. Range 0–3000 RPM.
Debounce count5 pulses
Number of consecutive valid spark pulses required before switching in either
direction. Symmetrical: the same count applies to both NC→NO and NO→NC.
RELAY HEALTH
Total switching cycles0
Lifetime count of relay contact switches. Persisted to NVS periodically
(every 5–10 min while engine runs) and when the engine stops. Not reset on
power-off.
Debounce on (NC→NO)0/5
Debounce off (NO→NC)0/5
Live debounce counters. Reset to zero whenever the relay switches or when
a pulse fails the threshold check (must be consecutive).
MEMORY
Free heap (RAM)0 B
Heap trendmin --max --
STORAGE
Free flash--
Free space in the LittleFS data partition (datalogs & burst
buffers). Does not include the OTA app slots.
CHIP & UPTIME
Internal chip temp--
⚠ This is the ESP32 die temperature sensor, not the engine
NTC thermistor. It reflects the microcontroller self-heating, not engine coolant
or cylinder temperature.
Uptime--
CONNECTIVITY
WiFi RSSI--
Dash clients0
STREAM HEALTH
Frames pushed0
Frames dropped (queue full)0
Telemetry frames skipped because the WebSocket send queue was
full (slow client / weak signal). The only signal that the dashboard is falling
behind. A non-zero, growing number means data is being dropped on purpose to
protect heap — newer frames replace older ones.
SIGNAL HEALTH
Ignition noise rejected0
Pulses on the ignition line (GPIO18) refused by the input filters,
plus RPM results that came out above the valid ceiling and were discarded instead
of clamped. Rising during cranking is normal and expected — that is the
filter doing its job. Rising steadily while the engine runs smoothly means the
thresholds are too tight; report it.
Cut watchdog releases0
Times the failsafe had to force the ignition cut off because sparks
stopped arriving while a cut was still held. Should stay at zero. Any non-zero
value means a cut feature failed to release on its own.
Speed pulses rejected0
Wheel sensor pulses discarded as too close together to be real.
A large number points at a missing pull-up or electrical interference on the
sensor wiring, not at the firmware.
Log write failures0
Overheat lock trips0
All five counters start from zero at every boot and are never stored
in flash, so they describe this ride only.
RPM MODE
Engine type
Sequential fires once per engine cycle (Vixion default). Wasted Spark fires twice (use for engines without cam sensor). Affects cycle-based cut features (Pit/Idle/Launch).
BATTERY CALIBRATION
Current factor1.000
Multimeter reading (V)
Connect multimeter to battery terminals, enter the measured voltage, press Apply. Factor is saved to NVS. Calibration is disabled while engine is running (safety).
SPEED SENSOR WIZARD
Front gear teeth
Rear gear teeth
Tire circumference (m)
Hall PPR--
Calibration statusNot calibrated
Pulses counted0
Put bike on center stand. Rotate rear wheel exactly 3 full turns. Press Start, rotate, press Stop. PPR must be 1-30 and within ±10% of an integer. Wizard is blocked while engine is running (safety: writes NVS).
LOAD CALIBRATION
Total mass (kg)
Rider weight + bike weight + gear. Used for Real-Time Load Telemetry (HP/Nm) and Virtual Dyno calculations.
WIFI ACCESS POINT
Current SSIDCORE-CUT
New SSID
New password
Changes require ESP32 restart. Active WebSocket and OTA connections will be disconnected. SSID/password changes are saved to NVS and applied after reboot.
OTA FIRMWARE UPDATE
OTA statusIdle
OTA guardReady
Partition size--
Firmware size--
⚠ Firmware size exceeds OTA partition size. Upload will fail. Use PlatformIO USB flash instead.
Upload firmware (.bin)
OTA is blocked while engine is running, Launch Control is armed, or another update is in progress. Partition size = 1.25 MB per slot (build-config.md 13.1). Firmware must fit within this limit.
This module modifies critical ignition timing. Incorrect configuration of Pit Limiter, Idle Rumble, Backfire, or Launch Control can cause catastrophic engine damage. For closed-circuit/track use only. Developer assumes no liability for mechanical damage, accidents, or legal consequences. Use at your own risk.
MIT License
Copyright (c) 2026 Krishna
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.