Joined: 20 Jun 2017
|Posted: Mon Nov 27, 2017 6:59 am Post subject: Proper data logging on OBD1 via Arduino
|After some trouble over the weekend getting the car to run well it is clear the biggest issue we face is not being able to log data properly from these ECUs.
The hit tracing is good but is never going to provide the level of detail that we need to find faults and 1 man tune these early motronic ECUs.
I was thinking about how to resolve this and came up with the idea of using an arduino to log signals and output the information via a normal OBD2 output.
This would essentially piggyback onto the ECU and monitor several inputs, most likely creating a couple of calculated channels (i.e. calculated load) and then spitting them out on demand to a normal OBD2 interface.
I did a bit of research and found that someone has created a OBD2 stimulator that throws out random OBD2 signals for testing OBD2 readers.
This was based on an arduino and has a lot of what we need baked into it.
The big change would be to make it sense and calculate the outputs rather than generating them at random.
An Arduino Mega2560 has all we need to do this job and they are cheaper than a pint in some london pubs. I think this can be done for way less than £100 but I know I am going to need help programming and testing this thing.
So who's in?
I have the following so far:
Arduino Mega2560 Generic - £8
CAN BUS shield Elec freeks - £6
EML327 OBD2 interface - £10
Dual VR sensor board - £18
- All input signals need to be limited to 5v max.
- TPS 0-5v signal, generally 0.4-4.5v - Might be ok to just tap as not as precise as we expect.
- MAF 0-5v signal, generally 2-5v - Sugested to use OP-amp buffer to prevent altering the voltage.
- IAT - As TPS?
- CLT - As TPS?
- WBO2 0-5v - Comes direct from gauge, probably just feed it in.
- Crank VR signal - Fine to feed direct but needs diode clamps to prevent over voltage.
- Cam Hall effect, 0-5v max. - Not really needed if V drop of coil 1 is used as reference? Square wave so just tap in.
- Ignition Cyl 1, Grounded 12v signal, Replace Cam signal? Need to sense this without grounding coil. Use inductive sensor instead?
- Injector 1 pulse width, grounded 12v signal
- VSS VR signal? Same issues as crank sensor? Same issue if taken from output to clocks?
- Vanos simple 0-12v on/off signal, reduce to 5v and connect to digital i/o pin.
- VR sensor has posibility to over voltage, Meg2560 needs protection from over voltage (Clamps?) how is the stock ECU protected?
- WBO2 output needs to be incorporated, simple 5v signal? Is it worth logging the stock lambda sensor if WBO2 is available?
- Load signal big issue, need to figure out the eqation used and program this into the Mega2560, check Nefmoto?
- Can power the board from 12v using Vin pin but need to regulate to 12v max?
- Code code code!
Could provide sensor diagnostic without pluging into ECU
Can obviously data log and feed to tunerpro
Can provide true injector pulse width and spark timing
Could use switched output to activate add on systems like a piggyback
Could be used to correct fuel signal to OBC/dash
Could take single vanos signal and control dual vanos with it
Could be used to switch on warning lights or feed back warnings to the ECU
If we can disassemble enough code the ATmega2560 is capable of running modified motronic code natively
Could provide digi dash readouts
Ability to provide more live data than the ECU ADS system.
Could be made to replicate stomp test using TPS connection and feedback the blink codes?
Could interface with a CAN device to control it or/and prevent issues
Last edited by Hairyscreech on Tue Jun 12, 2018 4:49 am; edited 1 time in total