Multidisplay, a Open Source inCar Display, Logger

Designer2k2,

I must be missing something, why did you choose to build your own thermocouple amp? can your board deal with multiple sensors is that what your saying? I was thinking about using a AD595 for a similar project but was curious why you went the route you did.

Thanks

Charlie

the AD595 is nice for up to 500°C, but not more on 5V. And it costs me 36? a piece.

now i want to measure up to 8 channels up to 1200°C, and that would force me to a 12V supply and cost 288?, thats WAY to expensive...

so i made my own :sunglasses: for little 9?. the only drawback is it cant measure lower as ambient.
but with adding a LT1025 down to 0°C would work.
For measuring exhaust gas temps thats ok, they will never be cooler as 400°C :wink:

Basically the AD595 is nice, but to expensive...

Designer2k2,

Thanks for getting back to me - Thats really cool your design can deal with 8 sensors - Sorry I was being lazy I should have looked at the google code site you setup. I now have no excuse not to build one I hear boxer engines with mechanical fuel injection are monitored on engine dynos that way (one egt per cylinder) but when I first thought to do that the cost of EGT devices quickly put me off - well not anymore!

Rock on!!!

the first frontpanel is done:

its holding the LCD, 2 Buttons and a LED acting as Shiftlight.
Size is like a DIN-Radio, so installation should be easy :slight_smile:

And with it the md002p0 branch gets close to finishing!

The Interface Print is ready to be ordered:

getting closer and closer to get it back into the car :sunglasses:

That's cool! :slight_smile:

Hi, I'm trying to do something similar for my bike.
But RPM calculations are tricky, have you solved it?

I'm trying to use some and integration function, but I still have the problem of being too sensitive or too laggy.

Regards,
TVeiga.

RPM Measurement was one of the only things that worket right away...

it has a smoothing, but only little what in my case completely resfreshes every 100ms, so latest after 100ms you have the actual rpm, thats quick enough for me :slight_smile:

Hey designer2k2: I agree re the in a car bit.. but I think the guy mentioned motorbike?

Seriously, on a bike, 100ms is plain as daylight... you have something that goes to 15,000RPM and does that in about 2.5-3Seconds... so a 100ms lag is very noticeable - certainly in "spirited riding" 100ms can be equal to about 20-30Feet of distance travelled.

Also, most bikers ride using the tacho(well, feel anyway) for gearing, a hell of a lot more than your average car driver... This 'disjointed' feeling between actual RPM and displayed RPM then becomes even more apparent.

All of this is not relevant to the technology, but is reason why a lot of bikers get 'picky' about Tacho's... and cars can get away with "near enough is good enough" which can often end up being miles-out by the time you get to 15,000RPM :wink:

And its interesting also because to many people that sort of difference is not even considered or thought to be relevant.. Guess it just goes to show that what works great in one environment can be just average when applied to the seemingly same (but ultimately different) environment...

(here end the thread-jack.. sorry designer2k2!) ;D
I will let you know how it works out on the R1 later tonight when I finish the circuit...

i agree on that its not fast enough for data logging, but for displaying it in alphanumerical numbers its even to fast.
there is no way you can read the numbers so quick :wink:

if you remove the smoothing, the thing bounces a little at low rpm´s, but the ripple gets less the higher the rpm. so at a car idle (600-750rpm) it jumps +-100rpm but at about 3000rpm you cant see it jumping anymore. that should help on a bike as the rpms are generally much higher :slight_smile:

here are some screenshots from logging without smoothing, the ripple is visible: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1239996764/16#16
(the red line)

but show the values you should also add kind of a bar-style display, thats readable even at highest change rates.

let us know then how it works on a R1 :slight_smile:

I think that doesn't rev that high, and the solution that I was thinking of either perform bad at low rpm or high rpm. I'll explain.

I was thinking of doing a coil around the spark plug cable, protected with a zener and connected to a interrupt line in the arduino. So every time a spark is fired and interrupt is also fired. This means that the motor rotated 1 time in a two stroke engine and 2 times in a four stroke engine.

