DIY Electric Car Forums banner
141 - 160 of 167 Posts
It's great you've packaged this up for turnkey use.

Where are your schematics and source code located on Github?

This was developed using open source contributed info, and could use modifications and contributions to make it even better. The beauty of open source.

thanks
 
It's great you've packaged this up for turnkey use.

Where are your schematics and source code located on Github?

This was developed using open source contributed info, and could use modifications and contributions to make it even better. The beauty of open source.

thanks
If they do not have documentation for open source. I am in the durability testing phase for my own board that has speed control via potentiometer or via GPS. Which I will be doing as an open source project. Currently the board is being tested running dual pumps.

Keep an eye out on Brewingtonwiringsystems.com
I will be posting the preorder soon and documentation there as well as github
 
@WireNutCJ7

Given any thoughts to tapping off one front wheel's ABS sensor or a hall sensor on an axle or prop shaft like @windraver used in his CRX build?

My thinking there is you dedicate a logic pin input to incoming pulses per second, and set up either a .config file or simply a parameter in the source code header that sets up the math (divisor) for vehicle speed.

The signal conditioning would be a separate board that provides the logic pulses, since the sensors are so various.
 
@WireNutCJ7

Given any thoughts to tapping off one front wheel's ABS sensor or a hall sensor on an axle or prop shaft like @windraver used in his CRX build?

My thinking there is you dedicate a logic pin input to incoming pulses per second, and set up either a .config file or simply a parameter in the source code header that sets up the math (divisor) for vehicle speed.

The signal conditioning would be a separate board that provides the logic pulses, since the sensors are so various.
I did consider it at first, but quickly went to GPS for the fastest turn around on a turn key product. I would be interested in looking into it and including it in a V2 board or somehow into the V1. The more robust the board the better for all who purchase it.
 
GPS kinda sucks for availability...no power steering in cities or mountains, for example. I understand the quick to get out there part.

Make sure you don't forget to code full EPS pump speed on LOS.
 
GPS kinda sucks for availability...no power steering in cities or mountains, for example. I understand the quick to get out there part.

Make sure you don't forget to code full EPS pump speed on LOS.
Loss of the GPS signal results in a 0 reading in the logic, which sends the full pump speed command when in GPS mode. Potentiometer allows for 40%-100% pump manual speed control. With the lowest value on the pot engaging the GPS subroutine.
 
On the pulse input, a separate AFE board that provides a 2V to 5V speed signal on the pot input should work nicely, then.

Just make sure, in any case, to filter the pot voltage before ADC on your controller.
 
On the pulse input, a separate AFE board that provides a 2V to 5V speed signal on the pot input should work nicely, then.

Just make sure, in any case, to filter the pot voltage before ADC on your controller.
I think I can make it work that way or offer it as GPS unit or the wheel speed unit as a variant.
 
True. I was thinking GPS delete and the same code and processor port for pot/speed_sense. Two board build types.

I'm not sure the WS/hall sensor board can be universal enough to cover what's out there and be sucked into the mainboard design.
 
So uh, looking into one of these guys for my conversion which already has hydro boost. I'll be using an AEM vcu200 so I could theoretically have a lot of this be can controlled with an intermediary board (no need for gps, it'll know my speed continuously)

Anyone know how loud one of these is at operating speed? Like In decibels? Also has anyone tried to make an acoustic enclosure to quiet it way down? I'm a little worried about heat build up but considering it's designed to live in an engine bay it can probably take a lot of heat. At worst I'd add a little power steering fluid cooler in the line somewhere
 
I mean yeah but if I want it to be comparable in sound level to say, the water pump, I'll have to quiet it greatly
That all depends on your water pump. They are not that loud in my opinion. Check on my page for my jeep build. I have 2 of them running at once in the most recent video.

 


Code:
//Volvo Power Steering Pump 100% RPM
//
//Written by WirenutCJ7, with help from mck1117
//
//This is a basic and somewhat sloppy code as I removed it from a much larger sketch
//but this can get you started, or at least steering better.
//
//I have a relay on pin 4 for turning the pump on, timed correctly with can messages
//
// this was setup for a Arudino Mega 2560


#include <SPI.h>
#include <mcp2515.h>

int Alive = 1;
int Freq = 0;
//Listen Frames
struct can_frame canMsg1;
struct can_frame canMsg2;
struct can_frame canMsg3;
struct can_frame canMsg4;
// Speed Frame
struct can_frame canMsg5;
MCP2515 mcp2515(53);

