Sale ends todayGet 30% off any course (excluding packages)

Ends in --- --- ---

plex knock detection and CAN

General Tuning Discussion

Forum Posts



Tech Articles

Discuss all things tuning in this section. News, products, problems and results. 

= Resolved threads


Hey guys,

This might be a bit of a complex question and I am slightly new to CAN bus, but here it goes.

I just bought a plex knock detector and I am trying to hook this to the CAN bus of this car. I have another plug and play to install in another car, it's a vi-pec i88 plug and play for the Audi 1.8T. Is it possible to add a frame to the already engineered CAN bus to be able to transmit back to the ECU some knock counter information and also receive load and RPM. This unit comes with a can bus already setup on it for all the factory equipment so there is no complex and time consuming things to do when this is received.

This is what the Plex unit requires below.

TX 1Mbit 11bit

CAN BUS transmits the following information to be used by external ecus, dataloggers or dynamometers.

Message 1: rpm, load, knock level from sensor 1, knock level from sensor 2, knock threshold

Message 2: individual knock levels for cylinders 1 to 8

Message3: individual knock counters for cylinders 1 to 8

If this is do-able can you give me some pointers on how this is done? The other main concern that I have is it's asking me for the transmit hex id, is this for Transmit only? Just a hunch. lol


I'm not sure how configurable the CAN Bus is on a Vipec, as I haven't used one, but you will need more information to setup the CAN template than what you have below, such as the transmit and recieve ID's. Based on setting up CAN Templates for other devices, I would say that the following would be the correct bit sizes for the messages, but the addressing will depend on whether the signal is little or big endian.

Message 1: rpm (16bit), load(most likely 16bit, but could be 8bit depending on the ECU), knock level from sensor 1 (8bit), knock level from sensor 2 (8bit), knock threshold (8bit)

Message 2: individual knock levels for cylinders 1 to 8 (all 8bit)

Message3: individual knock counters for cylinders 1 to 8 (all 8bit)

With a CAN analyser you could reverse engineer the information from the data that is being read, or you could build the CAN template and see what data comes across compare to the data that is being sent.

Also, you will have seperate CAN templates for the transmit and recieve data, you can't have both in the same template.

I personally wouldn't use a CAN based product for knock control on an engine, as the transmit rates over CAN are not high enough to capture and react to the event in real time.

Thanks Rex,

I didn't think about not having a very good resolution for knock over any transmission protocol. How ever this thing does offer the ability To transmit what is listed above. From the looks of it I think I can pull engine RPM off this tho, that's what I was really wanting to do.

From what I am understanding it kicks the messages out on consecutive IDs,I can set the first one, would be sort as follows: transmitted on ID 3FC, message 2 would be transmitted on ID 3FD, and message 3 would be transmitted on ID 3FE.

I just dont get the receive part of it I guess I can set the transmit but not the recieve, kind of tells me it wont receive data at all. Correct?


Attached Files

I might have to look at the Plex Manual, I'm not sure how it would get a load value into it unless it was receiving it from the ECU, as this is a value generated from a number of values that the Plex doesn't receive. For receiving it into the ECU, you need to talk to Link now, who I believe are responsible for the ViPec range, and as them how the messages should be receive, if it can be done.

Hey Rex already talked to them, here is their response.

I've been to the Plex website and looked at the instruction manual for the Knock Monitor V2.0. It looks like the Plex sends out 3 messages on sequential CAN IDs, and you can specify the first CAN ID. For example if you specified ID 3FC, then message 1 would be transmitted on ID 3FC, message 2 would be transmitted on ID 3FD, and message 3 would be transmitted on ID 3FE.

The instruction manual (and your earlier message) tell us what is in each message, but they do not tell us the start position or width of each value (parameter) in the message. We would also want to know the byte order, if the parameter is a signed or unsigned value, what the minimum value is and by how much the value increments for an increase of 1 of the CAN bus value. For messages 2 and 3 we could likely guess some of this as there are 8 bytes of data in a message, and 8 cylinders.

What was Plex's response to this?

I haven't heard anything back from them yet.

This is perhaps a little off your topic, but if you have the i88 installed, why not focus your energy on the onboard knock control system in the Vipec rather than taking this data from the Plex? Essentially the control and functionality you have with the Vipec knock control system is almost identical to the Plex unit and you're not going to have any latency relating to CAN transmission rates. The Vipec i88 allows you to define the centre frequency for the knock detection system, control overall and individual cylinder gain levels and then a knock threshold and it's all native to the product.

I understand this isn't the subject of your post but just putting it out there for your consideration :)

I was actually trying more to pull rpm and load from the CAN bus.

PLEX Knockmonitor will not give you load on CAN

Thanks Dom,

Do you know if this unit will read RPM from an ECU CAN bus or do I have to connect a wire from a trigger source.

also after I received this unit I don't have and signal input from sensor 2 but if I connect both sensors to signal 1 which does work I get a reading from both the sensors. Am I missing something in the setup or something?

I uploaded a couple photos one of for sensor one and the other is sensor 2 input. sensor 1 has a value of 6 with the engine not running and sensor 2 shows 0. just seem like the unit has a dead channel 2?

Attached Files

As far as I know you need to feed in the rpm pulse off the engine management, either primary side or alternatively with an inductive pickup clamp on secondary. The rest of your questions I can not answer. Plex will provide support I trust. Their documentation is pretty good too.

Their support is very good.

here is the reply when asking about getting both sensors to work makes sense, Not sure what I was thinking.

here are the steps below for anyone that is curious as well.

For the Knock sensor 2 to show a value the following conditions must apply:

1. The trigger mode 3.2 should be set to 2cylinders or higher.

2. The trigger input wire must be connected to the ignition signal of cylinder 1.

3. The firing order of the engine must be setup in menu 3.5

4. Sensor 2 must be assigned to at least one cylinder bellow the firing order in menu 3.5

Then it should work as desired.


was this ever solved?

Reason I'm asking is that i'm hoping the plex knock monitor can (no pun intended) communicate with platinum pro ecus via CAN protocol as the knock detection might be better than stock sensors.

We usually reply within 12hrs (often sooner)

Need Help?

Need help choosing a course?

Experiencing website difficulties?

Or need to contact us for any other reason?