Jump to content

GM EPAS Canbus integration


Laminar

Recommended Posts

Hello all,

I have the EPAS setup from a Saturn Vue (Chevy Equinox) that is fairly popular in the hot rod world as a column-mounted power steering solution. I'd like to have it integrated into the G4X so that I can adjust power steering assist and possibly restore the original speed-sensitive assist functionality.

According to this thread:

hacking-an-equinox-electric-power-steeri

The EPAS unit needs a wake up signal confirming the engine is running, and then a variable speed signal that determines the level of assist. According to the code posted in that thread, here's the wakeup message:

// Engine On Status Message 8853118488
uint8_t eng[] = {0x88, 0x53, 0x11, 0x84, 0xAE};

And the code they attached sent a static speed to the module for a static assist level.

// Vehicle Speed Status Message 8829110205A6B5
//uint8_t spd[] = {0x88, 0x29, 0x11, 0x02, 0x05, 0xA6, 0xB5}; 7MPH
uint8_t spd[] = {0x88, 0x29, 0x11, 0x02, 0x00, 0x00, 0x3B}; //0MPH
//uint8_t spd[] = {0x88, 0x29, 0x11, 0x02, 0xE0, 0x00, 0x6D}; //60MPH

I think the first four hex values are common, the 5th and 6th are the speed, and the final one is the J1850 CRC. Don't quote me on that. I can't figure out how those hex values get me to the claimed speeds, though.

Questions:

- Can the G4X wake up the column?

- Can it send a variable speed to the column to vary assist, or is the CRC a roadblock? The standalone boxes they sell for this column have a simple pot on them but are somehow able to vary assist.

Thanks!

Link to comment
Share on other sites

Your thread didn't attach properly.

On 1/12/2024 at 9:39 AM, Laminar said:

Can the G4X wake up the column

There isn't currently any way to do a one-off message in the G4X custom CAN, if using custom CAN it would have to be sent continuously.

On 1/12/2024 at 9:39 AM, Laminar said:

Can it send a variable speed to the column to vary assist, or is the CRC a roadblock? The standalone boxes they sell for this column have a simple pot on them but are somehow able to vary assist

if you only want to send those 3 exact messages continuously and switching between them based on speed that is possible using probably 2 math blocks. If you wanted exact speed sent then you would need to figure out how the checksum is calculated and you may or may not be able to do the checksum calculation in a math block (checksums often use complicated maths that relies on unsigned integer number structures).

 

It could theoretically be done as a built in CAN mode but we would probably want a more complete vehicle mode and it's priority wouldn't be super high at the moment. You could also use an arduino or some other programmable device with a CAN interface to receive a speed from the ECU and send the appropriate messages to the column.

Link to comment
Share on other sites

J1850 is not CAN bus at all, it is an odd single-wire pulse width based protocol.  Very few (or none) aftermarket ECU's have hardware or software to communicate in this method.  

The forum post you linked to has possibly added confusion as it starts off correct but halfway through several users start talking about CAN bus.  

Link to comment
Share on other sites

I found a post stating that the existing black box is just a 555 timer with a pot that adjusts the pulsewidth, which didn't make sense to me if canbus was involved. With that in mind, do you think I could set up a GP PWM output to tickle the column just right?

16 hours ago, Vaughan said:

Your thread didn't attach properly.

Yeah, the forum software choked on that one.

Try this link

Thanks for the responses, guys.

Link to comment
Share on other sites

7 hours ago, Laminar said:

I found a post stating that the existing black box is just a 555 timer with a pot that adjusts the pulsewidth,

No that doesnt sound right.  The J1850 is a coded signal, it would need a microcontroller to decode the incoming signals and make decisions on how the motor is controlled from those, I guess it could possibly use a 555 on the motor control side after a control command had been generated but it would be hard to imagine why when there is a microcontroller in there already.

Link to comment
Share on other sites

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.

×
×
  • Create New...