Skip to content

MykeHaunt/Standalone-Motorsports-Open-Source-ECM

 
 

Repository files navigation

GPL open-source ECU

WORK IN PROGRESS BY: H. Pandit

Build Python License Status Last Commit Contributors Issues Stars Forks

Standalone Motorsports Open Source ECM

The Standalone Motorsports Open Source ECM is a fully open-source engine control module platform designed for high-performance racing engines. Derived from the FOME project, it provides OEM-level control and customization.

Key Features

  • Fuel Injection: Supports sequential and batch injection (up to 12 injectors), 3D VE tables, enrichment, decel fuel cut, and closed-loop AFR using wideband O₂ sensors.
  • Ignition Control: Wasted spark and fully sequential up to 12 cylinders. Includes base, cranking, and idle timing maps, multi-spark, boost retard, dwell settings, and launch control.
  • Sensors: Interfaces for crank/cam (VR/Hall), MAP, TPS, CLT, IAT, oil/fuel pressure, flex-fuel, knock sensors, and more. ~10 analog inputs plus thermistor channels.
  • Outputs: Controls injectors, ignition coils, ETB, fans, pumps, and relays via low/high-side drivers and PWM outputs.
  • Communication: CAN (1 Mbit/s), USB (virtual COM), UART, SPI/I²C. Data logging via SD card, live telemetry, and integration with TunerStudio and FOME Console.
  • Configuration: Real-time tuning, sensor calibration, multi-dimensional maps, closed-loop strategies, and Lua scripting engine for custom algorithms.
  • Safety: Includes rev/boost limiters, fuel/oil pressure shutdown, fault handling with LEDs and limp modes, and debug streaming.

System Architecture

  • Firmware: Runs on STM32F4/F7 ARM Cortex-M with a deterministic main loop. Sensor acquisition, fuel/spark calculations, and actuator commands occur every control cycle.
  • Timing: Precise injector/spark timing via hardware timers synchronized to crank position. Lower-priority tasks like logging run asynchronously.
  • Extensibility: Lua scripts can manipulate sensor/actuator values in each onTick cycle.

Hardware Requirements

  • MCU: STM32F4/F7 with CAN, USB/UART, high-speed ADCs, timers, and sufficient I/O.
  • Inputs: VR/Hall crank & cam, analog sensors (MAP, TPS, IAT, CLT), digital switches (clutch, AC, neutral), flex-fuel, wheel speed, O₂ sensors.
  • Outputs: Injector drivers, ignition coils, ETB PWM, fan/pump relays, logic outputs, CAN stream.
  • Expansion: SPI/I²C for additional sensors or modules.

Setup & Tuning

  • Build: Uses gcc-arm-none-eabi. Build via Make or STM32CubeIDE. Flash with FOME Console, STM32CubeProgrammer, or dfu-util.
  • Tuning: Configure fuel and ignition maps, calibrate sensors, tune PID for idle and ETB, set limiters and enable closed-loop AFR. Use TunerStudio/FOME Console.

Operation

  • Start-Up: Bench test → install → crank → tune. Monitor AFR, temp, RPM, and knock.
  • Live Tuning: On-the-fly edits to tables. Real-time data via CAN or USB. Logs to SD or external logger.
  • Diagnostics: LEDs indicate faults. Debug Mode exposes internal states. Fault codes shown in software.
  • Safety: CRITICAL LED lights on major faults. ECU cuts fuel/spark on sync loss, overboost, etc.

Development & Contribution

  • Toolchain: gcc-arm-none-eabi, Java JDK, Make, CMake. Use GitHub for contributions.
  • Standards: Modular code, real-time safe. Write unit tests and documentation. All code under GPLv3+.

Credits

  • Based On: FOME and rusEFI
  • Maintainer: MykeHaunt
  • License: GPLv3+

Diagrams

System Architecture Diagram

+----------------------------+
|        Engine Sensors      |
| (MAP, TPS, CLT, Crank, Cam)|
+-------------+--------------+
              |
              v
     +------------------+
     |   ECM Firmware    |
     |  (STM32F4/F7 MCU) |
     +--------+---------+
              |
     +--------+---------+
     |  Fuel & Ignition  |
     |    Controllers     |
     +--------+---------+
              |
   +----------+-----------+
   | Injector | Coil Ctrl |
   | Drivers  | (Spark)   |
   +----------+-----------+
              |
+-------------+-------------+
|      Engine Actuators      |
|  (Injectors, Coils, ETB)   |
+----------------------------+

Tuning Workflow

+------------------+
|   Flash Firmware  |
+--------+---------+
         |
         v
+--------+---------+
|  Connect ECU via  |
|  FOME Console/TS  |
+--------+---------+
         |
         v
+--------+---------+
| Calibrate Sensors |
+--------+---------+
         |
         v
+--------+---------+
| Set Fuel/Ign Maps |
+--------+---------+
         |
         v
+--------+---------+
| Tune on Dyno/Road |
+------------------+

Release Notes

See the changelog, or by release.

About

Free Open Motorsports ECU

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors

Languages

  • C 55.5%
  • C++ 28.1%
  • Java 14.5%
  • Makefile 0.9%
  • Lua 0.5%
  • Shell 0.3%
  • Other 0.2%