R1150R Rockster (iABS) speedo drive replacement

This section is dedicated to the new Rockster version of the R1150R.

Moderator: Moderators

Post Reply
camdrv
Basic User
Posts: 9
Joined: Tue Apr 24, 2012 2:36 pm

R1150R Rockster (iABS) speedo drive replacement

Post by camdrv »

Hi there! I has bought a Rockster without iABS unit. I would solve the speedometer signal conversion with Ardunio board.
I was dismantled the speedo and tried drive with 100Hz TTL square wave signal. The experiment is resultless.. :(
pins:
IGN = GR BR +12V
GND = BR + BL R Ground
4P OUT = BL GR ???
SP-IN = BL Y Signal

https://picasaweb.google.com/lh/photo/C ... directlink
https://picasaweb.google.com/lh/photo/2 ... directlink
https://picasaweb.google.com/lh/photo/N ... directlink

any idea?
User avatar
sweatmark
Septuple Lifer
Posts: 2236
Joined: Mon Mar 21, 2005 11:11 am
Donating Member #: 208
Location: Oregon USA

Re: R1150R Rockster (iABS) speedo drive replacement

Post by sweatmark »

Was your Rockster originally built as ABS bike or non-ABS?

I will check wire color codes for the direct connections to speedometer inside instrument module. My experiments used the speedometer input wires contained in the iABS1 harness, which are different from the wire codes you show.
Rockster#2, K1300S, S1000R (for sale)
camdrv
Basic User
Posts: 9
Joined: Tue Apr 24, 2012 2:36 pm

Re: R1150R Rockster (iABS) speedo drive replacement

Post by camdrv »

Hi Sweatmark. Yes it is. But unfortunately the iABS unit was missed when I bought the bike. The Abs harness at first sight, original untouched. However, I don't know what to do 4P-OUT pin at upper right corner next to the GND?? This would be the speed signal grund? The Arduino output look like to correct square wave, don't know the speedo why not detected. I will build a signal generator, adn try again.
User avatar
sweatmark
Septuple Lifer
Posts: 2236
Joined: Mon Mar 21, 2005 11:11 am
Donating Member #: 208
Location: Oregon USA

Re: R1150R Rockster (iABS) speedo drive replacement

Post by sweatmark »

OK, so you still have the big iABS connector as shown in this image? (the black & blue AMP modular connector)

Image

If you are working with the Arduino, then you can use this information:

The iABS wheel speed sensors are based on the Infineon TLE4923 IC:
http://www.infineon.com/dgdl/TLE4923.pd ... 9971de01d2
http://www.infineon.com/dgdl/appl_4923. ... 090076004b
If these links do not work, just google for "TLE4923" to get a session cookie and access to each document.

The dual-Hall IC, a rare earth bias field magnet pellet, and two capacitors (as shown in the application circuit diagram) are embedded within the iABS sensor body. For the two-wire sensor, drive voltage is wide range, and the iABS PIC measures voltage across a pull-down sensor resistor. After a long time guessing what the OE sensor might be, I finally cut one apart to identify the ingredients. (Should have done that at the beginning of project.)

When I measured speedometer response following iABS servo removal, I found that 100Hz square or sine input with minimum RMS = 1.1V drove the speedo at approximately 76 MPH indicated. Maybe 77 MPH, but who's counting?

If your bike still has the iABS timing rings on each wheel, then you can drive the Arduino's output using one of the wheel sensor input signals. I worked on a PICAXE solution using the -08M and its PWM constant output, but dropped the idea due to my short attention span. Note that the front wheel timing ring has 100 counts, while the rear wheel timing ring has 84. The rings are NOT interchangeable.

Another possible solution using the Arduino is a single wheel target, reed sensor TTL input, measured interval for counts, and some type of loop output to generate your speedometer input. But I'm not an Arduino guy and don't know what I'm talking about.

One of my successful solutions to the iABS removal speedometer problem was manufacture of a new 6-count timing ring for the rear wheel to replace the original timing ring. The 6-segment rear wheel timing scheme is what's used on the non-ABS Rockster via a ferrous crown wheel installed in the final drive, with a dedicated wheel speed sensor that is oriented downwards into the final drive case (search here for some info from Riceburner regarding this setup). For my new ring, I used 6 very small magnets as targets for the iABS Hall sensor, after having problems with larger magnets and excess Gauss field fluctuation. You can also use ferrous targets, eg. solid rivets. My new timing ring was laser cut from stainless. I have a couple extra rings if you want to try this speedometer signal source option; the ring is free if you pay shipping, plus you will need to choose and install the targets. Using the small magnets as targets allows for bigger sensor/target gap than ferrous targets.

From the BMW wiring schematic, the iABS Rockster speedometer has 5 wire connection:
Pin 15 = 12Vdc
Ground
BLBR = sensor voltage source
BLGE = sensor return current
BLGN = speedometer trigger output to the turn signal module for cancel

Let me know how it goes.
Rockster#2, K1300S, S1000R (for sale)
camdrv
Basic User
Posts: 9
Joined: Tue Apr 24, 2012 2:36 pm

Re: R1150R Rockster (iABS) speedo drive replacement

Post by camdrv »

Yes the connector and rings and two Hall effect sensors still present. I like Your impressive project, but I wish keep the opportunity of reversebility. At first must drive the speedo, I'll looking for a signalgenerator which is a controlled ampitude.

many thanks for your helpful assistance :)
Zolee
User avatar
sweatmark
Septuple Lifer
Posts: 2236
Joined: Mon Mar 21, 2005 11:11 am
Donating Member #: 208
Location: Oregon USA

