Fitting sensors
- The car already has usable CLT and TPS sensors.
- There's a connection on the plenum all ready for MAP
- Have installed a Jaguar XJS IAT sensor
- I have removed the old MAF sensor - replaced with drainpipe!
- Old narrowband sensors are not good as they are titania type and too expensive - they have been replaced with a pair of LSU widebands (one not in use, so is really a dead NB sensor.)
Testing the Sensors
I've bench tested the NTC sensors and they work in pots of water at varying temperatures. Here's a picture of my "lab" (kitchen)
I need to add a IAT sensor to the plenum somewhere. Found one in a scrappy for £1. It works nicely. Here's a shot of it installed in the plenum.
I have recompiled the firmware for the non-GM CLT & IAT sensors.
Got this to work a while ago, now have changed the IAT sensor and neither the CLT or IAT work right now!
The Steinhart-Hart equations were solved (by hand in one case!) and they give the correct temperature for the resistance, however the temperature still isn't quite right at low temperatures. Not too much of a problem for CLT really, but it is a concern for IAT.
S-H | CLT | IAT |
A | 1.22E-03 | 6.12E-04 |
B | 2.76E-04 | 3.90E-04 |
C | 7.26E-08 | -4.99E-07 |
VEMS reports 13c for CLT when it should be 20c and 8c for IAT when it should be 17c. Obviously something is being lost in translation between EasyTherm and the firmware.
I used 2700 Ohms as the bias resistor and checked the tables, and they are monatonic. What else have I missed - it's affecting both sensors by approximately the same offset so may well be common. (Eg Vref set somewhere in the ADC?)
Wideband Lambdas
I have done some work on the exhaust so the widebands will fit. Two new bosses have been welded in as the LSUs are bigger than the old sensors.
I've fitted two - one for each bank.
We need to modify the firmware for the 2nd to be supported.
- A very old (read broken) LSU sensor is being used to block the second hole up until the firmware is available
- Doesn't really matter anyway since the car is off the road anyway because the radiator is broken!
[Add pic of modded exhaust]
Firmware mods for 2 widebands
We have some code in the round to be backported (mostly prepared for 2 channels, but some more changes still needed)
- adc.c irq handler
- wbo2.c
- reworked/cleaned up some parts
- we saved some SRAM and even config variables.
- Filtering change for even lower latency
- comm.c and lcd_display.c : log and display the new variables
- fuelcalc.c : for the 2 independent ego-correction, we need to know which cylinders belong to each bank.
- Would it be feasible to assume that 01, 04, 10 and 40 (odd cylider nos 1, 3, 5, 7) are in one bank and 02, 08, 20 and 80 (even cylinder nos 2, 4, 6, 8) are in the other. No variables are required for this as it can be assumed... (The firing order can be determined by physical connections if the engine is odd-fire or something else weird.) I think cylinder numbering is pretty conventional these days, so it should be able to be generalised for any V or flat engine - we just need to know the cylinder count which is already a varaible. We then just need a variable to determine if which o2 sensor is for left bank (odd number on my engine) and right bank (even cylinders) Or we could again infer this from the physical wiring... (Not nice, but it is practical!)
- Only reasonable with camsync ?
- My engine has a camsync - definitely required for this, so you know for sure which o2 to use... Would it be worth having some form of "average" or selection mode in case camsync is not there? Not a simple mean as this would be silly. Do we simply assume the sensor showing maximum richness as "the one" for this event? Do we actually care? - most people who want to control 2 separate exhaust gas streams on one engine will want to do it properly with a camsync anyway, won't they?
- Megatune changes
- At least pump_pw_zero could be independent for the second sensor.
- some variables like max-heat and friends could be dropped, and calculated from battery voltage
- Currently reading the firmware code to see if I can work this one out for myself...
- it's unlikely you would want to do this yourself. If you have much sparetime, work on the (SPI=>) MMC logging (and we'll get the 2nd wbo2 channel: for better project efficiency, since wbo2 is simpler for us, while MMC is same amount of work for us as for you)
- Not enough spare time as I'd like! I have been told I need to tile the kitchen (see calibration pic) or get a divorce... Will see what I can do about logging and SPI. Would be OK, as I have a bit of backround in serial comms.
- it's unlikely you would want to do this yourself. If you have much sparetime, work on the (SPI=>) MMC logging (and we'll get the 2nd wbo2 channel: for better project efficiency, since wbo2 is simpler for us, while MMC is same amount of work for us as for you)
Calibration of WBO2
This is well documented in the wiki and manual, but the q & a here is interesting to keep.
The cal resistor in the wideband sensor is NOT connected. We use the wbo2_calibration setting in firmware instead of the cal resistor. Just measure the cal resistor for verification
A: The calibration resistor is not used in the v3.x wideband controller implementation, calibration is done trough adjustment of the calibration constant until your free-air o2% matches 20.95%. However, measure and document Rcal (allows verification of wbo2_calibration value). Don't forget that wbo2_calibration value is sensor dependent.
Back to: MembersPage/DavidBlades