According to the information on the Emerald web site the K6 ECU uses the following version of the CAN bus protocol: CAN v2.0b – 29-bit ID , Extended frame, 20Hz (up to 1 Mbit/sec). 21 elements of vehicle data are broadcast each second in the format defined by this protocol via the serial comms port on the K6. For the avoidance of doubt this is the same comms port that is normally used to upload the vehicle maps.
According to the various web sites for ELM 327 (and its clones) this ODB II interface should
also supports this protocol, and should interface with the Torque Pro app via Bluetooth, on my phone and android tablet. Sounds simple and also inexpensive as none of the elements required are more than a tenner.
Firstly the ELM 327 – Bluetooth version off E-bay for £5. Plugged it into my Audi and it connected straight away and pumped out vehicle data in the Torque Pro app for display. Simple 10 minute job. The Torque Pro Apps automatically tries all of the protocols it understands one after another until it gets a sensible response. It didn’t take more than a few seconds to latch on the one Audi is using.
So how to get the data from the K6 into the Torque Pro App? RS232 would have been my first choice but Emeralds comms port is not a standard RS232 implementation so there no easy solution there that doesn’t involve wires and a soldering iron. As I now know the ELK 327 works from my Audi test my idea is to build a bespoke cable that plugs into the 9 pin Dsub of the K6 ECU comms port and the other end allows the ELM 327 to be plugged in.
I came up with the following:
ECU Dsub 9 pin number
|
ECU
Desc
|
Wire
Colour
|
ODB Desc
|
ODB II 16 pin number
|
|
1
|
CAN_H
**
|
CAN
bus interface1
|
Purple
|
CAN
H
|
6
|
2
|
CAN_L
**
|
CAN
bus interface1
|
White
|
CAN
L
|
14
|
3
|
-
|
Not
used
|
|||
4
|
-
|
Not
used
|
|||
5
|
earth
|
Signal
earth
|
Light
blue & yellow
|
Ground
|
4 & 5
|
6
|
-
|
Not
used
|
|||
7
|
Rx
|
RS232
serial interface, data receive
|
Black
white
|
TxRx
|
7
|
8
|
Tx
|
RS232
serial interface, data transmit
|
Black
|
TxRx
|
15
|
9
|
CTS
|
RS232
serial interface, clear to send
|
Red
white
|
8
|
** 120 ohm resistor between these pins. The CAN bus must be
terminated with 120 Ohm resistors. The ECU’s CAN interface includes a 120 Ohm
internal termination resistor.
Once the circuit was drawn up, putting the cable together
didn’t take too long. I also added a power and ground connector to connect to
the car as the K6 doesn’t supply these on it’s comms port.
Here’s the whole thing ready to go. Notice the deliberate
mistake? I purchased a female 9 pin Dsub instead of a male. Rather than
unsoldering and replacing I chose to spend £1.99 of a female to male converter
which you can see sticking on the end.
So I turned it on.
The ELM 327 powered up and connected via Bluetooth
to the Torque App as it did with the Audi. The Torque App then tried scanning
the protocols it understood one at a time. Each time it tried another protocol
I watched the status LEDs on the ELM 327 flash as it broadcast data to the ECU
and received stuff back. But that’s as far as I could get. The Torque App
obviously didn’t understand the information it was being sent if indeed it was
being sent anything at all, because it continued to cycle through the protocols
and not lock onto one.
Here’s a short video showing what happened.
I went back to the ECU manual and decided to change the CAN
protocol to “AIM Dashboard” by updating the “ECU Configuration”. Big mistake.
The engine would idle but wouldn’t rev – at all – without stalling. Panic. I
had read the ECU maps first of all before uploading the “ECU Configuration” and
this was the only parameter I changed. So, reverse the change and upload
another “ECU Configuration”. Exactly the same. What the hell is going on. What
did we do before Google. Found a manual on the Emerald web site dedicated to “ECU
Configuration”. I hadn’t looked at it previously. I hadn’t needed to. But I learned
that there 2 configuration files that define the set up of the K6. A *.map file
that I recognise as the file that stores the 3 maps. Then there is also a *.k03
file that has the “ECU Configuration” settings. Found my old .k03 file and
uploaded it. Fingers crossed. Yes that was the problem. Somehow I had lost the
EC Configuration setting on the laptop and uploaded some generic parameters
when I first pressed “ECU Configuration” upload. That was lucky. Could have
done some very serious engine damage doing that.
That’s where I finished for the day – car back working again
but the Torque App still not doing what it should. I will talk to Emerald.
21st Feb Update
Spoke to Emerald - the firmware in my ECU needs updating in order to start seeing CAN bus messages. It's a free upgrade but at the factory. Will try to find a suitable day to go across to Norwich for the upgrade and a rolling road session.
21st Feb Update
Spoke to Emerald - the firmware in my ECU needs updating in order to start seeing CAN bus messages. It's a free upgrade but at the factory. Will try to find a suitable day to go across to Norwich for the upgrade and a rolling road session.
Hi Paul, really interesting project;
ReplyDeleteAre you connecting serial/RS232 to the ELM327?
I would have expected, based on docs only, Emerald pins 1&2 to go to ELM327 pins 6&14 CAN L/H + a ground as you have from E5 to ELM4&5 ?
Black text on black background didn't format well on the published version. You can see it now. Used 6 & 14 for the CAN Bus.
Delete