Re: R1150R Rockster (iABS) speedo drive replacement

Post by sweatmark »

Just use a voltage divider:
http://hyperphysics.phy-astr.gsu.edu/hb ... oldiv.html

Use TTL output from Arduino, use resistor ratio to get approximately 1.5 Vdc to drive the speedometer inputs. Measure the output as AC RMS voltage.

Try connecting the V high output from voltage divider to BLGE (blue/yellow) terminal, with V low connected to the ground terminal on speedometer. I was able to drive my Rockster speedo with just one input connected, while the instruments were still installed (the power and ground connected, which is required).
Rockster#2, K1300S, S1000R (for sale)
camdrv
Basic User
Posts: 9
Joined: Tue Apr 24, 2012 2:36 pm

Re: R1150R Rockster (iABS) speedo drive replacement

Post by camdrv »

The voltage divider does not work. The voltage can be set but the instrument still to show zero.
I tried a low voltage power amplifier LM386N

https://picasaweb.google.com/lh/photo/t ... directlink

This works properly but change the square wave.

https://picasaweb.google.com/lh/photo/r ... directlink

the solution is much simpler. A linear RC circuit. I used a 3.3 ohm and 10uF capacitor.

https://picasaweb.google.com/lh/photo/3 ... directlink

And now the Arduino uno can drive the Rockster ABS speedometer with 5V digital output.

parameters: Vmax = 2.56V, Cycle = 10mS, Duty = 50%, Vavg = 830mV, Vp-p = 3.5V
at 99Hz = 77mph
User avatar
sweatmark
Septuple Lifer
Posts: 2236
Joined: Mon Mar 21, 2005 11:11 am
Donating Member #: 208
Location: Oregon USA

Re: R1150R Rockster (iABS) speedo drive replacement

Post by sweatmark »

Congratulations for solution.

So when you say "linear R-C circuit" do you mean low-pass filter? Or pure series connection:

Arduino > resistor > capacitor > speedometer input ?

I am working on new sensor and circuit for my ABS-missing Rockster. During this week's holidays, will do circuit testing and report results.
Rockster#2, K1300S, S1000R (for sale)
camdrv
Basic User
Posts: 9
Joined: Tue Apr 24, 2012 2:36 pm

Re: R1150R Rockster (iABS) speedo drive replacement

Post by camdrv »

exactly, it is a low pass filter.
User avatar
sweatmark
Septuple Lifer
Posts: 2236
Joined: Mon Mar 21, 2005 11:11 am
Donating Member #: 208
Location: Oregon USA

Re: R1150R Rockster (iABS) speedo drive replacement

Post by sweatmark »

Actually, guessing that you have applied a high pass filter, with the output to speedometer measured across the resistor. The key issue is the speedometer input waveform: the required signal must oscillate through zero, as the OE speed sensor (for non-ABS bike applications, carried over for the iABS bikes) is simple magnetic variable reluctance type and produces a sinusoidal output.

