For anything you'd like to see added to Speeduino
#63885
The deadtimes change because of the change in magnetic force, the change in magnetic force is proportional to the square of the current and the current changes because the resistance of the copper winding changes with heat. The resistance change is approx. 40% over 100C. The inductance of the injector does not change appreciably, at least in my experience.
How much variation do you get in fuel temperature? the injector temperature will be a combination of fuel temperature, coolant temperature and intake air temperature. OEMs can model that with a reasonable degree of accuracy and correct for it. If you want to compensate for that in an aftermarket ECU then you would really need to measure the temperature of the injector itself or measure the current flowing through it to derive the coil temperature. The alternative, as I suggested above is to use a Peak/Hold driver which delivers a constant current and therefore a constant magnetic force.
#63900
So I decided to go into the firmware code to see if I could figure out how to make a change to fuel temp correction to apply to just deadtime value rather than whole pw. I thought if i could do that successfully it would better suite my setup.

I went into the corrections folder and changed this

currentStatus.fuelTempCorrection = correctionFuelTemp();
if (currentStatus.fuelTempCorrection != 100) { sumCorrections = div100(sumCorrections * currentStatus.fuelTempCorrection); }

to this

currentStatus.fuelTempCorrection = correctionFuelTemp();
inj_opentime_uS * currentStatus.fuelTempCorrection;

and uploaded the modded firmware into ecu to test in the car. It was raining so I could only test in the garage. It appears that the fuel temp correction table is only applying correction to deadtime value now rather than whole pulse width, which is what I was hoping. However I will not be 100% certain until I can take out the car to drive and log under various loads to more fully test. I wont have a chance to take it out until monday, so hopefully will have good news then.

Thanks to all who replied with other suggestions and insights. I may implement one or two of those suggestions later as well.
#63988
Before taking car out to more fully test the above change I looked at the fuel temperature correction again and decided to change to this before first real test drive.

currentStatus.fuelTempCorrection = correctionFuelTemp();
{ inj_opentime_uS = configPage2.injOpen * currentStatus.fuelTempCorrection; }

The code change in the post above may have worked as well to accomplish my goal. However after thinking on it further my thought process was that since it already had code for battery volt correction to injector deadtime I would just copy parts of that code to apply for fuel temp correction, which is basically what I wound up doing. I've driven the car now and it seems to be doing what I wanted. It appears I can change percentage of correction based on fuel temps that I believe is now only being applied to deadtime as it has the expected correction effect at idle and low loads and not nearly as much at high loads as before when the correction was applied to the whole pulse width calculation. Have some retuning to do now, but pleased with the result from the initial drive testing, although still lots of testing needed to fully verify.
#63989
I'm not convinced that this is the correct approach, the fuel temperature affects the density of the fuel and therefore the pulse width, the opening time would be a function of the injector temperature, although I do I wonder how much of the fuel temperature rise is caused by heating from the injector itself.
If it works for you then that is good, I am sure that you are correct in stating that the correction should not apply to the complete pulse width, I've never seen it done that way before.
User avatar
By PSIG
#63991
I am also not convinced this is a direct approach. I see a lot of assumptions here, and while it may improve your issues to some degree, my focus is on the correct (best) fuel and injector heat solution(s) for the majority of "hot" fuel systems. This would include common dead-head fuel system compensation. Without confirmation of the impacts of specific sources of fueling change, we may have a workaround that only works sometimes, to some level.

I know you are working towards a solution for your specific issues, but I ask that you continue to dig into where the real issues and solutions lie, rather than assumptions and a simple functional change for the better. You could be exactly right, or maybe not.

Heat-sensitive injectors such as yours would be a good test mule for latency testing in a pot of solution, heated to test the relative changes in resistance, inductance and both opening and closing latency. The values are unusable without pressure, but directly relative to changes in temperature. This data could then be coupled with run-results, including fuel temperature, for comparisons of injector heat data to fuel temperature data for relative impacts and how they affect operation.

