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.
- Native Integration
- Chevrolet Volt / Opel Ampera
- Chevrolet Bolt EV / Opel Ampera-e
- BMW i3 / i3s
- Mini Cooper SE
- Fiat 500e
- Hyundai Ioniq vFL
- Hyundai Ioniq 5
- Jaguar Ipace
- Kia e-Niro / Hyundai Kona / Hyundai Ioniq FL
- Kia Soul EV
- Maxus eDeliver 3
- Mercedes-Benz B250E
- MG ZS EV
- Mitsubishi Trio (i-MiEV et al)
- Nissan Leaf / e-NV200
- Renault Twizy
- Renault Zoe / Kangoo
- Renault Zoe Phase 2
- Smart ED Gen.3
- Smart ED/EQ Gen.4 (453)
- Tesla Model S
- Tesla Roadster
- Think City
- Toyota RAV4 EV
- VW e-Up
- General Support
- DBC File Based
- GPS Tracking
- OBD-II Standard
- Zeva BMS
- User Resources
- User and Developer Guides: (hint: version selection in left menu at the bottom)
- User Support Forum
- Android App APK file
- iOS App
- Distributors
- Servers
- Developers
-
Base Module (v3.0-3.3)
- Black injection-moulded plastic enclosure, approximately 99x73x29 mm excl. plugs
- ESP32 WROVER processor (16MB flash, 4MB SPI RAM, 520KB SRAM, dual core 160/240MHz Xtensa LX6 processor)
- WIFI 802.11 b/g/n
- Bluetooth v4.2 BR/EDR and BLE
- 3x CAN buses
- 1x Micro USB connector (for flash download and serial console)
- 1x Micro SD card slot
- 1x Internal expansion slot
- 8x EGPIO, 2x GPIO
- 1x GSM antenna connector
- 1x GPS antenna connector
- 1x DB9 vehicle connector
- 1x DB26 expansion connector
-
Modem Module v3.0-3.2
- US edition is SIM5360A (Dual-Band UMTS/HSPA+ 850/1900MHz, Quad-Band GSM/GPRS/EDGE 850/900/1800/1900MHz)
- EU edition is SIM5360J(E) (Dual-Band UMTS/HSPA+ 900/2100MHz, Quad-Band GSM/GPRS/EDGE 850/900/1800/1900MHz)
- 3G (EV-DO/HSPA+) dual band modem
- Includes 2G (GSM/GPRS) and 2.5G (EDGE) quad band
- GPS/GNSS
- Nano (4FF) SIM slot
- HOLOGRAM.IO nano sim included (can be exchanged if necessary)
-
Modem Module v3.3
- World edition: SIM7600G (Multi-Band LTE-FDD/LTE-TDD/HSPA+ and GSM/GPRS/EDGE)
- 4G (LTE-FDD/LTE-TDD) multi band modem
- Includes 3G (EV-DO/HSPA+), 2G (GSM/GPRS) and 2.5G (EDGE) quad band
- GPS/GNSS
- Nano (4FF) SIM slot
- HOLOGRAM.IO nano sim included (can be exchanged if necessary)
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 [email protected].
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:
- Introduce yourself on the developer mailing list
- Be kind & polite
- Understand the framework concepts
- Ask if you need help
- Present your plans if in doubt
- Write decent code
- If you extend modules, stick to their code style
- Write brief but descriptive commit comments
- Add user level descriptions to the change history
- Provide documentation in the user guide
- Use pull requests to submit your code for inclusion
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.