Guessing also that you used a 0-5 Vdc square wave from Arduino, which is why you saw no speedometer response. Note that my Rockster speedo experiments have used sine and +/- square wave inputs that pass through zero. Thought you might just need p-p attenuation, but not for TTL...

After playing around with several iABS-removal speedometer fix options, my two favorite solutions are:

1. A new timing (tone) ring installed on the rear wheel, with 6 targets/triggers, and employing either the OE ABS wheel sensor or an 18mm VR sensor in its place.

2. A new front wheel Hall effect sensor that triggers off the brake disc's mounts (5), with speed signal conversion/correction via SpeedoDRD from 12 o'clock Labs, and differentiator circuit (both RC and RL work) to get speedometer input oscillation.

Option 1 is electrically simple - at least with the VR sensor - but requires both the new tone ring and the wheel mount spacer as equipped on iABS bikes; it's also no more (just as) accurate as the OE speedometer, whether ABS or not. Getting the VR sensor output right took a lot of experimentation and guesswork.

Option 2 requires a new circuit to interface the sensor, DRD, and oscillator, but the result is mechanically simple, very flexible for signal path adjustments, and dead-on accurate for speed, based on straight line GPS comparisons.
Rockster#2, K1300S, S1000R (for sale)
camdrv
Basic User
Posts: 9
Joined: Tue Apr 24, 2012 2:36 pm

Re: R1150R Rockster (iABS) speedo drive replacement

Post by camdrv »

The next step is to enter the Hall effect sensor signal into the Arduino. I made a model. The ABS ring rotor is replaced by a fan blade and three neodymium magnets.

https://picasaweb.google.com/lh/photo/k ... directlink
https://picasaweb.google.com/lh/photo/_ ... directlink
https://picasaweb.google.com/lh/photo/y ... directlink

The resulting 50 Hz sine wave converted to a square wave signal by HCF4093BEY Schmitt trigger.

https://picasaweb.google.com/lh/photo/h ... directlink

The resulting square wave is Ardunio with a digital input processed and sent to the speedometer by digital output.

This program was used to display a signal to signal 1:1

const int HallSignalPin = 2;
const int SpeedoOutPin = 13;

int SignalState = 0;

void setup() {

pinMode(HallSignalPin, INPUT);
pinMode(SpeedoOutPin, OUTPUT);
}

void loop() {

SignalState = digitalRead(HallSignalPin);

if (SignalState == HIGH) {
digitalWrite(SpeedoOutPin, HIGH);
} else {
digitalWrite(SpeedoOutPin, LOW);
}
}

This model will working properly with a 6 tooth ring but we have a 100 tooth ring (the original BMW rotor)
so we must be divided by the tooth 100 by 6.
We need to be use every 16th signal.
I tried this program below but something is wrong.. I got chaotic output betwen 50Hz and 1kHz ????
Someone experienced programmer ???

const int HallSignalPin = 2;
const int SpeedoOutPin = 13;

int SignalState = 0;
int SignalCounter = 0;

void setup() {

pinMode(HallSignalPin, INPUT);
pinMode(SpeedoOutPin, OUTPUT);
}

void loop() {

SignalState = digitalRead(HallSignalPin);

if (SignalState == HIGH) {
SignalCounter++;
} else {
// NOR
}

if (SignalCounter % 4 == 0){ // this used for 3 tooth rotor, for 100 tooth need 16 modulo
digitalWrite(SpeedoOutPin, HIGH);
} else {
digitalWrite(SpeedoOutPin, LOW);
}

}
User avatar
sweatmark
Septuple Lifer
Posts: 2236
Joined: Mon Mar 21, 2005 11:11 am
Donating Member #: 208
Location: Oregon USA

Re: R1150R Rockster (iABS) speedo drive replacement

Post by sweatmark »

Zoltan, very much like your Arduino application!

If it would make your project simpler, I can send you a rear wheel timing ring (tone wheel) with 6 target positions. You can attach whatever targets will work best with your sensor. Here is the idea:

Image

In the photo, I have attached target magnets with polarity appropriate for the OE iABS sensor, though conventional ferrous (magnetic) steel targets could be used. The new ring is stainless 306 and non-magnetic.

I used this timing ring with the VR sensor, which was the simplest speedometer input scheme possible, and required no additional electronics.

