The car diagnostic tool for the public
THE VISION
Open-Source
Built with a commitment to transparency and collaboration, in line with open-source principles.
Data-driven
Contributing to more sustainable vehicle maintenance and reduced environmental impact.
Accessible for All
Designed for the public aiming to meet the needs of car owners and professionals.
Community Centered
Fostering knowledge-sharing and improvement across a community of users, developers.
THE ROADMAP
Libre Diagnostic is an open-source project aimed at building a system for car diagnostics. By the end of the project, we’re hoping to have a user-friendly platform that anyone—from car owners to mechanics—can use to better understand and maintain their vehicles. The outcome will be a tool that’s free, easy to use, and supported by a community of developers and users.
PHASE 1: Diagnostic Software
(Linux tar.gz)
(Apr 2025 - Feb 2026)
- Create Technical Feasibility Report
- Create DTC & Diagnostic Standards Report
- Create a combined Requirements and Design Document outlining Core Features, System Structure, Data Flow and Tooling Selection
- Develop a module that connects to the ELM327 device, sends OBD2 and AT commands, receives raw responses, and parses them into readable values like RPM and speed
- Add a simulation mode that allows testing the app without a real car connection
- Develop an interface where the user can choose actions like reading data or clearing error codes
- Include a way to save diagnostic results and logs for future reference or debugging
- Add a brand selection menu before starting diagnostics to allow users to choose their vehicle manufacturer
- Support manufacturer-specific trouble code decoding by using brand-specific DTC lookup tables, where DTCs available
- Retrieve manufacturer-specific DTCs using standard Mode 22 queries where available, with fallback messaging when unsupported
- Add an optional simulation mode for brand specific DTCs that allows testing the app without a real car connection
- Implement live data plotting and display a real-time graph of engine RPM
- Read and display the vehicle's battery voltage
- Build a fully GUI-driven interface that allows users to control all app functions
- Package the application into a standalone executable Linux file
- Create System Limitations and Possible Future Improvements Final Documentation
PHASE 2: Raspberry Pi Gateway
(Open Hardware Platform)
(Feb 2026 - Aug 2026)
- Create architecture & technical document, including repository layout, module design, data flow and error-handling
- Create project repository baseline, with initial dependencies/modules (SocketCAN setup)
- Implement basic CAN interface to read raw vehicle frames via SocketCAN
- Implement diagnostic protocol logic: ISO-TP and basic OBD-II PID request/response parsing
- Implement DTC read & clear (Mode 03 / Mode 04) logic on the gateway side
- Define and implement shared data format schema and API specification document
- Build client communication interface: TCP server to respond to client requests for DTCs
- Implement manufacturer-specific diagnostic protocol extensions (e.g. KWP2000 / UDS variations), including custom request/response handling
- Develop brand-specific data extraction layer for vehicle ECUs, supporting extended frames and non-standard CAN identifiers
- Extend gateway API to expose brand-specific diagnostics, including structured output for custom PIDs and DTCs
- Prepare README & usage guide, covering how to build, configure, run, and use the gateway; limitations; supported features
PHASE 3: Android Application
(Mobile Platform)
(Aug 2026 - Dec 2026)
- Create architecture & technical plan document, including repository layout, module design, data flow and error-handling strategy
- Create project repository baseline in Android Studio, with build scripts and initial dependencies
- Add Bluetooth discovery & pairing functionality to connect with ELM327 adapters
- Implement PID reading & parsing for engine RPM
- Extend PID reading & parsing to additional standard PIDs including speed, coolant temperature, engine temperature
- Implement brand-specific PID handling and parsing (e.g. manufacturer-defined PIDs), including dynamic request formatting and response decoding
- Add functionality to read active diagnostic trouble codes (DTCs) and display them in the app
- Add functionality to clear DTCs and confirm code clearing to the user
- Develop brand-specific data extraction layer for vehicle ECUs, supporting extended frames and non-standard CAN identifiers
- Integrate brand-specific DTC decoding and descriptions, mapping raw codes to readable fault information within the app
- Develop UI screens: Dashboard (live data), Codes screen, Settings, Logs screen
- Add UI support for brand-specific diagnostic data, including extended live data fields and manufacturer-specific parameters
- Implement session logging and export functionality (CSV/JSON export)
- Integrate results of the security audit
- Integrate results of the accessibility audit
The END Goal
Phase 1 - Diagnostic Software (Linux tar.gz)
During this phase, the project delivers a complete Linux program, capable of communicating with vehicles, displaying real-time information, and retrieving both standard and manufacturer-specific diagnostic data. The software is designed to be user-friendly, extensible, and independent of expensive proprietary solutions, providing a practical alternative for vehicle owners, developers, and repair professionals. It is utilizing the ELM327 device to estasblish the connection between the car and the program.
1.
Connect the ELM327 adapter to the car’s OBD-II port. Ensure the connection is secure and the adapter is properly seated.
2.
On your computer, access the Bluetooth settings and select the ELM327 from the list then pair it with your device.
3.
Download and install the Libre Diagnostic Software on your computer. Follow the installation instructions.
4.
Once installation is complete, initiate a real-time diagnostics session to wirelessly retrieve and analyze data.
ELM327
ELM327
The ELM327 is a publicly available and affordable device that interfaces with a car’s OBD-II port, allowing access to the vehicle’s onboard diagnostics system.
It acts as a bridge between the car and a computer or mobile device, communicating via Bluetooth or USB.
Phase 2 - Raspberry Pi Gateway (Open Hardware Platform)
This phase focuses on developing a dedicated hardware gateway that connects directly to a vehicle and provides diagnostic information to applications and services. Unlike traditional solutions that rely on generic ELM327 adapters, the gateway is designed to offer greater flexibility, support for advanced vehicle diagnostics, and full control over how data is collected and processed. By combining open hardware and open software, it creates a foundation for more powerful and cost-effective diagnostic solutions. It basically eliminates the need of ELM327 device.
Phase 3: Android Application (Mobile Platform)
During this phase, the project evolves into a complete Android application that allows users to perform vehicle diagnostics from their mobile device. Beyond standard diagnostics, the app will support manufacturer-specific data and fault codes, giving users deeper insight into their vehicles without relying on expensive proprietary software. This transforms the project from a desktop diagnostic tool into a practical solution that can be used anywhere.
THE FEATURES
Real-Time Data Monitoring
Comprehensive Diagnostic Codes
User-Friendly Interface
Wireless Connectivity
Supports Multiple OBD-II Protocols
Graphical Data Representation
Data Export Functionality
Battery Voltage Monitoring
THE FORUM
Join the conversation soon! Our forum is currently under construction and will be open for collaboration and discussion shortly
THE CONTRIBUTERS
Everybody who is interested in this project is welcome to help or share ideas!
Email to: contact@librediagnostic.com
THE SPONSORS
This project was funded through the NGI0 Core Fund, a fund established by NLnet with financial support from the European Commission’s Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101092990.
This project is also funded through NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission’s Next Generation Internet program. Learn more at the NLnet project page.