• We've upgraded and reskinned the forum. Notice something off? Email us at [email protected] and we'll fix it.

V1 Wiring Wideband O2 Sensors

M
Just FYI I found the old Version 4 VCM Suites online, but I can't downgrade. Once you are on version 5 you are set to version 5. I hope this will not create an issue with my Dyno Session. The Tuner said he would recommend using my device with my credits on his computer. He has a professional wideband.
 
David
@Rauq I ran into your post looking for the best way to connect a wide band. Maybe you can help me out snice it seems like you got it packed down. I have an AEM 30-0300 which I cant use for what im looking to do. Im bluiding a digital dash that I can display multiple parameters including AFR. I need a 5V output to connect to the digital dash. Pretty much all wide band gauge use it.

Here is the curveball, I need to be able to remove the gauge snice not longer needed and also use HPTUNERS for tuning.

I know Spartan 3 Lite v2 and AEM make a standalone unit that I can connect to my digital dash.

Question is would you know if I go the AC route like you posted. Everything would work correctly snice I would hav to split the 5V for the dash and the AC line?

Sorry for the long post, also I have the MVmpvi3 which I can also use the prolink+.not sure what your thoughts on that.
 
Ross
The AEM does have a 5V analog out signal on the white and brown wires, that you could wire to your mpvi3 prolink+ or your digital dash.
The AEM also has a serial out signal on the blue and black wires, which I ran thru a serial to USB converter, so that I can feed that back into the laptop which is running HP Tuner's VCM Scanner, and use the data to tune the engine.
 
Last edited:
David
The AEM does have a 5V analog out signal on the white and brown wires, that you could wire to your mpvi3 prolink+ or your digital dash.
The AEM also has a serial out signal on the blue and black wires, which I ran thru a serial to USB converter, so that I can feed that back into the laptop which is running HP Tuner's VCM Scanner, and use the data to tune the engine.
Do you think you can splice the 5v analog for the dash and the prolink+?

Im assuming it would be less wires if I can splice the 5v for the dash and wire it to the AC or another pin that the HPTuner would read automatically. Thought?
 
Ross
I would try splicing it and see if it works. Compare the spliced AFR readings vs just the running prolink+ (remove the digital dash), and see if there is a difference. My electrical meter doesn't change the voltage when measuring, so I would think that would be the same for the prolink and the digitial dash.
 
Last edited:
David
I would try splicing it and see if it works. Compare the spliced AFR readings vs just the running prolink+ (remove the digital dash), and see if there is a difference. My electrical meter doesn't change the voltage when measuring, so I would think that would be the same for the prolink and the digitial dash.

Guess ill order a wide band standalone unit then try and wire everything up. Also have to get the prolink+ so I can wire that up.
 
B
Do you think you can splice the 5v analog for the dash and the prolink+?

Im assuming it would be less wires if I can splice the 5v for the dash and wire it to the AC or another pin that the HPTuner would read automatically. Thought?

You can splice a 5V signal, and its high impedance so you should be fine on current draw. The only times you'd have issues splicing would be for low impedance devices when the transmitting device couldn't handle the increased current draw, but high impedance devices barely draw anything
 
Rauq
The easiest would be if your digital dash can read AC refrigerant pressure and tell the digital dash that's actually AFR and not refrigerant pressure. Then you'd just wire that in there and both HP Tuners and your digital dash would be happy. No need for Prolink+that way either, at least not for AFR.
 
David
The easiest would be if your digital dash can read AC refrigerant pressure and tell the digital dash that's actually AFR and not refrigerant pressure. Then you'd just wire that in there and both HP Tuners and your digital dash would be happy. No need for Prolink+that way either, at least not for AFR.
I can have the digital dash display anything as long as its a 5v linear signal. So how would I go about wiring everything up?

Another curveball is that I didn't do the harness snice I purchased the Goblin all completed. Is there some wiring diagrams I can search for that can lead me in finding out where to tie in for the AC? I also have a 2006 LSJ snice I know that makes a difference.
 