After reading about your Arduino project, I decided to find my old PICAXE project materials and do a controller-based solution to the iABS-removal Rockster problem! The goal is best possible speedometer accuracy, hidden speed sensor mounting, chance to work again with PIC programming, and multifunction data outputs
Rockster#2, K1300S, S1000R (for sale)
camdrv
Basic User
Posts: 9
Joined: Tue Apr 24, 2012 2:36 pm

Re: R1150R Rockster (iABS) speedo drive replacement

Post by camdrv »

Your project is very impressive . The simple is always better, but I'm not giving up yet. :)
I am temporarily away from home, no possibility of steel-working, and the Arduino project is also a challenge for me.
Now I will refitting the speedometer to bike and continue to experiment.
User avatar
sweatmark
Septuple Lifer
Posts: 2236
Joined: Mon Mar 21, 2005 11:11 am
Donating Member #: 208
Location: Oregon USA

Re: R1150R Rockster (iABS) speedo drive replacement

Post by sweatmark »

Thanks for posting your project information! Electronics applications for these bikes are uncommon.

Please check for a PM.

I like the fan as experimental input!

Which portable scope are you using?

(edit, addition)

Regarding your higher Hz signal chaos : while working with a Hall sensor and magnets as targets during early Rockster speedometer experiments, I had problems with bounce and signal jitter. Switched to ferrous targets and had to decrease air gap, but achieved better signal quality.

As for your code, I don't speak Arduino C++, but I've had PICAXE code cough and spit when incoming signal processing and code execution time ate up processor time, and slower chip speed of the PIC became a problem.
Rockster#2, K1300S, S1000R (for sale)
camdrv
Basic User
Posts: 9
Joined: Tue Apr 24, 2012 2:36 pm

Re: R1150R Rockster (iABS) speedo drive replacement

Post by camdrv »

fixed C code:


const int HallSignalPin = 2;
const int SpeedoOutPin = 13;

int SignalState = 0;
int SignalCounter = 0;
int lastSignalState = 0;

void setup() {

pinMode(HallSignalPin, INPUT);
pinMode(SpeedoOutPin, OUTPUT);
}

void loop() {

SignalState = digitalRead(HallSignalPin);

if (SignalState != lastSignalState) {
if (SignalState == HIGH) {
SignalCounter++;
} else {
// NOR
}
}
lastSignalState = SignalState;

if (SignalCounter % 16 == 0) -+{
digitalWrite(SpeedoOutPin, HIGH);
} else {
digitalWrite(SpeedoOutPin, LOW);
}
}
camdrv
Basic User
Posts: 9
Joined: Tue Apr 24, 2012 2:36 pm

Re: R1150R Rockster (iABS) speedo drive replacement

Post by camdrv »

pocket oscilloscope: SainSmart Pocket-Sized Digital Oscilloscope ARM DSO Nano DSO201
we22192
Basic User
Posts: 2
Joined: Mon Mar 25, 2013 8:39 pm

Re: R1150R Rockster (iABS) speedo drive replacement

Post by we22192 »

I just did the ABSECTOMY on my R1200cl. I saw the post about the vr sensor and magnets. Can you explain what I need to do. As I understand what you did was to place 6 magnet/bolts in the rotor (via the ring you made) and replaced the hall effect sensor with a vr sensor. What vr sensor did you use? how did you wire it to the speedometer? Can I assume since my odemeter illuminates that 12Vdc and ground are still intact and the BLGN is still intact as it goes to the cruise control and the turn signal modules. Therefore can I assume all I need is to connect

BLBR = sensor voltage source
BLGE = sensor return current

If that is true what wire from the vr speed sensor go to BLBR and which to BLGE.

do you still have a rign availabe?
User avatar
sweatmark
Septuple Lifer
Posts: 2236
Joined: Mon Mar 21, 2005 11:11 am
Donating Member #: 208
Location: Oregon USA

Re: R1150R Rockster (iABS) speedo drive replacement

Post by sweatmark »

we22192 wrote:I just did the ABSECTOMY on my R1200cl. I saw the post about the vr sensor and magnets. Can you explain what I need to do. As I understand what you did was to place 6 magnet/bolts in the rotor (via the ring you made) and replaced the hall effect sensor with a vr sensor. What vr sensor did you use? how did you wire it to the speedometer? Can I assume since my odemeter illuminates that 12Vdc and ground are still intact and the BLGN is still intact as it goes to the cruise control and the turn signal modules. Therefore can I assume all I need is to connect