void setup() {
  //Keep Alive and listen 1
  canMsg1.can_id  = 0x1ae0092c | CAN_EFF_FLAG;
  canMsg1.can_dlc = 8;
  canMsg1.data[0] = 0xc0;
  canMsg1.data[1] = 0x00;
  canMsg1.data[2] = 0x22;
  canMsg1.data[3] = 0xe0;
  canMsg1.data[4] = 0x41;
  canMsg1.data[5] = 0x90;
  canMsg1.data[6] = 0x00;
  canMsg1.data[7] = 0x00;

//Keep alive and listen 2
  canMsg2.can_id  = 0x1ae0092c | CAN_EFF_FLAG;
  canMsg2.can_dlc = 8;
  canMsg2.data[0] = 0x00;
  canMsg2.data[1] = 0x00;
  canMsg2.data[2] = 0x22;
  canMsg2.data[3] = 0xe0;
  canMsg2.data[4] = 0x41;
  canMsg2.data[5] = 0x90;
  canMsg2.data[6] = 0x00;
  canMsg2.data[7] = 0x00;
//***********************************************************
//Keep alive and listen 3
  canMsg3.can_id  = 0x1ae0092c | CAN_EFF_FLAG;
  canMsg3.can_dlc = 8;
  canMsg3.data[0] = 0x40;
  canMsg3.data[1] = 0x00;
  canMsg3.data[2] = 0x22;
  canMsg3.data[3] = 0xe0;
  canMsg3.data[4] = 0x41;
  canMsg3.data[5] = 0x90;
  canMsg3.data[6] = 0x00;
  canMsg3.data[7] = 0x00;
//***********************************************************
//Keep alive and listen 4
  canMsg4.can_id  = 0x1ae0092c | CAN_EFF_FLAG;
  canMsg4.can_dlc = 8;
  canMsg4.data[0] = 0x80;
  canMsg4.data[1] = 0x00;
  canMsg4.data[2] = 0x22;
  canMsg4.data[3] = 0xe0;
  canMsg4.data[4] = 0x41;
  canMsg4.data[5] = 0x90;
  canMsg4.data[6] = 0x00;
  canMsg4.data[7] = 0x00;
  //0x2e414003 does seem to work as well?
//************************************************************///////////////////////////
//SPEED 100
  canMsg5.can_id  = 0x02104136 | CAN_EFF_FLAG;
  canMsg5.can_dlc = 8;
  canMsg5.data[0] = 0xbb;
  canMsg5.data[1] = 0x00;
  canMsg5.data[2] = 0x3f;
  canMsg5.data[3] = 0xff;
  canMsg5.data[4] = 0x06;
  canMsg5.data[5] = 0xe0;
  canMsg5.data[6] = 0x00;
  canMsg5.data[7] = 0x00;

  while (!Serial);
  Serial.begin(115200);

  mcp2515.reset();
  //mcp2515.setBitrate(CAN_500KBPS); //check your crystal MHZ and change if need be.
  mcp2515.setBitrate(CAN_500KBPS, MCP_8MHZ);
  mcp2515.setNormalMode();
  pinMode(4, OUTPUT);
digitalWrite(4, LOW);
digitalWrite(4, HIGH);
delay(250);
mcp2515.sendMessage(&canMsg2);

}

void loop() {
  if(Alive == 1){
if (Freq == 30){
  mcp2515.sendMessage(&canMsg1);
// Serial.println("Alive 1");
  //delay(10);
  Freq = 0;
  Alive = 2;
delay(5);
}
}
if(Alive == 2){
if (Freq == 30){
//  Serial.println("Alive 2");
  mcp2515.sendMessage(&canMsg2);
  //delay(10);
  Freq = 0;
  Alive = 3;
  delay(5);
}
}
if(Alive == 3){
if (Freq == 30){
// Serial.println("Alive 3");
  mcp2515.sendMessage(&canMsg3);
  //delay(10);
  Freq = 0;
  Alive = 4;
  delay(5);
}
}
if(Alive == 4){
if (Freq == 30){
  //Serial.println("Alive 4");
  mcp2515.sendMessage(&canMsg4);
  //delay(10);
  Freq = 0;
  Alive = 1;
  delay(5);
}
}
mcp2515.sendMessage(&canMsg5);
  Freq += 1;
  delay(5);
  delay(10);
}
This is beautiful. is there any chance a wiring diagram could be made for the pump can hi/lo wires to the Arduino mega 2560? I'm a bit illiterate when reading code and am unable to determine the pins used on the Arduino via code alone...
 
Image

This is beautiful. is there any chance a wiring diagram could be made for the pump can hi/lo wires to the Arduino mega 2560? I'm a bit illiterate when reading code and am unable to determine the pins used on the Arduino via code alone...
The schematics and full variable pump speed code with and without GPS will be released at the end of the month on my website and github. Link to the github can be found on my website in the near future. As well as the preorder for the fully functional board that allows you to have a done product but still tweak code to suit your project.

Brewingtonwiringsystems.com
 
it's just plain old can signals right? i haven't checked the thread but is it documented somewhere what the PIDs and commands are for startup/change speed?
i got a vcu200 so i can inject can messages arbitrarily
 
Folks, I have been using Volvo Pump in my electric Jag for about 2 years in fail-safe mode but I was looking for way to control speed. Thanks to contributions of fine members of this forum I was able to add some control through my Arduino DUE based VCU.
I wanted to share few observations.

With following messages: 0x02104136, 0x1ae0092c I am able to control speed between (I estimate) 50-100% for speed parameter 0-5000 (5000-6000 makes no change for me). In fail-safe mode, my pump runs at 50% speed (or equivalent of speed parameter 5000).
One thing I was not able to achieve with those two messages was instant start of the pump, there was always annoying 3s delay.
So, I replayed messages from log posted here while ago and isolated message which forces instant start of the pump, it is 0x0300410e
In the log this message is sent with constantly rolling values of all bit but I found single set of values I can send to trigger instant start: {0x38,0x23,0xb8,0x36,0x47,0xc7,0x6c,0x00}.
This message can be sent with interval between 1-100ms in addition to two other message and my pump starts immediately.

I noticed when controlling speed with message 0x02104136, pump responds very slowly, it ramps up/down in few seconds.
I found out that pump responds instantly to message 0x0340412e but I do not know yet which bytes are responsible for speed. More research may be required to discover all the aspects of controlling this pump but what we have already is really useful.
 
141 - 160 of 167 Posts