(long post ahead)
A Roundabout Story
For a while now, my car gets grumpy when it gets hot. In stationary traffic it gets hot, the fan kicks in and it becomes a bit of a struggle to keep it running at idle as the engine goes lean. I assumed it was to do with the engine ingesting hot air coming out of the radiator as under bonnet temperatures get quite high when the fan is running1
I’d captured a good log of it happening on my last drive so I thought it’d be a good use case for fiddling with VETuner.
The Complexity Problem
My Speeduino ECU is wonderfully flexible, but that flexibility is also complexity. 21 tables, 34 curves, 259 constants and 500+ toggles that need to be set up correctly to get the best out of the engine. When VETuner is logging it captures over 100 fields of data at about 50Hz2 I have a haystack of data, I need to find the needle.
Enter The LLM
This is a number crunching problem, with inference on cause and effect. I set up an interface to an LLM where it can query the log for specific fields and ranges and compare that to the configuration and come up with some hypotheses on why my car ran like a dog 3
This proved very worthwhile as it pointed out that when the fan came on, the voltage at the battery sagged, and I had not set up a voltage correction table for my injectors. Basically the ECU instructs the injectors to open for a period of time (such as 2.5ms), but injectors take some time to respond and fully open. If the voltage is lower, they take longer to open and less fuel goes into the engine. One of the 34 curves applies a voltage correction that lengthens the instructed opening time if the voltage is lower.
It was nothing to do with hot air as I thought, it was not enough fuel getting squirted in. Now that I write this, it is blindingly obvious, but that is with the benefit of hindsight and having something dig through my config, compare it to the log file and say ‘you did a silly thing here’
Saggy Voltage
I was concerned about the voltage drop, I didn’t think that the fan coming on should have that much impact. The fan was one of the first electrical things I worked on may years ago and I wasn’t as good as I am now at these sorts of things. For some mad reason I had too much wiring going on and the fan control relay mounted on the radiator(!!). I saw this as an opportunity to tidy that all up, ensure the fan and alternator wiring were up to spec and generally have a bit of a fiddle.
Last Weekend
I was planning to go to the Hellfire Car Club Big Meet
in High Wycome, about a 50 minute drive away on the M1/M25/M40. However Friday night/Saturday morning I wasn’t ‘feeling it’ so I had a lie in instead. On Sunday I went into the garage to fiddle with the fan.
Stripping back the wiring I found this.
Fundamentally, this is a bit of poor design. That large bolt at the top is the mounting for the upper wishbone. A lot of load goes through here and this bit of tube is effectively flapping in the breeze. Later cars had a triangulating gusset below, but mine doesn’t.

The strip down started, first the radiator came out
This gave me a much better view of the damage
A local mobile car repair guy came around during the week to look at it and I’m waiting now to schedule getting it fixed. I do have a welder but I don’t have the confidence to fix something so important.
I’ll post more as it gets fixed, and I’ll also be posting some more about Engine Expert the LLM thing that started all this off.
On further reflection this is nonsense because hot air is less dense, which would make the engine run rich for a consistent injector opening time. ↩︎
Depending on a number of factors, 50Hz is a good number to aim for, your mileage may vary. ↩︎
And I don’t mean a greyhound. I mean and old basset hound that drools and trips over its ears if it isn’t being blinded by them slapping him in the face. ↩︎