BLBR = sensor voltage source
BLGE = sensor return current

If that is true what wire from the vr speed sensor go to BLBR and which to BLGE.

do you still have a rign availabe?
Sent you PM. Your CL will probably require a different speedometer signal sourcing option.
Rockster#2, K1300S, S1000R (for sale)
Beamert
Basic User
Posts: 1
Joined: Sat Jun 18, 2016 1:31 am

Re: R1150R Rockster (iABS) speedo drive replacement

Post by Beamert »

@camdrv and @sweatmark. First of all, thanks a lot to you guys for documenting all the work you have done on working on the speedometer. Really fantastic stuff!

It is my first post, so apologies if I do not follow form (yet). Since a week I am a proud owner of a R1150R Rockster, and have exactly the same problem as @camdrv.
I bought the rockster without the iABS, and also without the iABS controller, so unfortunately I cannot reuse it. The relays for the breaks were installed, but the speedometer does not work.

I did quite some googling an read the solutions. Since I do not have the original iABS unit, I cannot reuse the electronica. I want go for the Arduino solution, mainly because I have quite some experience in programming them.

However, i am a hobbyist, and not an electronic expert. Therefor the question, @camdrv: could you share with me
1.) What parts you used, so I can order them
2.) Could you share how exactly you wired everything. Unfortunately I do not own a BMW manual

Many thanks!!
User avatar
sweatmark
Septuple Lifer
Posts: 2236
Joined: Mon Mar 21, 2005 11:11 am
Donating Member #: 208
Location: Oregon USA

Re: R1150R Rockster (iABS) speedo drive replacement

Post by sweatmark »

Beamert wrote:@camdrv and @sweatmark. First of all, thanks a lot to you guys for documenting all the work you have done on working on the speedometer. Really fantastic stuff!

It is my first post, so apologies if I do not follow form (yet). Since a week I am a proud owner of a R1150R Rockster, and have exactly the same problem as @camdrv.
I bought the rockster without the iABS, and also without the iABS controller, so unfortunately I cannot reuse it. The relays for the breaks were installed, but the speedometer does not work.

I did quite some googling an read the solutions. Since I do not have the original iABS unit, I cannot reuse the electronica. I want go for the Arduino solution, mainly because I have quite some experience in programming them.

However, i am a hobbyist, and not an electronic expert. Therefor the question, @camdrv: could you share with me
1.) What parts you used, so I can order them
2.) Could you share how exactly you wired everything. Unfortunately I do not own a BMW manual

Many thanks!!
<from PM response>

... for quick fix of the Rockster (and R1100S and K1200RS) speedometer, my advice is to use the following:

Adafruit Pro Trinket (https://www.adafruit.com/products/2000) or similar
Adafruit GPS Breakout (https://www.adafruit.com/products/746) or similar

...

The R1100S/Rockster speedometer requires a +/- leading edge pulse input based on experiments. I tried +/- sine and square wave inputs, and compared to TTL (0-5Vdc) square wave, and found that the TTL signal did not activate speedometer. To get the +/- pulse waveform, I am using a differentiator circuit with 100 micro-Farad capacitor and 2.2k Ohm resistor, with 3.3V Zener diode to limit the TTL output from 5V arduino board:

https://photos.google.com/share/AF1QipP ... pBSWtnLWRn

In the picture linked above, the 1 Hz green source represents the arduino's variable TTL output.

Arduino code uses the Adafruit GPS library (or you could use TinyGPS) to get the velocity value, in knots.

knots * 1.496 = Hertz output to speedometer (based on experiments, 100Hz : 76-77 MPH)

Use arduino function "tone" to produce continuous square wave output (https://www.arduino.cc/en/Reference/Tone)

The Rockster speedometer has four (4) terminals on the back:
12Vdc Power from Fuse 1 instruments (green wire)
Ground (brown wire)
Speedo input signal (blue/yellow)
Speedo signal ground reference (blue/brown)

You can power the arduino from the 12V if board is equipped with DC converter - one reason I like Adafruit.
If the arduino and C-R differentiator are tied to same ground as speedo, you do not need the speedo signal ground.

There is a small space in the front of the Rockster instrument carrier that is perfect for the arduino and GPS breakout boards. The GPS receives satellite signal through the plastic carrier and the Rockster "cap".
Rockster#2, K1300S, S1000R (for sale)
Post Reply