OpenTurbine guide

OpenTurbine hardware and wiring guide

Build a safe interface around the ESP32; a GPIO pin is a logic signal, never load power.

This guide covers the physical interface for an OpenTurbine ESP32 turbine ECU. It is not a universal turbine wiring diagram. Keep fuel, ignition, starter, and other load power disconnected while checking the installation.

New to electronics or microcontrollers? Use the complete beginner user guide first. It now contains the enlarged wiring diagram, wire-by-wire connection patterns, every supported input/output purpose, every controller and safety function, calibration, sequencing, dry testing, and a source-generated reference for all Config fields.

Supported ESP32 targets

Use a Classic ESP32 with at least 4 MB flash, or an ESP32-S3 DevKitC-1-compatible board with at least 8 MB flash. The universal S3 image runs on 8 MB and 16 MB modules and does not require PSRAM. ESP32-C3 and other unlisted families are not supported by the normal Windows setup path. Select the exact target in Hardware before assigning pins, and never copy a classic-ESP32 pin assignment to an S3 without rechecking it.

Installed Channel Inventory

The Hardware page is the source of truth for what is physically connected. Add each fitted input and output once, give it a short unique stable ID, select its electrical driver, assign a valid GPIO, and set the real engineering range. Display names can change later; stable IDs should not change after sequences, rules, controllers, or telemetry refer to them.

Inputs can represent digital switches, analog measurements, pulse/frequency sensors, or RC PWM commands. Outputs can represent relays, proportional PWM loads, or servo/ESC commands. Set boot-safe and fault-safe output demand deliberately. Resolve every missing requirement, invalid-channel message, and GPIO conflict before saving; the firmware blocks unsafe or ambiguous hardware configurations rather than guessing.

On development boards, configure shared I²C and SPI wiring once under Shared sensor buses. Its normal collapsed view reports Enabled/Disabled; Edit buses opens the pins and supported-device help. Current I²C devices are TCA9554, TLA2528, and NAU7802. Current shared-SPI thermocouple interfaces are MAX6675, MAX31855, and MAX31856. DS18B20 uses a separate OneWire GPIO. A flashed PCB profile owns these physical connections and shows board-labelled ports instead of editable raw topology.

Power supply

Power the controller from a clean regulated supply within the board manufacturer’s limits. Fuse the ECU supply and each load supply appropriately. Keep starter, pump, motor, and ignition current away from sensor wiring and the ESP32 ground return. Use connectors, wire sizes, strain relief, and enclosure protection appropriate for vibration, heat, and current.

3.3 V GPIO limits

ESP32 GPIO is 3.3 V logic and is not 5 V tolerant. Measure every external signal at the ECU pin under normal and fault conditions. A 5 V sensor, relay module, magnetic pickup, or actuator must use a divider, level shifter, isolator, or suitable driver/conditioner before it reaches a GPIO.

ADC restrictions

On a Classic ESP32, use ADC1 GPIO 32-39 while Wi-Fi is active. GPIO 34-39 are input-only, and ADC2 is unreliable with Wi-Fi. On the supported ESP32-S3 target, use the input choices provided by the Hardware page; native USB and flash/PSRAM pins are not general-purpose replacements. Resolve the Hardware page’s conflict warnings rather than forcing a pin choice.

Driver electronics

An ESP32 output does not power a pump, valve, starter, relay coil, glow plug, or igniter. Use a suitable logic-level MOSFET driver, protected automotive driver, relay module with a valid 3.3 V input, ESC input, or dedicated ignition stage between the GPIO and the load. Test active-high/active-low behavior with the load supply disconnected first.

Flyback protection

DC relay and solenoid coils need suitable flyback suppression unless the selected driver already includes it. Use the protection method specified for the driver and load; a generic diode is not appropriate for every switching speed or shutdown requirement. Keep suppression physically near the inductive load or driver as its documentation requires.

Grounding

Join logic grounds only where an interface is not intentionally isolated. Use a deliberate return path so starter, pump, and ignition current cannot lift the sensor reference. Keep thermocouple, RPM, analog-sensor, and communication wiring separated from high-current and high-voltage wiring. Shield and filter long/noisy sensor runs as the sensor and interface documentation requires.

RPM sensors

N1/N2 inputs require a clean, conditioned 3.3 V-compatible pulse signal and the correct pulses-per-revolution value. Open-collector sensors normally need a pull-up to 3.3 V. Magnetic pickups need a dedicated conditioner or comparator; do not connect an unbounded pickup waveform directly to a GPIO. Verify displayed RPM with an independent tachometer before enabling overspeed protection.

Thermocouple interfaces

TOT/EGT and TIT thermocouples connect through supported converter modules, not directly to the ESP32. Select the actual converter type and connect its SPI lines and chip-select as required. Several SPI modules may share the bus but need individual chip-select pins. Verify thermocouple type, polarity, connector metals, cold-junction behavior, and probe location before using a temperature limit.

Pressure sensors

Most pressure transducers need a regulated supply, a common sensor ground, and a conditioned output that remains within the ADC range. A typical 0.5-4.5 V automotive sensor cannot connect directly to a 3.3 V ADC. Use correctly calculated scaling and protection, then calibrate at zero and against a trusted gauge with the real plumbing depressurized.

Pump control

Drive fuel, oil, or scavenge pumps through a rated driver or ESC, with a separately fused load supply. Confirm the command direction and minimum reliable output without fuel pressure. Do not treat a GPIO, breadboard trace, or undersized relay as a pump power path. Test physical fuel shutoff independently from any software command.

Starter control

Use a rated starter contactor, motor controller, or air-start valve driver for the starting system. Keep high starting current out of the ECU supply and ground reference. Test direction, interlocks, and timeout behavior with the engine made safe. The controller must not be the only means to stop starter energy.

Ignition control

Use the ignition system’s specified driver and isolation method. Never connect an ignition coil directly to an ESP32 output. Keep high-voltage ignition wiring away from sensor and communication wires, verify that vapors are cleared before a test, and retain an independent means to remove ignition and fuel energy.

Independent emergency stop

Install a physical, independent emergency stop that removes fuel or relevant load power even if the ESP32, browser, Wi-Fi, or firmware is unavailable. Test it from a safe position before every fueled attempt. A dashboard STOP button is useful but is not an independent emergency stop.

Dry wiring checklist

Before applying load power, confirm:

For the setup order and calibration workflow, continue to the OpenTurbine user guide.