To make sure your ABS stays healthy, it is a good idea to activate your ABS system from time to time. It prevents the valves in the ABS to become sticky. Some people do this by regularly slamming the brakes on gravel, but I'm way too chicken for that. So I made a device that allows me to activate the ABS whilst the bike is stationary.
Another reason to have make this device is that I want to flush the brake fluid inside the ABS system. Internally in the system, there is fluid that never gets refreshed (behind the valves in the chamber that is pressurised by the ABS motor). After many years, this fluid will contain moisture, which can corrode the valves in the ABS, leading to a total ABS failure.
What does it do?
The device fools the motorcycle into thinking that it is moving at 30km/h. There are 2 buttons on the device: front and rear. When you push the button 'front', the device simulates a front wheel skid by stopping the signal to the motorcycle 5 times/second for 1/10th of a second.
How does it work?
When you push the button, the motorcycle will think that the front wheel is skidding, engage the ABS motor and close and open up the valves 10 times/second. If you push the button whilst the brake is applied, you will feel the pulsing of the ABS. If you push the button whilst the caliper bleeder is open, fluid will be pumped from the master cylinder reservoir through the ABS towards the caliper. This effectively flushes the entire brake system, including the ABS.
Now for the technical bits and pieces:
The V-Strom (DL650A K8 in my case) uses a 2 wire Bosch ABS sensor. The ECU provides the sensor with 12V, which goes to ground over a 80 Ohm resistor inside the ECU. The sensor has an internal magnetic field generator and logic to do auto-zero, so it only outputs a binary signal: high for no metal in front of the sensor, low for metal in front of the sensor (this is the metal from the sensor ring on the wheel). The result is a square wave of 50 HZ / wheel revolution with a high of 1,1V and a low of 0,56V.
Now there is two things that we can do if we want to simulate the signal of the sensor:
- either use a logic gate and 2 resistors to make a voltage divider, which we then hook up to the internal wiring on the motorcycle
- either simulate the sensor ring by providing an external magnetic field to the sensor.
I choose the second way, since it's much easier to just unscrew both wheel sensors than to dig into the bike to disconnect the sensors.
The magnetic field is generated by using a coil from an old relais. The coil is energised push/pull, which means that both wires are connected to a logical totem-pole output. In the "on" position output 1 is high and output 2 is low. In the "off" position this is reversed. This effectively creates a magnetic field that changes polarity, even though we only use a single 5V source as power supply. To couple the magnetic field to the sensor I had to experiment a bit. If you put the center of the coil up against the center of the sensor, it will not work. This saturates the sensor and it doesn't give any output. Increasing the distance a bit works, but this is a sensitive setup. What worked much better was to position the coil at 90 degrees to the sensor, with the coil just in front of the tip of the sensor. This solution works, but only in the plane perpendicular to the white extrusion on the sensor. In this orientation, the coil is probably aligned with the internal magnetic field of the sensor. In any case, in this orientation the coil can reliably excite the sensor.
To trigger the coils, I use an arduino with a simple timing based on the micros() function. The coils only pull 8mA, so there is no danger in overloading the ports.
If anyone is interested in replicating this device, I will make a video to explain how you can do this and I will post the code.