A few misc questions (connecting to an ECU, wiring together breadboards, etc.)

I have a few general questions that you guys might be able to help me with to get me started on a few projects. I'm eventually going to build a DAQ for my track day car and hopefully a piggyback controller for my other car. But first a few basic questions to help me get started. My background is mechanical so sorry of these are a bit basic.

  1. I want to log some crank/cam sensor data (VR sensors) so that I can potentially use one of them as a trigger. However, I need to first probe these signals so see what they look like. I want to somehow tap into the stock wiring harness to read the data coming from the VR sensor to the ECU without affecting the quality of the signal as it enters the ECU. At first I thought I could just wire the Arduino in series and then just read in the data and then pass it back out. However, I'm not sure if the Arduino is fast enough. If it starts lagging then it could mess up the engine. How should I connect the Arduino to the signal wire so that I can read the voltage without affecting it?

  2. How fast is the Arduino capable of processing input and output data? I know this is a really general and vague question but if I'm triggering some software every camshaft rotation then it'll have to cycle through everything when the engine is running at up to about 8000 RPM. Since the cam sensor will blip at half that rate, that means the Arduino needs to cycle at 4000 cycles/min or 66 Hz. Is it capable of reading in and processing data that fast? Since I'm going to be setting up some PID controllers and it might be unwise to have them refreshing so fast I may set up a counter so that has it only cycle at around 10 Hz to smooth things out. Still, I don't know how I can figure out if I'm going to have issues or not.

  3. What's an easy way to connect breadboards, etc. wired in remote locations? Say I have a bunch of LEDs mounted on my dashboard that need to be wired into a breadboard that's in the backseat. What type of connectors and wiring should I use to accomplish this? How do I go from a small wire to one of those pins that you stick into a breadboard? Is there an easy way to wire up analogInputs without crimping on a pin? I know they make connectors where you can stick in a wire and then twist a screw to secure it but I don't know what they're called or where to look for them.

It looks like you have a lot of learning to do (no offense intended). If you want something that works well, go buy a DAQ system. The price has come down a lot in the last decade or so. If you want to learn the hard way, here is some info to start...

You can't wire a VR signal directly into an Arduino or any other micro. The VR signal is quasi-sinusoidal signal that can be over +/- 100V. You need a buffer circuit to convert it to a digital signal in the right voltage range. There are VR input signal conditioning circuits (see below) but anything that clamps the voltage might interfere with the engine controller. You really need to get an oscilloscope to look at the signal at different speeds to see what you have. http://www.ti.com/lit/ds/symlink/lm1815.pdf http://www.onsemi.com/PowerSolutions/product.do?id=NCV1124

If this is a position / speed sensor used by the engine control system, you can't feed the VR signal into an Arduino and send it back out. The VR signal is an ugly signal that is not easy to recreate and even a relatively small delay will affect the fuel injection and spark ignition timing. If it only drives a tacho / speedo then a delay won't matter.

If you are adding a sensor, then use a Hall sensor with 3.3V or 5V signals. Then you can connect it directly to digital logic. I highly recommend adding a sensor and not messing with the engine control system.

You can tap into the wires, without blocking the signal by cutting the wire, then crimping and/or soldering them back together with an additional wire. Alternatively you can use the "inline tap" type of connectors. They connect without cutting the wire, but can be unreliable. They will usually work for a while, but don't stand up to vibration or moisture very well.

Breadboards don't work well in vibrating environments either. Race cars have lots of vibration. Even a car with a normal suspension experiences a lot more g-forces and vibration on a track day than on the streets. You can develop the electronics using a breadboard on the street and then transfer the design to a circuit board or perfboard for more reliability. http://parts.digikey.com/1/parts-kws/perf-board

The Arduino might be fast enough, but you may have to use some of the low level commands, rather than the standard Arduino commands (digitalWrite, analogRead etc.). Most automotive speed / position sensors are less than 5KHz, which might be too fast depending on what you are doing in the micro. There is a lot of information about how long different commands take to execute and ways to make the code run faster on the forum.

You want "stranded" wire in the vehicle because it can withstand vibration and bending, but the breadboard needs solid core wire. You can crimp or solder a small piece of solid wire on the end of the wire or you can use a screw terminal strip or terminal blocks to connect the wires together.

Good luck, Steve Turner