PDA

View Full Version : Suspension My Project: Software based ECS controller and Centrafuse plugin



Boost4VR4
12-24-2012, 03:54 AM
Ok here's the story:

I took a look at duke3k's setup with his custom controller to control and run self-test diagnostics on his existing ECS struts. I am taking it a step further, but I am also simplifying things quite a bit.

First, I will outline what the scope of the project is going to be:

ECS Servo motor control will be done with an Arduino Mega 2560.
The same Self Test abilities will be available similarly like duke3k's setup, except it will be software based.
The front end software will be compatible with Windows distributions to start, then I plan to expand it for use with Centrafuse, a CarPC software front-end.

Other functionality:
G-Force readings based on X/Y axis on an accelerometer
Dampening force readings based on Y axis on accelerometers on all of the struts

Future functionality:
integration with OBD1/OBD2 readings and displaying that data in addition

The Arduino boards are very easy to program and require very little memory. They are rudimentary and have a very large community for coding. I chose the arduino because I wanted a common programming language platform and I also wanted an easy to use programming method.

The accomplishments so far:

I have written the code for the ECS Self-Test on the arduino board, the next step is to gather user input via serial for setting values in rotational degrees. I am working with a 180 degree servo at the moment, however it will not require any additional coding when I switch over to the ECS servos, as I will only need to provide the "safe" values in degrees for the strut adjustments. I also do not have an accelerometer at the moment, but I will need to calculate the raw values of the accelerometer data to provide a meaningful data statistic for the user to see (forces in Gs). Once I come up with all of the solutions to the problem, I will then be able to build the front-end program to send and receive data to the arduino board via USB serial and dedicated serial channels.

I will keep you guys posted on the progress. So far, it has been positive, other than accidentally swapping positive and negative wires and frying the bluetooth interface I just bought today!

Stay posted!

Blue91SL
12-24-2012, 04:06 AM
This sounds like an amazing project. Subscribed for updates!

GTOJOE
12-24-2012, 06:46 AM
Interesting project. I would just be happy to have mine working in stock forms though :lol: has never worked since owning the car.

Sent from my GT-I9300 using Tapatalk 2

duke3k
12-26-2012, 03:18 PM
Hey BoostVR4 ,

Sounds like a nice and ambitious project.....you've got some cool ideas in there that have been pondered in various flavors in my project as well that I choose not to pursue - so it will be interesting to see how yours progresses.

One thing to be aware of before you get too far - is it looks like your starting to prototype your ECS controller using servo motors, but one thing you should look into a little more is the actual motor control your going to need for the OEM ECS struts (and their internals). They are not servo's - per se. They do not have any concept of rotational degrees or control positions that you would expect for a traditional servo.

As note - my software dev environment is Arduino based as well - I use the Arduino IDE to do the coding. I just fabbed my own custom PCB board into a single custom board design so it would be more reliable / smaller and easier to assemble. I'm using the Atmel ATMega 328 microprocessor @ 16mhz.

The number of lines of C-code for the current version of my controller is 1445 lines of code - including comments of course.

Duke

Boost4VR4
12-26-2012, 09:21 PM
Hey BoostVR4 ,

Sounds like a nice and ambitious project.....you've got some cool ideas in there that have been pondered in various flavors in my project as well that I choose not to pursue - so it will be interesting to see how yours progresses.

One thing to be aware of before you get too far - is it looks like your starting to prototype your ECS controller using servo motors, but one thing you should look into a little more is the actual motor control your going to need for the OEM ECS struts (and their internals). They are not servo's - per se. They do not have any concept of rotational degrees or control positions that you would expect for a traditional servo.

As note - my software dev environment is Arduino based as well - I use the Arduino IDE to do the coding. I just fabbed my own custom PCB board into a single custom board design so it would be more reliable / smaller and easier to assemble. I'm using the Atmel ATMega 328 microprocessor @ 16mhz.

The number of lines of C-code for the current version of my controller is 1445 lines of code - including comments of course.

Duke


Well let me pick your brain about this because I am under the impression that the motors in the struts are servos? Can you enlighten me?

DrGonzo
12-26-2012, 11:24 PM
Nope not servos. Just plain DC motors. The two micro switches in the struts are the only thing that account for it's positioning.

Three positions total Hard - Medium - Soft:
1: ON
1&2: ON
2: ON

Self check is done by testing out that each switch responds back within a certain amount of time. If not it throws a code.

Also realize that the G-Force sensor is not X/Y axis. it is a single axis sensor Y-axis. The stock system uses a calculation based off of speed and steering angle sensor to find the X-Axis or roll. The higher the speed and sharper the turn, the system will harden the struts on the steer in side. G-Force sensor is used to calculate squat and nose dive from hitting the brakes and stomping on the gas.

Blue91SL
12-27-2012, 01:59 AM
Nope not servos. Just plain DC motors. The two micro switches in the struts are the only thing that account for it's positioning.

Three positions total Hard - Medium - Soft:
1: ON
1&2: ON
2: ON

Self check is done by testing out that each switch responds back within a certain amount of time. If not it throws a code.

Also realize that the G-Force sensor is not X/Y axis. it is a single axis sensor Y-axis. The stock system uses a calculation based off of speed and steering angle sensor to find the X-Axis or roll. The higher the speed and sharper the turn, the system will harden the struts on the steer in side. G-Force sensor is used to calculate squat and nose dive from hitting the brakes and stomping on the gas.

Greg, you're one of those people that post, and I instantly think aloud, "That dude is too damn smart."

DrGonzo
12-27-2012, 10:12 AM
Greg, you're one of those people that post, and I instantly think aloud, "That dude is too damn smart."

That's cause I only post when I have relevant information regarding the topic or I know what I'm talking about. That way I always sound smart...LOL

In this case I worked with Duke some time ago in figuring out how the stock system works. I also built the first ECS strut tester which I will be making a write-up about soon. Just need to find the time to get all my thought and information together.