{"id":49540384,"url":"https://github.com/paulmarisoumary/obdii","last_synced_at":"2026-05-02T15:05:19.653Z","repository":{"id":281862610,"uuid":"945654588","full_name":"PaulMarisOUMary/OBDII","owner":"PaulMarisOUMary","description":"A modern, easy to use, Python ≥3.8 library for interacting with Vehicles via OBDII devices. Support USB, Bluetooth and WiFi adapters.","archived":false,"fork":false,"pushed_at":"2026-05-02T13:39:30.000Z","size":1598,"stargazers_count":20,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-05-02T15:04:59.531Z","etag":null,"topics":["automotive","car","ecu","elm327","obd2","obdii","pids","py-obd2","py-obdii","python","torque","vehicle"],"latest_commit_sha":null,"homepage":"https://py-obdii.rtfd.io/en/latest","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PaulMarisOUMary.png","metadata":{"files":{"readme":".github/README.rst","changelog":null,"contributing":".github/CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-09T22:46:20.000Z","updated_at":"2026-05-02T13:34:12.000Z","dependencies_parsed_at":"2026-05-02T15:01:00.562Z","dependency_job_id":null,"html_url":"https://github.com/PaulMarisOUMary/OBDII","commit_stats":null,"previous_names":["paulmarisoumary/obdii"],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/PaulMarisOUMary/OBDII","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaulMarisOUMary%2FOBDII","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaulMarisOUMary%2FOBDII/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaulMarisOUMary%2FOBDII/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaulMarisOUMary%2FOBDII/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PaulMarisOUMary","download_url":"https://codeload.github.com/PaulMarisOUMary/OBDII/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaulMarisOUMary%2FOBDII/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32538277,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T12:25:33.646Z","status":"ssl_error","status_checked_at":"2026-05-02T12:24:51.733Z","response_time":132,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automotive","car","ecu","elm327","obd2","obdii","pids","py-obd2","py-obdii","python","torque","vehicle"],"created_at":"2026-05-02T15:05:15.038Z","updated_at":"2026-05-02T15:05:19.647Z","avatar_url":"https://github.com/PaulMarisOUMary.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"OBDII\n=====\n\n.. image:: https://img.shields.io/pypi/v/py-obdii?label=pypi\u0026logo=pypi\u0026logoColor=white\u0026link=https%3A%2F%2Fpypi.org%2Fproject%2Fpy-obdii\n    :target: https://pypi.org/project/py-obdii\n    :alt: PyPI version\n.. image:: https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2FPaulMarisOUMary%2FOBDII%2Fmain%2Fpyproject.toml\u0026logo=python\u0026logoColor=white\u0026label=python\n    :target: https://pypi.org/project/py-obdii\n    :alt: Python Version from PEP 621 TOML\n.. image:: https://img.shields.io/github/actions/workflow/status/PaulMarisOUMary/OBDII/ci-pytest.yml?branch=main\u0026label=tests\u0026logoColor=white\u0026logo=pytest\n    :target: https://github.com/PaulMarisOUMary/OBDII/actions/workflows/ci-pytest.yml\n    :alt: PyTest CI status\n.. image:: https://img.shields.io/readthedocs/py-obdii/latest?logo=readthedocs\u0026logoColor=white\u0026label=docs\u0026link=https%3A%2F%2Fpy-obdii.rtfd.io\n    :target: https://py-obdii.rtfd.io/en/latest\n    :alt: Documentation Status (ReadTheDocs)\n.. image:: https://img.shields.io/discord/1437417392144912467?logo=discord\u0026logoColor=white\u0026label=discord\u0026color=%235865f2\u0026link=https%3A%2F%2Fdiscord.gg%2Fvn9bHUxeYB\n    :target: https://discord.gg/vn9bHUxeYB\n    :alt: Discord Support Server invite\n\nA modern, easy to use, Python ≥3.8 library for interacting with Vehicles via OBDII devices.\n\nOverview\n--------\n\nThis library lets you interact with almost any vehicles through the OBDII (`On-Board Diagnostics II \u003chttps://en.wikipedia.org/wiki/On-board_diagnostics#OBD-II\u003e`_) port.\n\nConnect through an OBDII adapter via USB, Bluetooth, WiFi, or Ethernet to monitor sensors, read diagnostic data, retrieve trouble codes, and access a wide range of vehicle information.\n\nWhether you're building:\n\n- A Diagnostic Tool\n- A Performance Data Logger\n- A Car Maintenance Tracker\n- A Custom Dashboard Display\n- A Vehicle Option Unlocker\n- A Smart Home Vehicle Integration\n- A Fleet Management System\n- A Real-time Vehicle Health Monitor\n- An App to learn about Automotive Systems\n- Or any other automotive applications..\n\nThe library handles the complexity of vehicle communication and provides the foundation you need for developing your automotive projects.\n\nInstallation\n------------\n\nPython 3.8 or higher is required.\n\nInstall from PyPI using pip:\n\n.. code-block:: console\n\n    pip install py-obdii\n\nFor more installation options, see the `Installation Guide \u003chttps://py-obdii.readthedocs.io/en/latest/installation.html\u003e`_.\n\nUsage Example\n-------------\n\n.. code-block:: python\n\n    from obdii import Connection, at_commands, commands\n    from obdii.utils.scan import scan_ports\n\n    # Find first available OBDII device connected via serial\n    ports = scan_ports(return_first=True)\n    if not ports:\n        raise ValueError(\"No OBDII devices found.\")\n\n    # Connect to the adapter\n    with Connection(ports[0]) as conn:\n        # Query adapter firmware version\n        version = conn.query(at_commands.VERSION_ID)\n        print(f\"Version: {version.value}\")\n\n        # Query vehicle's engine speed (rpm)\n        response = conn.query(commands.ENGINE_SPEED)\n        print(f\"Engine Speed: {response.value} {response.units}\")\n\nMore examples in the `examples folder \u003chttps://github.com/PaulMarisOUMary/OBDII/tree/main/examples\u003e`_ and `Usage Guide \u003chttps://py-obdii.readthedocs.io/en/latest/usage.html\u003e`_.\n\nEmulator Support\n----------------\n\nYou don't need a physical OBDII device to start developing.\n\nYou can use the `ELM327-Emulator \u003chttps://pypi.org/project/ELM327-emulator\u003e`_ library to simulate an OBDII adapter and vehicle responses.\n\nSetting Up the ELM327-Emulator\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n#. Install the library with the ``sim`` extra options:\n\n    .. code-block:: console\n\n        pip install py-obdii[sim]\n\n#. Start the ELM327-Emulator:\n\n    .. code-block:: console\n\n        python -m elm -p \"REPLACE_WITH_PORT\" -s car --baudrate 38400\n\n    .. note::\n\n        Replace ``REPLACE_WITH_PORT`` with the serial port of your choice\n\nFor platform-specific instructions, see the `Emulating a Vehicle \u003chttps://py-obdii.readthedocs.io/en/latest/emulator.html\u003e`_ guide.\n\nHardware Requirements\n---------------------\n\nFor real-world usage, an ELM327-compatible OBDII adapter is required to connect to your vehicle.\n\n- **USB**: reliable, plug and play\n- **Ethernet**: reliable\n- **Bluetooth**: wireless, convenient\n- **WiFi**: wireless, mobile compatible\n\nMore information on connecting to different adapter types can be found in the `Connection Guide \u003chttps://py-obdii.readthedocs.io/en/latest/connection.html\u003e`_.\n\nCompatibility\n-------------\n\nSupported Vehicles\n^^^^^^^^^^^^^^^^^^\n\nAlmost every vehicle from 2008 onwards should be compatible (CAN Protocols).\nIn future updates additional protocols and olders vehicles will be supported.\n\nProtocol Support\n^^^^^^^^^^^^^^^^\n\n===== ================ ======================== ===========\nID    Protocol         Specifications           Supported  \n===== ================ ======================== ===========\n0x01  SAE J1850 PWM    41.6 Kbaud               No         \n0x02  SAE J1850 VPW    10.4 Kbaud               No         \n0x03  ISO 9141-2       5 baud init, 10.4 Kbaud  No         \n0x04  ISO 14230-4 KWP  5 baud init, 10.4 Kbaud  No         \n0x05  ISO 14230-4 KWP  fast init, 10.4 Kbaud    No         \n0x06  ISO 15765-4 CAN  11 bit ID, 500 Kbaud     Yes        \n0x07  ISO 15765-4 CAN  29 bit ID, 500 Kbaud     Yes        \n0x08  ISO 15765-4 CAN  11 bit ID, 250 Kbaud     Yes        \n0x09  ISO 15765-4 CAN  29 bit ID, 250 Kbaud     Yes        \n0x0A  SAE J1939 CAN    29 bit ID, 250 Kbaud     Yes        \n0x0B  USER1 CAN        11 bit ID, 125 Kbaud     Yes        \n0x0C  USER2 CAN        11 bit ID, 50 Kbaud      Yes        \n===== ================ ======================== ===========\n\nSupport \u0026 Contact\n-----------------\n\nFor questions start a discussion on Github, for support open an issue.\nYour feedback and questions are greatly appreciated and will help improve this project !\n\n- `Open an Issue \u003chttps://github.com/PaulMarisOUMary/OBDII/issues\u003e`_\n- `Join the Discussion \u003chttps://github.com/PaulMarisOUMary/OBDII/discussions\u003e`_\n- `Discord Support Server \u003chttps://discord.gg/vn9bHUxeYB\u003e`_\n\n-------\n\nThank you for using or `contributing \u003chttps://github.com/PaulMarisOUMary/OBDII/tree/main?tab=contributing-ov-file\u003e`_ to this project.\n\nFollow our updates by leaving a star to this repository !","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulmarisoumary%2Fobdii","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaulmarisoumary%2Fobdii","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulmarisoumary%2Fobdii/lists"}