I decided this needed its own thread and the Kernel/Hardware thread had reached its logical conclusion. For those who are new to what I am doing, check out that thread for some hardware and build chain details. viewtopic.php?t=9374
A short intro on EFIGenie. It is an engine management suite that I have been developing for the past 8 years. It is built on top of an abstraction layer and I have run the firmware on many different platforms, STM32 ARM, ESP32 Xtensa and RISCV, W806 C-Sky, and just recently MPC5566 PPC. It is quite different than any other ECU firmware out there, OEM, Aftermarket, or Open Source. The entire firmware philosophy is built around reusable blocks that get instantiated and linked together through the configuration binary. Because everything is in reusable blocks and specialized operations, the code is very readable and very easy to add new functionality. 90% of functionality can all be done through the configuration GUI using the core blocks of interfacing with hardware pins and doing math operations and table lookups. The other specialized pieces can be easily added as an operation to the firmware. You don't have to understand the entire firmware to be able to add a new operation and link it into your workflow.
Here is a link to the EFIGenie repository. If you go into the source you may notice how little code there actually is. That is because most of the reusable blocks are in the OperationArchitecture and EmbeddedIOOperations repositories since they are just general blocks and not ECU specific. https://github.com/FL0WL0W/EFIGenie/tree/main
Here is a link to the GUI Editor. There are still a few rough edges, but the core functionality is there. https://fl0wl0w.github.io/EFIGenieEditor/
See below for how you might setup a formula for some special parameter with a new arbitrary lookup table
Now for E78 news. I have successfully finished the abstraction layer needed for running EFIGenie on an E78. I have it running on the bench with a simulator and measuring the performance with an oscilloscope. Since running a standard 58X (60-2) reluctor pattern on these wouldn't be much fun since the stock firmware can do that. I decided to test it out with the older 24X reluctor pattern since that is something the E78 was never able to do. I am seeing about 7 us of precision with scheduling all 8 cylinders ignition and injection events in wasted spark mode (which is the worst case and double the number of event). That performance is very good and exceeds many of the other open source firmwares. I will also point out that this is not using the eTPU, that performance is from interrupts alone. In the future I may utilize the eTPU more by scheduling the dwell/fire and open/close events on the eTPU channels themselves and also by capturing the transition tick of the reluctors instead of relying on interrupts alone. Doing that will make the precision basically perfect, but for now the precision is more than good enough. Current precision is less than half a degree precision at 10k RPM. The scope is set to infinite persistence and ran for a few days and as you can see there have been 0 glitches.
I have a discord for EFIGenie as well If you want to pop in and chat. https://discord.gg/kS3cUSNwR
E78 Running Custom Code (EFIGenie)
-
fl0wl0w
- Posts: 32
- Joined: Thu Jun 21, 2018 4:44 pm
- cars: L83/8L90 swapped 2013 W204 Mercedes, 1986 LS3 Swapped BMW E30, 1995 LS swapped GMC Truck, Custom Vehicle
E78 Running Custom Code (EFIGenie)
You do not have the required permissions to view the files attached to this post.
-
antus
- Site Admin
- Posts: 10013
- Joined: Sat Feb 28, 2009 10:34 am
- cars: TX Gemini 2L Twincam 8psi
TX Gemini SR20 18psi
Datsun 1200 Ute
Subaru Blitzen '06 EZ30 4th gen, 3.0R Spec B
Subaru WRX 2007
Re: E78 Running Custom Code (EFIGenie)
Interesting project, will be good to see what comes of it. I did wonder what it was. The E78 is a good low cost target.
Have you read the FAQ? For lots of information and links to significant threads see here: http://pcmhacking.net/forums/viewtopic.php?f=7&t=1396