6

I'm trying to send steering wheel angle commands to my car. It's a fairly recent car (Renault Espace IV). I'm using an OBD2 port to access it, and I also have a ShieldCan. I managed to read data from the car using those tools and pyserial, but not to input an angle.

Is there a way to do this? How could I, for example, input "x° angle" and have the steering wheel to change of angle?

If this is not possible with such a car, which characteristics should I be looking for to make this possible?

Any help will be much appreciated.

EDIT: Given the discussion in the comments, this question might be too tied to the type of car I own, but I think it'd be more interesting for everyone to know which systems/characteristics should a car have to allow us to input steering angle.

So to rephrase it: what type of car could receive steering angle inputs ? Which technologies are needed ? Should I be looking for lane keeping assist, or are there other specs that would allow me to do this ?

  • Does your Renault have electric motor assisted steering? – Pᴀᴜʟsᴛᴇʀ2 Nov 2 '16 at 18:02
  • 1
    I'm not sure you can. power assisted steering wether electric or hydraulic is basically a torque multiplier. i'm also unsure of how the "stay in lane if drifting" feature works and if the rack has differences or if it's all in the computer. I assume the rack must be made differently. – Ben Nov 2 '16 at 18:22
  • 1
    actually upon further reading mechanical input for the steering wheel terminates in the column and everything is controlled electronically. it's pretty cool. – Ben Nov 2 '16 at 18:34
  • 1
    that should be "how does inifiniti electric power steering work" in regards to @Pᴀᴜʟsᴛᴇʀ2's comment I'm unsure if it's possible with traditional electric power steering systems. You'd need to be able to communicate with the power steering modules computer and try to activate the motor i suppose. I'm not sure this is possible without reversing the modules rom. – Ben Nov 2 '16 at 18:51
  • 1
    Please consider creating a chat room and moving this conversation to it. The comments are getting pretty long. Very interesting subject, though. – Pᴀᴜʟsᴛᴇʀ2 Nov 2 '16 at 19:01
3
+50

The steering angle sensor is typically fitted to cars with an electronic stability control feature such as EBD / ESP. The sensor is used to read the steering engine to establish the inputs which the driver is attempting to give to the car. In this configuration it is a read only system.

More modern cars that feature either auto-park or lane correction can alter their steering angle electronically although I'm afraid I don't know if this is done on the same address as the steering angle sensor outputs it's reading on, I would assume not. I guess that the true steering angle is always required, otherwise a system wouldn't know if it should apply left hand or right hand force to the wheel electronically.

1

What you are trying to do is difficult and will require some microelectronics hacking. might also need to read some of the chips to pull proprietary flash memory off.

You probably will have the most luck using a drive by wire car where the steering wheel does not have a mechanical connection to the wheels. Instead it will just have a position sensor. You will need an oscilloscope to see what kind of signal this sensor passes to the computer to determine wheel position. Once you get the proper wave with the proper voltage and amperage then you can start programming a program to simulate this. You will probably be using a raspberry pi for the signal control but you potentially could use a serial port or even a usb port but you might need to make a custom board to get the voltage and amperage to match up.

you will need the circuit to cut signal from the actual steering wheel when it is being used and restore signal to the steering wheel when it is not used. You will also need a circuit to control the steering wheel position with the built in force feedback motors they have. this will also keep the steering wheel lined up.

One more thing to take into consideration is if the steering wheel is in the wrong position when going back to normal driving then it may not steer correctly so this might need to be rectified by saving the position the steering wheel ends up in and restoring that to the computer using something to "ramp up" the position as if steering to the current steering wheels position.

It would be way easier to simply add a pulley or chain system to the steering wheel column of any car and control it that way using a servo motor.

With the chain solution you could retrofit anything even model t fords. All you would need is the servo motor a motor control board and a couple switches to signal maximum turning angle. the computer would run the wheel back and forth to determine where center is and where both stops are. you would need a trim setting due to alignment not being perfect and your off using a ps3 controller to drive your car.

The only way to do this using the obd2 is if the company that built the car added in special code for testing that model using some of the reserved inputs. To me this sounds exceedingly unlikely but as more cars become automated there is a chance some new models may have this. You will need to hack into whatever code they have and try to figure out what signals are used to get the car to do what you want. At that point you should get their proprietary service obd2 scanner and decompile it to get the code you need to send their obd2 computer.

stick with the chain drive on a model t it will be way easier.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.