I tested 2 ways of counting the rpm, first I tried to count the time between interrupts, but it seems that the millis() function doesn't work as expected inside an interrupt.
Secondly, I tried to count the number of interrupts fired in a fixed period of time. If the period is short the response is fast but at lower rpm is always flickering.

Example: at 1000 rpm in a four stroke engine I have 1 interrupt every 120ms. So if I'm checking let's say every 100ms the rpm will change between 0 and 1200.

I tried to integrate the results but then I lost performance at high rpm.

Now i'm thinking of two solutions. An adaptive sampling changing the period. The other solution is using more input's connected to other spark plugs.

Yes, you're right. Even 100ms is to fast for the lcd to refresh.
I'm using a bar and a numeric value, the bar has a fast refresh rate, the number only refreshes every 500ms.

ok, i convert the frequency to volts and then just read it in. takes some parts but the timing dont matter :wink:

Doh - I forgot I have to re-pin for the LM2917 (the 14 pin package of the 2907 with the zener internally...)

:o

So I'll have to finish that first... shouldn't take me tooo long.
EDIT: But the lack of some 1µF's that I swear I had will put an end to it till I can pick some up tomorrow :-[

oh i know that, same here, ordered everything just no blank pcb´s, now all i was able to etch is a little RJ45 breakout on a leftover piece :-[

Hey D2k2: Can you just flesh out how you tapped the injector ? I was thinking it was just the + lead right? Im just curious what voltage it is, as you also have it wired to KX01 pin 3.. and I see that also powers the LM2907.. where does KX01 pin 3 end up routing ? Because it must be carrying +12VCC right ??)

Just some more info on the voltages at either end of the circuit and the specifics of the pins would be awesome

(I ask because I am now done re-wiring for the LM2917, which requires a different circuit basically... and what to check something that doesn't make sense to me at the moment....)

no no, the injector is wired to K2 (pin2)! on K1 there is the 5V, GND and on the center pin the Output Signal 0-5V

i crimped a wire to the 12V supply for the injector, when this line is 12V the injector opens, so with every high side of the signal the LM2907 gets a signal.

Yeah, I figured the 12V from the injector was kx02 pin2 - so thats right.. but in your circuit, isn't the 12V connected to the 5V supply ?? or am I missing something in that resistor/diode setup that is protecting the overvoltage ?? the 4148 is leaking the excess back to the 557 ??

I can see the 12V+ causes the BC557 to fire which generates the input to Pin1 on the LM2907... but yeah... how the 5V and 12V living in what appears to be an electrically connected environment has me confused.. Plus, doesn't the 2907 require a minimum supply voltage of 10V ?? (further confusing me why it would be running 5V there... )

Sorry - its late here in Australia - so these are probably dumb questions. In fact - I know they are... but help a guy out anyway :wink:

On the upside, Im ready to test it once I sort out the above supply question.. but at 1am, I dont think the neighbours will appreciate it..

Thats the modified circuit I've built. You'll note the extra circuitry basically on the right hand side. And yes my 'KX01' is a 3pin, not 2 pin... Oh - and I've changed the 133k to a 100k potentiometer until I can work out the proper actual resistor... haven't turned it on till I sort out the supply voltage questions since im confused now ;D

the circuit is running at 5V, i know the datasheet tells somewhere 10 or 12V but its stable at 5V also :slight_smile:

the 12V from the injector is never mixed with the 5V, R2/D1 protect the input from going over 5V, thats why its connectet to the 5V line :wink:

to test the circuit you can take a wire and just quickly put 5V on the input several times, you will see some voltage on the output whenever you touch the input with 5V :slight_smile:

played a bit with processing, now i got a link to it :slight_smile:

the processing code: GitHub - designer2k2/multidisplay: The MultiDisplay Project, An opensource datalogger, boost controller and display for cars

it reads the CSV stream from the arduino and displays it with a nice display :sunglasses:

video (scroll to 2:30 for the processing app):

tried to get it running today, but still sorting all kind of problems... :-[

besides this troubles i made the processing app nicer:

Very nice Show-off for the Arduino-Processing Link :slight_smile:

Never got the idea it could be so easy to do this, im impressed by processing... :slight_smile: