Decoding J1850 VPW signal
Posted: Fri Aug 23, 2024 5:13 am
Anybody have code from a microcontroller (and or circuit design) to decode J1850 VPW? I assume most elegant design is actually whatever the manufacturer uses... Has anybody reverse engineered that? Been searching it out but haven't found a solution I like. Most of the designs I've found purchase a stand alone preprogrammed microcontroller to do the decoding. Then that preprogrammed microcontroller is a black box with UART interface to computer system / software. I want to decode the signal with a microcontroller of my choosing though...
Forgive me if this is already posted. I searched the web and the forum here and good solution has eluded me. I see there's a few dedicated processors / microcontrollers for decoding OBDII data. Basically they program a PIC variant so it will operate using the ELM / J2534 interface (I'm not 100% sure of my nomenclature yet - industry standard OBDII interface).
I've currently got a P01 PCM hooked up to a power supply and can probe the J1850 data line. Signal is pretty straight forward. I'm feeding that signal into an ESP32 development board... and tripping an interrupt for a decoder routine (have to write decoder routine yet). However, my idea is to come up with a slick way that's not literally polling the line and calculating time periods for the pulses. There's got to be a better way, as that would be a waste of resources.
Backstory: I am assuming / think, there would be a signal from the radio head unit for player controls when AUX input is selected. I see there's a class 2 data line on head unit and want to see what data's coming out / to that. I need to get ahold of the player control signal (without opening the head unit up itself). System is a 2001 Chevy Tahoe. I'm designing a aftermarket Bluetooth interface where those player signals would be really helpful. Either way I want to develop some libraries for embedded controllers to decode OBDII data starting with J1850 VPW if not already done. Would be nice to have a built in bluetooth OBDII / J1850 adapter so I could read codes without having to constantly plug in the stupid dongle.
Forgive me if this is already posted. I searched the web and the forum here and good solution has eluded me. I see there's a few dedicated processors / microcontrollers for decoding OBDII data. Basically they program a PIC variant so it will operate using the ELM / J2534 interface (I'm not 100% sure of my nomenclature yet - industry standard OBDII interface).
I've currently got a P01 PCM hooked up to a power supply and can probe the J1850 data line. Signal is pretty straight forward. I'm feeding that signal into an ESP32 development board... and tripping an interrupt for a decoder routine (have to write decoder routine yet). However, my idea is to come up with a slick way that's not literally polling the line and calculating time periods for the pulses. There's got to be a better way, as that would be a waste of resources.
Backstory: I am assuming / think, there would be a signal from the radio head unit for player controls when AUX input is selected. I see there's a class 2 data line on head unit and want to see what data's coming out / to that. I need to get ahold of the player control signal (without opening the head unit up itself). System is a 2001 Chevy Tahoe. I'm designing a aftermarket Bluetooth interface where those player signals would be really helpful. Either way I want to develop some libraries for embedded controllers to decode OBDII data starting with J1850 VPW if not already done. Would be nice to have a built in bluetooth OBDII / J1850 adapter so I could read codes without having to constantly plug in the stupid dongle.