Cylinder head temperature gauges/sender

Hello, first post and all that.

I'm currently installing MegaSquirt EFI onto an air-cooled engine. For the cylinder head temperature (CHT) measurement, I am planning on using 4 thermistors, one per cylinder. The MS ECU can only take one input so I am planning on routing them all via an Arduino (analogue input) and then outputting an average reading as a PWM signal (which I know works as an MS input because I've tried it).

I'm also planning on taking these four inputs and displaying them as bar graphs so it is immediately obvious if one cylinder is misbehaving. I was going to use LED bar charts but driving 4 independently seemed like a PITA and a lot of wiring. I then found it was cheaper to buy a 4x20 LCD (said "Arduino" in the eBay description so I'm sure it will be compatible) and this will give me much more scope to be creative in what I display, although programming it might be a little complicated. From some of the demos I've seen on YT, there is some very impressive stuff that can be done with these screens so I'm 99% sure this project is feasible, although filtering out the noise/heat is likely to be a challenge. I've had a good read of the MultiDisplay stuff which seems fairly relevant.

I've already got an UNO R3 but have ordered a bunch of bare chips in case I want to make a standalone version. LCD isn't here yet but I'm itching to get cracking.

It's a steep learning curve but I've browsed these forums and there are some clever people out there!

spandit:
(which I know works as an MS input because I've tried it).

I must admit I'm surprised at that. Apart from a lingering doubt about that, everything else seems feasible.

If you're using MegaSquirt then you also have [the option of] a map-switch function which you could trigger from the Arduino to put the ECU into a more conservative mode if the distribution of temperatures looks unhealthy.

PeterH:

spandit:
(which I know works as an MS input because I've tried it).

I must admit I'm surprised at that. Apart from a lingering doubt about that, everything else seems feasible.

If you're using MegaSquirt then you also have [the option of] a map-switch function which you could trigger from the Arduino to put the ECU into a more conservative mode if the distribution of temperatures looks unhealthy.

MegaSquirt measures CLT temperature by using the sensor in a voltage divider, thus reading a differential voltage. By just supplying the CLT pin with a varying voltage, one can easily simulate this. I tried it with "raw" PWM and it seemed to work fine. I also tried with a low pass filter which worked too. I've been advised on a different forum to use an op-amp to boost the signal which seems like a good idea. I'll mock it up tomorrow and give it a go (although waiting on some bits to be delivered so might not happen)

spandit:
MegaSquirt measures CLT temperature by using the sensor in a voltage divider, thus reading a differential voltage.

That's my understanding. Inside the ECU I'd expect to find a pull-up resistor, and an input to an ADC. With 20mA available at the Arduino output you can probably override the pull-up without any problem, but what voltage you end up with at the MS input I couldn't guess. Also, I wonder whether there is any smoothing or filtering between the external connector and the ADC. I haven't checked the MS circuit diagram, but off-hand I can't imagine any reason for the designers to have put in a low pass filter there. If there isn't one then you're asking MS to ADC a square wave signal and what value that will return is anybody's guess.

PeterH:
That's my understanding. Inside the ECU I'd expect to find a pull-up resistor, and an input to an ADC. With 20mA available at the Arduino output you can probably override the pull-up without any problem, but what voltage you end up with at the MS input I couldn't guess. Also, I wonder whether there is any smoothing or filtering between the external connector and the ADC. I haven't checked the MS circuit diagram, but off-hand I can't imagine any reason for the designers to have put in a low pass filter there. If there isn't one then you're asking MS to ADC a square wave signal and what value that will return is anybody's guess.

I feel we're possibly talking at cross purposes here. I'm planning to filter the Arduino output before it goes to the MS, so the MS will "see" a nice, smooth signal (even though feeding it a raw PWM seems to work at the moment). Hoping some components arrive today so I can make up a better test board