Ross
The AC wires are on the engine, which isn't part of the wires DF fixes/rewires. The engine harness remains untouched.
Here is an online manual for our Cobalt, also has wiring diagrams under -Repair and Diagnosis, Diagrams, Electrical Diagrams.

The LSJ AC compressor is below the alternator, and here I touch the wires for the AC pump. There are 2 connectors near the AC pump, one is the AC electric clutch, and the other is the AC pressure sensor.

If you send the oil pressure 5V signal thru the AC pressure sensor wire, then you will need to tell your digital dash to read the AC pressure.
This may result with the digital dash asking you to enter the PID for the AC pressure sensor... which I would really like to know, but I never found what the PID number is.

According to my search engine's AI, some scan tools probably know the PID:

The 2006 Chevrolet Cobalt uses a refrigerant pressure sensor, also referred to as an A/C pressure sensor, which is compatible with the AC Delco 88482CM part number for models from 2005 to 2010. This sensor provides a voltage signal that corresponds to the pressure in the air conditioning system, typically ranging from approximately 1.6 to 2.1 volts when the high-side pressure cycles between 140–200 psi.

For diagnostic purposes, the sensor's voltage output can be monitored using a scan tool that supports HVAC-related PIDs, such as the TopDon TopScan, which offers good GM vehicle coverage including HVAC data like A/C pressure sensor signal, compressor clutch relay command, and A/C request from the HVAC controller. While the sensor is often used for system protection (e.g., high-pressure cut-off), its signal can also be logged and interpreted as a PID in tuning software like VCM Scanner, though it may require custom PID setup if not directly available in standard configurations.
 
David
The AC wires are on the engine, which isn't part of the wires DF fixes/rewires. The engine harness remains untouched.
Here is an online manual for our Cobalt, also has wiring diagrams under -Repair and Diagnosis, Diagrams, Electrical Diagrams.

The LSJ AC compressor is below the alternator, and here I touch the wires for the AC pump. There are 2 connectors near the AC pump, one is the AC electric clutch, and the other is the AC pressure sensor.

If you send the oil pressure 5V signal thru the AC pressure sensor wire, then you will need to tell your digital dash to read the AC pressure.
This may result with the digital dash asking you to enter the PID for the AC pressure sensor... which I would really like to know, but I never found what the PID number is.

According to my search engine's AI, some scan tools probably know the PID:

The 2006 Chevrolet Cobalt uses a refrigerant pressure sensor, also referred to as an A/C pressure sensor, which is compatible with the AC Delco 88482CM part number for models from 2005 to 2010. This sensor provides a voltage signal that corresponds to the pressure in the air conditioning system, typically ranging from approximately 1.6 to 2.1 volts when the high-side pressure cycles between 140–200 psi.

For diagnostic purposes, the sensor's voltage output can be monitored using a scan tool that supports HVAC-related PIDs, such as the TopDon TopScan, which offers good GM vehicle coverage including HVAC data like A/C pressure sensor signal, compressor clutch relay command, and A/C request from the HVAC controller. While the sensor is often used for system protection (e.g., high-pressure cut-off), its signal can also be logged and interpreted as a PID in tuning software like VCM Scanner, though it may require custom PID setup if not directly available in standard configurations.

Thank you very interesting, yea difficult part is getting the PIDS. Im not a computer guy but was going to dive in and see if I could reverse engineer a way to get some PIDs.
 
David
The AC wires are on the engine, which isn't part of the wires DF fixes/rewires. The engine harness remains untouched.
Here is an online manual for our Cobalt, also has wiring diagrams under -Repair and Diagnosis, Diagrams, Electrical Diagrams.

The LSJ AC compressor is below the alternator, and here I touch the wires for the AC pump. There are 2 connectors near the AC pump, one is the AC electric clutch, and the other is the AC pressure sensor.

