The following tips should help if you are having trouble designing or building a circuit. This section deals with general issues – if you are having troubles with an OBDII circuit, you may wish to start on the OBD Tips (Help > OBD > Tips) page.
Use these links to jump to your area of interest:
Components & Design Choices
I do not live in North America, so I substituted a PAL crystal for the NTSC one shown in your ELM624 circuit but am still having trouble. What next?
You must use an NTSC crystal. The circuit was designed to use that frequency, as those crystals are inexpensive, and readily available. It has nothing to do with the video parameters. By using a different frequency, you have shifted all of the timing proportionally.
Can I use a 3.6864Mhz crystal instead of the 3.579545?
No. The circuit’s time delays are all calculated based on the use of a TV type colourburst crystal being connected to the chip. While the oscillator will still function if another frequency crystal is used, the period of the oscillator will be different, and all timing will be in error. You can certainly try the other frequency, but don’t be surprised if the circuit doesn’t work properly.
Do I have to use 27pF capacitors with the crystal?
No. The loading capacitors depend on the crystal chosen, and some experimentation may be required. Using 27pF (or 33pF) capacitors typically provides about 20pF of loading, which is a good starting point for most crystals. You may wish to select slightly higher or lower values depending on your crystal, and your board layout.
My crystal says to use 15pF of loading capacitance, but I can’t find 7.5pF capacitors. What should I do?
Use the 27pF shown in the example applications, or possibly 22pF. Many people initially think that the two capacitors are essentially ‘hung in parallel’ across the circuit, so automatically assume they need half the value for each. You have to put yourself in the crystal’s position however, to see that the two capacitors are in fact in series across the crystal. The 27pF shown, along with about 5pF or more of stray capacitance across them results in about 16pF of effective parallel capacitance.
Having said this, in a pinch anything from 22pF to 47pF will likely work just fine with almost any crystal.
What are SOICs and PDIPs?
These names refer to the type of integrated circuit package that our ICs are supplied in. SOIC refers to a small outline IC (surface mount) while PDIP refers to a plastic dual inline package (socket or through-hole mount).
All of our products are available in either case type. When ordering, simply choose the product with the ‘P’ or ‘SM’ at the end of their sku (product name).
What material do you use for your chip labels?
It’s a high-temperature polyimide material that is specially produced for this purpose (we use Brady types B-426, B-652, or B-724). The labels can be exposed to as much as 330C/626F for 80 seconds, 280C/536F for 5 minutes, and 180C/356F continuously (1000hrs) without damage.
Is the label adhesive permanent?
Yes. When initially applied, they can be repositioned, but after a few days become permanently affixed.
I can’t find a 78L05 regulator. Will a 7805 do?
It will work, as the output voltage is the same, but you should understand that the two regulators limit the output current to different values. The 7805 will allow more than 1A of current to flow if the output is shorted, and this could damage components or wiring. For some of the OBD circuits, the 78L05 was specified in order to limit currents to a safe level. You can substitute, but be aware of what you are doing.
Do I have to use the 2N3904 and 2N3906 transistors?
No, pretty well any general purpose transistor should work. For the 2N3904, there are many types that can be used – look at the BC546, BC547, BC548, BC549, BC550, 2N2218, or the 2N2222. Similarly, there are many options if you can not locate a 2N3906 – look at the BC556, BC557, BC558, BC559, BC560, and the 2N2905 for example. As long as the transistor has reasonable gain, it should work as the required frequency response is not too high.
How do I know which transistor wires are which?
This is not always that easy to do. Some digital multimeters are able to tell you, but if you do not have one, it can be difficult. See our “Application Note AN01 – Transistor Testing” for one method that works.
Can I use a MAX232 IC for the RS232 interface?
Yes, it can be used but you need to be aware that the RS232 Rx inputs on the ELM621, and ELM624 are inverted from what they should be (for a standard interface). By placing another inverter in series with the Rx input, Maxim’s interface IC’s can be used.
Here is how you might typically connect a MAX232 to provide both the RS232 interface, and the inversion on the Rx input:
Note that the ELM630, ELM633, and ELM634 do not need to have their Rx input inverted, as an RXmode input is provided to do this for you.
I would like to connect directly to my microprocessor. Can I do that?
Sure. You don’t need the RS232 voltage levels to transfer data if it is going to another circuit on your board. RS232 voltages are really for going longer distances.
The RS232 Receive inputs on the ELM621 and ELM624 are inverted from what they should be (for a standard RS232 interface), so to correct for that you need to add another inverter. If you have a spare one on your circuit board, then use it. If you do not have an inverter, you can make one. A simple circuit such as this will work well:
This one transistor circuit is placed between your microprocessor transmit output, and the ELM IC’s receive input to invert the signal for you. Your microprocessor receive input can be connected directly to the ELM’s transmit, and your RS232 is all set. Note that the the circuits must all be powered by the same supply (so that you don’t try to backfeed through the protection diodes).
Note that the ELM630, ELM633, and ELM634 do not need to have their Rx input inverted, as noted in the previous question. Also, the ELM327 (or ELM325, ELM328 or ELM329) do not need an inverter – see the ‘Microprocessor Interfaces’ section of the data sheet for more information.
Testing & Troubleshooting
What software do I need in order to talk to my ELM IC?
All of the ELM ICs that have RS232 interfaces ‘talk’ in plain ASCII. This means that virtually any terminal program can be used with them, and no special software is required (but you may want to add your own, in order to provide a more ‘user-friendly’ interface). Here are some examples of terminal programs:
- goSerial by Andreas Mayer is a nice bit of free software. It provides a simple terminal interface, that automatically logs your sessions for you.
- ZTerm by Dave Alverson has been the standard shareware program for years. It’s available for Mac OS X, as well as the older systems 8 and 9.
Windows 95, 98, XP
- Have a look at the Hercules SETUP utility by the folks at HW group. It’s a free download, and works well with Windows 7 (not sure about 8 or 10).
- The older Windows systems have a free terminal program included – “HyperTerminal” by Hilgraeve Inc./Microsoft. It’s a good one to start with, if you’re trying to do some basic testing.
- Terminal 1.9b by Bray is a great little free program if you can find it. For some reason, it’s disappeared off the net recently.
- RealTerm is another great free program that is certainly worth a try.
- VBHexTerm by Chris Schroeder is another great little free program. It allows you to transmit actual binary data which may handy (but not for the ELM interfaces – they only need ASCII).
- Tera Term Pro by T. Teranishi is yet another free program. It hasn’t been updated for a while, but should still work fine on many systems.
- If that version of Tera Term seems a little outdated, you may want to try the SourceForge TeraTerm Project. The software is open source, costs nothing, and seems to be kept fairly current – certainly worth a try.
- One other suggestion is for a (free) product by CompuPhase, called Termite. It is easy to set up, and is very fast at finding the COM port for you. It does support plugins, so can be customized if you wish (they give the source code, so you can write your own, too). The “Time Stamp” filter was a little disappointing in that it seemed to intersperse time stamps almost randomly thoughout the ELM chip responses (but could be very useful if it were to time-stamp the beginning of each line that is received). Click here to go to the Termite web page.
- WGSoft, makers of the popular ScanMaster-ELM software have created a nice little basic terminal – the “COM Port Terminal”, and best of all, it’s free. Click here to download a copy (it’s about 600KB).
- RealTerm is reported to work well with Vista, and it’s also a free download.
- Pocket Tera Term by T. Teranishi is yet another free program. We have not tested it yet, so can’t say if it works well or not (but like Tera TermPro, it’s free).
- ptelnet by Marcio Migueletto de Andrade is free and works well, if you are doing basic testing. It allows you to define macros for common functions, which is handy.
The received data keeps overwriting on itself. What is wrong?
Your ELM chip is not generating linefeeds after carriage returns. Either turn them back on (AT L1) or set your terminal software to automatically insert linefeeds on receipt of carriage returns. (Some software calls this ‘Append line feeds to incoming line ends’.)
I’ve connected the RS232 but get nothing from my ELM IC. What should I do now?
All of the ELM chips that have an RS232 interface will power up with a text message saying its device name and version number. Before even trying to control something with your ELM IC, you need to see this message.
Some of the ELM RS232 Example Applications show RS232 connections for an older style 25 pin connector. This connection was very common for external modems and other computer peripherals, but is almost extinct at this point. Be sure that you are using the correct pinouts for the type of connector that you are using. Here is a pin cross-reference for you:
|Transmit Data (from PC)||2||3|
|Receive Data (to PC)||3||2|
|Request to Send (from PC)||4||7|
|Clear to Send (to PC)||5||8|
|DCE Ready (to PC)||6||6|
|Data Carrier Detect (to PC)||8||1|
|DTE Ready (from PC)||20||4|
|Ring Indicator (to PC)||22||9|
If you are sure that you have connected to the correct pins (there should a be tiny little number beside each of the pins), then perhaps you have a component problem. The following shows the typical voltages that you should see in your circuit – simply compare them to what you see for your circuit:
Note that we’ve provided typical voltages on the circuit above. If you have a multimeter available (you should if you’re building an electronic circuit) then connect it with the negative lead to circuit common and probe around this circuit. The typical voltages that you would expect if all connections are correct are shown in red in the above diagram. The most negative point in the entire circuit must be the computer’s TxD line (shown here at -9.3V). Don’t worry if your voltage is a little different as each computer is different – it is the relative magnitude and the polarity of the voltage that is important.
Several people have pointed out that the Rx pin on the ELM chip actually sits at a slightly negative voltage in this circuit, but voltages less than Vss are not recommended for an IC. Actually, it is not recommended if there is no means of limiting the current through the input pin (as it could cause a problem known as ‘latchup’). In this case a large series resistor limits the current to a safe level, so the -0.5V is quite acceptable.
I’ve connected the RS232 but get random characters from my ELM IC. What should I do now?
Random characters almost certainly mean that you have the baud rate set wrong. Check your terminal program’s setting.
I’ve purchased a USB to RS232 converter for my PC, but it does not work with my circuit. What can I do?
Most RS232 ports could be used with our simple ‘three wire systems’ by turning the hardware handshaking off. Some USB to RS232 converters do not offer this option, however, so these devices need to be fooled into believing that the handshaking signals are present. Typically, all you need to do is to install a couple of jumpers on the handshaking pins (1, 4, 6, 7, and 8) of your 9-pin connector:
Give this a try before tearing into your circuit, thinking that you have made a mistake in the wiring.
I really don’t understand RS232. Can you point me to some tutorials?
Sure. We all had to learn at some point. Here are some to try:
- Jan Axelson has always been an authority on serial communications. Visit her Lakeview Research web site for complete info. In particular, the Serial Port Central pages are certainly worth a click.
- B&B electronics is another good source of information (and cool RS232 devices as well). Although they don’t use one of our OBD ICs in their AutoTap OBDII Scanner, we still think a lot of their products.
- CAMI Research provides an excellent discussion of the RS232 standard as well – see their tutorial.
- There is a good overview of the RS232, RS422, and RS485 serial standards provided by Maxim in their “Selecting and Using RS-232, RS-422, and RS-485 Serial Data Standards” Tutorial.