Saturday, 28 April 2018

Stoneleigh - Zero owners area

Stoneleigh National Kit Car Show is next weekend over the bank holiday: Sunday 6th and Monday 7th May. Provided the weather is anywhere near decent I'm intending to go on one of the days - probably Sunday.

GBS has organised a Zero owners parking area in pitch #29 near entrance 2. The show is free entrance any driver attending in a kit car so no reason not to have a look around. It's always interesting to see the variations in cars - even if they are based on the same underlying kit.


Update - Sunday 6th May - Weather looks fantastic, dry and sunny, highs of 22ÂșC, I should get there around lunchtime. Around a dozen or so cars when I arrived lunchtime in area #29.

Monday, 16 April 2018

GN13 is no more...

The number plate isn't anyway.

A little present to mark the car's 5th year on the road: My initials, keep the lucky thirteen and...


GN13GWK is dead, long live the FUN!


Note to self 5 years ago - don't stick number plates on with Sikaflex if you ever want to remove them in one piece!

Sunday, 15 April 2018

AFR Corrections - 1% of 21 is less than one

Penny drops.

My previous MO had been to periodically review the AFR Corrections values - % applied to injection, and apply those en-mass to the injection map. Especially when I'd been tinkering with some part of the map, axis ranges etc and getting more corrections.

But

The injection map has values ranging from ~20 - ~170, whole numbers with a maximum of 255. One byte, 8 bits per value.

If I apply a typical two decimal place -1.05% or +0.76% AFR adjustment to an injection cell containing ~20 even ~30 then the net effect is no change. My AFR adjustment is zero'd and effectively ignored. I've been discarding the bulk of fine adjustments every time I apply AFR corrections!

My guess is the Emerald ECU internally is multiplying the Injection table value by the MSPB value into say a higher precision 16 bit floating or fixed point result, then applying any AFR and other Adjustments as percentages to that before scaling to the ECU clock or interrupt frequency to fire the injectors.

So

New procedure will be:
   1. Review the AFR adjustments: apply and zero anything larger than + or - ~2.5%, 
   2. Leave anything smaller on the AFR adjustments table,
   3. Periodically run the result through the smoothing spreadsheet masking off any cells with an AFR adjustment.

If that procedure written in the manual somewhere and I missed it - just shows sometimes I need to learn the hard way! In this example, after a test drive through Kent, Green boxes showing areas to apply, red those to leave on the corrections table.


I do want to apply the large AFR adjustments - once they hit the current max +-15% threshold, applying them to the injection table will allow the Wideband to keep honing the map on the next cycle.

MSPB Milliseconds per bit

I scaled the entire Injection map using additional maps->injection scaling for a maximum 255. My map has some low rpm anti stall peaks which are always going to be the highest point so they may as well be 255 and increase the available bit range for other cells.

This automatically re-calculated my MSPB to 70ms from the default 100ms giving me a little more fine grained adjustment on the low TPS position cells i.e. minimum adjustment of 1 part in ~30 rather than 1 in ~20. 

The ECU is fascinating, especially when I get a little understanding born out in real world experiment.

Tuesday, 10 April 2018

2018 Calendar from California

Garage enhancement in the form of a calendar to replace the Pirelli one,

Designed and supplied by B&B Industrial Hardware & Metals in California. Kindly sent to the UK by Marlin, A fellow GBS Zero builder stateside. Made me laugh (perhaps nervously) when it turned up unexpectedly, I thought, and told my wife, the package was vinyl wrap.

April is Ms. Katrina Santos.

Just doing my bit to keep the UK/US special relationship alive and well, and keep a car workshop cliche going!

Offer
I have a second one and happy to forward on to a UK postal address - drop me an email if you are interested.

Sunday, 8 April 2018

Injection table smoothing

My Wideband automatically adjusts the injection table based on the mixture sniffed from the exhaust. 

In an ideal world I'd run all combinations of Throttle position (TPS) vs. Revs to completely map the engine - exactly what a rolling road does - in real world road driving you get specific feedback points here and there peaks and troughs of mixture adjustment.

So, a little desktop work with a spreadsheet - the intention being to take the injection map as an input, apply a smoothing algorithm without being too destructive and produce the next iteration of the injection map.

Parameters

My spreadsheet implements a simple algorithm taking into account each injection cell's neighbours/adjacent cells. Its just averaging each TPS/RPM point to be somewhere in the middle of its neighbours.

The smoothing mask then applies those changes to the existing injection map while letting me mask out areas like low RPM/Stall catching which I don't want to change and the 2x areas of Idle and Fast idle tested during MOTs which I manage completely manually.

I'm also reducing the smoothing around the edges to help maintain the overall shape of the map.

The neighbour weighting table represents how much each adjacent cell affects the average - I'm setup to smooth more in the direction of acceleration - i.e. diagonally from low TPS/RPM (top left) to high TPS/RPM (bottom right).

Smoothing applied drives all the values in the smoothing mask - so I adjust influence over the entire table until the graph starts to look more progressive before it erodes too much detail - 75% seems like the sweet spot on this cycle.

