SP140

Intro

The current OpenPPG SP140 Controller is based on the ESP32 platform and uses the Web Serial API to communicate from your browser to your device. Supported desktop browsers are listed here.

Performance Mode

The performance mode changes the dynamics of the SP140 throttle and serves different flying styles. “Chill” is less responsive and reduces max power to ~70%. “Sport” unlocks full power and is more sensitive to slight input changes.

We recommend flying in chill mode until you get comfortable with the instant power the OpenPPG SP140 can provide.

Updating firmware

New firmware can add features and improve functionality. To update the firmware on the ESP32-based controller:

  1. Connect the controller to your computer via USB.
  2. Use the web-based firmware update tool.
  3. Follow the on-screen instructions to complete the update process.

Alerts

The hand controller raises an alert whenever a sensor leaves its safe range. This page lists every code the firmware can display. The SP140 manual covers the same codes alongside the rest of the flight documentation.

How Alerts Appear On Screen

Two round badges sit above the altitude readout.

  • The orange badge counts active warnings and the red badge counts active criticals. A count above 9 shows as 9+.
  • Next to each badge the controller shows one code at a time. If more than one alert of that level is active, the code rotates every 2 seconds.
  • When a critical is active, the screen border flashes red and the controller vibrates in sync with the flash. A new warning gives a single double pulse instead, and only while no critical is active.
  • If a critical and a warning are showing at the same time, the critical takes the top row and the warning takes over the altitude area, so altitude is hidden while both are showing.

Temperature codes carry a direction suffix: -H for too hot, -L for too cold. You will see MC-MT-H, not MC-M.

ESC alerts are only evaluated while the ESC is connected, and BMS alerts only while the BMS is connected (plus a 2 second grace period after the first connection at power on). When a device disconnects, all of its alerts are cleared from the screen, so a missing ESC or BMS shows no alert code at all.

Alert Levels

  • Warning Orange. Approaching critical level.
  • Critical Red. Land immediately.

ESC (Motor Controller) Alerts

Temperature Alerts

AlertAbbreviation (hot / cold)Warning ThresholdCritical ThresholdMeaning
ESC MOSFET TemperatureMC-FT-H / MC-FT-L≥90°C / ≤-10°C≥110°C / ≤-20°CHigh/low temperature on the ESC’s power MOSFETs
ESC MCU TemperatureMC-CT-H / MC-CT-L≥80°C / ≤-10°C≥95°C / ≤-20°CHigh/low temperature on the ESC’s microcontroller
ESC Capacitor TemperatureMC-PT-H / MC-PT-L≥85°C / ≤-10°C≥100°C / ≤-20°CHigh/low temperature on the ESC’s capacitor
Motor TemperatureMC-MT-H / MC-MT-L≥105°C / ≤-20°C≥115°C / ≤-25°CHigh/low temperature on the motor

Motor temperature readings are only accepted between -20°C and 140°C. A disconnected motor temperature sensor reads about 149°C, which the controller discards, so a missing sensor produces no alert rather than a false MC-MT-H. Because of that same filter, MC-MT-L is not reachable in practice.

Running Errors (Critical Only)

AlertAbbreviationMeaning
ESC Over CurrentMC-RE-0ESC detected excessive current draw
ESC Locked RotorMC-RE-1Motor is locked or jammed
ESC Over TemperatureMC-RE-2ESC temperature protection triggered
ESC Over VoltageMC-RE-6Input voltage too high
ESC Voltage DropMC-RE-7Input voltage dropped too low

Self-Check Errors (Critical - Boot-time Hardware Faults)

