tegwin
|
posted on 23/6/14 at 01:41 PM |
|
|
Circuit to change a signal (Speedo)
Are there any clever electrical folk in the house?
I am changing the transfer box ratio in my defender from 1:4 to 1:2. The speedo output comes after the transfer box.
I need to keep the speedo reading the same so the ECU doesn't notice the ratios are changed. (the cruise control cross checks engine RPMs to
speedo readings).
What I want to do is take the pulses from the speedo sender and reduce them by around 15% so that I am getting the same speedo reading to engine rev
ratio as before.
In principle it sounds like a simple thing to do but anyone have any thoughts on how I would go about turning one signal into another but at a reduced
frequency?
------------------------------------------------------------------------------------------------------------------------
Would the last person who leaves the country please switch off the lights and close the door!
www.verticalhorizonsmedia.tv
|
|
|
dinosaurjuice
|
posted on 23/6/14 at 03:32 PM |
|
|
I would use an LM2917, scale/condition it using a LM324, then convert back to frequency with a LM331.
Theres probably an easier way to do it with a micro controller, but sometimes simple analog circuits are all that's needed.
|
|
MikeRJ
|
posted on 23/6/14 at 03:49 PM |
|
|
It's actually not that easy to perform non-binary division (i.e. power of two) with a simple circuit. An of-the-shelf solution exists in the
form of the SpeedoHealer, but it's quite expensive for what it does. A s/h one might
be the easiest path.
If you are determined to DIY this then you won't get a simpler implementation than by using a small microcontroller.
|
|
MikeRJ
|
posted on 23/6/14 at 03:54 PM |
|
|
quote: Originally posted by dinosaurjuice
I would use an LM2917, scale/condition it using a LM324, then convert back to frequency with a LM331.
Theres probably an easier way to do it with a micro controller, but sometimes simple analog circuits are all that's needed.
As always, the devil is in the details. How would you handle the situation when the car is stopped since an LM331 can not go down to zero Hz? You
could maybe add an additional re-triggerable monostable to detect this and gate the output of the LM331, but suddenly your simple analog circuit is
becoming less simple.
|
|
tegwin
|
posted on 23/6/14 at 08:58 PM |
|
|
Thats a good thought. It would need to drop at idle...
It's been a while since I have done anything with micoprocessors. PIC's back in the day...
How would you go about creating the code to make that work?
It would be handy to have a switchable "modified" and "unmodified" signal which changes as the speeds come back down again.
All doable in the code but not sure where I would start...
------------------------------------------------------------------------------------------------------------------------
Would the last person who leaves the country please switch off the lights and close the door!
www.verticalhorizonsmedia.tv
|
|
dinosaurjuice
|
posted on 24/6/14 at 08:32 AM |
|
|
why would it need to drop at idle if the only purpose is to allow the cruise control to work?
edit: if the sensor picks up on a toothed ring etc would it be possible to just make a new one with difference spacing?
[Edited on 24/6/14 by dinosaurjuice]
|
|
loggyboy
|
posted on 24/6/14 at 08:55 AM |
|
|
Keep an eye on this thread for diy kit.
http://www.migweb.co.uk/forums/cars-items-wanted/642913-pulse-converter.html
Mistral Motorsport
|
|
tegwin
|
posted on 24/6/14 at 02:59 PM |
|
|
quote: Originally posted by dinosaurjuice
why would it need to drop at idle if the only purpose is to allow the cruise control to work?
edit: if the sensor picks up on a toothed ring etc would it be possible to just make a new one with difference spacing?
[Edited on 24/6/14 by dinosaurjuice]
I am not sure what else the signal does inside the ECU.....
I only really want the ECU to be tricked when cruise is engaged so a micrcontroller based thing might work really well.
------------------------------------------------------------------------------------------------------------------------
Would the last person who leaves the country please switch off the lights and close the door!
www.verticalhorizonsmedia.tv
|
|
theprisioner
|
posted on 24/6/14 at 06:17 PM |
|
|
my arithmetic says delete every 7th pulse gives a 14% reduction and every 6th gives a 16% reduction does it realy have to be 15%? A pulse deletion cct
would be really simple!
http://sylvabuild.blogspot.com/
http://austin7special.blogspot.co.uk/
|
|
tegwin
|
posted on 24/6/14 at 10:14 PM |
|
|
I don't know what level of error the ecu would allow. I'm going from a 1:4 ratio box to a 1:2 ratio box..... 14 or 16% might just do
it....
------------------------------------------------------------------------------------------------------------------------
Would the last person who leaves the country please switch off the lights and close the door!
www.verticalhorizonsmedia.tv
|
|
stevebubs
|
posted on 24/6/14 at 11:01 PM |
|
|
Lazy option...
http://www.bikersdiscountstore.co.uk/speedo-healer/healtech-electronics/speedo-healer-v4-pd-18.php
[Edited on 24/6/14 by stevebubs]
|
|
theprisioner
|
posted on 25/6/14 at 07:04 AM |
|
|
The pulse swallowing cct is just a binary counter with an AND gate to swallow the pulse once every cycle. Trip to Maplin purchase vero board, counter,
AND gate, 5V regulator and capacitor, box to put it in. If you wish to follow the Locost route PM me your email address and I will send you details.
Some experimentation/construction/testing will be required by you.
http://sylvabuild.blogspot.com/
http://austin7special.blogspot.co.uk/
|
|
DW100
|
posted on 25/6/14 at 08:14 AM |
|
|
I assume you are going from 1.4:1 to 1.2:1 and not 4:1 to 2:1 as that would be a 50% change.
A small micro controller could measure input frequency divide it by whatever is required then output a square wave at the new frequency with the
minimum of code.
|
|
MikeRJ
|
posted on 25/6/14 at 12:17 PM |
|
|
quote: Originally posted by DW100
I assume you are going from 1.4:1 to 1.2:1 and not 4:1 to 2:1 as that would be a 50% change.
A small micro controller could measure input frequency divide it by whatever is required then output a square wave at the new frequency with the
minimum of code.
That's the way I'd do it, effectively implementing a digital phase locked loop. This would ensure it would work irrespective of the way
the speedometer/ECU etc. is implemented.
Skipping pulses may or may not work well, depending on how the speedometer is implemented. However, in terms of coding a pulse skipping scheme on a
small micro it would be extremely simple. You'd use something called a phase accumulator, the guts of which could be implemented in a few lines
of code:
The phase accumulator is simply an unsigned integer variable of suitable width (i.e. number of bits). An 8 bit accumulator may be sufficient, but
will limit the accuracy of the pulse division e.g. 8 bits=256, 85% of 256 = 217.6, but as you'd be using integer maths on a small micro you
would round this up to 217. 217/256 = 84.7%, probably sufficient.
The existing speed sensor would be connected to an external interrupt line on the micro. Every time the spped sensor output goes high the interrupt
handler simply adds 217 to the phase accumulator and then checks if the accumulator has rolled over. If it has, then the output pin is set high,
otherwise it's set low. That's all there is to it. This algorithm will automatically skip either 6 or 7 pulses to keep the average
frequency at exactly 217/256 of the input frequency.
A digital Phase Locked Loop also uses a phase accumulator, but in this case the output frequency is asynchronous from the input, derived from a timer
peripheral on the micro. The input waveform and output of the phase accumulator are averaged using a low pass filter (aka integrator), and a control
loop varies the frequency of the output until the integrated values match. This gives you a continuous square wave output with no missing pulses, and
which is exactly divided over time. A bit trickier to implement, and you'd have to deal with the stopped condition separately (because a timer
can not be programmed for infinite time unless disabled).
A cheap development system like an Arduino would be more than adequate to develop either scheme, though ultimately it could be fitted into a small 6
or 8 pin micro.
[Edited on 25/6/14 by MikeRJ]
|
|
tegwin
|
posted on 25/6/14 at 09:31 PM |
|
|
Thanks all. Thats really useful info. I think I need to do some reading as I have not written any code of that sort before.
Mike Rj, would you be willing to give me some pointers when I get to that stage?
Currently doing the actual transfer box change and adding some sound insulation but once that is done I will start playing with the cruise system in
earnest.
------------------------------------------------------------------------------------------------------------------------
Would the last person who leaves the country please switch off the lights and close the door!
www.verticalhorizonsmedia.tv
|
|