Steering Controller Proof of ConceptP14226Subsystem Design

Logitech MOMO Steering Controller

The Logitech MOMO steering wheel, donated to the team, was analysed for use without using the pre-existing and historic drivers for it. The original driver which existed can only be run on a windows machine and still had numerous errors and bugs. Also, the readings from the controller could only be seen by using the GUI from Logitech.

Due to the lack of usability of the pre-existing software it was decided that the analogue signals from the internals be taken in, calibrated and then used directly. Ideas of creating a self-programmed driver were also brainstormed and it was decided that for obtaining only steering data it was too exhaustive of an effort to design and program a driver for it. Utilizing the signals straight from the internal circuitry also enabled the use of a low powered microprocessor.

It must be given note that there were two sources of power to the steering controller, the 5V from the USB and the 24V from the wall outlet. The 24V supply was only connected to the motor. When the 5V power supply was not connected all the signals read noise when the steering was moved. This was postulated to be due to the back EMF from the motor. Determining that only the 5V supply is needed was a major discovery as the steering controller can now be controlled from the 5V supply from a microcontroller.

The steering wheel was connected to a motor which enabled force feedback when utilizing the windows drivers. The motor was then attached to a very precise and accurate encoder. This encoder was analysed and the pin-outs were tested with an oscilloscope.

Figure 1. Steering Wheel Encoder Pin-Outs

The functions for each pin were determined and are captured below:

Red - +5V

Black – GND

Green – Accelerometer

White – Encoder PWM

Yellow - ??

Figure 2. Encoder PWM

The direction of turning from the wheel was reverse engineered to be obtained from two Zener diodes present on the internal circuit board itself. When the steering wheel was turned left one of the diodes would poll high with the other going low. The vice-versa was observed when the steering wheel was turned right. This will enable the capturing of turn direction with the amount of turning captured from the encoder PWM.

The concept for steering requires the following known quantities:

Turn Direction – Obtained from the diodes going high or low.

Turn Amount – Obtained from the encoder PWM which will be calibrated to encompass the whole steer angle with PWM count. This will require the wheel to be centred.

Centring Value – The steering wheel centre position is determined from the optical centring sensor present on the wheel axle.

The centring on the wheel is done by utilizing the signal from the optical encoder attached at the axle of the wheel. There is a white reflective strip present which triggers the optical sensor whenever it passes by the receiver-transmitter to detect that the wheel has been centred.

Originally, with the windows software installed, the steering wheel would go into a centring reset routine where when the white strip would pass over the optical sensor and the motor would stop rotating and record that as the centre position.

Figure 3. Steering Wheel Centring Reflective Strip

Since the windows software was not being used, raw signals from the pins of the encoder were to be recorded. It was determined that the following signals were passing through the pins:

Red – 3.3V Power Supply

Black – GND

Green – Optical Encoder Signal

Figure 4. Steering Centring Optical Sensor Voltage Drop

Whenever the white strip (as seen in Figure 3) passed over the optical sensor there was a sharp drop in voltage detected. This drop can be used to determine that the centre position has been achieved and the encoder count set to zero at this point. With the centre determined, the direction pulled from the diodes and the encoder PWM count reset, all the necessary signals for effective and accurate steering are now set and can be utilized.