AlertAbbreviationMeaning
Motor Current Output BadMC-SE-0Motor current sensor malfunction
Total Current Output BadMC-SE-1Total current sensor malfunction
Motor Voltage Output BadMC-SE-2Motor voltage sensor malfunction
Capacitor NTC BadMC-SE-3Capacitor temperature sensor malfunction
MOS NTC BadMC-SE-4MOSFET temperature sensor malfunction
Bus Voltage Range BadMC-SE-5Bus voltage sensor range error
Bus Voltage Sample BadMC-SE-6Bus voltage sensor sampling error
Motor Z Too LowMC-SE-7Motor impedance too low
Motor Z Too HighMC-SE-8Motor impedance too high
Motor Voltage Detect 1 BadMC-SE-9Motor voltage detection 1 malfunction
Motor Voltage Detect 2 BadMC-SE-10Motor voltage detection 2 malfunction
Motor Current Detect 2 BadMC-SE-11Motor current detection 2 malfunction
Software/Hardware IncompatibleMC-SE-13Firmware/hardware version mismatch
Bootloader UnsupportedMC-SE-14Bootloader version not supported

BMS (Battery Management System) Alerts

BMS Temperature Alerts

AlertAbbreviation (hot / cold)Warning ThresholdCritical ThresholdMeaning
BMS MOSFET TemperatureBC-F-H / BC-F-L≥50°C / ≤-10°C≥60°C / ≤-15°CHigh/low temperature on BMS power MOSFETs
BMS Balance TemperatureBC-B-H / BC-B-L≥50°C / ≤-10°C≥60°C / ≤-15°CHigh/low temperature on balance resistors
BMS Cell Temperature 1-4BC-T1-H … BC-T4-H / BC-T1-L … BC-T4-L≥50°C / ≤-10°C≥56°C / ≤-15°CHigh/low temperature in battery cell group 1-4

Voltage and SOC Alerts

AlertAbbreviationWarning ThresholdCritical ThresholdMeaning
BMS High Cell VoltageBC-CV-H≥4.19V≥4.20VIndividual cell voltage too high
BMS Low Cell VoltageBC-CV-L≤3.2V≤3.0VIndividual cell voltage too low
BMS State of ChargeBC-SOC≤15%≤5%Battery charge level too low
BMS Total VoltageBC-Vtot≤79.2V or ≥100.4V≤69.6V or ≥100.8VTotal battery pack voltage out of range
BMS Voltage DifferentialBC-dV≥0.2V≥0.4VVoltage difference between cells too high

All five of these are suppressed until the pack reports more than 5V total, so a still booting BMS cannot raise a false low voltage or low SOC alarm.

BC-CV-H also appears if the lowest cell reads ≥4.5V (warning) or ≥4.8V (critical). A reading that high on the low cell indicates a sensing fault rather than a real charge state.

MOSFET State Alerts

AlertAbbreviationLevelTrigger ConditionMeaning
BMS Discharge MOSBC-DSGCriticalActive when false (MOS off)Discharge MOSFET turned off

Communication (CAN Bus) Problems

The hand controller talks to the motor controller and the battery over a CAN bus. A CAN problem does not raise an alert code. When the ESC or BMS stops responding, the controller clears every alert for that device and its telemetry fields go blank or stale, so a CAN problem shows up as missing telemetry, not an alert.

With the BMS the motor will often still run normally, but state of charge, cell voltage, and pack temperature will be blank or wrong. The two most common causes are a BMS data plug that is not fully seated and a firmware version mismatch between the hand controller and the ESC. Do not fly with missing battery telemetry, because you lose the alerts that warn you before a critical condition.

Internal System Alerts

AlertAbbreviationWarning ThresholdCritical ThresholdMeaning
CPU TemperatureCPU-T≥60°C / ≤0°C≥80°C / ≤-10°CESP32-S3 processor temperature too high/low
Barometer TemperatureBARO-T≥50°C / ≤0°C≥80°C / ≤-10°CBarometer sensor temperature out of range
Barometer Init FailedBARO-IActive when falseBarometer failed to initialize

If the barometer is unavailable, the altitude field shows ERR in place of a number.

Any alert code the firmware does not recognize displays as UNK-ERR.

Notes

  • Temperature alerts use a ±1°C hysteresis deadband so the code does not flicker at the threshold. Escalation from warning to critical happens at the exact threshold; only clearing an alert uses the deadband.
  • Voltage, SOC and voltage differential thresholds are absolute, with no hysteresis.
  • Boolean alerts (errors/faults) are either active (true) or inactive (false).
  • Critical alerts flash a red screen border and vibrate the controller.
  • Warning alerts are displayed in orange.