The slowest step is copying out the current ECU injection map to the spreadsheet - the only way is manual copying.

Top left - current map, Top right - showing weighted differences to neighbours,
Bottom left - the smoothed map, Bottom right - weighted differences on the output.

This example from a second cycle of smoothing so only subtle changes evident - what should be happening is the bottom right differences are overall less than the top right.

Results

The output is a new injection map, table of changes, and a graph of the new map so I can immediately see if it looks right. I can then tweak the various controls to the amount of smoothing I need. Initial results look and drive well though, I'll give it a few more goes -  drive, add in Wideband feedback, smooth, repeat.

This table showing relative changes, ready to update the ECU map.
Example of the ECU injection map - with just wideband feedback, and then smoothed.

An iterative process - the primary driver on injection is feedback from the Wideband lambda setup, the initial results look good though - a good balance between point adjustments being implemented, smoothed into the map while maintaining the main features.

The smoothing IS destructive - its like weather eroding mountains and filling rivers, but it does seem to counter/help with the issue of limited feedback data points after driving.


Took the car for a drive afterwards - a good 100 miles around Sussex, she still flys and generated another round of Wideband feedback.

...and keep in mind,  I'm just an amateur tweaking/playing, some reading reference, doing what seems reasonable, but certainly nowhere near the kind of knowledge a tuner would have.

Friday, 6 April 2018

Accelerator pedal depressor - on the cheap

Time to prepare for this year's MOT at the end of May.

Requirements

I'm happy with the map - but its reasonably new due to the power change re-works and less than perfect battery compensation table. I have to hit the following criteria.

Idle is easy - foot off the accelerator - just tweak the few cells around 1k revs until its in the zone where the wideband can lock it onto the desired fuel ratio.

Fast idle harder - tested anywhere between 2,500 and 3,000 rpm - and requires an extra pair of hands/static right foot to hold the revs rock steady while I adjust the map. Turns out pedal depressors cost on the order of £40 - so thats not happening.

Extra foot

This evening's 7 minute task:
   Some fibreglass poles I'd bought for the roof and never used,
   A block of wood with an 8mm hole,
   A clamp.

Perfect - the wood becomes my third foot...

...the top of the pole clamped to the wheel holding the revs completely static while I play with the injection and AFR maps.

Total cost 7 minutes time and £0 for materials.

Monday, 2 April 2018

ECU Battery comp, Lambda and Cold start

Successful ECU tweaking session this morning, major changes listed.

All results documented on the ECU page

Battery compensation

The changes to the power distribution gained me a good 0.5-1.5volts which in turn threw the mixture off, slow idle lost etc. The culprit I believe to be an over eager battery voltage compensation table which was still on default values.

The steepness of this curve was noticably changing the mixture as the idle hovered between generating 13.2 and 14volts, 0.3ms doesn't sound like much but its somewhere on the order of 10% of the total injector duty cycle. I levelled the area betwen 12-14 volts and changed the overall shape.

A new avenue of learning opens up - the curve is directly related to the injector performance and should be documented against each type so my next task is to track down the stock battery compensation curve on a Bosch 0-280-155-820 injector!

Lambda

Some fine adjustment on correction gain and update frequency minimised the overshoot on lambda corrections letting it lock on at slow and fast idle. This was trial and error adjusting gain and frequency independently, slowly, to find the sweet spot of response vs. overshoot. I also checked the calibration on the Spartan2 while I was there - all still spot on.

Raised the coolant temp above setting so it doesn't fight with the cold start injection adjustments.


I smoothed out the areas around the MOT pass points and adjusted to closed loop, I dont want the ECU automatically/permanently adjusting mixture in the idle zone. Fast idle on adaptive until I've done some miles and it learns.

Cold start

Revisited cold start, the curve is the right shape, I just shifted it to last longer by changing the engine turns against each row. She starts without any throttle now ~7-10Âș ambient air temperature.

The curve stays higher longer for the first 120 turns, same as holding a manual choke out for around 8-10 seconds.

...and a new blue temperature driven adjustment keeps the mixture relatively rich until the engine is warm.


Start is good, slow idle is rock solid, just need some more driving to train the map.

Update - 6th April - tweaked battery curve and the target AFRs, needs a run now for everything to settle in.

Sunday, 1 April 2018

First run of 2018

Finally

    Snow x2 in Feb - check
    Week of stair-rods rain - check
    Re-assembled the car after modifications - check
    Even gave it a wash - check

16 mile round the block test - Yes - back in the groove!
A few waves from families out for their Easter Sunday walks - you don't have to be driving these cars to enjoy them.

All running fine when moving.

ECU

Adjusted various ECU settings (to follow) on cold start, and had to reset the area around idle which seemed to have leaned itself off too much. I still suspect the improvement in running voltage - a nominal 14.5 volts now has shifted to a different area on the battery compensation table and thrown things off.

Still a hunting slow idle to sort, but everything is basically working.