Renduinix - Arduino Renix Management (Jeep Cherokee 88-91)
-
- Warlord
- Posts: 15
- Joined: Thu Aug 24, 2017 8:25 am
Renduinix - Arduino Renix Management (Jeep Cherokee 88-91)
I found out about this a while ago, this is an Arduino setup to monitor and tweak the Renix engine management system of the 88-91 Jeep Cherokee and others.
https://www.youtube.com/playlist?list=P ... GCfwxb3Wrb
Here's the Code: https://github.com/NickInTimeFilms/Renduinix
I want to start updating the code to work with one of the ACS boards, and run this on a Nano. Looks like a great project considering I have 3 of these jeeps.
https://www.youtube.com/playlist?list=P ... GCfwxb3Wrb
Here's the Code: https://github.com/NickInTimeFilms/Renduinix
I want to start updating the code to work with one of the ACS boards, and run this on a Nano. Looks like a great project considering I have 3 of these jeeps.
Lord Trashpanda - High Priest/Chief Spam Catcher, Giver of the Law.
Re: Renduinix - Arduino Renix Management (Jeep Cherokee 88-9
Going through the code on this... Here's the interesting and useful part, I'll probably throw away the rest of the code:
More Parts List:
- Arduino (the UNO R3 is prefered for beginners)
- NPN Transistor (any will do, I used a 2N3904)
- 3.3K ohm Resistor
- 1k ohm Resistor
- Molex connector 03-09-2159
- Molex pins 02-09-2103
Code: Select all
/*
Glossary
From what I have researched, this is the framing- it isn't correct for some on the GTA. Still working on it. Jeep Data points updated by Nick Risley.
Byte : 4.0L Jeep / 4 cyl renix (R21 turbo) / 13,32 2.0 F3R AMC GTA (confirmed)
Byte 0 : Program Version 1 & 2 / Program Version / Program Version
Byte 1 : PROM Version 3 & 4 / PROM Version / PROM version
Byte 2 : Calibration code 5 & 6 / Engine run flags (bin) / Switch values. C = engine off, nothing selected. 4 = off idle stop
Byte 3 : MAP / MAP / MAP
Byte 4 : CLT / CLT / CLT
Byte 5 : IAT / IAT / IAT
Byte 6 : Battery Volts / Battery Volts / Battery Volts
Byte 7 : Oxygen sensor / Oxygen sensor
Byte 8 : RPM LO byte / RPM LO Byte / RPM LO
Byte 9 : RPM HI byte / RPM HI byte / RPM HI
Byte 10: 9th & 10th PROM / Inj pulsewidth LO byte / Injector Pulse LO
Byte 11: 7th & 8th PROM / Inj pulsewidth HI byte / Injector Pulse HI
Byte 12: Throttle position / Knock sensor
Byte 13: Advance degrees / Advance degrees / Throttle Position
Byte 14: *unknown / Control
Byte 15: *ECT_ADC / Turbo correction value
Byte 16: Baro before start / unknown
Byte 17: *Mode / Failure flags %
Byte 18: Loop/Exhaust, *ALFA - (byte/10=air ratio) {14.7:1) / Road speed
Byte 19: Pulse width / throttle stop
Byte 20: *..? / Throttle position
Byte 21: Throt Sw/Fuel Sync / System Board Error flags %%
Byte 22: *Advance + knock mask / ..?
Byte 23: *warmup / warmup
Byte 24: ST Fuel Trim / Stored errors %%%
Byte 25: *temperature adc errors / recent errors %%%
Byte 26: LT Fuel Trim / Advance + knock correction
Byte 27: Knock / Barometric pressure before start
Byte 28: *..? / Adjustment off MAP
Byte 29: A/C Sw/Request / Switch values %%%% / Switches possibly. changes when air is selected, makes sense
Byte 30: 11th & 12th PROM / Errors %%%%%
For bitRead(x,y) x=value byte, y= position where bit 7 = 128/msb, bit 0 = 1/lsb
% 7:Bad injector/6:TDC unable to be found/5:Roadspeed/4:Fuel pump/3:MAP bad/2:Knock sensor bad/1:Crank Pos Sens bad/0:unkown
%% 7:Bad PROM version/6:Injector circuit fault/5:CPS variance/4:EEPROM CRC/3:ROM CRC/2~0:unknown
%%% 7:TPS open/6:TPS short/5:CTS open/4:CTS short/3:IAT open/2:IAT short/1:EGR open/0:EGR short
%%%% 7:Unknown/6:unknown/5:Sync(cam pos on 6pot?)/4:unknown/3:starter/2:AC engage/1:AC request/0:PARK (gears)
%%%%% 7:Ignition module bad/6~4:unknown/3:oxygen relay/2:latch relay/1:aircon relay/0:unknown
*/
- Arduino (the UNO R3 is prefered for beginners)
- NPN Transistor (any will do, I used a 2N3904)
- 3.3K ohm Resistor
- 1k ohm Resistor
- Molex connector 03-09-2159
- Molex pins 02-09-2103
OPFOR - Moderator of the Moderated.
Re: Renduinix - Arduino Renix Management (Jeep Cherokee 88-9
looks, kinda cool, but why? better fuel economy, trouble shooting?
Re: Renduinix - Arduino Renix Management (Jeep Cherokee 88-9
Trouble shooting.
OPFOR - Moderator of the Moderated.
Re: Renduinix - Arduino Renix Management (Jeep Cherokee 88-9
Ok, so after a bit more experimentation, and looking at the documentation of the whole thing I think I have a fairly good understanding of what's going on here, and propose some possibilities for doing other cool stuff.
First, the basics are:
1) A board that converts the output of the On-Board Computer from Transistor out to a TTL-Serial type output.
2) Takes Serial type output, at 62500 baud
3) Parses output in the arduino to develop output.
Rather than directly reversing this, it seems useful to use this as the basis for some troubleshooting application that's computer based, it would be super-easy to just take serial IO and then parse it in PERL and develop a running counter system. This could also be used on more advanced systems like RasPi and others.
I think it's super cool that he's doing it all on an arduino, but I think it kinda leaves some things to be desired as far as better understanding the standard that was used to make this work. In theory at least, this looks like a pretty-simple method for starting out. I'm going to design up some boards for doing the OBC->Serial and then plug it into a computer and see what I get. It may also be interesting to just make the OBC->Serial an OBC->USB (maybe both).
First, the basics are:
1) A board that converts the output of the On-Board Computer from Transistor out to a TTL-Serial type output.
2) Takes Serial type output, at 62500 baud
3) Parses output in the arduino to develop output.
Rather than directly reversing this, it seems useful to use this as the basis for some troubleshooting application that's computer based, it would be super-easy to just take serial IO and then parse it in PERL and develop a running counter system. This could also be used on more advanced systems like RasPi and others.
I think it's super cool that he's doing it all on an arduino, but I think it kinda leaves some things to be desired as far as better understanding the standard that was used to make this work. In theory at least, this looks like a pretty-simple method for starting out. I'm going to design up some boards for doing the OBC->Serial and then plug it into a computer and see what I get. It may also be interesting to just make the OBC->Serial an OBC->USB (maybe both).
OPFOR - Moderator of the Moderated.
Re: Renduinix - Arduino Renix Management (Jeep Cherokee 88-91)
FYI, you can buy brand-new OBDII connectors at JK Electronics in Westminster. Like it's a normal retail item there.
Re: Renduinix - Arduino Renix Management (Jeep Cherokee 88-91)
Well, that's the problem, the Renix jeep isn't OBD-II, it's ORB (IIRC) has a totally different control layout and pinout.
OPFOR - Moderator of the Moderated.
Re: Renduinix - Arduino Renix Management (Jeep Cherokee 88-91)
From what I remember, it's basically the same comms protocol as EFI Renaults of the time used. It's manufacturer-specific as a result, but here's what I remember off the top of my head about that:
Renault had their own proprietary sorta-scantool for the EFI engines. This means the 1.4 and 1.7 found in the Alliance and Encore, as well as the 2.0 in the GTA (which was basically an Alliance underneath, but with an engine specific to the US market). This applies from 1985/6 up to 1988 ('83 to '85 Alliances and Encores were carburetted depending on market; all GTAs were injected and '87-'88 only models).
On the 6-cylinder side, there was the XJ with the 4.0 from 1987 on and the 1988-1992 Eagle Premier with the PRV V6 (same as the 1990-1992 Dodge Monaco).
Reason I mention all of this: a 1988 to 1992-era scantool suitable for the Eagle Premier with the V6 may also work for Renix XJs. I want to say that later Premiers/Monacos used Bosch EFI, but don't recall 100% on that one. Either way, Premier scantools are probably going to be cheaper than XJ scantools because, well, nobody bought Premiers or Monacos. They'd also be ripe for reverse-engineering.
The AMC/Renault Medallion may be a long-shot model to look at for scantools. It's an oddball in that it used a 2.2-litre 4-cylinder motor shared only with the 1986-up Peugeot 505 in the US, but the Peugeot did not use the same engine management as the Renault (again, IIRC). That said, the Renault may use the same protocols as the XJ, etc.
I don't remember if the Renault/Renix ECUs stored codes. I think that they did, and that they could be recalled by grounding a particular pin on the harness and switching the ignition on and off while watching the check engine light for flashes that corresponded to certain codes. Then again, I could be confusing this with the behaviour of the Bosch Motronic 1.3 ECU in later EFI Peugeots, so take that with a grain of salt.
Where all of this gets complicated is that with Chrysler buying out AMC/Renault in 1988, a lot of the Renault electrics and electronics were gradually phased out on legacy models through about 1993. This makes it difficult to pin down compatibility to exact dates - I've seen Premiers with parts stamped Renault, AMC, and Chrysler on the same vehicle.
I'll ask around the Renault folks for confirmation of this. They probably can't answer protocol-specific questions, but should at least be able to give some idea as to compatibility.
One other thing to consider: Bosch K-Jetronic injection may be a possibility for a retrofit to a Renix XJ. This would probably involve some not inconsiderable physical rework, but it would give you mechanical fuel injection. Early injected Porsche 911s used the system in a 6-cylinder configuration, as did the Peugeot 604 V6 and DeLorean as well as some BMWs and Mercedes. It was also used in early 4-cylinder injected Peugeot 505s as well as a couple of others, but given its design (fuel distributor vs. common rail) you're better off sticking to the 6-cylinder cars if you're looking into it.
Frankly, I think the Renix system is better than K-Jet, but from a hardening perspective K-Jet has some advantages (and disadvantages, mainly in making the AFM work).