If you send the oil pressure 5V signal thru the AC pressure sensor wire, then you will need to tell your digital dash to read the AC pressure.
This may result with the digital dash asking you to enter the PID for the AC pressure sensor... which I would really like to know, but I never found what the PID number is.

According to my search engine's AI, some scan tools probably know the PID:

The 2006 Chevrolet Cobalt uses a refrigerant pressure sensor, also referred to as an A/C pressure sensor, which is compatible with the AC Delco 88482CM part number for models from 2005 to 2010. This sensor provides a voltage signal that corresponds to the pressure in the air conditioning system, typically ranging from approximately 1.6 to 2.1 volts when the high-side pressure cycles between 140–200 psi.

For diagnostic purposes, the sensor's voltage output can be monitored using a scan tool that supports HVAC-related PIDs, such as the TopDon TopScan, which offers good GM vehicle coverage including HVAC data like A/C pressure sensor signal, compressor clutch relay command, and A/C request from the HVAC controller. While the sensor is often used for system protection (e.g., high-pressure cut-off), its signal can also be logged and interpreted as a PID in tuning software like VCM Scanner, though it may require custom PID setup if not directly available in standard configurations.

So I did some digging around and some Gemini and I found this PID for the A/C sensor. Now im not sure how to test it to see if it works. Like I said im not a coding guy so this looks Chinese to me.

Screenshot_20251206_051512_Chrome.jpg
 
Ross
Nice find! Care to share the location where you found that data?

You would need a tool to read the Canbus, and a way to send a signal on the AC pressure 0-5V sensor wire.
Do you own that digital dash that you can program it to read PID 3E32?
Putting a signal on the AC pressure sensor can be as easy as hooking up a variable resistor. Say 50K ohms, or 10K ohms.
54793

The red wire gets 5V+, the black gets low reference, and the yellow would go to the AC pressure sensor.

On the LSJ wiring, the 5V+ wire is the grey wire, the low reference is the black wire, and the AC pressure sensor is red/black.
54794
 
Last edited:
David
Nice find! Care to share the location where you found that data?

You would need a tool to read the Canbus, and a way to send a signal on the AC pressure 0-5V sensor wire.
Do you own that digital dash that you can program it to read PID 3E32?
Putting a signal on the AC pressure sensor can be as easy as hooking up a variable resistor. Say 50K ohms, or 10K ohms.
View attachment 54793
The red wire gets 5V+, the black gets low reference, and the yellow would go to the AC pressure sensor.

On the LSJ wiring, the 5V+ wire is the grey wire, the low reference is the black wire, and the AC pressure sensor is red/black.
View attachment 54794
I used pretty much the cobalt manual and Gemini to find that PID. I cant on asking particular questions until it responded with that code.
As for the digital dash I physically, don't have it yet.I placed an order, but I could tell the company to program to whatever I want.I should be able to remote program also.

So the way it would work my digital dash can read canbus and ill program to read the PID and it will pick it up.

So to wire the wide band to the A/C pressure sensor wire. I would only need to wire the 5v signal from the wideband to the AC pressure grey sensor wire? Seems like im missing something Im crazy confused lol.

Attach is the wideband I will be using.
 

Attachments

  • Screenshot_20251206_143313_Chrome.jpg
    Screenshot_20251206_143313_Chrome.jpg
    382.5 KB · Views: 90
Ross
To wire the wideband, you need to connect 4 wires to the Goblin wiring harness. On the AEM harness, those 4 are the red, black, white and brown.
Those 4 wires on the Goblin harness... well you need to find switched 12V+ power, and a ground, then on the AC pressure sensor wires: red with a black stripe, and black. Actually grey is not needed, as it is 5V+ reference voltage, but the AEM has it's own power.

The AEM harness also has a wire harness connector between the Bosch LSU4.9 UEGO sensor, and the AEM dash gauge/ or that AEM controller thing in the top left of this picture.
54802
 
