Digital Controller for Air Suspension Using Arduino and Smartphone Remote

21K3151

Intro: Digital Controller for Air Suspension Using Arduino and Smartphone Remote

Hello everyone.

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

Components list:

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

Arduino

Breadboard 830 point

Breadboard jumpercables


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.


Assembly Order:


  1. Start by connecting you arduino to the power rails on the breadboard 5v and Gnd on both sides.
  2. Connect the Bluetooth module.
  3. Connect all the transistors.
  4. Connect all the buttons.
  5. Share the GND connections from the car with the breadboard.
  6. Use the step-down to power the arduino "in case you have it.
  7. Upload the code to the arduino.
  8. Install the application on your smartphone.
  9. Open the Serial monitor, make sure the pushbuttons are working "text will appear on serial monitor" lights should light up as you push them.
  10. 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.

Bluetooth Module:

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.

  1. Connect the +5v and GND of the module
  2. Just connect one end of the 1k8 resistor to ground and the other near the module at the 1st hole of the rail.
  3. 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.
  4. Connect a cable on digital pin 10 arduino to the RX of the bluetooth module.
  5. 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.

Pushbuttons:

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.

  1. Insert the pushbuttons.
  2. Connect all of them to +5v on the same first leg.
  3. 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.
  4. 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.
  5. 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.

Steps:

  1. 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.
  2. 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".
  3. The right pin is shared among all the transistors, this must also be shared with car Ground and Arduino GND.
  4. Connect one cable from Arduino digital pin 2 to the alone end of the 1k resistor.
  5. 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

Note:

For air ride installation's that instead of independent wheel control "8 solenoids" only have control for each axle "4 solenoids" connect like this.

Green Led:

Digital pin 2 - Front axle Up

Digital pin 4 - Back axle Up

Red Led:

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"


!!Very Important!!

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!

:)

29 Comments

Amazing tutorial! Thank you very much! Can you by any chance provide the Android App Code as well?

Im considering to use this setup with 8ch relays. But when i try to upload sketch in mine arduino, i get error messages.

Some char errors?
Hi. I try to build this project ,but i can't find TIP120 in my country. I use TIP122.
Everything is connected and work. Successful send and recivier data from Android (see in serial monitor). But i have a question - do i have to change the code because i use the different transistors ? :)
volume_up
Okay so I am going to be "that guy" but would it be possible to build this on control it off a connected touchscreen?
Any chance you could send me a view from above the headboard or a diagram? I want to build this ASAP fur my Audi wagon but have no experience in breadboards. I also want to turn it into a pcb after successfully building it. It would be amazing if you 😁

eyeamfresh@gmail.com
i need some help :) i can't find DigitalPowerLift apk in google play..
Just Google search download digitalpoweredlift apk.
i need some help
i connected everything as in your pics and used everything you did but i keep getting trouble with de led´s not turning on
and when i look at the monitor it keeps repeating: change mode
and when it does work it stil doesn't turn on the led's

Hi, Nice project! I think I'm going to duplicate this and I will try to add the pression readings, presets and eventually a small screen with buttons. But glad I found something to start with!
Does your design make automatic height adjustments? I have a Lincoln Navigator with air ride, and I live in Wisconsin. Even if I have no leaks, I know I can have quite the change in air volume/pressure, just from the temperature changes in the day.

If it does adjust automatically, does it have any means of preventing adjustments from happening in the middle of a turn? I know the factory controller in my SUV would prevent that by monitoring the steering wheel.
You posted using one arduino + bluetooth module and for remote any smartphone with android +4.4. My tablet is 4.4.2 and I get a parsing error. The download app shows android 5.0 and up Version 1.2.
I'm going to check that during my free time this week. will get back to you after.
Thank you for the heads up!
Hi. Great tutorial. Have you thought about what it might need to read position levers attached to the axles? So you can have say 3 set positions and the arduino will always maintain that height even if loaded? Love to ahve that function :)
Hi
Yes, if you use car or electric moped throttle sensors one for each wheel then you will be able to achieve all the positions you want.
If you ran out of analog input for the arduino you can always use another one as slave to receive the inputs and pass the data to the master with i2c, or just get a arduino mega that will need less tinkering.
Glad you liked!
Yes so I was going to use the mega and run standard landrover height sensors. If I can get it to work I will certainly post how I did it. Cheers
Dale.
I even had in mind to use those said positions to adjust the ride height accordingly to the speed from the smartphone GPS.
Example
If you are traveling at a speed less than 50kmh you are probably driving in town so the car will rise a bit because of speed bumps, pot holes etc.
On highway speed it will lower.
Yeah that's a mad idea! I'm not sure how to do it but I hope you can tinker with it in the future! Cheers.

Hi, I never had a reason to work with Andruino in the past. But as I build my Pontiac Catalina 1965 and have an air chassis, that's exactly what I'm looking for. Perhaps I would like to go to the 8 analog buttons :D and to modify the design of the application but I will start with the first step: D Thx a lot

looks really nice i wil build it in a couple of weeks, when i got the parts and air ride.
Did you write the android app you self?

More Comments