This board allows you to interface with your car's OBD-II bus. It provides you a serial interface using the ELM327 command set and supports all major OBD-II standards such as CAN and JBUS. The board also provides a footprint which mates directly to our FTDI Basic. The DB9 connector mates with our DB9 to OBD-II cable listed below.
On-Board Diagnostics, Second Generation (OBD-II) is a set of standards for implementing a computer based system to control emissions from vehicles. It was first introduced in the United States in 1994, and became a requirement on all 1996 and newer US vehicles. Other countries, including Canada, parts of the European Union, Japan, Australia, and Brazil adopted similar legislation. A large portion of the modern vehicle fleet supports OBD-II or one of its regional flavors.
Among other things, OBD-II requires that each compliant vehicle be equipped with a standard diagnostic connector (DLC) and describes a standard way of communicating with the vehicle’s computer, also known as the ECU (Electronic Control Unit). A wealth of information can be obtained by tapping into the OBD bus, including the status of the malfunction indicator light (MIL), diagnostic trouble codes (DTCs), inspection and maintenance (I/M) information, freeze frames, VIN, hundreds of real-time parameters, and more.
STN1110 is an OBD to UART interpreter that can be used to convert messages between any of the OBD-II protocols currently in use, and UART. It is fully compatible with the de facto industry standard ELM327 command set. Based on a 16-bit processor core, the STN1110 offers more features and better performance than any other ELM327 compatible IC.
The links below are for OBD-II software that has not been tested, but should be compatible with the OBD-II UART. You should check with each vendor to make sure they are compatible before purchasing one. (Or ask the vendor for a trial version to make sure it works.)
Firmware updates can be downloaded from Scantool.net here.
If you set the baud rate on the board by saving the baud rate to the onboard memory, and you end up locking yourself out of the board because you don’t have a device that can be set to that baud rate, there’s a simple fix!
Short the RST_NVM to the GND pad right next to it (ya might even wanna solder on some headers for this). Once they are shorted, plug the board into the car, and wait until the RX light starts blinking rapidly.
Once it’s been blinking for a few seconds, disconnect it from the car, UN-SHORT the RST_NVM and GND pads, and try connecting back to the board at either 9600 or 38400 baud.
This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.
Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Noob - You don't need to reference a datasheet, but you will need to know basic power requirements.
See all skill levels
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
Based on 12 ratings:
2 of 2 found this helpful:
The board works fine. However, I would not recommend leaving it connected to your car permanently (as I'm doing) in the original state. The board idles at around 82mA at 12V, which is enough to completely drain a typical car battery in about two weeks, if your car, like mine (Honda Jazz/Fit 2008), doesn't switch the OBD-II connector power with the ignition key. I made some modifications to my board to allow the power to be switched while still using the original DB-9 connector, here's what I did: http://imgur.com/a/5EuBz (neither I nor sparkfun is responsible for you damaging your board or car by following these instructions)
In case SparkFun techs read this: 1) It might be a good idea to rework the PCB design to include a header for a power switch with a normally connected solder jumper. Heck, all the interface components are already designed to not disrupt the OBD lines in case of brownout/powerdown if I read the datasheets correctly. 2) Add a polyfuse so people don't accidentally blow their ~10A ECU fuse accross this board. 3) I'm pretty sure you're not actually supposed to just interconnect signal gnd to chassis gnd... Chassis ground should only be connected to pads around the screw holes, if anything. Unless there's cars out there which don't have both grounds connected. 4) The SOT-23 near the voltage regulator is too close to the hole for an M3 washer, as is the 0402 capacitor on the opposite side, even though there's plenty of board space. 5) The image is public domain for all I care if you want to use it.
Thanks for the input, I will make sure that our engineers see it.
1 of 1 found this helpful:
This board does all it's asked to do. I haven't had any problems. The only reason it's not 5 stars is the warnings I have when using the ELM attachment to disconnect the UART when I flash my Photon or the flash operation can inadvertently "brick" the UART. Really? If that's wrong, I'd love it to be refuted - save me some time and trouble.
4 of 4 found this helpful:
This interface works like a charm, it accepts all ELM327 commands with no problems. Interfacing it with the serial port of Arduino it's easy. One of the best products of SparkFun IMHO.
Nice to have: the same card (optionally) without the DB9 connector. I would prefer to solder the wires directly on the PCB. In fact, the connector grabs a lot of vertical space in your enclosure box.
1 of 1 found this helpful:
I ordered a different brand for my Ford Econoline but apparently Ford didn't use the other standard so I ordered this OBD reader and it worked!
0 of 2 found this helpful:
Received SparkFun OBD-II UART, looks fine. Not yet tried - hope it has been factory tested. Fast delivery, great transaction. My first experience with SparkFun and feel not last. Thanks!
I have a FORD model manufactured in 2010 and powered by SIEMENS SID901K ECU.
It can be read by professionals scanners, but not by this IC
I bought it due to this ad "STN1110 is an OBD to UART interpreter that can be used to convert messages between any of the OBD-II protocols currently in use, and UART. It is fully compatible with the de facto industry standard ELM327 command set. Based on a 16-bit processor core, the STN1110 offers more features and better performance than any other ELM327 compatible IC."
Can anyone help me, please?
CAN-bus and OBD-II are not the same thing, even though they use the same-looking plug / diagnostics connector. OBD-II is the data protocol, while CAN-bus is the physical data link protocol. Not all OBD-II cars use CAN-bus. CAN-bus only became mandatory in the US in 2008, while OBD-II became mandatory in 1996. If you have an older car that does not use CAN-bus and try to use a CAN-bus reader with it it's not going to work. But this reader here can do the proprietary manufacturer-specific protocols that were used before 2008, so it will work with the 1996-2008 cars.
0 of 4 found this helpful:
Sorry,
But i not received my product yet, i'm worried about.
Att, Raul
Please email customerservice@sparkfun and they should be able to assist you with order tracking.
The board is an amazing piece, and Sparkfun really did amazing work to put it together.
However, the sample arduino code from Sparkfun to be used with the board is WRONG. I had to go extra mile just to be able to read RPM. Also, since the STN1110 support ELM327 AT commands, I had to use the sample codes and libraries from Freematics with the board. I was able to successfully read from Cars that uses CAN and ISO9141 (K-Line) protocols but SAE J1850 VPW did not work with it.
The board is supposed to support all legislated protocols, so I’m surprised J1860 didn’t work. Is there anything I’m getting wrongly?
Please provide any possible support to successful read with SAE J1850 protocols
Sorry to hear you ran into some road blocks here. If you would like to post on the forums we might be able to provide some support for you here: https://forum.sparkfun.com/
Works like charm, easy to hook up
It works for my ISO9141 and KWP2000 cars. European customer.
(PORTED to TECH TIPS TAB)
-------------------- Tech Support Tips/Troubleshooting/Common Issues --------------------
Further Tips/Troubleshooting/Common Issues
Try looking at my comment in the tutorial for further Tips/Troubleshooting/Common Issues => https://learn.sparkfun.com/tutorials/obd-ii-uart-hookup-guide/discuss#comment-56846b8fce395f9e6f8b4567
Is this obd able to send me the signal from the airbag the instant it works ? Thank you
Hi there, it sounds like you are looking for technical assistance. Please use the link in the banner above, to get started with posting a topic in our forums. Our technical support team will do their best to assist you.
That being said, that is most likely dependent on whether the vehicle manufacturer makes that information available over OBD-II. (Unfortunately, that isn't something we can find out for you.)
If you have trouble with line feeds in your terminal, where everything is rendered on a single line, this may be caused by the ELM327 sending a CRCR instead of a CRLF. Per the Data Sheet, Page 3, LFmode (pin 7), you can issue the AT L1 command to fix this.
Hi, what PC scantool software's can be used with this adapter? I bought it some months ago, I want to scan my car using my laptop but I have no idea what commercial software will work with the adapter. I have attached a FTDI232 cable to usb so I think I only need the software.
Regarding JP8, is the schematic drawing correct? Or is the board silk screen correct? They are different!
For example, on the schematic there is VCC and it is an NC on the PCB silk screen??
Ron
It's correct. Only GND, RX and TX actually connect to the board. The other pins are present, but don't make an electrical connection anywhere else on the board.
Whats the difference between this board and the can bus shield board?
Is there a way to put this OBD II board into listening mode while connected to a vehicle so that all CAN messages in the bus can be monitored and logged? Alternatively, if this is not possible, is it possible to put this OBD II board into a mode where it reports every time it sees a message in the CAN bus with a specific identifier? I'm trying to pull some codes as they come from an ISO 15765-4 (11bit, 500kbps) port to feed a data collection system. Any insights would be appreciated...
what's the difference from this to the can bus shield?????
Anyone successfully figure out how to set the RS232 to anything faster than 9600? This board is so close to exactly what I want but its made totally useless due to its slow speed
I tried it with ISO 15765, it was successful but for J1708 I always got the "SEARCHING... UNABLE TO CONNECT" error. Is it suitable for SAE J1708 or does it need some modifications?
The code example provided on the product page didn't work for me, but the code found on the top of the forum thread worked like a champ: https://forum.sparkfun.com/viewtopic.php?f=14&t=38253
No one's floor mats are THAT clean... So thank you to whomever who I guess cleaned up their car massively for that one live-action shot.. How thoughtful of you. (tips top-hat)
I pulled this board out of storage again today and had a pretty awesome "Ah ha!" moment when I realized that someone had probably written a Ruby gem for all this OBD II stuff...
And sure enough, someone did! After forking the existing code, and cherry picking all the awesome bits into my fork, I'm happy to say that this is, by far, the easiest way of interfacing with these boards that I've found. Here's the fresh fork: https://github.com/JamesHagerman/obd
My plan is to start building in some OBD II monitor mode logging in the obd gem in order to start reverse engineering the non-standard ISO 15765-4 (CAN 29/500) modes.
If you're at all interested in hacking your car, I seriously suggest picking one of these boards up before they're all gone. They work WAY better then the Arduino shields, and really open up the doors to getting into CAN bus hacking without having to worry about that cheapo OBD II scanner you got on ebay.
Ah ha! I found something important to keep in mind when you're using this board at 500kbps:
GNU Screen is limited to (or missing configurations higher than) 460800bps. That's 460kbps.
So, don't try using screen /dev/tty.yourusbserialport 500000 to communicate with this board and expect it to respond.
If you set the baud rate on the board by saving the baud rate to the onboard memory, and you end up locking yourself out of the board because you don't have a device that can be set to that baud rate, there's a simple fix!
Short the RST_NVM to the GND pad right next to it (ya might even wanna solder on some headers for this). Once they are shorted, plug the board into the car, and wait until the RX light starts blinking rapidly.
Once it's been blinking for a few seconds, disconnect it from the car, UN-SHORT the RST_NVM and GND pads, and try connecting back to the board at either 9600 or 38400 baud.
You should be back in business!
Also, if you're interested in seeing the evidence in GNU screen where this limit seems to exist, look at line 1422 of the tty.sh file in the screen src tree:
http://git.savannah.gnu.org/cgit/screen.git/tree/src/tty.sh
Now I need to find a decent OS X terminal app that actually works at 500kbps...
i know this unit is powered via 12 auto battery (or power supply), I have an J1939 emulator an am working on a J1939 design, my emulator is 24V (as is most heavy duty vehicles). looking at the schematic the LM317 will handle the 24V as well as the LM339, and the voltage divider on pin 27 BATT_V calculates to 3.33V. it should work, has anyone trued it? my only concern is the power dissipation of the LM339 I am afraid it will get very hot. then there is also the MMBT2222, may have to update the resistor.
Does anyone know if the 12v out is conditioned? I'd like to power my Arduino off of it so it starts logging once I turn the car on.
Would have been nice if the UART interface was made 5V/3.3V selectable, considering the number of 3.3V controller boards SparkFun makes. Depopulating R25 and pulling up to a 3.3V shouldnt be necessary. At the very least, provide a 3.3V pin hole / solder point on the board.
By a customer request, here is a table that shows the standard OBD-II PIDs as defined by SAE J1979. Enjoy
Now if I was bored I would trace the tracks on the images and work out the schematic.
I am wondering why the design is not available though...
why don't you just go get the sample schematic from the datasheet? the entire thing is there minus the DB 9 connector....
How can you guys sell the whole board, but not the individual chip?
You can get the chip directly from Scantool itself. It's pretty expensive though.
yeah saw that last night, 14$ isn't so bad, it's less than half the cost of the ELM327 though, and at least 4 times faster... much better option I'd say. I saw the dealextreme module the commenter below listed, its a decent deal, when you figure in what it would cost to have your own board made, plus parts + time, however what I like about this chip is that it's firmware upgradable, makes updating new features or what not really easy.
I'm working on a board design in Eagle anyway for this part, along with bluetooth, but in the end it'll end up costing almost as much as the ELM327 bluetooth module at dealextreme. The benefit of building my own is that I have a much better chip at the core, that and I build my eagle layout skills up.
Had an issue with the 3 year old Arduino example - appears Arduino changed serial behavior so that Serial.flush() no longer clears all the junk out of the input buffer so you have to make a function to empty it out before issuing a command.
Replace Serial.flush() with something like this: // clear the input buffer void serialFlush(){ while(Serial1.available() > 0) { char t = Serial1.read(); } }
Also, I got this ArduinoOBD library to work: https://github.com/stanleyhuangyc/ArduinoOBD/tree/master/libraries/OBD -- it would fail to init, which was tracked down to the 1st PID query taking an unusually long time (3-4 seconds) and timing out. Just put another query in the initcmds[] like: const char *initcmd[] = {"ATZ\r","ATE0\r","ATL1\r","0101\r"}; and that'll prime the device for the less patient verify query later that was failing.
Greetings all i buy this board while was not working correctly - untill i connect the ground of the OBD2 connector to the ground of the FTDI chip Kindly change the hook up guide Hope this help :) Regards
My application is to build a simple J1939 diagnostic code reader with the ability to reset codes. Since J1939 is different than OBD at the Data Link layer. J1939 is used for trucks/heavy duty vehicles and OBD is for passenger cars. I am looking for a library to support the J1939 data link layer, specifically to read/write DM1 and DM2 messages and, as a plus, to be able to read basic engine parameters.
So my question is: What does "Support for SAE J1939 OBD protocol" mean, exactly? "Protocol" implies the DataLink layer but the documentation appears to be describing only the Physical Layer and simple OBD interface. I checked several of the software links and many are dead. Anyone know where I can get source code or a Windows application to do what I need?
Thanks
Al
I just received this board and would like to get started tampering with my car's brain. But before I do, I want to back up the brain in case I muck things up. Any idea what software I can use to back up my ECU using this board? or is that even possible?
Maybe it is a noob question but i should learn that. What is the different between this board and can-bus shield board? I found many example about can-bus shield is used for hack vehicle can bus. And is it possible to open vehicle's door, window and run to climate etc with stn1110 ? or Should i use other stn version stn1170 ?
Hey,
Well I need to ask that if I use the 8-pin header and connect it to raspberry or laptop, can I send and receive the CAN bus data in the similar way as in case of 5-pin header?
I have uploaded code to arduino mega board when tx and rx pin of OBD2UART is connected with TX and RX of Arduino mega . OBD2Uart chip is not responding .How can i recover my OBD2UART board .
Does anyone know if can be use on heavy duty vehicle (24v)? If yes, is it possible request data using AT commands? Thanks.
I connected OBD II UART to hyper terminal, ATZ, ATRV works fine. ATSP0 OR ATSP00 returns OK, but ATDP doesn't show the selected protocol. It just says AUTO. Ideally for FIAT Punto 2008, it should select protocol 7 - ISO 15765-4 CAN (29 bit ID, 500 kbaud).
When I set manually using ATSP7, for 0100 it returns CAN ERROR. Pleae help. I am struggiling on this since a week.
Hi everyone. I hope someone could give us a hint about this board. We've got it working with an Arduino Mega connected to the hardware serial pins. We have got an ECU simulator that simulates almost all the protocols. When we test the board with all the protocols, the speed at which the data gets outputted is very slow. I have also tested with 4 cars, 2 are pre CAN BUS and the other 2 are CAN BUS. Even with those cars the rate at which the data gets outputted is slow too. Is this supposed to be like this or the rate should be faster? Thanks.
I have used the same as mentioned in hook up guide for arduino uno but its not working. ATSP0 is not detecting the protocol i guess. ATDP isn't returning the selected protocol. Just says "AUT". How do i get started? The car I am testing is OBD II compliant.
Hello, is there any command to work with different baud rate (other than those specified in the datasheet AT commands) for all communication protocols? For example baud rate in KWP 10.2 kbps, I can get this baud rate? if yes, how?
How could I power an arduino off of the board and have proper power protection for cranking the car while it is plugged in? I've seen other similar boards (the dfrobot one comes to mind) that allow powering straight from the 12v on the OBD II port).
hello, I have a doubt with respect to the AT command used in this board .. How can I use an AT command to send a frame for OBD circuit as CAN, KWP (ISO), VPW / PWM? I could not find any command called sends frame or something like that can you help me? What I mean is, I'm trying to make a simulation of communication with a vehicle (without a vehicle) using only a computer and software that I created. Anyone think the problem that I was not getting connect and be getting FB ERROR as response stn1110 is because I really I need a real car for that? Thanks in advance.
I just need the STN1110 IC only, can i get it from you. There are several places that i can buy the IC but the shipping is too expensive...
Okay I'm trying to increase the baud rate on this thing but having issues. I first thought this thing was an actual ELM327 but I now realize I'm wrong. Does anyone know how how to increase the baud rate for this board or at least point me in the direction I should be looking?
Can anyone provide a guide on how to start the simulated communication (without ECU) with each protocol available on board?
When I connect it to my Honda City, 2006 model, I see the OBD TX LED blinking but there is no activity on the OBD RX LED. The data seem on the terminal also doesnt seem to match with the cars actual values. Need Help !!
Hi guys, can you explain for me what is this diagram on schematic file: VBAT < ---- IC3P ----- GND ?
What is this ic3p ? Where it is connected?
Download the Eagle files. There's a 'show' tool that will allow you to click on a symbol in the schematic, and highlight that part on the board file, or vice-verse. It's really beneficial when trying to trace out connections on boards.
I have few questions, please be kind and help me to understand: 1. How is this board powered? 2. I intend to connect a modem to this board and read data over the air. Is the output of this board true RS232?
after working a bit with the UART, both RX and TX LEDs are lit continuously and I cannot get any response from it. I guess my board is gone, I wonder what should I do to avoid this situation with the next OBD-II UART board I buy?
Cannot upgrade the WIG-09555 chip (stn1110) from V1.3a to latest firmware using ScanTools.net firmware updater STN1110... Here is the log:
00:00.010: Updater v1.4.1 started. 00:01.351: Uploading stn1110-3.2.0.bin... 00:01.351: Connecting to device... 00:02.243: Connection error: Connection with device lost.
The board works ok at old firmware V1.3A... Is there anything wrong with the Scantools.net update software???
Cheers, Jean-Francois
Well, I've been working on this for a week now, I guess it's time to ask for help. Does anybody know of a sketch or a library that works for this? I'm going in circles with echoes and sporadic combined strings from the sample sketch.
Sparkfun: the datasheet on this page is correct (Rev B), but googling "STN1110 datasheet" brings up Rev A:
https://www.sparkfun.com/datasheets/Widgets/stn1110-ds.pdf
Could you please delete the old revision from your server? It already got some people in trouble.
Thanks!
Is there an app to interpret J1939 of heavy duty vehicle with the stn1110 or elm327?
Not one that is available to the public. However, if you have the J1939 spec and can write software, it's a pretty straightforward task.
Just got my OBD II UART and cable in mail, super excited. Cable is >very< tight on 2000 Ford F350 and will not work on 2004 VW Jetta. Not a big deal, will have to just modify cable a little.
Question: The data received on the serial port output. Is this raw data of the actual queried data or does it inclued all of the canbus transport layer? i.e... SOF, Identifier, SRE, IDE etc...
The vast majority of CAN peripherals do not expose the SOF or CRC (although if the CRC is wrong, the STN1110 will append "DATA ERROR").
This is what the standard request/response looks like:
0100
18 DA F1 10 8 06 41 00 BE 1B 30 13 00
This is 29-bit CAN, with headers (ATH1) and DLC (ATD1) turned on. You can see the CAN Id (18DAF110), DLC (8), PCI (06), and the data (4100BE1B3013). The last byte (00) is padding.
You can expect to see this exact response if you connect the Sparkfun OBD board to an ECUsim 2000.
Vitaliy
Does anyone have any experience using the ISO 11898 (raw CAN) mode? Will it work on a 100kbit CAN bus?
Yes, the STN1110 works with ISO11898 @ 100 kbps.
I just received the board and I do not see any stn1110 chip on it, but it has PIC24. Am I missing something here ?
That -is- the STN chip; it's a custom-programmed PIC24.
Anyone tried using this with the Torque app for Android? I'm trying to decide whether I should go the DIY route or buy a scan tool. I'd rather go DIY :-)
http://torque-bhp.com/wiki/Main_Page
Nowhere in this page is the link to Sparkfun's tutorial landing page: http://www.sparkfun.com/tutorials/294
I struggled trying to figure out how to use it for a night until a separate Google search with just the right search string pulled up that tutorial page. The tutorial page doesn't come up using the Sparkfun search bar, either. Shouldn't this be linked in the description or in the related documents?
I'm using the OBD UART shield with an Arduino (on tx/rx) with the OBD.cpp/.h library. When doing Serial.print statements, it has erratic output to the serial monitor. Is this normal? (Im using 9600 baud)
I wrote a class (For Arduino and compatibles) to help interface with this shield. It can read and parse OBD2 PIDS, converting them to the appropriate value where applicable, as well as parsing the HEX data into an array of bytes, or just run an arbitrary command and populates a buffer.
More details Here.
Has anyone else noticed the schottkey barrier (mbra140) is wired in reverse polarity with the battery... If this is correct (in schematic that is) could someone volunteer an explanation on how this works, and how is it different than using a TVS (eg ST Transil) device to shunt voltage spikes in either direction? Thanks in advance!
Has anyone found some software that just reads the "Standard" SAE codes ? The compatible software list is badly out of date.
I did find this software on the ScanTool site. Does it work with the Sparkfun board ?
http://www.scantool.net/obdwiz/
Thanks ...
If this board is built around the STN1110, and the default UART baud rate of the STN1100 is 38400, how come the default in this board is 9600? I'm having an hard time trying to raise the UART baud rate, none of the methods 'AT BRD' or 'AT PP 0C'. The ST commands don't seem to work also. STI returns the dreaded '?' char.
Is this board really using an STN1100 or is it some clone?
The board uses a real STN1100 from Scantool, not a clone.
Thanks! I have just confirmed that as well.
I found more information in the document about the extended ST command set. www.scantool.net/scantool/downloads/98/stn1100-frpm.pdf
It looks like the configuration was customized for SparkFun, maybe by SF ou by ScanTool themselves. The ST MFR command returns 'SparkFun Electronics', so maybe SF asked for a 9600bps default for UART.
btw-I just upgraded the firmware to version v3.1.0 and set the default UART speed to 38400. I can read much more PIDs/sec now :)
Hi,
I am currently using OBD-II UART Board for fetching CAN packets. i am also facing this problem of 'BUFFER FULL'. Well, before going for firmware up gradation, I tried these commands - 1)AT BRD 99 - It replies OK but still speed remains same. 2)AT BRD 100 - Does not reply OK.
Then I cam across these commands -
1) STSBR 115200 2) STWBR from this post Since AT BRD command was not able to increase the BAUD rate, i was wondering whether the latter commands would work or not? Since it will write to non-volatile memory, I was wondering if my IC goes wrong and I am not able to do any stuff after that.
Can you please suggest me whether to try these commands or not? Is it safe? Or should i just go for firmware up gradation ? What things would change?
Request for board change: it would be noce to have test points for some of the pins on the chip that this board is not using, for testing purposes. such as pin 15 PWR_CTRL, Pin 9 ~Sleep, etc.... or use an SOIC chip so we can tack a wire on it
I just got a board that has a female DB9. I am in India and it will cost me more to get a replacement board instead of a local male-female DB9 convertor.
I just recieved my order, both DB9 connectors are female. Don't need it fixed, just letting you know...
My board had a female DB9 as well (they had to send me a new board). Although I love sparkfun, I don't see why its that hard for them to figure this out considering there's another commenter who had the same problem a few months ago.
In general, if you run into an issue like this, please send us an email to techsupport at sparkfun dot com. You can send pictures to us as well for any damaged/incorrect parts. If we send something to you with the wrong parts included, we would like to fix it for you!
Where do you want the pictures posted? The date on the board is 10/13/10.
I just checked our stock and all of our boards and sub assemblies are correct. can you post a picture of what yours looks like? I'm curious now...
both?
A major firmware update (v3.1.0) is available:
http://www.scantool.net/downloads/updates/stn1110/
I know it can interpret many different obd protocols and turn them into serial but can it do the reverse? Can I set an obd protocol to output possibly to a scanner?
Google "ECUsim 2000"
No
Can this part speak simultaneously over different vehicle protocols? For instance can I talk with ISO 15765 and J1850 PWM at the same time?
No
I ordered the board and the cable referenced in the description, "The DB9 connector mates with our DB9 to OBD-II cable listed below."
Unfortunately, the DB9 connectors on the board and the cable are both female. Brilliant.
The board should have a male connector, I've double checked our stock and everything has a male connector. If you've gotten a board with a female connector contact us at techsupport@sparkfuncom and we'll get that fixed for you.
Do you think its possible to interpret j1708 commands used in buses and heavy trucks????
Yes, but only the raw data is passed.
Hey, just purchased and received this board and was wondering, which pin should I used to power the arduino I will be using it with on the OBD power? I kind of figured it was the VBAT pin but I am not 100% sure so would appreciate if anyone could confirm this please :)
Thank you
A team from Ireland that used this board, went on to win the Microsoft Imagine Cup and claim the $25k prize:
http://www.youtube.com/watch?v=s0k6KlZIlaQ
They lost me at Micro$oft.
I tried the steps mentioned here http://www.obdsol.com/articles/obd-software-development/reading-real-time-data/ with 2 cars to get OBD data, but all I get is: SEARCHING...STOPPED. Does anyone have an idea what could be wrong?
I had the same problem. This is caused by sending any characters on the UART after you have issued a command. So if your serial terminal is sending CRLF (carriage return, line feed), change it to only send CR after you press enter. This solved the problem for me.
Do that cars and cable have pin 7 connected? You need pin 7 (K-Line) for this interface.
Any chance of a yet to come ODB Arduino Shield? Like the CANBUS shield but arround this STN1110. The CANBUS shield does not suport OBD-II K-Line protocol.
This STN1110 would be a better choice for that shield, as it supports all OBS protocols.
Quick question:
Is it possible to read vehicle mileage using the OBD-II UART?
Thank you!
You can read vehicle speed (010D), and integrate it over time.
Vitaliy, thank you very much for your help.
Is there any possibility to read the actual total vehicle mileage via any of the OBD-II protocols?
Anything you may suggest will be greatly appreciated.
Thank you!
Quick question. If I just plug in the board to the obd port should I expect immediate activity on the TX/RX led's? I assumed that since the obd port is outputing data that it would show activity on the TX led. The car is running and the pwr led is red. Thanks in advance.
OBD doesn't work like that. You have to request the data you want. Try 0100.
Once it connects, you can request RPM (010C), Coolant Temperature (0105), etc. OBD Solutions website has a number of articles to get you started:
http://www.obdsol.com/articles/obd-software-development/
The board works well. It does require a TTL to RS232 or TTL to USB adapter to connect directly to a computer. I used a max232 circuit I had sitting around to do the job, but had to tap power from a component on the board.
At the risk of offending the designer, I would like to leave some constructive feedback.
1) On one corner, there is a mounting hole that can short vcc to gnd if metal screws are used. I suggest moving this mounting hole completely inside of vss to avoid accidental shorts.
2) There is a lot of wasted area on this board. Why not add some debug pads? (regulator outputs, data signals, etc).
3) I've seen complaints about interfacing to devices like BlueTooth. Since there is lots of open area, how about adding another header that also provides power for BlueTooth or an active TTL-RS232 circuit?
4) It's good to keep cost down, but it wouldn't take much to add an RS232-compatible header using just a few transistors.
5) Some links to the "Free" software are dead or not free at all. I found it difficult to find any truely free software.
6) The STN1110 Family Programming Reference is here. It has some information not listed in the documents above. http://www.obdsol.com/stn1110/ .
Will this board survive engine cranks during start-up of the engine, or is it best to leave it unplugged until the engine is running smoothly?
I know with so-called "automotive PCs", special power supplies are used that will protect the rest of the PC (and the power supply itself) from voltage spikes while the engine cranks.
I'm not sure if "VBAT" on the OBD-II connector is stable enough to leave this board plugged in ...
It will survive cranks, however I wouldn't leave it permanently installed as it will eventually drain your battery (unless it's new and you drive your car every day). The STN1110 datasheet has reference designs that show how you can have the circuit automatically power down using one of the many available sleep triggers (voltage, UART inactivity, etc). See this diagram to get a better idea:
http://www.obdsol.com/wp-content/uploads/2010/10/stn11xx_sleep_wakeup_triggers_diagram_850w.jpg
Thanks! I wasn't necessarily thinking of leaving it permanently installed, but I didn't know when it was safe to plug in ... Good to know it will survive startup...
I also found more information on the sleep functionality here: http://www.scantool.net/scantool/downloads/79/stn11xx-powersave.pdf (That was linked from obdsol.com, so hat tip to them for finding it)
Maybe now I will leave it it installed :-)
Anyone know where I can get the source code for the firmware on the PIC24 chip?
It's not open source.
Plainly connecting a Bluetooth Mate as described above doesn't work.. It seems like only the TX/RX pins are broken out, but not Vcc/Gnd. I was expecting that the board would also power the Bluetooth module.
What's the intended method to hook up a Bluetooth Mate? Do I need to add a battery or is it safe to steal the power somewhere from the board? And isn't a common ground required to make it work? Thanks!
Dunno if it helps or not, but I've made a very small version of the above (well some differences actually), but it still uses the STN1110 chip instead of a ELM327. All hardware is open source. The module itself has a very low power mode enabling you to leave it plugged into your car for very long periods of time. Schematics and PCB files are downloadable from my site here: http://batman.homelinux.com/blog/bluetooth-obdii-adapter/
I also have older, downloadable designs based on the ELM327, but the STN1110 is a superior chip.
Hope this helps!
ELM327 is slow and only official ELM chips are supported in any new software, so the cheap clones you guys are linking will be very hard to get working (I know - I own one!)
As a car nut Im very interested in this chip, as it claims to be much better than the ELM series. The ELM chips are fairly slow when reading multiple sensors, so Im excited for the speed improvement alone.
Finally, the chip is fairly expensive (just like the ELM chips), but something Ive not seen anyone mention is that the company is giving away FREE SAMPLES of this chip! The link isnt given on ScanTool's site, but its on the official mfgr's site here:
http://www.obdsol.com/stn1110/
My samples arrived at the beginning of this week, about three weeks after ordering. The plan, anyway, is to design a similar board, using the schematics in the datasheet, to fit inside the OBD connector housing. Stay tuned =)
Schematic and datasheet are now available.
Any plans to release some example code?
The only thing missing now is the programming details for the ELM327 command set. This is available at http://www.scantool.net/scantool/downloads/98/stn1100-frpm.pdf
The link above is for the STN1110 Family Reference and Programming Manual. The ELM327 datasheet is here: http://www.scantool.net/scantool/downloads/103/elm327dsh.pdf
Looking at the board, save for the pinout being a tad (just a few minor pins excchanged) different than the Elm327, you should be able to use the readily available ELM schematic. I know because I made a board for the ELM that worked well and the parts on board look identical down to the 510 ohm 1 Watt resistors. The only difference might be they improved one of the inputs with an old cheapo comparator rather than the discrete parts in the ELM schematic.
And the chip from them is $10 in onesy's not $14. I just spoke to a rep and he said it goes down to $8 for 100 pieces.
You can get a much cheaper OBD II chip at obdpros
http://www.obdpros.com/product_info.php?products_id=139
I have their bluetooth version (actually multiples) - it is better than the ELM and I was able to get a "wake in monitor mode" version so I could do wake and just send data. It is what i used before I figured out how to do j1850 on Atmel based processors (328 arduino and 2313).
Why trace the design when you can just x-ray it :) Finally, we're starting to see this technology open up to hobbiests. Hook up a Fez Domino with some GPRS and we can get remote data from the car on the road!
When you make this work with my 1999 A-Class Diesel (Merc custom codes but OBDII connector) I will buy it.
I have a range of OBDII stuff I have bought trying to get this car talking, none work so far. The ELM chips can't handle Merc language.
That's because it's not really OBD-II. Also do note that for older Mercs, you need to use the 38-pin connector under the hood. It's a proprietary diagnostics connector, as they didn't implement all the diagnostic stuff for the 16-pin DLC connector. No reason they couldn't, though. They probably just wanted to be special.
Then you're probably never going to buy it, because that would require a silicon upgrade to the ELM327 chip they're using. Your Benz is probably talking standard automotive protocols, just not in the language/code set that most OBDII chips understand.
If it hasn't come out in the last 13 years, you're probably out of luck. You'll probably need to use a microcontroller with the proper transceivers and reverse-engineer the protocol it's using.
What about this:
http://www.dealextreme.com/p/elm327-bluetooth-obd-ii-wireless-transceiver-dongle-16921
You can detachable the bluetooth if you need to use on something else...
Only US$ 52,99 free shipping
Thats a good option, however this chip ends up being much better. Read this: http://www.scantool.net/scantool/downloads/102/stn1110_vs_elm327.pdf
STN1110 is much better.