18 November, 2021. Brake Setup and the Arduino.
The next step from the last post was re-bleeding the hydraulics, and then to see if the changes had worked.
Firstly the clutch now feels ‘right’ so that’s done and then it was onto the brakes.
Setting a target.
From the brake calculation spreadsheet I have I came up with a target curve for brake pressures that looks like this:
The point at which the slope of the curve changes is where the proportioning valve kicks in. The spreadsheet has several assumptions in it such as the coefficient of friction of the brake pads, the same for the tyres, where the center of gravity is in the car etc. so this is a starting point only with real world testing required.
The graph shows for the front pressure on the vertical and the rear pressure on the horizontal, so for any measured rear pressure we know what the front should be. This is how I can use this to activate the brake system warning light, if the pressures done stay on the curve then somethings wrong and Arduino will then turn on the warning light. Onward…
Measuring the real situation
The pressure sensors were hooked up to an Arduino UNO using 0-5V analogue inputs. The Arduino has a resolution of 1024 steps over the 5V range, but the sensors run from 0.5V at 0 PSIG to 4.5V at full range so in reality we can only use 4V range of the 5V, so that’s 820 steps. Which means for a 1,000 PSIG sensor you can get a 1.22 PSI resolution and for a 2,000 PSI one 2.44 PSI per step which is way more than good enough.
Here’s the basic code used to read the values:
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
int FrTar;
String S1=”, “;
String SFr=”Fr, “;
String SRe=”Re, “;
String SHiLo;
void loop() {
// put your main code here, to run repeatedly:
int FrVal = analogRead(A1);
int ReVal = analogRead(A0);
int VVal = analogRead(A2);
float FrPSI= ((FrVal0.00488759)-0.5)*250;
float RePSI= ((ReVal0.00488759)-0.5)*500;
float VRail= VVal*0.00488759;
// Chop off negative values
if (FrPSI < 0) { FrPSI = 0; }
if (RePSI < 0) { RePSI = 0; }
// Calc target front value
if (RePSI < 500) { FrTar = RePSI * 0.5214; } //check math
else { FrTar = ( RePSI * 1.2126 ) – 346; } //check math
// Calc Hi or Lo
//if (FrTar > FrPSI) { SHiLo = “Front Low, “;}
//else { SHiLo = “Front High, “;}
// send to monitor
Serial.println(ReVal + S1 + FrVal);
}
I used a few variations of this along the way, but its simply read the voltage on a pin A0, A1, A2 then do a bit of math to turn it in to PSI then calculate a target value and see if the actual value value was higher or lower than the target.
Something is not right
The result is then sent to the serial monitor, I used RealTerm to capture that output to a text file. Which could then be plotted in excel. After the first nights testing I was struggling with whole thing, changing the brake balance bar was making no difference to anything and I seemed unable to get the kinds of pressures in the system I was expecting.
The Honewell Sensors I’m using have a supply current of up to 8 mA so 16 mA so according to the documentation the Arduino should have been easily able to power the sensor from just the USB connection to the laptop. I found a 12V power supply to plug it into though and magically everything got better all of a sudden.
Here’s the first run with the sensors working correctly:
There then followed about a bunch of stuffing about whilst I worked on the best way to get it on to the target curve.
In the end I picked a point at 500 psi for the rear (with the proportioning valve adjusted not to work). Which meant the font should be at 260 psi at that point, setting the program to only send values when the rear was between 490 and 510 psi I could easily grab the numbers whilst sitting in the car and then adjust the balance bar to suit.
Once that was done I repeated it at 800 psi rear and 625 front, but this time leaving the balance bar alone and adjusting the proportioning valve instead.
After that I recorded the pressure from 10 repeats of pressing the pedal and letting it go. Plotting that all out I got the graph below:
Before bolting in the pedal assembly, I’l followed the Wilwood instructions on setting up the balance bar, as described in this video:
What bothered me was the amount of side to side free play in the, balance bar assembly I didn’t feel that the balance could be consistent as a result. In the end it dawned on me that it didn’t matter, and that the only measurements that do are from the center pivot of the bar to the clevis pivot points, these only move when you adjust the bar even if the whole assembly can slide inside the pedal tube. So the advice is follow the manufactures instructions and don’t make the gap too small or the whole thing will bind and the balance will be lost.
Arduino plan
The future for the Arduino is I plan to use it to control:
- Brake system warning lamp.
- Seat belt warning lamp
- Stop lamps
- Indicator / hazard flasher
There’s maybe some other stuff it can be used for, but we’ll see.