The OVMS is an all open source vehicle remote monitoring, diagnosis and control system.
The system provides live monitoring of vehicle metrics like state of charge, temperatures, tyre pressures and diagnostic fault conditions. It will alert you about critical conditions and events like a charge abort, battery cell failure or potential theft. Depending on the vehicle integration it allows you to take control over the charge process, climate control, tuning parameters of the engine and more. OVMS developers are enthusiasts trying hard to provide as detailed information about the internals of a vehicle as possible.
While most new vehicles now include some kind of remote control system, very few allow deep insight, some will not work in all regions and none will give you control over your personal data. The OVMS fills that gap, and also enables you to add all these features to existing vehicles of any kind.
The OVMS can also be used for fleet monitoring. It allows a fleet manager to not only track the vehicle locations but also to monitor the vehicle's vitals, remotely check for fault conditions, offer services like automatic preheating for users and take active control in case of abusive use. As the system is open source and fully scriptable, it can easily integrate custom access and control systems.
For developers and technicians, the OVMS includes a range of CAN tools including multiple logging formats, a configurable OBD2 translator, a DBC decoder, a reverse engineering toolkit and a CANopen client. The module provides SSH access and WebSocket streaming and can stream and inject CAN frames via TCP. Both the module and the web frontend can be customized by plugins. The module has three builtin CAN buses and can be extended by a fourth one.
The OVMS base component is a small hardware module that connects to the vehicle OBD2 port. The standard kit in the current version 3.3 includes a 2G/3G/4G modem to provide cellular connectivity and GPS. This standard kit has been FCC certified and CE certified.
The module provides a built-in Web App user interface and remote control via native cellphone Apps available for Android and iOS. It integrates into home/process automation systems via MQTT and provides data logging to SD card and to a server.
Base Module (v3.0-3.3)
Modem Module v3.0-3.2
Modem Module v3.3
The external DB26 DIAG connector provides access to the three CAN buses and offers some free extension ports. The internal PCB expansion connector allows stacked additions of further modules and serves for routing GPIO ports to the external DIAG connector. See schematics for details.
A very nice first extension module has been developed by Marko Juhanne: OVMS-SWCAN
If you plan on developing a hardware extension or just want to do some custom adaptations, have a look at our prototyping PCB kit. It's available in packs of 3 PCBs and includes headers and mounting material:
If the kit isn't available at the distributors, please contact Mark Webb-Johnson mark@webb-johnson.net.
New developers are very welcome on any part of the system, and we will gladly provide any help needed to get started.
The purpose of this project is to get the community of vehicle hackers and enthusiasts to be able to expand the project. We can't do it all, and there is so much to do. What we are doing is providing an affordable and flexible base that the community can work on and extend.
Everything is open, and APIs are public. Other car modules can talk to the server, and other Apps can show the status and control the car. This is a foundation that others hopefully will interface to and and build upon.
If you'd like to contribute, please accept our code of conduct:
A note on pull requests:
Pull requests shall focus on one specific issue / feature / vehicle at a time and shall only mix vehicle specific changes with framework changes if they depend on each other. If changes are not or only loosely related, split them into multiple PRs (just as you would do with commits).
Usage hint: create a branch for each pull request, include only those commits in that branch (by cherry-picking if necessary) that shall be included in the pull request. That way you can push further commits to that branch, Github will automatically add them to an open pull request.
The OVMS is a non-profit community project. Hardware production and service can normally be financed by sales, but some things (e.g. prototype development and certifications) need extra money. To help the project, you can make a donation on the OVMS website: https://www.openvehicles.com/forum
Please also consider supporting the vehicle developers directly. Check out their web sites and support addresses for their respective donation channels.
Thank you!
The project includes some third party libraries and components to which their respective licenses apply, see component sources for details.
The project itself is published under the MIT license:
Copyright (c) 2011-2020 Open Vehicles
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Software which uses other licenses will be annotated appropriately.