PDA

View Full Version : Hacking a WR250 Speedo



Quickrik
2nd May 2018, 18:49
The speedo on my WR250R is flipping useless, even from new it drove me mental that the stupid thing couldn’t get close to approximating my real ground speed. I spend a lot of my riding time trying to perform the mental gymnastics required to work out if I actually am doing 40 through a school zone. Then after a multi-day effort to undo the nut on the output shaft, I’ve changed the sprocket, dropping a tooth on the front. So the speedo’s miles out now.

So this weekend, armed with an oscilloscope, I set out to see if I could hack into the WR’s wiring loom and trick the bikes speedo. The ultimate goal of this project is to come up with some sort of speedo healer type device.

There’s lots of stuff on the internet about WR250R speedos, so finding a good place to hack into the loom was not a problem. The speedo pickup connects just behind the left-hand side panel, easy.

336504

Putting the bike on a lift stand allowed me to easily spin the back wheel (speed pickup sender reads off the gear box) and see what kind of electrical pulses come out of the sender.

The scope showed a nice 5 volt square wave. Awesome, I can knock up a simple microcontroller circuit to bang out a 5 volt pulse. The Yamahas excellent onboard diagnostics mode allowed me to count the number of speed pulses per wheel revolution to give me an idea of how fast to send the pulses to the ECU.

For any programmers out there, the guts of program is pretty frickin simple.

While(1)
{
pulse == !pulse;
delayMs(10);
}

That’s it, wire the circuit up to the bikes battery and the microcontroller output to the ECU speedo input. Turn on the ignition and SUCCESS.

336503

Playing around length of the delay shows different speeds on the clocks. At this point the urge to see how fast she could go became overwhelming, so I set the delay to zero to see what would happen.

336502

Look mum I’ve maxed out the bike, no hands!

Next weekends job is to read the pulses from the speedo sender work out how fast they’re coming, adjust them according to some ratio and send them onto the ECU. Which I think is going to be a bit trickier

Addo007
2nd May 2018, 19:20
I have had the same issues with mine, I changed the gearing to 13/47 and when my gps read 100 my speedo read 120. I went online to motomummy.com and ordered a 12 o’clock lab drd Speedo healer. Took 10min to install, programme to the settings calculated on their web site and my speedo is now bang on with the gps. Best and easiest fix, highly recommended.

I wouldn’t recommend dropping a tooth on the front, there is heaps of people online who put a 12 up front and the chain ended up eating into the swing arm, better to go bigger on the back.



The speedo on my WR250R is flipping useless, even from new it drove me mental that the stupid thing couldn’t get close to approximating my real ground speed. I spend a lot of my riding time trying to perform the mental gymnastics required to work out if I actually am doing 40 through a school zone. Then after a multi-day effort to undo the nut on the output shaft, I’ve changed the sprocket, dropping a tooth on the front. So the speedo’s miles out now.

So this weekend, armed with an oscilloscope, I set out to see if I could hack into the WR’s wiring loom and trick the bikes speedo. The ultimate goal of this project is to come up with some sort of speedo healer type device.

There’s lots of stuff on the internet about WR250R speedos, so finding a good place to hack into the loom was not a problem. The speedo pickup connects just behind the left-hand side panel, easy.

336504

Putting the bike on a lift stand allowed me to easily spin the back wheel (speed pickup sender reads off the gear box) and see what kind of electrical pulses come out of the sender.

The scope showed a nice 5 volt square wave. Awesome, I can knock up a simple microcontroller circuit to bang out a 5 volt pulse. The Yamahas excellent onboard diagnostics mode allowed me to count the number of speed pulses per wheel revolution to give me an idea of how fast to send the pulses to the ECU.

For any programmers out there, the guts of program is pretty frickin simple.

While(1)
{
pulse == !pulse;
delayMs(10);
}

That’s it, wire the circuit up to the bikes battery and the microcontroller output to the ECU speedo input. Turn on the ignition and SUCCESS.

336503

Playing around length of the delay shows different speeds on the clocks. At this point the urge to see how fast she could go became overwhelming, so I set the delay to zero to see what would happen.

336502

Look mum I’ve maxed out the bike, no hands!

Next weekends job is to read the pulses from the speedo sender work out how fast they’re coming, adjust them according to some ratio and send them onto the ECU. Which I think is going to be a bit trickier

sidecar bob
2nd May 2018, 19:29
Go for a ride with a gps app, tape the phone to the handlebar & put a felt tip pen dot on the speedo every 5kmh & print a new speedo face plate that has the true speed on it.

Addo007
2nd May 2018, 19:33
Go for a ride with a gps app, tape the phone to the handlebar & put a felt tip pen dot on the speedo every 5kmh & print a new speedo face plate that has the true speed on it.

They have a digital speedo

sidecar bob
2nd May 2018, 19:43
They have a digital speedo

Lol. Just write the numbers on the screen then.:niceone:

Akzle
2nd May 2018, 21:06
over my head, but, err. fucken, yay for you i guess.

anyway, speed limits are for pussies, doncha know

nzspokes
2nd May 2018, 23:06
Sorted.

https://www.bikebarn.co.nz/accessories/computers-gps/echowell-bri-9w-wireless-computer-black-sku-ebri-9wbk