{"title":"Freematics OBD-II UART Adapter","description":"\u003cp\u003eProviding OBD access and CAN bus data sniffing for Arduino, reading and clearing vehicle diagnostic trouble code (DTC), wih btuilt-in 9-DOF motion sensor and data fusion algorithm, Serial UART and USB dual interface, working as DC 5V power supply\u003c\/p\u003e","products":[{"product_id":"freematics-obd-ii-uart-adapter-v2-1-for-arduino","title":"Freematics OBD-II UART Adapter V2.1 (for Arduino)","description":"\u003cdiv id=\"tab-description\" class=\"tab-content\" style=\"display: block;\"\u003e\n\u003cp\u003eThis product works as a data bridge between a car’s \u003ca href=\"https:\/\/en.wikipedia.org\/wiki\/On-board_diagnostics\" target=\"_blank\"\u003eOBD\u003c\/a\u003e port and Arduino (or similar hardware) with a dedicated open-source library provided. It provides high-speed OBD-II data access and integrates 9-DOF motion sensor with built-in sensor fusion algorithm. The adapter is powered directly from OBD port and outputs regulated 5V voltage for powering attached devices.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch1\u003eFeatures\u003c\/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAccess to all standard \u003ca href=\"https:\/\/en.wikipedia.org\/wiki\/OBD-II_PIDs\" target=\"_blank\"\u003eOBD-II PIDs\u003c\/a\u003e with \u003ca href=\"https:\/\/www.sparkfun.com\/datasheets\/Widgets\/ELM327_AT_Commands.pdf\" target=\"_blank\"\u003eELM327 AT command-set\u003c\/a\u003e\n\u003c\/li\u003e\n\u003cli\u003eReading and clearing vehicle diagnostic trouble codes (engine \u0026amp; powertrain only)\u003c\/li\u003e\n\u003cli\u003eCAN bus sniffing\u003c\/li\u003e\n\u003cli\u003eCar battery voltage measurement\u003c\/li\u003e\n\u003cli\u003eMotion sensing with MPU-9250 9-DOF motion sensor\u003c\/li\u003e\n\u003cli\u003eOrientation measurement with built-in quaternion sensor fusion algorithm\u003c\/li\u003e\n\u003cli\u003ePower supply (5V\/2.1A)\u003c\/li\u003e\n\u003cli\u003eSerial UART compatible with both 3.3V and 5V micro-controllers\u003c\/li\u003e\n\u003cli\u003eMicro USB for computer\/tablet connection\u003c\/li\u003e\n\u003cli\u003e\n\u003ca href=\"https:\/\/github.com\/stanleyhuangyc\/ArduinoOBD\" target=\"_blank\"\u003eArduino library and example sketches\u003c\/a\u003e available\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch1\u003eCompatibility\u003c\/h1\u003e\n\u003cp\u003eThe adapter plugs into the OBD port usually located under the steering column or slightly to the left of it. To check if your vehicle is OBD-II certified, open your hood and find the sticker that looks like this:\u003c\/p\u003e\n\u003cp\u003e\u003ca href=\"https:\/\/blog.freematics.com\/wp-content\/uploads\/2012\/03\/obd_sticker.gif\" rel=\"shadowbox[sbpost-576];player=img;\"\u003e\u003cimg alt=\"obd_sticker\" class=\"size-full wp-image-3384 aligncenter\" src=\"https:\/\/blog.freematics.com\/wp-content\/uploads\/2012\/03\/obd_sticker.gif\" width=\"330\" height=\"222\"\u003e\u003c\/a\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eVehicles using following vehicle protocols are supported.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eCAN 500Kbps\/29bit\u003c\/li\u003e\n\u003cli\u003eCAN 500Kbps\/11bit\u003c\/li\u003e\n\u003cli\u003eCAN 250Kbps\/29bit\u003c\/li\u003e\n\u003cli\u003eCAN 250Kbps\/11bit\u003c\/li\u003e\n\u003cli\u003eKWP2000 Fast\u003c\/li\u003e\n\u003cli\u003eKWP2000 5Kbps\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch1\u003eConnectors\u003c\/h1\u003e\n\u003cp\u003eThe adapter stays plugged into the OBD port usually located under the steering column or slightly to the left of it. A unpluggable cable comes out from the adapter and splits into one 4-pin connector two 2-pin connectors, including power lines (VCC\/GND) and data lines (Rx\/Tx). They can be connected to Arduino with onboard breakout pins or breakout shield. Your Arduino device will look tidy in car with only one cable.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003ePower Connector\u003c\/strong\u003e (2-pin 2.54 Dupont connector)\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eRed: VCC (connecting to Arduino’s VCC)\u003c\/li\u003e\n\u003cli\u003eBlack: GND (connecting to Arduino’s GND)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSerial UART Data Connector\u003c\/strong\u003e (2-pin 2.54 Dupont connector)\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eWhite: Rx (connected to Arduino’s serial Tx)\u003c\/li\u003e\n\u003cli\u003eGreen: Tx (connected to Arduino’s serial Rx)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cem\u003eNote: Arduino UNO or Nano only has one hardware serial which is also used by USB serial. Avoid using serial output if the adapter is connected to hardware serial. Arduino Leonardo, Mega, Due do not have this limit.\u003c\/em\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eUSB Port\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFor connection with computer or tablet via micro USB cable\u003c\/li\u003e\n\u003cli\u003eAllows power output (5V\/2A)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch1\u003eExtended AT Command Set\u003c\/h1\u003e\n\u003cp\u003eWe have extended standard ELM327 command set for following purposes:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eReading built-in MEMS motion sensor data\u003c\/li\u003e\n\u003cli\u003eReading orientation result from sensor fusion computation\u003c\/li\u003e\n\u003cli\u003eData bus specific controls\u003c\/li\u003e\n\u003cli\u003eCAN bus sniffing\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch2\u003eMotion Sensor Access\u003c\/h2\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eATACL\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFunction: reading accelerometer data\u003c\/li\u003e\n\u003cli\u003eResponse format: X,Y,Z (in G)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eATGYRO\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFunction: reading gyroscope data\u003c\/li\u003e\n\u003cli\u003eResponse: X,Y,Z (in degree)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eATMAG\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFunction: reading magnetometer data\u003c\/li\u003e\n\u003cli\u003eResponse: X,Y,Z (in milli-Gauss)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eATTEMP\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFunction: reading temperature data\u003c\/li\u003e\n\u003cli\u003eResponse: temperature (raw) data\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch2\u003eQuaternion Control and Orientation\u003c\/h2\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eATQU0\/ATQU1\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFunction: disable\/enable 9-DOF sensor fusion (disabled by default)\u003c\/li\u003e\n\u003cli\u003eResponse: OK\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eATORI\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFunction: retrieving orientation parameters from 9-DOF sensor fusion\u003c\/li\u003e\n\u003cli\u003eResponse: \u0026lt;yaw\u0026gt;,\u0026lt;pitch\u0026gt;,\u0026lt;roll\u0026gt; (in degree)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch2\u003eK-Line and ISO9141-2 Specific\u003c\/h2\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eATSH \u0026lt;AA\u0026gt; \u0026lt;BB\u0026gt; \u0026lt;CC\u0026gt;\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFunction: set header bytes\u003c\/li\u003e\n\u003cli\u003eExample: ATSH C1 33 F1\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eATPTH \u0026lt;AA\u0026gt;\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFunction: set initializing pulse time for (in hex, range of 0~255ms)\u003c\/li\u003e\n\u003cli\u003eExample: ATPTH 19 (set to 25ms)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eATPTA \u0026lt;BB\u0026gt;\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFunction: set negative pulse duration before first data (in hex, range of 0~255ms)\u003c\/li\u003e\n\u003cli\u003eExample: ATPTA 32 (set to 50ms)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch2\u003eCAN Bus Specific (CAN bus sniffing)\u003c\/h2\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch2\u003eCAN Bus Specific (CAN bus sniffing)\u003c\/h2\u003e\n\u003ch2\u003eCAN Bus Specific\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eATSH \u0026lt;ABC\u0026gt;\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFunction: set CAN message header (on 11-bit CAN)\u003c\/li\u003e\n\u003cli\u003eExample: ATSH 7DF\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eATSH \u0026lt;AA\u0026gt; \u0026lt;BB\u0026gt; \u0026lt;CC\u0026gt;\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFunction: set lower 24 bits of CAN message header (on 29-bit CAN),  higher 5 bits are set by ATCP command\u003c\/li\u003e\n\u003cli\u003eExample: ATSH DB 33 F1\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eATCP \u0026lt;HH\u0026gt;\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFunction: set CAN priority\/higher 5 bits of header (on 29-bit CAN)\u003c\/li\u003e\n\u003cli\u003eExample: ATSH 18\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eATCF \u0026lt;ABC\u0026gt; or \u0026lt;AA\u0026gt; \u0026lt;BB\u0026gt; \u0026lt;CC\u0026gt;\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFunction: set CAN message header filter for CAN sniffing, \u0026lt;ABC\u0026gt; for CAN 11-bit, \u0026lt;AA\u0026gt; \u0026lt;BB\u0026gt; \u0026lt;CC\u0026gt; for CAN 29-bit\u003c\/li\u003e\n\u003cli\u003eExample: ATCF 7E8\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eATCM \u0026lt;AA\u0026gt; \u0026lt;BB\u0026gt; \u0026lt;CC\u0026gt; \u0026lt;DD\u0026gt;\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFunction: set CAN message filtering bit mask (32-bit)\u003c\/li\u003e\n\u003cli\u003eExample: ATCM FFFFFFFE (ignore the lowest bit when comparing with header filter number)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eATM1\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eStart sniffing mode\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eATM0\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eStop sniffing mode\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eExamples\u003c\/h3\u003e\n\u003cp\u003eTypical sniffing on 11-bit 500kbps CAN bus\u003c\/p\u003e\n\u003col\u003e\n\u003cli\u003eATSP6\u003c\/li\u003e\n\u003cli\u003eATCF 700\u003c\/li\u003e\n\u003cli\u003eATCM FFFFFF00\u003c\/li\u003e\n\u003cli\u003eATM1\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003eTypical sniffing on 29-bit 500kbps CAN bus\u003c\/p\u003e\n\u003col\u003e\n\u003cli\u003eATSP7\u003c\/li\u003e\n\u003cli\u003eATCF 18DBF133\u003c\/li\u003e\n\u003cli\u003eATCM FF000000\u003c\/li\u003e\n\u003cli\u003eATM1\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch1\u003eArduino Library\u003c\/h1\u003e\n\u003cp\u003e\u003ca href=\"https:\/\/github.com\/stanleyhuangyc\/ArduinoOBD\/tree\/master\/libraries\/OBD2UART\" target=\"_blank\"\u003eA dedicated Arduino library\u003c\/a\u003e is provided for easy access to all the features with any type of Arduino. Please note not all available AT commands are encapsulated into API.\u003c\/p\u003e\n\u003cp\u003eSome commonly used APIs are like following:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cspan class=\"pl-en\"\u003esetBaudRate\u003c\/span\u003e – set adapter serial baudrate\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"pl-en\"\u003eread\u003c\/span\u003ePID – read specified OBD-II PID and return parsed value\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"pl-en\"\u003eclearDTC\u003c\/span\u003e – clear diagnostic trouble code\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"pl-en\"\u003egetVoltage\u003c\/span\u003e – measure car battery voltage\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"pl-en\"\u003egetVIN\u003c\/span\u003e – retrieve Vehicle Identification Number\u003c\/li\u003e\n\u003cli\u003egetTemperature – get device temperature\u003c\/li\u003e\n\u003cli\u003ereadAccel – read accelerometer X\/Y\/Z values\u003c\/li\u003e\n\u003cli\u003ememsInit – initialize motion sensor\u003c\/li\u003e\n\u003cli\u003ememsRead – read motion sensor data\u003c\/li\u003e\n\u003cli\u003ememsOrientation – retrieve computed orientation data\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eHere is an example code of a simplest engine RPM indicator, which uses the pin 13 LED (built in every Arduino board) to indicate whether the engine is above 3000 rpm.\u003c\/p\u003e\n\u003cpre\u003e#include \u0026lt;OBD2UART.h\u0026gt;\n\nCOBD obd;\n\nvoid setup()\n{\n  \/\/ we'll use the debug LED as output\n  pinMode(13, OUTPUT);\n  \/\/ start serial communication\n  obd.begin();\n  \/\/ initiate OBD-II connection until success\n  while (!obd.init());\n}\n\nvoid loop()\n{\n  int value;\n  \/\/ save engine RPM in variable 'value', return true on success\n  if (obd.readPID(PID_RPM, value)) {\n    \/\/ light on LED on Arduino board when the RPM exceeds 3000\n    digitalWrite(13, value \u0026gt; 3000 ? HIGH : LOW);\n  }\n}\u003c\/pre\u003e\n\u003cp\u003eMore example sketches are \u003ca href=\"https:\/\/github.com\/stanleyhuangyc\/ArduinoOBD\/tree\/master\/libraries\/OBD2UART\/examples\" target=\"_blank\"\u003ehere\u003c\/a\u003e.\u003c\/p\u003e\n\u003cp\u003eSome commonly used PIDs are defined in OBD library as following.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eEngine\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003ePID_RPM – Engine RPM (rpm)\u003c\/li\u003e\n\u003cli\u003ePID_ENGINE_LOAD – Calculated engine load (%)\u003c\/li\u003e\n\u003cli\u003ePID_COOLANT_TEMP – Engine coolant temperature (°C)\u003c\/li\u003e\n\u003cli\u003ePID_ENGINE_LOAD – Calculated Engine load (%)\u003c\/li\u003e\n\u003cli\u003ePID_ABSOLUTE_ENGINE_LOAD – Absolute Engine load (%)\u003c\/li\u003e\n\u003cli\u003ePID_TIMING_ADVANCE – Ignition timing advance (°)\u003c\/li\u003e\n\u003cli\u003ePID_ENGINE_OIL_TEMP – Engine oil temperature (°C)\u003c\/li\u003e\n\u003cli\u003ePID_ENGINE_TORQUE_PERCENTAGE – Engine torque percentage (%)\u003c\/li\u003e\n\u003cli\u003ePID_ENGINE_REF_TORQUE – Engine reference torque (Nm)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eIntake\/Exhaust\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003ePID_INTAKE_TEMP – Intake temperature (°C)\u003c\/li\u003e\n\u003cli\u003ePID_INTAKE_PRESSURE – Intake manifold absolute pressure (kPa)\u003c\/li\u003e\n\u003cli\u003ePID_MAF_FLOW – MAF flow pressure (grams\/s)\u003c\/li\u003e\n\u003cli\u003ePID_BAROMETRIC – Barometric pressure (kPa)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSpeed\/Time\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003ePID_SPEED – Vehicle speed (km\/h)\u003c\/li\u003e\n\u003cli\u003ePID_RUNTIME – Engine running time (second)\u003c\/li\u003e\n\u003cli\u003ePID_DISTANCE – Vehicle running distance (km)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDriver\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003ePID_THROTTLE – Throttle position (%)\u003c\/li\u003e\n\u003cli\u003ePID_AMBIENT_TEMP – Ambient temperature (°C)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eElectric Systems\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003ePID_CONTROL_MODULE_VOLTAGE – vehicle control module voltage (V)\u003c\/li\u003e\n\u003cli\u003ePID_HYBRID_BATTERY_PERCENTAGE – Hybrid battery pack remaining life (%)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eAdditional defines can be added to access all \u003ca href=\"http:\/\/en.wikipedia.org\/wiki\/OBD-II_PIDs\" target=\"_blank\"\u003eOBD-II PIDs\u003c\/a\u003e which the car’s ECU provides.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch1\u003eComparison\u003c\/h1\u003e\n\u003cp\u003eThe following table lists the differences among all Freematics OBD-II adapter models.\u003c\/p\u003e\n\u003ctable style=\"text-align: center;\" width=\"100%\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth\u003eFeatures \\ Models\u003c\/th\u003e\n\u003cth\u003eOBD-II UART Adapter V1\u003c\/th\u003e\n\u003cth\u003eOBD-II UART Adapter V2\u003c\/th\u003e\n\u003cth\u003eOBD-II UART Adapter V2.1\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eConnection Cable\u003c\/td\u003e\n\u003ctd\u003eFixed\u003c\/td\u003e\n\u003ctd\u003eFixed\u003c\/td\u003e\n\u003ctd\u003eUnpluggable\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eAdditional Interface\u003c\/td\u003e\n\u003ctd\u003eN\/A\u003c\/td\u003e\n\u003ctd\u003emicro USB\u003c\/td\u003e\n\u003ctd\u003emicro USB\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMotion Sensor\u003c\/td\u003e\n\u003ctd\u003eN\/A\u003c\/td\u003e\n\u003ctd\u003e6-DOF MPU-6050\u003c\/td\u003e\n\u003ctd\u003e9-DOF MPU-9250\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eVoltmeter\u003c\/td\u003e\n\u003ctd\u003eYes\u003c\/td\u003e\n\u003ctd\u003eYes\u003c\/td\u003e\n\u003ctd\u003eYes\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMax. Output Power\u003c\/td\u003e\n\u003ctd\u003e2A\u003c\/td\u003e\n\u003ctd\u003e2.1A\u003c\/td\u003e\n\u003ctd\u003e2.1A\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eStandby Mode Power\u003c\/td\u003e\n\u003ctd\u003e5mA\u003c\/td\u003e\n\u003ctd\u003e6mA\u003c\/td\u003e\n\u003ctd\u003e6mA\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch1\u003eFAQ\u003c\/h1\u003e\n\u003cp\u003e\u003cstrong\u003eQ: What is this product used for?\u003c\/strong\u003e\u003cbr\u003eA: The most straight-forward use of this product is for making Arduino possible to access vehicle data easily. The OBD-II data, together with other data from GPS or all kinds sensors, can be logged and stored on SD\/TF card with Arduino and that makes an open-source vehicle data logger (check out the \u003ca href=\"https:\/\/freematics.com\/products\/#kits\" target=\"_blank\"\u003edata logger kits\u003c\/a\u003e). More extensively, many interesting interaction applications requiring car data can be made.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: How is the adapter powered?\u003c\/strong\u003e\u003cbr\u003eA: The adapter gets power from the 12V DC output from the OBD-II port.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Does my Arduino needs power from somewhere in the car?\u003c\/strong\u003e\u003cbr\u003eA: The adapter provides regulated 5V output for powering Arduino and other devices, so no extra power cord is needed.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Do I need a CAN bus shield to use with the adapter?\u003c\/strong\u003e\u003cbr\u003eA: Definitely no. The adapter retrieves data from CAN bus, like a CAN bus shield does and convert the more complicated CAN bus interface to simple serial UART interface which Arduino and most embedded systems are easy to access. The data connection is provided by adapter’s data connector (Rx and Tx).\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: How do I connect the adapter with my Arduino?\u003c\/strong\u003e\u003cbr\u003eA: The adapter works with all models of Arduino with the dedicated Arduino library and is connected with Arduino by connecting adapter’s Tx to Arduino’s Rx (D0) and adapter’s Rx to Arduino’s Tx (D1). If you want to connect and disconnect the adapter with your Arduino effortlessly, it’s recommended to use a common I\/O breakout shield or use an Arduino board with breakout pins for Rx\/Tx\/VCC\/GND.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Is the power provided by the adapter always available in car?\u003c\/strong\u003e\u003cbr\u003eA: This depends on whether the OBD-II port of your car still has power after ignition is off. Actually it is so with most cars.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: What’s the maximum frequency of data polling?\u003c\/strong\u003e\u003cbr\u003eA: The OBD-II PIDs are polled one after another. The time for a polling depends on the speed of car’s ECU computer and how busy the computer is in different status. With a typical modern car with CAN bus, the time can be as low as 10ms. In other word, up to 100 times of data polling can be done in one second.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: What if I have questions\/obstacles about Arduino programming?\u003c\/strong\u003e\u003cbr\u003eA: Sorry it is not our responsibility to provide any instructions on Arduino programming. There are abundant online guides and tutorials about Arduino programming for reference.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: What's the difference between product version and firmware version?\u003c\/strong\u003e\u003cbr\u003eA: Freematics OBD-II UART Adapter V2 uses a firmware versioned 1.1. Freematics OBD-II UART Adapter V1 uses a firmware versioned 1.0.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"Freematics","offers":[{"title":"Default Title","offer_id":44024434065708,"sku":"OBD-U","price":60.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0684\/1879\/7868\/products\/OBD_UART_V2_1.jpg?v=1669505007"}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0684\/1879\/7868\/collections\/OBD_UART_V2_1.jpg?v=1792108295","url":"https:\/\/shop.freematics.com\/collections\/freematics-obd-ii-uart-adapter.oembed","provider":"Freematics Store","version":"1.0","type":"link"}