Introduction: Digital Controller for Air Suspension Using Arduino and Smartphone Remote
In this instructable i will try to show you how to build a controller for you car air suspension, using one arduino + bluetooth module and for remote any smartphone with android +4.4 , this is also my very first instructable so bear with me please :)
This project began with a friend that had air suspension installed but no digital controller, so on my spare time i decided to see if i could build one for him, later i decided to try and sell the idea but here in Portugal no one seemed interested and since i don't even own a car with air installed, now, i'm going to share the project with everyone.
The hardware and software on arduino is made to work with the DigitalPowerLift apk on a Smartphone, it works on suspensions with 4 solenoids or with 8 also there are 3 buttons on this hardware so that you can adjust the car height without the phone.
My next step with this project was going to be height sensors for each wheel and activate the Auto-Mode within the apk but, again, as i don't even have a car with air to try stuff everyday is there but just showing speed.
This project need's some other components to build because the arduino alone cannot activate the 12v solenoids on the air valves, and some sort of regulator to supply power to the arduino because of the spikes on the car 12v line "just in case", this project can also use the same layout for other projects that require the activation of solenoids via smartphone.
With this instructable you will also learn how to apply voltage dividers to your project, using several pushbuttons with your arduino plugged only to one analog pin, using transistors to activate a bigger load than the arduino 5v.
You will be able to download all the code for the arduino just some steps ahead, for the smartphone the apk DigitalPowerLift can be downloaded from google play.
I will show how to assemble everything onto a breadboard but i have 2 examples "check the last video" of all the components in a small pcb , for those you will need some soldering skills.
Step 1: Components
TIP120 -Transistor ---- 8
N4007 -Standard Diode ---- 8
Resistor 1K ---- 9
Resistor 1K8 ---- 1
Resistor 390k ---- 1
Resistor 470k ---- 3
PushButton ---- 3
Led 3mm Green ---- 4
Led 3mm Red ---- 4
Optional - DC-DC Step Down 4.5V- 60V to 3-35V ---- 1
Bluetooth Module HC-05
Breadboard 830 point
Note: If in your car you only have 2 solenoids for each axle you only need 2 of each Led's, 4 - TIP120 and 4 - Diodes Any of these arduino's will do "Uno, Pro mini, Breaduino" other's will also work but some change's to the voltage of the step-down and in the code pin-out needs to be edited before uploading.
Step 2: Assembly Order
Just the way i think it is easier to connect everything to the breadboard.
- Start by connecting you arduino to the power rails on the breadboard 5v and Gnd on both sides.
- Connect the Bluetooth module.
- Connect all the transistors.
- Connect all the buttons.
- Share the GND connections from the car with the breadboard.
- Use the step-down to power the arduino "in case you have it.
- Upload the code to the arduino.
- Install the application on your smartphone.
- Open the Serial monitor, make sure the pushbuttons are working "text will appear on serial monitor" lights should light up as you push them.
- Identify all the transistor output so you can connect the correct wheel up or down in the car.
Step 3: Bluetooth Module & Button's
Assuming that some of you never used a bluetooth module or a transistor i decided to make a small guide about how to connect everything in detail, these are the first. You can follow the images to help you connect everything well.
First we need to lower the arduino Rx wich is 5v to 3.3v the easiest and cheapest way is making a voltage divider, as you can see in the picture is very simple.
- Connect the +5v and GND of the module
- Just connect one end of the 1k8 resistor to ground and the other near the module at the 1st hole of the rail.
- Connect one end of the 1k resistor in the same rail as of the 1k8 just leave a hole between them, the other end of the 1k resistor connect somewere else.
- Connect a cable on digital pin 10 arduino to the RX of the bluetooth module.
- Connect a cable on digital pin 11 arduino to the rail where the 1k resistor is lonely.
Finally connect a cable to the same rail where the two resistors meet, insert the cable right between them and the other end to the TX module.
Since i was building this project thinking of reading values from analog pins i needed to keep pin's on the arduino free and with 8 solenoids to operate plus the 2 pins from bluetooth module they were going down fast, so i decided to use the 3 buttons on the same arduino analog pin using a connection as you can see in the image.
Note: For these buttons to work you will need to use the exact same resistor's that i used or you will need to change the code.
- Insert the pushbuttons.
- Connect all of them to +5v on the same first leg.
- On the other side of the breadboard connect the 470k resistors in series on the opposite leg of the +5v and the last resistor to one empty rail.
- Now just do the same as the voltage divider with the bluetooth module, connect one end of the 390k resistor to ground and the other to the same rail where the 470k is alone leave a hole between them.
- Finally connect a cable from in between the resistors to the analog pin A1 on the arduino.
Step 4: Transistors
Now the transistors
This is simple, just start by connecting one like the image and repeat for the rest of them.
In this step you need to know how the diode works, if you don't is really simple. Just imagine it as a river that only flows one way, since we will be working with GND to activate the solenoid's we must connect the end of the diode that has a little silver ring around it, to the + and the other end on the same rail as the middle pin on the TIP120, this is to prevent frying your transistor because the solenoids are like a DC engine, when you release them they will produce for a short time current that will try to travel back to the transistor so we need to dump it to the + again. "Use the images supplied for help and examples"
If your air ride installation only have 4 solenoids, pay attention to the last note.
- Facing the text on the transistor the left pin is where you must connect one end of the 1k resistor the other to a empty rail, also connect the Led long leg "Anode" in the same left pin and the short leg "Cathode" to the GND.
- On the middle pin rail connect the diode near the transistor and one cable lead after the diode "follow the image instructions" , "the cable lead is what is going to connect to the GND of the solenoid".
- The right pin is shared among all the transistors, this must also be shared with car Ground and Arduino GND.
- Connect one cable from Arduino digital pin 2 to the alone end of the 1k resistor.
- Repeat for all the transistors from digital pin 2 until digital pin9, see below some Label to how to connect to you car air system .
Arduino - transistor connections:
Green Leds are for UP:
Digital pin 2 - Front left wheel Up
Digital pin 3 - Front right wheel Up
Digital pin 4 - Back left wheel Up
Digital pin 5 - Back right wheel Up
Red Leds are for Down:
Digital pin 6 - Front left wheel Down
Digital pin 7 - Front right wheel Down
Digital pin 8 - Back left wheel Down
Digital pin 9 - Back right wheel Down
For air ride installation's that instead of independent wheel control "8 solenoids" only have control for each axle "4 solenoids" connect like this.
Digital pin 2 - Front axle Up
Digital pin 4 - Back axle Up
Digital pin 6 - Front axle Down
Digital pin 8 - Back axle Down
Step 5: Arduino Code
If you made all the connections as specified, just upload the code to you arduino.
If not there are some images to help you.
If you have used different resistors for the buttons you have some help in the images too.
Download the arduino code here download the code here.
In the images you can find:
- Where to change bauderates
- Where to change the pins that connect to the transistors and will operate the solenoid's
- Where to change the Bluetooth RX/TX pins
- If you have used resistors different from instructed in the buttons, some help there.
If you feel up to it please change the code or use it as you like on your other projects.
"sharing is caring"
Do not change the code where it receives data from the Android Application or else will no work with the android application, only change it if you are sure about what you are doing.
Step 6: Digital Powered Lift App
This app is already function with the arduino code.
You can check the video.
To download the application from google play you can find it here.
Just activate your phone Bluetooth, search for and pair your Bt module.
Open the app, go to the top right corner and click for connect, it will then open up a list of paired devices just select the Bt module by clicking it and wait, it should go back with a green ball on top left corner and saying that it is connected.
Everything is working except the Auto-Mode, that currently only displays gps speed.
In the Extra function you position you phone screen facing up and tilt the phone, the car will do the same.
Step 7: Final
If you have any doubts or need any help just let me know i will try to help you all the best i can.
You can follow the examples in the video on how to make this in a small pcb very compact and fully working has i have done.
If you are interested that i make a instructable regarding how to make a android application to control arduino projects using android studio let me know in the comment's.
I hope you managed to get this working, and had some fun doing it.
If you also have some tips for fixing or improving my instructable please let me know in the comments also.
Wish you all the best!