×

⚠ EXTERNAL LINK

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.

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 RPM 0
SPEED
0.0 km/h
PEAK SPEED
0.0 km/h
Reset peak speed

REAL-TIME LOAD TELEMETRY

RPM 0 SPD 0 HP 0.0 Nm 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 cut  ms
Mid range cut  ms
High range cut  ms
Cut duration must stay below the lockout window, otherwise one shift can overlap the next.

SHIFT HISTORY

#RPMAFTERDROPCYCmsKM/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
Soft  ms
Medium  ms
Hard  ms
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 out 0
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

#ARMEDTRIGAFTERmsCYCARM 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 calibrated 0
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 evaluated 0
Cut decisions0

EARLY WARNING SCENARIO

Algorithm
Cut probability 25 %
Cut cycles
Fire cycles
Cycles evaluated 0
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 WINDOW CUT — COIL OFF CUT HELD THROUGH DWELL
Cut asserted as dwell began (race) 0
Cycles where cut was held through dwell 0
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 V ENGINE °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

Verdict Unknown
Lowest voltage while cranking --
Cranking sessions recorded 0
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

Verdict Unknown
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 now 1.00×
Saved to flash this session 0
Saves held back by an active cut 0
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 gate 0
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 session 0
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

Session Idle
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

Status Idle
Duration --
Samples captured 0
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
BUTTON CONTROL
Master Enable
Button State released
Hold Progress 0%
TIMING
Hold Threshold 2000 ms
Time (ms) the button must be held before the Hold action fires. Range 500–10000 ms.
Multi-click Window 400 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
Position NC
Mode Auto
Cut path active No
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).
SWITCHING PARAMETERS
NC→NO threshold 1800 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 threshold 100 RPM
RPM below which the relay returns to bypass (NC). Must be lower than the ON threshold. Range 0–3000 RPM.
Debounce count 5 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 cycles 0
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 trend min -- 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 clients 0
STREAM HEALTH
Frames pushed 0
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 rejected 0
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 releases 0
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 rejected 0
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 failures 0
Overheat lock trips 0
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 factor 1.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 status Not calibrated
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 SSID CORE-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 status Idle
OTA guard Ready
Partition size --
Firmware size --
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.
CORE-CUT IGNITION MANAGEMENT SYSTEM
Firmware V1.0.0 (Stable) | Hardware: ESP32 DevKit V1 / ESP32 WROOM
OPEN SOURCE CREDITS
Core OSFreeRTOS
Web Server & CommESPAsyncWebServer + AsyncTCP
Data & StorageArduinoJson + LittleFS/NVS
OTA & Hardware DriversArduinoOTA + Adafruit NeoPixel
DEVELOPER
Instagramkriishnaaa_s
TikTokkriishna9
FacebookBunder
LEGAL DISCLAIMER & LICENSE
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.
SAVED
All settings stored.
SIMULATOR
GEAR: 1 1420 RPM 0 KM/H
THROTTLE: 0%