Last edited:
David
To wire the wideband, you need to connect 4 wires to the Goblin wiring harness. On the AEM harness, those 4 are the red, black, white and brown.
Those 4 wires on the Goblin harness... well you need to find switched 12V+ power, and a ground, then on the AC pressure sensor wires: red with a black stripe, and black. Actually grey is not needed, as it is 5V+ reference voltage, but the AEM has it's own power.

The AEM harness also has a wire harness connector between the Bosch LSU4.9 UEGO sensor, and the AEM dash gauge/ or that AEM controller thing in the top left of this picture.
View attachment 54802

Excellent break down, definitely will help me out and good for future reference for anyone else.

Was thinking about this a little more, regarding the A/C line. Snice I wasn't the one who bluit the Goblin. How can I make sure that the A/C are still connected correctly and that the OBDII will pick them up?

My next project before doing this is going around. Looking for any plugs that are not plugged in, and try to identify. Most likely will have to create a new post will all the plugs.
 
Ross
You can trace the red/black wire back to the PCM/ECM using the wiring diagrams, then verify continuity with an electrical meter.
The LSJ PCM has internal circuitry to convert the AC pressure signal to a Canbus signal.

Here I traced the wires back to the PCM.
The red/black wire goes to the PCM connector C1, pin 26, but it has switched to an orange/black wire.
The black wire goes to C1, pin 56.

The Powertrain Control Module (PCM) C1 connector is here.
54803
 
Last edited:
B
So I did some digging around and some Gemini and I found this PID for the A/C sensor. Now im not sure how to test it to see if it works. Like I said im not a coding guy so this looks Chinese to me.

View attachment 54792

The rough and dirty "PID requests 101" and not LSJ specific...

There's many types of read requests, but the 3 most common across manufacturers are:
1) Mode 21 - Read By Local Identifier. This maps out one and two byte values to a RAM map usually within an ECM, most implementations this is the "group request for speed" mode although you'll find that can vary
2) Mode 22 - Read By Common Identifier. Similar concept to mode 21, but applies over multiple families of ECMs (is the idea, in practice this rarely happens. Standards are only standards when manufacturers choose to implement them, and...in vehicles standards in logging are more like suggestions). Typically this is what OEM specific diagnostic tools will use because it covers a broad range without manufacturers having to define every single ECM in their tool
3) Mode 23 - Read By Memory Address. Exactly what it sounds like, and there's so many ways people implement this I won't even try to begin explaining it. Just know it's direct memory reading, and in the logging context that memory is directly from RAM. But it can sometimes be used to read the file from the ECM itself, just depends on restrictions in its handler

In the simplest 11-bit form of CAN you'll have an 8 byte frame request. There's a few different formats this can take, I'll choose a pretty generic one for this example, but in general arbitration ID will come first (where you want to send the request, ECM=0x7E0, TCM=0x7E1, etc), then header mode, then pid, then depending on the format it may require how many bytes you expect in return or not. So (with 0x00 padding), the frame request to send a request for refrigerant pressure to the ECM may look something like

7E0 22 3E 32 00 00 00 00 02

Where i'm padding out the frame with 00s and requesting 2 bytes on the end of the frame. Again, different manufacturers have different formats for requests, there are standards but as we just said, standards are suggestions.

The response you'll get IS fairly standard. Almost every manufacturer implements the response as arbitration ID + 0x08 (0x7E0+0x08=0x7E8) and successful response request as request + 0x40 (0x22+0x40 = 0x62), then will repeat the pid back to you and give you the data. So a successful response may look something like:

7E8 62 3E 32 69 69 00 00 00

Where 69 69 are your data that you receive back, and the rest is frame padding.

The negative response codes are pretty well defined too. Google search "UDS NRCs" and the first result has a pretty comprehensive list. But let's say you screwed up your message format. You sent it a request:

7E0 22 3E 32 02 00 00 00 00

