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:
- Connect the controller to your computer via USB.
- Use the web-based firmware update tool.
- 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
| Alert | Abbreviation (hot / cold) | Warning Threshold | Critical Threshold | Meaning |
|---|---|---|---|---|
| ESC MOSFET Temperature | MC-FT-H / MC-FT-L | ≥90°C / ≤-10°C | ≥110°C / ≤-20°C | High/low temperature on the ESC’s power MOSFETs |
| ESC MCU Temperature | MC-CT-H / MC-CT-L | ≥80°C / ≤-10°C | ≥95°C / ≤-20°C | High/low temperature on the ESC’s microcontroller |
| ESC Capacitor Temperature | MC-PT-H / MC-PT-L | ≥85°C / ≤-10°C | ≥100°C / ≤-20°C | High/low temperature on the ESC’s capacitor |
| Motor Temperature | MC-MT-H / MC-MT-L | ≥105°C / ≤-20°C | ≥115°C / ≤-25°C | High/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)
| Alert | Abbreviation | Meaning |
|---|---|---|
| ESC Over Current | MC-RE-0 | ESC detected excessive current draw |
| ESC Locked Rotor | MC-RE-1 | Motor is locked or jammed |
| ESC Over Temperature | MC-RE-2 | ESC temperature protection triggered |
| ESC Over Voltage | MC-RE-6 | Input voltage too high |
| ESC Voltage Drop | MC-RE-7 | Input voltage dropped too low |
Self-Check Errors (Critical - Boot-time Hardware Faults)
| Alert | Abbreviation | Meaning |
|---|---|---|
| Motor Current Output Bad | MC-SE-0 | Motor current sensor malfunction |
| Total Current Output Bad | MC-SE-1 | Total current sensor malfunction |
| Motor Voltage Output Bad | MC-SE-2 | Motor voltage sensor malfunction |
| Capacitor NTC Bad | MC-SE-3 | Capacitor temperature sensor malfunction |
| MOS NTC Bad | MC-SE-4 | MOSFET temperature sensor malfunction |
| Bus Voltage Range Bad | MC-SE-5 | Bus voltage sensor range error |
| Bus Voltage Sample Bad | MC-SE-6 | Bus voltage sensor sampling error |
| Motor Z Too Low | MC-SE-7 | Motor impedance too low |
| Motor Z Too High | MC-SE-8 | Motor impedance too high |
| Motor Voltage Detect 1 Bad | MC-SE-9 | Motor voltage detection 1 malfunction |
| Motor Voltage Detect 2 Bad | MC-SE-10 | Motor voltage detection 2 malfunction |
| Motor Current Detect 2 Bad | MC-SE-11 | Motor current detection 2 malfunction |
| Software/Hardware Incompatible | MC-SE-13 | Firmware/hardware version mismatch |
| Bootloader Unsupported | MC-SE-14 | Bootloader version not supported |
BMS (Battery Management System) Alerts
BMS Temperature Alerts
| Alert | Abbreviation (hot / cold) | Warning Threshold | Critical Threshold | Meaning |
|---|---|---|---|---|
| BMS MOSFET Temperature | BC-F-H / BC-F-L | ≥50°C / ≤-10°C | ≥60°C / ≤-15°C | High/low temperature on BMS power MOSFETs |
| BMS Balance Temperature | BC-B-H / BC-B-L | ≥50°C / ≤-10°C | ≥60°C / ≤-15°C | High/low temperature on balance resistors |
| BMS Cell Temperature 1-4 | BC-T1-H … BC-T4-H / BC-T1-L … BC-T4-L | ≥50°C / ≤-10°C | ≥56°C / ≤-15°C | High/low temperature in battery cell group 1-4 |
Voltage and SOC Alerts
| Alert | Abbreviation | Warning Threshold | Critical Threshold | Meaning |
|---|---|---|---|---|
| BMS High Cell Voltage | BC-CV-H | ≥4.19V | ≥4.20V | Individual cell voltage too high |
| BMS Low Cell Voltage | BC-CV-L | ≤3.2V | ≤3.0V | Individual cell voltage too low |
| BMS State of Charge | BC-SOC | ≤15% | ≤5% | Battery charge level too low |
| BMS Total Voltage | BC-Vtot | ≤79.2V or ≥100.4V | ≤69.6V or ≥100.8V | Total battery pack voltage out of range |
| BMS Voltage Differential | BC-dV | ≥0.2V | ≥0.4V | Voltage 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
| Alert | Abbreviation | Level | Trigger Condition | Meaning |
|---|---|---|---|---|
| BMS Discharge MOS | BC-DSG | Critical | Active 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
| Alert | Abbreviation | Warning Threshold | Critical Threshold | Meaning |
|---|---|---|---|---|
| CPU Temperature | CPU-T | ≥60°C / ≤0°C | ≥80°C / ≤-10°C | ESP32-S3 processor temperature too high/low |
| Barometer Temperature | BARO-T | ≥50°C / ≤0°C | ≥80°C / ≤-10°C | Barometer sensor temperature out of range |
| Barometer Init Failed | BARO-I | Active when false | Barometer 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.