Hello,
I have bought OVMS, and it works fine in my Leaf.
At the moment, I have access to a BMW i3 also, so I would like to try to add some support for these vehicles.
I found some info on the net, and I have found this repo
https://github.com/dzid26/opendbc-BMW-E8x-E9x
The guy had reverse engineered a lot's of BMW CAN codes, and put them in a DBC file:
https://github.com/dzid26/opendbc-BMW-E8x-E9x/blob/master/bmw_e9x_e8x.dbc
I have copied the content of this file to my OVMS (through the Editor) and saved to /sd/dbc/bmw.dbc
Then I tried these commands:
(I have selected the DBC option from Vehicle in the config)
dbc load bmw /sd/dbc/bmw.dbc
dbc show
dbc dump bmw
dbc show bmw
can can1 dbc attach bmw
can can1 status
can log start vfs crtd /sd/old_can/can_20200212_02.crtd
can log status
can log stop
Of course, under the logging time, I made some activity with the car. Switched on, opened doors, etc.
The log is empty.
can can1 status is showing nothing.
There is no info about the DBC part of OVMS, how it's working, I've just quessed out the above commands.
Can you please give me some more info, how can I get working this?
Yesterday I have made an other approach, not DBC based vehicle, but generic OBDII:
the can can1 status command show quite a lot of traffic, and I have generated some crtd log files also, which are not empty.
(But the reverse engineering from theese logs seems a bigger task :) )
Thank you in advance,
Norbert
I'd also like to get this working. I opened an issue on it a couple of months ago looking for help, but didn't get any responses.
Currently don't have access to an OVMS as I didn't want to purchase before I knew it was possible to get something out of it. (Any owners on the west side of London, UK want to run some experiments?). That said, I've been collecting as much data as I can.
Anyway, best tool I currently know of for enquiring over OBD is https://github.com/uholeschak/ediabaslib which is an Android App called "Deep OBD for BMW" which uses the definition files from the BMW software. It seems to download these from the authors site and decompress them onto the phone. Currently trying to extract the information out of them into a better format, and understand the communications setup it uses.
The files that you are using are for older BMW models (E8x / E9x. Mid-2000's to Mid-2010's). The i3 is the I01 and is more similar to the F series of ICE cars (e.g. the F30 3-Series). I've identified the definition files for the I01 out of DeepOBD, but I need to be able to read them.
I've managed to get Deep OBD working on my i3, and it logs everything it sends to/from the OBD dongle. So I've probably got everything I need to reverse engineer the CANbus setup, and various PIDs.
I'm still learning things, but I think the info is all available now.
Hi,
I want to pick this up to try to get OVMS working for my i3s.
As @PaulS, Deep OBD can get lots of info out over the OBD-II interface. I also looked inside Deep OBD, found a whole lot of .prg files that come I think originally from something called ediabas. I found a decompiler for those files and from that output I have many PIDs.
I also have a logs from Deep OBD and the bluetooth-hci "snoop" file so I can see exactly what is sent and received over the bluetooth serial ("rfcomm") link,.
I also have BMW technical training info with block diagrams of the CANBUS architecture.
So that surely is enough to be able to implement support.
So I'm trying to get an OVMS unit sent to South Africa (its not so easy since the SA Post Office must be avoided at all costs).
Is there anybody else interested in support for the i3?
Just to say my OVMS arrived - thanks to OpenenergyMonitor who worked with me to get it here.
Hi, I had OVMS in my old Think City and it worked well. Now with the i3 we have BMW connected app and also Electrified, but probably I would also get OVMS if available for the i3. Good luck with the project!
Hi,
I think I'm making decent progress - I can build the firmware, and added a "stub" for the i3 which I can select on my unit.
Meanwhile I spent more time on reverse engineering and I think by the end of tomorrow I'll have a list of PIDs and what they do, and I have examples of some of them being used by captures of traffic to a bluetooth obd dongle.
I think the main limitation is that you talk indirectly to the ECUs in the car - the OBD2 isn't on the main buses. So it remains to be seen whether commands can be sent.
The i3 also turns off power on the obd2 port - need to see what the implications of that are.
And you need to code a setting to stop the car sounding the alarm if you leave a device plugged into the obd2 port.ite f
Still - quite fun. A lot of German though. But thanks to the Google Cloud Translate service which is helping me understand it.
Hi,
With lots of advice from @dexterbg I'm starting to get some metrics from my i3.
So far I'm collecting SOC%, HV battery voltage and current flow.
It's very very far from finished but you can find the work in progress in the "bmwi3" branch at https://github.com/elbow/Open-Vehicle-Monitoring-System-3
Hey Elbow,
Nice work on getting something going. Think I'll put my order in, then I can at least test out what you're doing. Maybe even start helping out.
Paul
Hi Paul,
I'm confident that I will get to something useful.
You see sensible stuff in the Android and IOS apps, and the plugin to feed ABRP also works.
Here's an example of the data I am already able to collect. I've got a few things I'd like to improve then I'll clean up and send Mark and Michael a PR.
But you can build my code from my fork anytime.
So I don't think that you will waste your money buying an OVMS.
Note that if you want to leave OVMS connected to the OBD-II port when the car is off you will need also to buy Bimmercode and code off the alarm that otherwise goes off.
Is your car LHD or RHD? And does it have REX?
Mine is 120Ah RHD BEV so I'd like to see what happens on other variants.
Regards,
Elbow (Steve)
Hi,
I'm happy to say that BMW i3/i3s support has been merged into the OVMS master source.
I'd be happy for some others to give it a try.
To try it you'll need to download the OVMS source code from https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3 , compile it and flash the resulting binary image to your OVMS.
Hi elbow,
Can you share some screenshots from the app connected to the i3? I think still there is no picture for the car in the app, right?
thanks.
OVMS now working in my i3. No need to download rhe source code because the support for the i3 is included in the current version of the firmware that can be downloaded when configuring the module. The only thing missing are the pictures of the car in the app.
This is great news, especially with BMW not offering a 4G upgrade for the i3.
Thanks everyone for the work that has gone into getting the i3 integrated - really appreciate the effort as I have recently bought an i3 and am looking forward to hooking it up with OVMS once the new units are available from Fasttech with the new modems.
On a related note is there going to be an i3 section in the forums?
When I joined up recently, I was offered options to get emailed notifications of new posts to the different Vehicle Support forum sections, but the i3 is not one of them. I assume this is because the i3 is a relatively new arrival on the scene. But with all the progress that has been made getting it operating on the platform, I think it would be worth it having a dedicated section for the i3.
As mentioned in some previous posts, with the 3G TCB going obsolte and with little or no BMW support to upgrade exiting cars with 4G modules, there's a group looking to roll their own hardware. Most of the interesting stuff is on K-CAN4. Does anyone have any experience with using the OVMS hardware and connecting it to other CAN buses, other than the OBDII port?
So long as it is standard 2 wire CAN at the standard bit rates, it should be fine. OVMS supports up to 3 CAN buses, and several vehicle support modules use more than 1 CAN bus.
I've got my ovms module connected to the CAN line from the i3's original 3G module, and I can capture CAN data, but ovms doesn't recognize any of the i3 metrics. Any ideas?
A total noob here so please go easy on me. I am wanting to tap the K-CAN4 near the NBT / headunit (under the back seat) and route that up to the OVMS near the OBD port in order to send pre-condition messages. Here is what I am planning:
1. Since I already have an HDMI MMI I have easy access to K-CAN4 via the included harness. I plan to tap using twisted wires I have on hand
2. I am planning on using pin 7 and 17 on the DB26 on the OVMS to bring this CAN bus into CAN1
3. I will need to try and figure out some way to send the following (found on the internet)
I'm new here as well. I am very anxious about the battery beeing emptied by the module.
Should it not be a viable way to send a connected drive command that wakes up the system (like preheat) and get the car charge up the 12v battery again ?
Furthermore, the navigation system in the i3 has the current vehicle location - is there not a way to get to that. I would rather have the position from the car then from the gps mode. Esp. as OVMS currently does not calculate the position on last gps position and vehicle velocity and steering angle ( I think that is what BMW's navigational system probably does ).
Hi Jollyjinx,
I found that my 12v battery was going flat every morning due to the OVMS module load current. It was drawing 9 amps according to OVMS. So I replaced my AGM 12v battery with a Lifepo4 12v battery. Now it doesn’t go flat every morning.
Is there still anyone using OVMS with BMW i3 ?
OVMS Battery drain solved
I have now my OVMS module a couple of months. I first tried to patch the source code of the module to get the module use less power as my modules were all using way too much power to be left on alone for a couple of days. I first improved the voltage curve so that the voltages would be correct over all modules after one initial calibration.
After that I was able to let the module sleep as soon as I turned off the car. But it was using too much power still as the module would power on the gps/modem module every time it booted from sleep to see if the voltage was high enough for a full boot.
So I fiddled with the esp kernel and kept the module in kernel deep sleep when the voltage was low , but when going into deep sleep the gps/modem module would still drag way too much power sometimes. So I ditched the idea of getting OVMS to be nice and less power hungry.
I finally went for the cheap solution: I cut the 12v cable on the OBD connection and am using now the power from USB port of the OVMS module which is plugged in a 12V to USB Adapter under the main ventilation. This 12V power, as well the USB adapters in the car, are shut off after some time the car sleeps. So perfect for my need as I have BMWs connected drive to wake up the car when I need it :-D
This has been working for a couple of months now in the three BMWs I have access to. The car no longer is in any danger of draining the battery due to OVMS plugged in.
:-D
CAN Bus question
As I've written a software for myself to track the car, I'm seeing that for sometimes OVMS seems to loose the can bus while driving ( in all three cars ).
Has anybody an explanation for that ?
Furthermore I see that during AC charging the car, OVMS is on, but SOC is only on the can bus every half hour or so. A problem I have now is that when I only want to charge to x% I will find that OVMS gets only data again when the car is sometimes over 70% already - is there maybe a better CAN bus to connect to than the OBD port - like under the rear seats ?
I'm using bimmerconnected to stop the charging when the desired level is reached as I move the charging time window to 23hours into the future ( and update that charging window every 12 hours).
TLDR
So what is the problem with the loosing of the CAN bus data while driving / charging and can that be fixed with using one of the can busses under the rear seat?
I am about to order OVMS for my BMW i3.
The document says that the OBD2 switching off when the car is locked can be disabled using bimmercode.
I want to confirm that the OVMS adaptor can be used with bummercode to disable it
First post. I have just recently installed a OVMS on my BMW i3. According to the SD card logging data and the iPhone app my car is not updating the SoC due to the poller shutting down due to not seeing any OBCD2 canbus traffic during AC charging.
However when I do Fast DC charging my iPhone app updates the SoC continuously as the poller does not shut down. It seems that the i3 does not sleep during Fast DC charging with doors locked.
Can any body here confirm that their SoC updates all the time during Fast DC charging? Thanks.
Any chance somebody can add graphics for a BMW i3 in the OVMS iPhone app, like as shown above? Thanks.
Not in the short term. The apple xcode development environment has changed so much we are having problems building at the moment.
Two years since the last build. Looking forward to seeing a new build eventually. Thanks.
Hello,
I am new here and a new owner of an OVMS and an idea came up straight away. What BMW has neglected so far was to give the i3 an adjustable charging limit for the SOC to protect the traction battery.
But since the OVMS can read out the SOC during the charging process anyway and scripts can also be run on the OVMS, perhaps it wouldn't be not so difficult to implement an adjustable SOC charging limit in this way? This would only require the correct Canbus message to be sent to the i3 to end charging when the intended charge level is reached. Unfortunately, I don't have the knowledge to do this work, but surely there are people here who wouldn't find it too difficult and would be doing the entire i3 community a great service? BMW is certainly not doing that.