Jump to content

Setting up AEM X-series wideband over CAN on G4+ PNP


Kenian
 Share

Recommended Posts

Hi Guys,

Just trying to figure out how to wire my new AEM X series wideband into my G4+ using the CAN output from the wideband controller. I am a complete newbie in regards to the CAN network. I am looking at purchasing the below harness from NZEFI but have a few questions:- 

https://www.nzefi.com/product/nzefi-link-g4-g4-plug-ecu-can-cable/ 

I am a little bit confused as to where the power and ground come into the picture? I was under the impression i could just wire the CAN High and CAN Low coming out of the controller to the CAN High and CAN Low coming out of the ECU harness (little white plug).

Does the CANBUS system need power to work? If you have a read of the NZEFI link it says " In order to supply power and ground to the devices(s) on your CAN-bus, power and ground wires are also included in the loom in the form of a flying lead." What exactly does it mean by supply power and ground to the devices on your CANBUS? The wideband is already supplied with a power and ground. 

Also do i need to employ a 120 ohm terminating resistor or is this only used when you create a BUS with more than one device on the BUS? 

I have looked at the wideband manual and done a bit of Googling but had no luck finding a meaningful answer. 

Any help much appreciated.

Thanks 

Kenian 

 

Link-G4-Plug-in-ECU-to-CAN-Cable.jpg

Link to comment
Share on other sites

The CAN H/L are the communication wires - these are the only 2 wires that get connected to the ECU.  The Red/black are to supply power to the wideband controller, for these you need to find your own source in the car - normally would be connected to a relay/fuse that is only live when the ign switch is on. 

Yes, you should have a 120ohm terminating resistor connected across the Can H/L wires somewhere near the wideband connector.

Link to comment
Share on other sites

  • 3 months later...

Quick question, I remember seeing this thread where the ppart number of the 5 pin white connector was given for the canpcb cable that plugs onto the ecu, but I can't seems to put my hand on it.

Would you mind giving it again?

edit: found it.

 

Link to comment
Share on other sites

  • 4 weeks later...

So I've gave my first shot at CAN programming.

I've read through the link documentation as well as the aem Xseries one (https://www.aemelectronics.com/files/instructions/30-0300 X-Series Wideband UEGO AFR Sensor Gauge.pdf)

I've first integrated the lambda value, which I then see that there was a stream already defined, so double checked and  I've remarked that in the doc they write .0001 lambda per bit, so for my understanding it would be a 10000 divider, but then in the predefined stream divider is 10.

Could you please enlighten me why?

then I wanted to integrate lambda error/status.

what I found regarding the status is the following, the ecu is expecting these values:

1-off  2-disabled  3-initialising  4-calibration 5-heating 6-operating.

So with the bit 48 of the xseries stream I can get  "lambda data valid" that I woud like to translate as heating if 0 and operating if 1, hence the 5 offset.

my last question is, what does the ECU expect on the "lambda 1 error (status)" can input? are these the same as the internal lambda controler? 0 no error and 17 for 17 Invalid Pump Current for example?

test stream attached.

edit: I did try it on the car without success. I disabled the AN volt 5 that was my previous Lambda1 input, tested both CAN streams (the one in can folder and my test stream) without success. I checked on the gauge and it was sending on ID 1 which corespond I believe to the extended 180 in the calibration file (see below)

https://drive.google.com/file/d/1rLMm8Jex7UlP3hQTVr5M4JD1kOSw1JXm/view?usp=sharing

anything i'm doing wrong?

no error reported in the runtime CAN window, all in green.

thx

 

 

first try xseries.lcs

Link to comment
Share on other sites

Use the X-Series template that is included in the software.  You will not be able to use the status or error data as AEM enumerations for status and errors are different to ours.  You could input them as CAN AN Volt channels as a diagnostic if you really want to but it is unlikely useful.  

9 hours ago, dx4picco said:

I've remarked that in the doc they write .0001 lambda per bit, so for my understanding it would be a 10000 divider, but then in the predefined stream divider is 10.

Link use a resolution 0.001 for lambda so there is already a native divider of 1000 built in to the software.  AEM use 0.0001 resolution, hence divide the input by 10.  You can use the test calculator to see how it works.

 

9 hours ago, dx4picco said:

I checked on the gauge and it was sending on ID 1 which corespond I believe to the extended 180 in the calibration file (see below)

ID should be 384 as per the help file article for the X-series.  AEM use Hex, Link ID's are in decimal.  180 hex is 384 decimal.

Link to comment
Share on other sites

I indeed overlooked the hex part of it. it does work with /10 and ID 384.

However for the sake of it, I did try the thing with the status and It did work like I wanted to. Of course I only can get only 2 different status and not 6 like the can lambda, but I get the "heating status" and the 'operating" status thanks to the byte 48.

Furthermore the error status seems also to be on OFF with value 0 on byte 57 so that seems also to corespond to what I thought. I couldn't get the aem to throw an error for now so I cannot say if the error status changes like it should.

Link to comment
Share on other sites

47 minutes ago, dx4picco said:

Furthermore the error status seems also to be on OFF with value 0 on byte 57 so that seems also to corespond to what I thought.

As I said earlier you can use the test calculator to see how any CAN input or output works.  

GfIr6QN.png

 

The problem with the AEM device is when it goes into error condition it still outputs a lambda of 1.00 which is considered a valid lambda so the ECU will not disable CLL etc.  I guess at least it will correct richer rather than leaner.  The Link Lambda and most other 3rd party devices I know of all output Lambda = 0.0 when in error so the ECU knows its invalid and will either remove it from the lambda average calculation or disable CLL if there is only a single sensor.

Link to comment
Share on other sites

  • 3 months later...
  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...