Keep in-mind that lower loads and a shift in time will affect the non-linear flow function, as I said early-on and just as you seem to be seeing, but not the whole picture. ;) Let's be sure we are addressing the real culprits in your issue, while also learning and considering all those that will follow with similar and different injector heat issues. This is a learning forum for everyone, developing solutions for most, and your topic is a good example of it. Thanks! 8-)
#64006
PSIG wrote: Thu Jul 13, 2023 4:30 pm Heat-sensitive injectors such as yours would be a good test mule for latency testing in a pot of solution, heated to test the relative changes in resistance, inductance and both opening and closing latency. The values are unusable without pressure, but directly relative to changes in temperature. This data could then be coupled with run-results, including fuel temperature, for comparisons of injector heat data to fuel temperature data for relative impacts and how they affect operation.
All injectors are susceptible to the same temperature variations, large injectors may show the issue more obviously because small changes can make a big difference at low pulse widths, location makes a big difference, injectors mounted close to the head in a heated manifold have a more stable temperature. You have to test on the engine to see if coil temperature is a real issue or not. Ideally you test this with a current probe and log rise time, coolant temp, air temp and fuel temp. and battery voltage
On the OEM ECUs that I worked on we used peak-hold injector drivers to maintain a constant energy, the output from the peak comparator was fed back into an input capture channel so the ECU could constantly monitor rise time and correct for variations in temperature.
#64012
PSIG wrote: Thu Jul 13, 2023 4:30 pm I am also not convinced this is a direct approach. I see a lot of assumptions here, and while it may improve your issues to some degree, my focus is on the correct (best) fuel and injector heat solution(s) for the majority of "hot" fuel systems. This would include common dead-head fuel system compensation. Without confirmation of the impacts of specific sources of fueling change, we may have a workaround that only works sometimes, to some level.

I know you are working towards a solution for your specific issues, but I ask that you continue to dig into where the real issues and solutions lie, rather than assumptions and a simple functional change for the better. You could be exactly right, or maybe not.

Heat-sensitive injectors such as yours would be a good test mule for latency testing in a pot of solution, heated to test the relative changes in resistance, inductance and both opening and closing latency. The values are unusable without pressure, but directly relative to changes in temperature. This data could then be coupled with run-results, including fuel temperature, for comparisons of injector heat data to fuel temperature data for relative impacts and how they affect operation.

Keep in-mind that lower loads and a shift in time will affect the non-linear flow function, as I said early-on and just as you seem to be seeing, but not the whole picture. ;) Let's be sure we are addressing the real culprits in your issue, while also learning and considering all those that will follow with similar and different injector heat issues. This is a learning forum for everyone, developing solutions for most, and your topic is a good example of it. Thanks! 8-)

Extremely unlikely I will be testing the injectors any time soon in any more extensive manner since the code change seemed to do what I was looking for. I do plan to eventually do a few other things in regard to fuel temperature, but mostly to test to see if there can be a performance gain. I may test super cooling the fuel through a cool can using ice at the track to see if any gain in performance. If no gain it will not stay on the car. As I said, although the car is occasionally street driven, the primary concern is the performance for 1/8th mile drag racing. If anything I add offers no performance improvement but adds weight or complexity it will not stay on.
The car in its current form has some systems that are somewhat cobbled together, but it is very quick for what is is. It has run 6.50s @ almost 110mph in the 1/8th with a mazda 1.8l engine. The driveline has been the limiting factor. So I have tons of stuff to do that is more pressing to get done.
I am in the process of collecting and building some parts to swap transmission to a ford c4 and ford 8.8 rear. I would like to see if I can get to 5.90s or 6.0s in the 1/8th using the mazda engine. So far I have the c4 transmission I built that should be good to about 600hp or so, I.ve got the bellhousing adapted. I have a 5000rpm stall converter adapted. I have a ford 8.8 rear and extra subframe to start building on soon. When I get everything in hand to do the driveline I plan to pull the car completely down to re-wire, swap entire driveline (keeping the mazda engine platform), enlarge the tubs and redo the car in a clean fashion. I have a thread on miataturbo titled "rapid spool turbo with on-board compressed air in the exhaust" to show the evolution of this project.
Injected 2 stroke Bultaco

Alternator testing. Its a 3 phase circa 200w alter[…]

BMW E23 M30B28

Okay, I managed to start the engine. The &quot[…]

NO2C crank signal issues

Once again PSIG, thank you. Note this is set up fo[…]

I've managed to dig up a few obscure wiring diag[…]

Still can't find what you're looking for?