Volvo electric steering pump project.

Grog6

Moderator
Joined
Sep 22, 2023
Messages
2,592
Location
Harriman, TN
Vehicle Details
2x 1996 Cougars, 1997 Tbird 4.6's all.
Country flag
I did more work on this lately, as far as the canbus stuff goes. I do periodic searches, and found this stuff today:



I'm pretty sure this wasn't here last I looked. I found code, I've got to set up the pump again. This is a messy experiment with the wrong setup, lol. This pump moves some serious fluid. I've gotten it to work a couple if times, But it apparently asks me something that I don't answer correctly. So it goes to 100%.
I have a steel can, with a valve on the vent, as the pump needs a bit of pressure on it, or it freaks out. I run the fluid out into the reservoir, thru a tube. so closed system, constant load, and I can change the flow rate to match the pump. Pump draws more power than my car stereo, lol. 80A at startup. :)
This is a project Matt and I started talking about awhile back.

I guess I should state that the purpose for this is to have a controllable evo for our cars, since our cars go off at the drop of a hat. There's this one bump in a turn, on my favorite drive, that the slight wiggle of the wheel gives you full assist which really sux right there.

Anyway, I found this bit today, that I hadn't seen before. Gonna setup the hardware tomorrow, and give it a go.

It just waits until it sees the "I'm alive!" message from the pump, then starts sending.


-- "alive" message from pump

canRxAdd(0x1B200002)

local pumpAlive = Timer.new()
function onCanRx(bus, id, dlc, data)
if id == 0x1B200002 then
pumpAlive:reset()
end
end
local data_0x1ae0092c = { 0x00, 0x00, 0x22, 0xe0, 0x41, 0x90, 0x00, 0x00 }
local data_0x02104136 = { 0xbb, 0x00, 0x3f, 0xff, 0x06, 0xe0, 0x00, 0x00 }
local slowCounter = 0
local slowRoll = 0
local slowRollTable = { 0x00, 0x40, 0x80, 0xC0 }
-- car stopped is 0
-- car "moving fast" is 6000 (whatever that means?)
local speedVal = 1000

function onTick()
if pumpAlive:getElapsedSeconds() < 1 then
-- Ignition on frame: sends every 30th speed frame
if slowCounter == 0 then
-- cycle through 0, 40, 80, c0
slowRoll = (slowRoll + 1) & 3
data_0x1ae0092c[1] = slowRollTable[slowRoll + 1]
txCan(1, 0x1ae0092c, 1, data_0x1ae0092c)
slowCounter = 30
end
slowCounter = slowCounter - 1
data_0x02104136[7] = (speedVal >> 8) & 0xFF
data_0x02104136[8] = speedVal & 0xFF
-- pump speed frame
txCan(1, 0x02104136, 1, data_0x02104136)
end
end
setTickRate(71)


The 1ae0092c frame seems to just keep the pump alive and listening/sending over CAN, and it's sent at 1/30 the rate of the other message.

The 2104136 frame sends something that's probably vehicle speed based on the logs from other people above. Most of the bits are (or can be) static, last two bytes are 16-bit big endian unsigned speed. Small values make the pump run fast, large values slow it down.



Top
 
Last edited:
This bit at the end is what I needed; I need to add those locations to my code, and see what happens. I'll try to get a video of it running. I learned the hard way the last time I set this up, bolt the pump down before any power leads, it moves a bunch when it fires up, lol.
 
Will the work on our rack and pinion?
 
It draws up to 80A, so it'snot an easy thing. But if I can talk to it properly, it will give us variable effort steering, while not killing our rack.
 
Was that a volvo pump I bought from you, Matt? I couldn't find where we were talking about it, at the old place. Either way, it needs a keep alive message, which is what I was missing. I can iterate the code, if I can get it working. Find out exactly what number does what.
 
Was that a volvo pump I bought from you, Matt? I couldn't find where we were talking about it, at the old place. Either way, it needs a keep alive message, which is what I was missing. I can iterate the code, if I can get it working. Find out exactly what number does what.

Yea that’s the one I got from a Volvo. I think we discussed it in chatbox before VS killed it
 
That's why I couldn't google it.! Cool, so these numbers should work.
 
My code skillz suck, since the stroke.
 

Similar threads

Back
Top