Decyphering iMiEV and iON CAR-CAN message data

Mitsubishi i-MiEV Forum

Help Support Mitsubishi i-MiEV Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Have started looking into adding OVMS support for our i-Miev's.

http://www.openvehicles.com/

To be able to add support we need at least discover CAN messages to determine if the car is On/Off and if the car is charging or not.

Hopefully several of you are interested in OVMS support for our i-Miev, and we will be succeeding in discover the needed CAN messages.
 
I've been playing around with I-Miev for a while now, and I've summarized my findings here:

https://github.com/plaes/i-miev-obd2
 
hello
here are my findings for the Peugeot iOn : https://docs.google.com/file/d/0B8dQaQF7N-koWGV5WFR3aDgtNWc/edit?usp=sharing

do you confirm ???
 
priusfan said:
here are my findings for the Peugeot iOn : https://docs.google.com/file/d/0B8dQaQF7N-koWGV5WFR3aDgtNWc/edit?usp=sharing

do you confirm ???

Wonderful, at least some of the data seems to be the same, for example:

208 - brake pedal
6E1-6E4 that contain battery pack information (Haven't had much time to document these yet, though)

236 - steering wheel position sensor, shouldn't that be every 10ms?
 
hello
236: 10ms is OK for me
the last column in my doc is Frame/Sec, so 100 means 10mS...

6E1 - 6E4 is a bit tricky : the first data byte is a sequence number from 1 to 12.
the 3 following bytes contain info about temps in °C (offset 50°C)
only 66 sensors in my car.

last 4 bytes contain infos about individual V (maybe with a correction factor (1.28???))

so, at the end, you get an array of 96 position....

I can publish the code I am using for this part, and in fact you can get my dev here:

https://drive.google.com/folderview?id=0B8dQaQF7N-koaUJ1dEpVYkU0bUE&usp=sharing

it was made using B4A, but you can read the file named scanner.bas with any text editor and try to follow the way it works...
 
Hi

After getting an iMiEV rental for one day I tried to connect to it using a ELM-CAN Wifi device for a project.

http://www.wgsoft.de/images/phocagallery/interfaces/thumbs/phoca_thumb_l_elmcanwlan.jpg

I had tested the device before with a VW Polo (no CAN but ISO 9141-2, still it shows that the hardware and drivers work)

I connect using telnet (no need for serial communication with Wifi). This worked well with the other car.

In communication mode 6 I keep getting NO DATA from iMiEV

Code:
Trying 192.168.0.74...
Connected to 192.168.0.74.
Escape character is '^]'.
ati
ati
ELM327 v1.3a

>ate0
ate0
OK

>atsp6
OK

>atdp
ISO 15765-4 (CAN 11/500)

>01 00
NO DATA

Has anybody got any ideas on what could be wrong? Did anybody actually get an ELM device (i.e. not a STN1110 device like OBDLink) to work with the iMiEV?

I ordered a OBDLink and an Arduino CAN bus shield, maybe one of them will fly. But maybe I'm making some other mistake.

Thanks!
 
the OBDLink is (imho) an excellent device.
I started using the BT version with full success.
anyway the STN1110 is fully compatible with ELM327 and much more advanced.

the iMiev is not a standard car. you should send the right command sequence...

for instance try this:

atsp6
ate0
ath1
stcfp
stfap 373,FFF
stm

it should show only the messages for pid 373, in wich are infos about V & Amps
 
Merci beaucoup! Waiting for my OBDLink...

Does OBD one-time individual PID retrieval like
Code:
01 412
work with the iMiEV? Or just commands that continuously retrieve PIDs such as ATMA or STM?

Thanks!
 
hello cristi
be carefull when trying to send requests:
the traditional requests will not give traditional responses, and be warned you can lose brake assistance if you play this game.

using atma, you will get 1625 frames/sec
using filters with a STN1110, I can get the most interesting infos @180 fps (only 298, 346, 373, 374 & 412)
 
Hello,

i had also troubles connecting to our Citroen C-Zero with Android App CaniOn54 & Can_Batt6 using OBDLink MX bluetooth-tongle. But after using BlueTerm with the sequence

atsp6
ate0
ath1
stcfp
stfap 373,FFF
stm

first, both apps are working! Sometimes the connection get lost, but i got all data! Very impressive! Thanks a lot for this great app!

One major interest was if our Citroen C-Zero 8/2012 has 88 cells or 80 cells: there are 88 cells :)

Martin :)
 
hello me68
strange this problem with obdlink-mx... (but I never tried one...)
what is your phone model??? (and android rel)

I saw that on the left panel, the odometer field is too short... (I must adapt according the resolution).

also, in canion54, when you tap on the graph, you get an alternate screen with data for the actual trip (and vice versa).
and when you tap on the left part of the screen, you make a screen capture in the folder BT_CAN.

you can also play with the tripviewer.
 
I'm using a Samsung Galaxy S2 with Android 4.1.2

Your apps are famous!

Martin
 
I had a look to scanner.bas.

You make a difference if a simul.txt exists or not. If i i'm right, you do not send the initstring, if this file does not exist (ptrcmd=0).


Martin
 
do not spend time with simul.txt : it is not used in this application.
consider it is dead code.

this application started for prius back in 2010, the idea of simul was to play back the journey, reading back the database at diferent speed. I had no time or patience to implement it completely...
 
Maybe there is a timing problem or a "set filter" problem for OBDLink MX?

Maybe the people from scantool.net can help?

There is a forum for developers at https://www.scantool.net/forum/.

I think the tongle is ok, but maybe one magic initcode is missing?

If they make a look to the initstring they can give a hint for adds or alternatives?


Martin
 
Bonjour Martin

I had a good look in the developers forum.
I found nothing relevant....

I would think the trouble has BT for origin, because after using blueterm, you can use my app.

I was planning to buy an Obdlink mx for debugging, but they are not available until june 28....

the fastest solution: you send me your device, I adapt the apps to make it work and I send it back.
I think I could do it within 2 days.

you can contact me by pm.

Xavier
 
Hey Guys,

at first: you do great work!!!

priusfan said:
hello
here are my findings for the Peugeot iOn : https://docs.google.com/file/d/0B8dQaQF7N-koWGV5WFR3aDgtNWc/edit?usp=sharing

do you confirm ???

Today I tested Id 374 in field D1 and can definitly confirm that this is the SOC for Peugeot ION. To do that I used a Peak-Systems PCAN USB Interface with the software PCAN-View. The sw simply shows all CAN-Msg's that can be received on OBD2.

These are the notes I made:
t3xdwew9.png

The car was full charged at the beginning. Do you Guys also have CF[x16] when full charged?

I also wrote a software that writes this CAN-Msgs in a SQLite database next to GPS NMEA sentences and high resoluted 3-axis accelerations using PCAN Interfaces. I could post such a database if you guys like to. I had the idea to run some linear regressionanalysis on the data to find more informations. I don't know yet how to do this, but will find out ;)

My next step will be writing a software that shows the decrypted values in a Windows-GUI. I will write it with C# using the mentioned hardware. I will post the sourcecode too. Maybe this will help you doing the same with your interface-hardware.

And can you guys tell me how you found out about the cell volts? Did you measure with a multimeter and compared with the CAN-data? I want to do something similar for a Peugeot Partner E Venturi.

Cheerio,
Dax
 
Hello all!

Yesterday we managed to drive an iMiEV around with our Range anxiety software connected to the car through an OBDLink (both bluetooth and usb worked) connected to a Java-based software that we made, which serves car data to our javascript UI (we hope to share this soon). Our configuration file is below.

We aim to give the UI (and the whole package) to users for testing, and my next question is: what happens if we leave the OBDLink connected to the car for a long time (e.g. overnight, with the car standing still)? Could the auxiliary battery drain? To what I could find, the auxiliary battery charges from the traction battery, so this should be no problem (even if the car is not plugged), but I thought I'd check.

So here's our config file based on your great reverse-engineering work! (I don't think we tested volt and odo). We use a Java library called MVEL for evaluating the expressions. We have a config file for gasoline cars (just for testing), and we'll make one for e.g. Leaf when we'll have access to one.

Code:
INIT=ati;atsp6;ate0;ats0;ath1;stfcp; stfap 373,FFF; stfap 374,FFF;stfap 346,FFF;stfap 412,FFF
soc= (PID[0x374][1] -10) /2
range= PID[0x346][7] 

amp= (PID[0x373][2] * 256 + PID[0x373][3] - 128 * 256 ) /100 
volt= (PID[0x373][4] * 256 + PID[0x373][5] ) /10

speed= PID[0x412][1]
odo= PID[0x412][2]*65536+ PID[0x412][3]*256 + PID[0x412][4]

best,
cristi
 
Hi!

Does anybody have any experience with Arduino-based OBD connectors on iMiEV or any EV?

We tested this Adruino CAN bus shield (based on the MCP2515/MP2551 CAN circuits)
https://www.sparkfun.com/products/10039

there is a simpler variant, and we used the software from this one:
http://www.seeedstudio.com/wiki/CAN-BUS_Shield

I got data from the iMiEV, so the low-level connection layers work but I didn't have time to get further in interpreting the data.

There is also this connector, that contains a ELM-compatible circuit (most probably STN1110). Since Arduino is a serial device most existing ELM-based code should work unchanged.
http://www.arduinodev.com/category/telematics/

All these solutions have a bit of software (Arduino libraries), which are oriented towards the gasoline cars, but it's easy to adapt the Arduino library. With either solution, one also can put the code in the Arduino to make an embedded application. Of course, for an embedded application that is always connected to the OBD port (and e.g. logs data on a SD card, or sends it to the cloud via e.g. a GSM Arduino shield), it's even more important not to drain the battery... Hence my previous post.

best regards, cristi
 
Back
Top