15 posts / 0 new
Last post
molnarnor
molnarnor's picture
BMW i3 support

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

PaulS
PaulS's picture
I'd also like to get this

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.

PaulS
PaulS's picture
A bit more info

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.

elbow
Want to pick this up

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?

elbow
Just to say my OVMS arrived -

Just to say my OVMS arrived - thanks to OpenenergyMonitor who worked with me to get it here.

 

Jim3cantos
Jim3cantos's picture
BMW i3 support

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! 

elbow
ProgressI ca

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.

 

elbow
Something starting to work

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

 

PaulS
PaulS's picture
Hey Elbow,

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

elbow
Hi 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)

 

m.egpio.input                            0,1,2,3,4,5,6,7,8,9
m.egpio.monitor
m.egpio.output                           3,4,5,6,7,8,9
m.freeram                                3890716
m.hardware                               OVMS WIFI BLE BT cores=2 rev=ESP32/1
m.monotonic                              80218Sec
m.net.mdm.iccid                          8944500609193285768
m.net.mdm.model                          35316B12SIM5360E
m.net.mdm.netreg                         RegisteredRoaming
m.net.mdm.network                        MTN-SA Hologram
m.net.mdm.sq                             -83dBm
m.net.provider                           DvDevs
m.net.sq                                 -74dBm
m.net.type                               wifi
m.net.wifi.network                       XXXXX
m.net.wifi.sq                            -74dBm
m.serial
m.tasks                                  17
m.time.utc                               1609315040Sec
m.version                                3.2.015-267-g39dba375-dirty/ota_0/main (build idf v3.3.4-845-gd59ed8bba-dirty Dec 26 2020 15:37:52)
s.v2.connected                           yes
s.v2.peers                               0
s.v3.connected                           yes
s.v3.peers                               0
v.b.12v.current                          9.03999A
v.b.12v.voltage                          12.74V
v.b.12v.voltage.alert                    yes
v.b.12v.voltage.ref                      14.55V
v.b.c.temp
v.b.c.temp.alert
v.b.c.temp.dev.max
v.b.c.temp.max
v.b.c.temp.min
v.b.c.voltage
v.b.c.voltage.alert
v.b.c.voltage.dev.max
v.b.c.voltage.max
v.b.c.voltage.min
v.b.cac                                  121.86Ah
v.b.consumption                          0Wh/km
v.b.coulomb.recd                                                // Still need to work on these "coulomb" (Ah) metrics
v.b.coulomb.recd.total
v.b.coulomb.used
v.b.coulomb.used.total
v.b.current                              0A
v.b.energy.recd                                                 // TODO
v.b.energy.recd.total                                           // TODO
v.b.energy.used                          67.7941kWh             // Not working right yet
v.b.energy.used.total                                           // TODO
v.b.health                               Excellent
v.b.p.level.avg                          94.16%
v.b.p.level.max                          94.77%
v.b.p.level.min                          93.52%
v.b.p.level.stddev
v.b.p.temp.avg                           23.56°C
v.b.p.temp.max                           23.59°C
v.b.p.temp.min                           23.51°C
v.b.p.temp.stddev
v.b.p.temp.stddev.max
v.b.p.voltage.avg                        4.1885V
v.b.p.voltage.max                        4.1902V
v.b.p.voltage.min                        4.1869V
v.b.p.voltage.stddev
v.b.p.voltage.stddev.max
v.b.power                                0kW
v.b.range.est                            249km                  // This comes from the KOMBI ECU, but isn't the same as what's on the dash
v.b.range.full                           249km
v.b.range.ideal                          249km
v.b.soc                                  100%
v.b.soh                                  97%
v.b.temp                                 23.56°C
v.b.voltage                              402.1V
v.c.charging                             no
v.c.climit                               0A 
v.c.current                              0A
v.c.duration.full
v.c.duration.range
v.c.duration.soc
v.c.efficiency                           0%
v.c.kwh
v.c.limit.range
v.c.limit.soc
v.c.mode                                                       // Don't think the i3 has the charging modes this refers to.
v.c.pilot                                yes
v.c.power
v.c.state                                idle
v.c.substate
v.c.temp                                 24.2268°C
v.c.time                                 0Sec
v.c.timermode
v.c.timerstart
v.c.type
v.c.voltage                              0V
v.d.cp                                   yes
v.d.fl                                   no
v.d.fr                                   yes
v.d.hood                                 no
v.d.rl                                   no
v.d.rr                                   no
v.d.trunk                                no
v.e.alarm
v.e.aux12v
v.e.awake                                no
v.e.c.config
v.e.c.login
v.e.cabinfan
v.e.cabinintake
v.e.cabinsetpoint
v.e.cabintemp
v.e.cabinvent
v.e.charging12v                          no
v.e.cooling
v.e.drivemode
v.e.drivetime                            0Sec
v.e.footbrake
v.e.gear                                 0
v.e.handbrake
v.e.headlights
v.e.heating
v.e.hvac
v.e.locked                               no
v.e.on                                   no
v.e.parktime                             60530Sec
v.e.regenbrake                           yes
v.e.temp                                 21°C
v.e.throttle                             0%
v.e.valet
v.i.efficiency
v.i.power
v.i.temp                                 0°C
v.m.rpm                                  0
v.m.temp                                 24.4296°C
v.p.acceleration
v.p.altitude                             22.4m
v.p.direction                            221.6°
v.p.gpshdop                              0.9
v.p.gpslock                              yes
v.p.gpsmode                              AN
v.p.gpsspeed                             0km/h
v.p.latitude                             -34.XXXX
v.p.location                             Home
v.p.longitude                            18.XXXX
v.p.odometer                             14806km
v.p.satcount                             11
v.p.speed                                0km/h
v.p.trip                                 188km
v.tp.fl.p                                                       // Can't find the TPMS pressure numbers which is irritating.
v.tp.fl.t
v.tp.fr.p
v.tp.fr.t
v.tp.rl.p
v.tp.rl.t
v.tp.rr.p
v.tp.rr.t
v.type                                   I3
v.vin                                    WBY8P62060XXXXXXX
xi3.s.pollermode                         1
xi3.v.b.p.ocv.avg                        3.8576V
xi3.v.b.p.ocv.max                        3.86V
xi3.v.b.p.ocv.min                        3.856V
xi3.v.b.range.bc                         245km
xi3.v.b.range.comfort                    240km
xi3.v.b.range.ecopro                     260km
xi3.v.b.range.ecoproplus                 278km
xi3.v.b.soc.actual                       93.5%
xi3.v.b.soc.actual.highlimit             93.6%
xi3.v.b.soc.actual.lowlimit              10.5%
xi3.v.c.chargecablecapacity              32A
xi3.v.c.chargeledstate                   0
xi3.v.c.chargeplugstatus                 Connected
xi3.v.c.current.dc                       -51.1A                  // This is juice coming from charger on DC side. Generally works but this
xi3.v.c.current.dc.limit                 -51.1A                  // doesn't look credible and it probably some "don't know" value.
xi3.v.c.current.dc.maxlimit              16A
xi3.v.c.current.phase1                   0A
xi3.v.c.current.phase2                   0A
xi3.v.c.current.phase3                   0A
xi3.v.c.dc.chargevoltage                 0V                      // Of these xi3.v.c.dc metrics, only the contactorstatus seems to be useful.
xi3.v.c.dc.contactorstatus               open
xi3.v.c.dc.controlsignals                0
xi3.v.c.dc.inprogress                    no
xi3.v.c.dc.plugconnected                 no
xi3.v.c.deratingreasons                  0
xi3.v.c.error                            0
xi3.v.c.failsafetriggers                 0
xi3.v.c.interruptionreasons              0
xi3.v.c.pilotsignal                      12A
xi3.v.c.readytocharge                    yes
xi3.v.c.temp.gatedriver                  0°C
xi3.v.c.voltage.dc                       0V
xi3.v.c.voltage.dc.limit                 420V
xi3.v.c.voltage.phase1                   0V
xi3.v.c.voltage.phase2                   0V
xi3.v.c.voltage.phase3                   0V
xi3.v.d.chargeport.dc                    no
xi3.v.e.obdtraffic                       yes
xi3.v.p.gps_speed                        0km/h
xi3.v.p.tripconsumption                  145Wh/km
xi3.v.p.wheel1_speed                     0km/h
xi3.v.p.wheel2_speed                     0km/h
xi3.v.p.wheel3_speed                     0km/h
xi3.v.p.wheel4_speed                     0km/h
xi3.v.p.wheel_speed                      0km/h

 
elbow
I3 support merged into OVMS github project

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.

 

Jim3cantos
Jim3cantos's picture
Hi elbow,

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.

Jim3cantos
Jim3cantos's picture
OVMS now working in my i3. No

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.

i3BEV
This is great news,

This is great news, especially with BMW not offering a 4G upgrade for the i3.

John NZ
Thanks

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.

 

Log in or register to post comments