Pages: . HappyTron Guest. Hello Everyone, I have come across a lot of methods and ways to interface the micrcontroller with the OBD, but nothing seems to work. Maximum number of people are using the PIC microcontrollers. Which one do you guys suggest is the best and the easiest to use with Arduino? What do you want to achieve? Basically, I want to make a data logger. Where does the MCP come into play, I have seen some circuits in which both and are used.
18F4520 + MC33390 SAE J1850 VPW
Thank you. It knows all standard protocols defined for the OBD-II and is able to provide that to a microcontroller in a easily manageable way. Usually these buses hold data like entertainment controls, air conditioning and the like. To access these stuff, an ELM won't help you as it's designed for the OBD-II protocols and doesn't know much about the rest of data available in modern cars.
I hate to reawaken a dead thread, but this information is not completely accurate There are sometimes multiple CAN buses, with a high speed bus kbps used for engine information and a medium speed kbps bus used for entertainment controls and air conditioning. It's a bit primitive compared to some of the nicer tools out there, but I've learned quite a bit about CAN in the process.
The MCP will generate the correct signals as far as timing is concerned, but they will be at the wrong TTL voltage. Quote from: McNeight on Jun 08,am. There are other methods, but for your vehicle this is probably the easiest and quickest way to get your Arduino talking to it. The UART is a bit expensive for me by the time I get that plus the uno and the LCD plus buttons and the other bits I could buy a scangauge 2 I was hoping that the arduino route would be cheaper.
Would you mind looking at my thread with the parts list I've come up with so far? Edit was to correct the link sorry for posting the wrong one. Hello, I prefer digging up this old thread instead of creating a new one. I have some questions concerning the OBD and arduino. First of all why do I need a microcontroller like those mentioned above between the obd and the arduino? Can't the arduino do all the work? I get that it would be much harder but is it possible? I would like to make a stand alone multi tool OBD reader and maybe a logger too.
What concerns me the most is the data rate. I would like to have the fastest display rate possible at a LCD. Which parts limit this rate? Is that correct? How many samples per second can I have for every value I want to display? I'm sorry if my questions are dumb but I'm trying to understand how exactly OBD and arduino work together.
Cheers Spiros. Quote from: spoums on Jun 23,pm.Other variants implement only a subset of the OBD protocols. New applications include smartphones.
There are a large number of programs available that connect to the ELM The protocols supported by ELM are: . When ELM Electronics sold version 1. Consequently, anyone could buy a genuine ELM, and read ELM's proprietary binary microcontroller software using a device programmer. With this software, pirates could trivially produce ELM clones by purchasing the same microcontroller chips and programming them with the copied code. Although these copies may contain the ELM v1. From Wikipedia, the free encyclopedia.
This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. This section does not cite any sources. Please help improve this section by adding citations to reliable sources. Retrieved 6 May ELM Electronics. Retrieved 15 Jan Priuschat forum. User review. Retrieved 31 Aug Categories : Microcontrollers Automotive electronics.
Hidden categories: All accuracy disputes Articles with disputed statements from April Articles needing additional references from August All articles needing additional references Articles needing additional references from November Namespaces Article Talk.Remember Me? This was in use in some Australian and international fords up to about depending on the model.
Its the I understand that there are specific manufacturer chips from OKI and others to interface to the ford bus, but I want to do it with a PIC and some minor circuitry. Keep it nice and simple.
I know the SAE J doc was freely available at some stage, but I am unable to obtain a copy from anywhere. And for the PID's, they seem to vary depending on the country, theres so many different types! Any help would be great.Bluetooth OBD II Tutorial [Super Mini ELM327]
Regards, Anzic. Unfortunately it does not state the specific data within the data frames, anything about the IFR data, or the node addresses for requesting specific data. Any of the below would help if anyone has them. Cheers, Anzic. SAE J Specifies requirements for a vehicle data communications network. Interesting subject. I have two friends in the motor vehicle manufacturing business that might be of help - but they are both on summer vacations so I'd have to ask them in a month's time or so.
It is typical of Ford to use a proprietary protocol in such a manner. Im primarily aiming at reading engine running data for display, and reading and clearing PID fault codes. Thanks again. The hunt continues :D Anzic. You can download those documents on SAE webpage, however you may need to pay the annual membership fee for that.
All the vehicles running in North america must follow the SAE regulations, not just Ford but others as well. I am not sure if I may post that document here or not.Join us now! Forgot Your Password? Forgot your Username?
Haven't received registration validation E-mail? User Control Panel Log out. Forums Posts Latest Posts. View More. Recent Blog Posts. Unread PMs. Forum Themes Elegant Mobile.
Essentials Only Full Version. New Member. Reading the datasheet of the MC I could not realize how to connect the mc to the car bus and how to control it with the PIC.
Have anybody already used this device? Thank you, Eduardo. Hmmm, I don't know them. Super Member. Wikipedia has a good entry on this here The answer is "Yes, it's or what". The MC is specifically designed for exactly what the OP wants to do. The MC is just what I need but I could learn how to use it from the datasheet.
What about the protocol arbitration? Have nybody successfully used this part?? Thank you. I have not used the device, no. Try reading the above referenced wikipedia article. Your questions are answered there. Need more info? Check this one out The MC is just what I need but I could learn how to use it from the datasheet What maybe a better option for you is to read the SAE J specification before you get too involved with resistors and chip selection ,etc.To vary the duty cycle we are using a potentiometer, hence it is recommended to learn ADC tutorial before starting with PWM.
PWM module also uses timers to set its frequency hence learn how to use timers beforehand here.
This signal is set high 5v and low 0v in a predefined time and speed. There are two important parameters for a PWM as discussed below:.
In our tutorial we will set a frequency of 5KHz. In our program we will read an Analog voltage of v from a potentiometer and map it to using our ADC module. Then we generate a PWM signal with frequency Hz and vary its duty cycle based on the input Analog voltage. This tutorial assumes that you have already learnt to use ADC in PIC if not, read it from here, because we will skip details about it in this tutorial.
Which OBD2 protocol is supported by your vehicle?
So, once the configuration bits are set and program is written to read an Analog value, we can proceed with PWM. There are two important functions in this program to generate PWM signals. Now, we have to set the Frequency of the PWM signal. The value of the frequency has to be written to the PR2 register. The desired frequency can be set by using the below formulae.
VPW / J1850 Interface
Once the frequency is set this function need not be called again unless and until we need to change the frequency again. Now let us set the duty cycle of the PWM by using the below function.
Our PWM signal has bit resolution hence this value cannot be stored in a single register since our PIC has only 8-bit data lines. You can check the complete program in the Code section below along with the detailed Video. As usual let us verify the output using Proteus simulation. The Circuit Diagram is shown below. Connect a potentiometer to 7 th pin to feed in a voltage of Further to convert this into a variable voltage we have used a RC-filter and an LED to verify the output without a scope.
An RC filter or a Low pass filter is a simple circuit with two passive elements namely the resistor and the capacitor. These two components are used to filter the frequency of our PWM signal and make it a variable DC voltage. If we examine the circuit, when a variable voltage is applied to the input of R, the capacitor C will begin to charge. Thus a pure DC is obtained across the capacitor. A value of Ohm and 1uf was found to be appropriate for this project.
Calculating the values of R and C involves circuit analysis using transfer function, which is out of scope of this tutorial. The output of the program can be verified using the Digital Oscilloscope as shown below, vary the Potentiometer and the Duty cycle of the PWM should change. We can also notice the output voltage of the RC circuit using the Voltmeter.
If everything is working as expected we can proceed with our hardware. Further check the Video at the end for full process. The hardware setup of the project is very simple, we are just going to reuse our PIC Perf board shown below.
We will also need a potentiometer to feed in the analog voltageI have attached some female end wires to my pot shown below so that we can directly connect them to the PIC Perf board. We can use simple female to female connecting wires and connect them according to the schematics shown above. Once the connection is done, upload the program to the PIC using our pickit3 and you should be able to get a variable voltage based on the input of your potentiometer.
The variable output is used to control the brightness of the LED here. I used my multimeter to measure the variable outputs, we can also notice the brightness of the LED getting changed for different voltage levels.
If you have some doubt or get stuck somewhere kindly use the comment section below, we will be happy to help you out. The complete working is working in the video.Works on almost any car from to and some from to ! Even if you don't repair your vehicle yourself, knowing the Diagnostic Trouble Code number before taking the vehicle in for repair is good knowledge to have. Once the vehicle is repaired, the Diagnostic Trouble Code s can be erased and the Check Engine light turned off using this scan tool.
In areas that require a smog test, an illuminated Check Engine light fails the emission test, even if the repaired vehicle might otherwise pass inspection.
Subscribe to RSS
Another highly useful application for the scan tool is purchasing used vehicles. Used vehicles can have all sorts of expensive mechanical or electrical problems.
Since our scanner is a portable device, the buyer can connect the scan tool to the vehicle and in a few seconds determine if the vehicle has detected a problem. Remember, not all Diagnostic Trouble Codes illuminate the Check Engine light and a scan tool is the only way to obtain the information.
CAN Protocol is around 50 times the speed of the older protocols. CAN was used in some cars starting inand is said to be the only protocol that will be used after In general, this means all model year cars and light trucks are compliant, even if built in late Where is the connector located? The connector must be located within three feet of the driver and must not require any tools to be revealed. Look under the dash and behind ashtrays.
While the parameters, or readings, required by OBDII regulations are uniform, the auto manufacturers had some latitude in the communications protocol they used to transmit those readings to scanners. Naturally, each felt they had the one true way, so we have three different OBDII communications protocols in use.
On and later vehicles, you can tell which protocol is used by examining the OBDII connector: J VPW — The connector should have metallic contacts in pins 2, 4, 5, and 16, but not ISO —2 — The connector should have metallic contacts in pins 4, 5, 7, 15, and J PWM — The connector should have metallic contacts in pins 2, 4, 5, 10, and Note: may not be compatible with some VW, Audi, and Subaru vehicles.
This is only a list of tested vehicles. Please check before ordering. All rights reserved. Your source for tools and resources to diagnose and repair your own vehicle! Brand New in Package!
Full 1 Year Warranty with All Products! Check monitor status, make sure all the monitors completed their diagnostic testing and verify if the repair was completed properly. Clear stored codes and reset monitor status. Read VIN Data on vehicles with this option. Standalone unit that does not require any additional adaptor to operate. Large all-in-one LCD display.
Identify multiple codes, pending codes, generic or manufacturer codes one time. Highly reliable and accurate.It is also used by enthusiasts for getting useful information about your vehicle in real-time, such as speed, revs, temperature, air-flow, fuel consumption, etc.
I purchased one of these adapters from dx. Taking a look inside the adapter you can see some problems straight away. The inside contains two layers. By using different cases, some more closely resembling an official product, they can sell more.
The bottom layer is concerning. There are two voltage regulators and solder joints to the ODB2 pins. Only pins 4,5, 6, 7, 14, 15, and 16 are soldered to the bottom board.
Pins 1, 2, 3, 8, 9, 10, 11, 12, and 13 are unconnected. What about the top board? Nowhere on this adapter is such a PIC microcontoller. This is incompatible with the PIC instruction set. So just what has happened here? I have to make some guesses about the history of fake ELM adapters.
Supposedly, the original ELM v1. The firmware version was changed to report v1. Keep in mind that Elm Electronics never released a version 1. Thus all v1. However, the version reported on the packaging of my adapter states v1. How can this adapter be a clone of the original v1. Perhaps the makers of these fake adapters wanted to save costs by not having to include a PIC microcontroller inside the adapter as well as a Bluetooth controller.
Instead they use the Bluetooth controller to run the ELM code so they can save cost. I guess that the ELM firmware had to be re-written, from scratch, perhaps with reference and help from the original PIC microcode.
The new fake ELM v2. Word spread around that the v2.