Search My Blog

Thursday, January 2, 2014

Building an Engine Control Unite (ECU, PCM etc) for a Car or Truck from Scratch - by rusEFI

Here's something, that I have wanted to learn about for several years now. Building an Engine Control Unite (ECU, PCM etc) for a Car or Truck. But, it was way over my head. Now rusEFI has actually done it and it's an Open Hardware Project!:) Check it out...


An attempt to build an Engine Control Unit based on stm32.
It's really not that hard.

I am a software developer and cars are just a hobby. Looking at the existing aftermarket engine control units I believe time has come for a simple, clear and usable EFI project. We have boards under $20 running at speeds above 100MHz, we have some great real real-time operation systems - I believe these things combined should make a very simple EFI possible.

rusEfi is now a true standalone ECU - the code controls fuel injection, ignition, fuel pump and idle air valve solenoid. Input signals are cranking events and MAF signal, fuel and timing are currently plain and simple table lookups.
The main goal of this project is to have perfect code - no hacks, just a straightforward understandable implementation. This combined with open hardware design should really make the next generation of aftermarket engine control units!

Right now the next big thing would be to start a couple more of different engines, I am looking for crazy-enough gearheads to join the fun! Step by step, we will make this the next big thing in engine tuning.

Now some technical details:
- STM32F4DISCOVERY is a development board featuring 32-bit ARM Cortex-M4F core, 1 MB Flash, 192 KB RAM processor with floating-point unit. No more horrors of fixed point math.
- ChibiOS/RT real-time operating system is used. Don't let the horrors of peripheral programming hurt you.
- Both GCC/Eclipse and IAR toolchains are supported.
- KiCad is used to design the circuit boards.
- While we are still in the development phase, instead of a one-fits-all PCB we are going to run a set of tiny, function-specific boards like analog inputs or connector board.

Plenty of progress was made since the initial release presented on this video:
- TunerStudio integration
- Multiple engine-specific configurations are supported now.
Stay tuned or check our forum

Read this article to see how simple all this is.

Go there...

6 channel output board:

10 channel analog input board

Next step: Project Frankenstein
rusEfi 176122-6 AMP TE connector breakout board

55 pin ECU connector 64 pin ECU connector 121 pin ECU connector
jbperf VR (variable reluctance) signal conditioner -
eBay: "sd card module"

eBay: "USB TTL"

Hardware Page...

1. How to read RPM - diy tachometer
2. How to feed RPM values to TunerStudio
3. Let's stimulate this ECU
Software-based PWM performance test
Measuring coolant, oil or intake air temperature

Articles Page...

More Videos...

YouTube Channel...

How To Auto's - Building An Engine Control Unit With The STM32F4

Building An Engine Control Unit With The STM32F4
rusEfi - standalone engine control unit based on stm32f4 - YouTube
rusEfi: couple of bugfixes - YouTube
Let's stimulate this ECU - rusEFI
ChibiOS/RT Homepage [ChibiOS/RT free embedded RTOS]

rusEFI • Index page
How to read RPM - diy tachometer - rusEFI
STM32F4DISCOVERY Discovery kit for STM32F407/417 lines - with STM32F407VG MCU - STMicroelectronics
Downloads [ChibiOS/RT free embedded RTOS]
How to feed RPM values to TunerStudio - rusEFI
Software-based PWM performance test - rusEFI
Measuring coolant, oil or intake air temperature - rusEFI
rusefi - YouTube
RUS Electronic Fuel Injection | Free software downloads at

No comments: