Creative Commons images are CC BY-NC-SA 3.0


added to your
shopping cart

19 available 19 in stock
49.95 1+ units
44.96 10+ units
39.96 100+ units

Description: 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 or a Bluetooth Mate. 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.


  • Fully compatible with the ELM327 AT command set
  • Extended ST command set
  • UART interface (baud rates from 38 bps to 10 Mbps)
  • Secure bootloader for easy firmware updates
  • Support for all legislated OBD II protocols:
    • ISO 15765-4 (CAN)
    • ISO 14230-4 (Keyword Protocol 2000)
    • ISO 9141-2 (Asian, European, Chrysler vehicles)
    • SAE J1850 VPW (GM vehicles)
    • SAE J1850 PWM (Ford vehicles)
  • Support for non-legislated OBD protocols:
    • ISO 15765
    • ISO 11898 (raw CAN)
  • Support for SAE J1939 OBD protocol
  • Superior automatic protocol detection algorithm
  • Large memory buffer
  • Voltage input for battery monitoring


Comments 86 comments

  • 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)

  • 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.

  • 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 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 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:

    Could you please delete the old revision from your server? It already got some people in trouble.


  • 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:


      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.


  • Does anyone have any experience using the ISO 11898 (raw CAN) mode? Will it work on a 100kbit CAN bus?

  • 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.

  • I just received the board and I do not see any stn1110 chip on it, but it has PIC24. Am I missing something here ?

  • 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 :-)

  • Nowhere in this page is the link to Sparkfun’s tutorial landing page:

    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 ?

      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.

        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 :)

  • By a customer request, here is a table that shows the standard OBD-II PIDs as defined by SAE J1979. Enjoy

  • 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:

  • 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?

  • Can this part speak simultaneously over different vehicle protocols? For instance can I talk with ISO 15765 and J1850 PWM at the same time?

  • 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????

  • 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:

  • I tried the steps mentioned here 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:

  • 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. .

  • 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:

      • 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: (That was linked from, 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?

  • 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:

      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:
    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

      • The link above is for the STN1110 Family Reference and Programming Manual. The ELM327 datasheet is here:

  • 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

    • 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:
    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:
      STN1110 is much better.

Related Products