So instead of putting the number of bytes on the end of the frame, you included them right after the PID. Well the ECM wouldn't leave you hanging, usually (unless you're Nissan, in which case loldon'tcare everything sucks) It's going to give you an NRC frame back, starting with 7F letting you know you screwed up.

7E8 7F 22 13 00 00 00 00 00

7F let's us know it's an NRC, 22 tells us it's not a positive response (no +0x40, so it's a 7F to the 22), and 13 tells us exactly what went wrong. If we go to our NRC list, we can see that 13 is an invalid format error.

There's like 100,000 more things to learn but if i had to give someone the crash course, that's where i'd start.
 
Last edited:
B
And no, btw, I'll clarify. These are example requests, and if you just send them to your car, they won't work. For obvious reasons, I changed some things. But I wanted to use examples to get the concepts across.
 
David
The rough and dirty "PID requests 101" and not LSJ specific, but you never know it could be....

There's many types of read requests, but the 3 most common across manufacturers are:
1) Mode 21 - Read By Local Identifier. This maps out one and two byte values to a RAM map usually within an ECM, most implementations this is the "group request for speed" mode although you'll find that can vary
2) Mode 22 - Read By Common Identifier. Similar concept to mode 21, but applies over multiple families of ECMs (is the idea, in practice this rarely happens. Standards are only standards when manufacturers choose to implement them, and...in vehicles standards in logging are more like suggestions). Typically this is what OEM specific diagnostic tools will use because it covers a broad range without manufacturers having to define every single ECM in their tool
3) Mode 23 - Read By Memory Address. Exactly what it sounds like, and there's so many ways people implement this I won't even try to begin explaining it. Just know it's direct memory reading, and in the logging context that memory is directly from RAM. But it can sometimes be used to read the file from the ECM itself, just depends on restrictions in its handler

In the simplest 11-bit form of CAN you'll have an 8 byte frame request. There's a few different formats this can take, I'll choose a pretty generic one for this example, but in general arbitration ID will come first (where you want to send the request, ECM=0x7E0, TCM=0x7E1, etc), then header mode, then pid, then depending on the format it may require how many bytes you expect in return or not. So (with 0x00 padding), the frame request to send a request for refrigerant pressure to the ECM may look something like

7E0 22 3E 32 00 00 00 00 02

Where i'm padding out the frame with 00s and requesting 2 bytes on the end of the frame. Again, different manufacturers have different formats for requests, there are standards but as we just said, standards are suggestions.

The response you'll get IS fairly standard. Almost every manufacturer implements the response as arbitration ID + 0x08 (0x7E0+0x08=0x7E8) and successful response request as request + 0x40 (0x22+0x40 = 0x62), then will repeat the pid back to you and give you the data. So a successful response may look something like:

7E8 62 3E 32 69 69 00 00 00

Where 69 69 are your data that you receive back, and the rest is frame padding.

The negative response codes are pretty well defined too. Google search "UDS NRCs" and the first result has a pretty comprehensive list. But let's say you screwed up your message format. You sent it a request:

7E0 22 3E 32 02 00 00 00 00

So instead of putting the number of bytes on the end of the frame, you included them right after the PID. Well the ECM wouldn't leave you hanging, usually (unless you're Nissan, in which case loldon'tcare everything sucks) It's going to give you an NRC frame back, starting with 7F letting you know you screwed up.

7E8 7F 22 13 00 00 00 00 00

7F let's us know it's an NRC, 22 tells us it's not a positive response (no +0x40, so it's a 7F to the 22), and 13 tells us exactly what went wrong. If we go to our NRC list, we can see that 13 is an invalid format error.

There's like 100,000 more things to learn but if i had to give someone the crash course, that's where i'd start.

wow that is very interesting but its definitely sounding like Chinese to me. I read some of your post regarding reverse engineering with savvy can, but its way past my pay grade.
 
Back
Top