CANhack.de CAN-Interface RKS+CAN
Diesel technology, engine technology, vehicle diagnostics, repair & maintenance.

CAN Bus filter problem

 
Go to page: 1, 2  Next
New Topic Reply 🔗 🖨 CANhack.de - Index » Microcontrollers and Electronics, Programming
Author Message
Michael42



Joined: 07/10/2023
Posts: 12
Karma: +0 / -0   Thank you, like it!


Free account, no CAN development support

Post10-07-2023, 2:22    Subject: CAN Bus filter problem Quote

I found the thread above, but I'm still not understanding it, and I can't figure out how to filter out the message 0x280 (which I see in the Serial Monitor of the Arduino IDE, among other places).

I want to display the speed, for example, of a car on the TFT display. Question: how do I do that? I've been working on it all weekend, for many hours, trying to get it to work. I can't do it.

My code.

Code:


#include <mcp_can>
#include <SPI>

long unsigned int rxId;
unsigned char len = 0;
unsigned char rxBuf[8];

MCP_CAN CAN0(5); // CS ist am Pin 5 am ESP32

void setup()
{
Serial.begin(115200);
if(CAN0.begin(MCP_STD, CAN_500KBPS, MCP_8MHZ) == CAN_OK) Serial.print("MCP2515 Init Okay!!\r\n");
else Serial.print("MCP2515 Init Failed!!\r\n");
pinMode(34, INPUT); // Setting pin 2 for /INT input

CAN0.init_Mask(0,0,0x07FF); // Init first mask...
CAN0.init_Filt(0,0,0x280); // Init first filte
CAN0.init_Filt(0,0,0x288); // Init first filter...

CAN0.init_Mask(1,0,0x07FF); // Init second mask...
// CAN0.init_Filt(0,0,0x0288); // Init third filter...
// Init sixth filter...

Serial.println("MCP2515 Library Mask & Filter Example...");
CAN0.setMode(MCP_NORMAL);
}

void loop()
{
if(!digitalRead(34)) // Int ist am Pin 34 am ESP32
{
CAN0.readMsgBuf(&rxId, &len, rxBuf); // Read data: len = data length, buf = data byte(s)
Serial.print("ID: ");
Serial.print(rxId, HEX);
Serial.print(" Data: ");
for(int i = 0; i<len; i++) // Print each byte of the data
{
if(rxBuf[i] < 0x10) // If data byte is less than 0x10, add a leading zero
{
Serial.print("0");
}
Serial.print(rxBuf[i], HEX);
Serial.print(" ");
}
Serial.println();
}
}



Die Ausgabe im Arduino Seriellen Monitor:

D2 Data: 00 00 00 20 00 06 6B
ID: 2A0 Data: 00 00 00 00 00 00 30 30
ID: 4A0 Data: 00 00 00 00 00 00 00 00
ID: 2A0 Data: 00 00 00 00 00 00 40 40
ID: 4A0 Data: 00 00 00 00 00 00 00 00
ID: 2A0 Data: 00 00 00 00 00 00 50 50
ID: 4A0 Data: 00 00 00 00 00 00 00 00
ID: 2A0 Data: 00 00 00 00 00 00 60 60
ID: 4A0 Data: 00 00 00 00 00 00 00 00
ID: 2A0 Data: 00 00 00 00 00 00 70 70
ID: 4A0 Data: 00 00 00 00 00 00 00 00
ID: 2A0 Data: 00 00 00 00 00 00 80 80
ID: 4A0 Data: 00 00 00 00 00 00 00 00
ID: 2A0 Data: 00 00 00 00 00 00 90 90
ID: 4A0 Data: 00 00 00 00 00 00 00 00
ID: 2A0 Data: 00 00 00 00 00 00 A0 A0
ID: 4A0 Data: 00 00 00 00 00 00 00 00
ID: 2A0 Data: 00 00 00 00 00 00 B0 B0
ID: 4A0 Data: 00 00 00 00 00 00 00 00
ID: 2A0 Data: 00 00 00 00 00 00 C0 C0
ID: 4A0 Data: 00 00 00 00 00 00 00 00

Ich verstehe den Zusammenhang (trotz lesens im Internet u. im Code) nicht, wie ich

a) die FIlter setze.

b) wieso 2A0 und 4A0 dabei herauskommen.

c) Muss ich in meinem Fall überhaupt Filter setzen ?

d) wie kann ich mit (cansniffer) mit dem Arduino + mcp2515 Daten auslesen. Im Seriellen Monitor der Arduino IDE sehe ich die Can Nachrichten, in Savvy Can oder cansniffer in der bash, sehe ich gar nichts.

e) wie kommt man überhaupt auf "07FF" in der Maske? Ich bin Automechaniker und lerne C+ seit 7 Monaten mit ChatGPT aber nach meiner Logik sollte die Maske doch ab 0x000 alle Daten blockieren ? Die Maske ist doch dafür da, alle Nachrichten draußen zu halten ? Und die Filter lassen jeweils die einzelnen Nachrichten durch ?

Wer kann mir helfen ? Ich komme absolut nicht weiter und es ist nur noch ein Rätsel raten.


Last edited on 10-07-2023, 2:26, edited 1 time in total.
Back to top Profile PM
Zampan0
CAN-Profi
CAN-Profi


Joined: 06/28/2016
Posts: 30
Karma: +20 / -0   Thank you, like it!


CAN Support

CAN-Diagnose likes this.
Post10-07-2023, 9:29    Subject: CAN Bus filter problem Quote

You don't have to use the filters, but if there's a lot of traffic on the bus, you'll need to handle the evaluation of the desired packets, which could result in lost packets (when using serial output).

Here is the datasheet for the MCP2515, which is used here.

https://ww1.microchip.com/downloads/en/DeviceDoc/MCP2515-Stand-Alone-CAN-Controller-with-SPI-20001801J.pdf

The filters are explained on page 33.

You need to view the filter bits individually, not as bytes, as that might make things a bit more complicated.

Take the Windows computer and set it up for development.
Then you can switch directly between Hex and Binary, allowing you to precisely see what is being filtered and what is not.
07FF -> 00000111 11111111
Back to top Profile PM
Michael42



Joined: 07/10/2023
Posts: 12
Karma: +0 / -0   Thank you, like it!


Free account, no CAN development support

Post10-07-2023, 9:57    Subject: CAN Bus filter problem Quote

Thank you for your effort, but I'm not understanding it. This is all fictional and cannot be explained.

ID 0x280, I want to modify and calculate bytes 2 and 3 for the RPM value. What are these bits used for? I'm not even debugging. For now, I just need to perform the calculation. By the way, the `mcp_2515.h` library doesn't seem to have any issues with the filters. It immediately worked, displaying only "0x280" in the serial output.

Did I misunderstand something?

"One more question, is it possible to get the Arduino + MCP2515 working with Scavvy Can or cansniffer in some way?" I use Linux and don't have Windows (only in a virtual machine).

"I have an A3 8P that I'm using solely for testing. It's about a Ferrari 360 TCU. I want to capture the data sequence from the expensive Texa tester using a Y OBD cable. The goal is to be able to display and adjust the PIS value in the car via a TFT or OLED screen. This will definitely be uncharted territory. There's no documentation or experience available for this. From the TCU, I need the PIS value, clutch consumption, and pressure from the SMG pump. That would be fantastic – at least in theory. Without a sniffer like Savvy Can, which can graphically represent the bit sequences of individual bytes, it will be difficult to impossible." I have a TTL USB adapter here, and an OBD diagnostic cable for VAG COM.

What I still don't understand is: where do the PIDs come from? There's only CAN ID + length + data.

Thank you for your effort...

And another question...

"If there's a high probability of having the specific byte sequence you're interested in, how did people figure out the calculation? Was it based on leaked information from the manufacturers? I also have a Launch X431 tester. Is it possible to filter out the PIDs (Parameter IDs) using that?" Cable or software?

"I'm still looking for the CAN IDs for kilometer reading and battery voltage – is that information perhaps known? Unfortunately, I haven't been able to find anything about it online so far. Thank you again for your efforts. I'm doing my best to understand everything. This whole HEX/BIN/HEXADECIMAL thing is completely new to me. I don't understand where the "bottom" and "top" are. And another question: Are the CAN protocols only needed to know whether the bits are counted from the front or the back? And yes, I have the PDF "The Car Hacker's Handbook," but I only find basic information in it." So far, the book hasn't been much more helpful than what I've already found through research or ChatGPT.

My project currently consists of a 4" TFT display and an ESP32dev. I've been able to display rendered numbers as if they were on a 7-segment display, along with GPS time (including daylight saving time), average speed, and a menu/page function controlled by a button. I can also update the code over-the-air (OTA). Initially, everything ran on an OLED display, but I had to learn about the `drawrec` function to clear old characters/numbers from the TFT. This was a new concept for me. In the process, I learned what arrays and strings are, and how to program with them. I've been working on this project for 7 months now, and I started from scratch. I wouldn't have thought I'd get this far initially... For 3 months, I wasn't making any progress because the quartz crystal, which I had updated from 8 MHz to 16 MHz, was defective, and I wasn't receiving any data serially, despite the correct settings in the code (baud rate, CS pin, interrupt pin, bus speed).

So, does the mask set the bits that are allowed to pass through? So, for a CAN standard message, do I only need a mask of 7FF = 11 bits? Is that correct?

Then, according to my logic, I wouldn't need any further filters, because I want to access all bits from different CAN IDs - is that correct?

Can I replace 0x280 with...?

if (mcp2515.readMessage(&canMsg) == 0x280 { ...

Bitte gib mir den deutschen Text, den du übersetzt haben möchtest.

process? Do packet losses only occur in serial connections?


Last edited on 10-07-2023, 10:23, edited 7 times in total.
Back to top Profile PM
Zampan0
CAN-Profi
CAN-Profi


Joined: 06/28/2016
Posts: 30
Karma: +20 / -0   Thank you, like it!


CAN Support

CAN-Diagnose and Michael42 likes this.
Post10-07-2023, 10:16    Subject: CAN Bus filter problem Quote

That's exactly what the interface of this website is designed for!

https://www.canhack.de/en/viewtopic.php?t=1852

You can use this to filter and display changes in data in a clear way, allowing you to determine what specific bytes contain.
Back to top Profile PM
Michael42



Joined: 07/10/2023
Posts: 12
Karma: +0 / -0   Thank you, like it!


Free account, no CAN development support

Post10-07-2023, 10:30    Subject: CAN Bus filter problem Quote

sounds good...

If this includes support, I am willing to pay the amount even without this cable. I suspect that it's possible to use known sniffers with an Arduino and a TTLUSB adapter.

I will be purchasing a cable from you next week.

Thank you again for your effort. That's really kind of you. Was I correct about what I said regarding masks and filters?

According to what I've heard, manufacturers are planning to implement encrypted CAN bus systems in the future... but I would advise against buying new cars in general. They're absolute garbage. Rear timing chain located between the engine and transmission... timing belts running in oil... cylinders without cylinder liners... DSG clutches that only last 50,000 km. Only junk cars are left on the streets. *shakes head*


Last edited on 10-07-2023, 10:32, edited 1 time in total.
Back to top Profile PM
Zampan0
CAN-Profi
CAN-Profi


Joined: 06/28/2016
Posts: 30
Karma: +20 / -0   Thank you, like it!


CAN Support

CAN-Diagnose likes this.
Post10-07-2023, 10:56    Subject: CAN Bus filter problem Quote

The various adapters have their own protocols between hardware and software, and the hardware uses dedicated processors to handle most of the processing within the interface.

I have used several different CAN-USB adapters for the marine industry, and in those systems, configurations are typically done through the device's own software and associated gateway. An Arduino gateway is simply ignored.

Encrypted data on the CAN bus is becoming increasingly common, but it is still rare due to the low transmission speed.

Okay, my old A6 4F 3.0 TDI from 2010 also had the timing chain between the engine and the transmission, but I never had any problems with it.
Back to top Profile PM
CAN-Diagnose
Administrator
Administrator
Avatar-CAN-Diagnose

Joined: 06/07/2011
Posts: 573
Karma: +29 / -0   Thank you, like it!
Location: Ländle



Post10-07-2023, 21:07    Subject: CAN Bus filter problem Quote

Michael42 wrote:
sounds good...

If this includes support, I am willing to pay the amount even without this cable. I suspect that it's possible to use known sniffers with an Arduino and a TTLUSB adapter.

I will be purchasing a cable from you next week.

Thank you again for your effort. That's really kind of you. Was I correct about what I said regarding masks and filters?

According to what I've heard, manufacturers are planning to implement encrypted CAN bus systems in the future... but I would advise against buying new cars in general. They're absolute garbage. Rear timing chain located between the engine and transmission... timing belts running in oil... cylinders without cylinder liners... DSG clutches that only last 50,000 km. Only junk is left on the streets.*shakes head*

A USB interface does not operate using a serial interface with Rx/Tx pins, nor does the device side (USB device), regardless of how many adapter plugs are connected.
A mission doomed to fail.

The CAN USB interface is designed for use with a PC or laptop. See system requirements in the product description.
Dipl.-Ing. (FH) Rainer Kaufmann - Embedded Softwareentwicklung
CANhack.de System RKS+CAN: CAN-Bus Interface


Last edited on 10-07-2023, 21:39, edited 3 times in total.
Back to top Profile PM WWW
Michael42



Joined: 07/10/2023
Posts: 12
Karma: +0 / -0   Thank you, like it!


Free account, no CAN development support

Post10-07-2023, 21:35    Subject: CAN Bus filter problem Quote

I certainly didn't say or mean that. Misunderstanding...

My question was whether I can connect the CAN High/Low lines to the RX and TX pins of the CH340 and then use a CAN sniffer to monitor the bus traffic, or sniff the traffic using the Rosstech cable. That's how my question should be understood. If your cable is better suited for this, then that's fine. In most diagnostic cables, FTDI chips are typically used.


Last edited on 10-07-2023, 21:48, edited 8 times in total.
Back to top Profile PM
CAN-Diagnose
Administrator
Administrator
Avatar-CAN-Diagnose

Joined: 06/07/2011
Posts: 573
Karma: +29 / -0   Thank you, like it!
Location: Ländle



Zampan0 likes this.
Post10-07-2023, 21:47    Subject: CAN Bus filter problem Quote

I wrote it nicely. You're missing the fundamentals. I mean, it's the datasheet for the MCP, what more do you want?

It contains everything you need to know about the IC.

I'd be happy to help, but a little more humility would be appreciated from your side. The statement that you're looking for support (meaning tutoring) for electronics and development with a USB interface is a bit odd. Very carefully worded.

Just like with your Arduino, there wasn't a programming course included. icon_idea.gif
Dipl.-Ing. (FH) Rainer Kaufmann - Embedded Softwareentwicklung
CANhack.de System RKS+CAN: CAN-Bus Interface


Last edited on 10-07-2023, 21:49, edited 1 time in total.
Back to top Profile PM WWW
Michael42



Joined: 07/10/2023
Posts: 12
Karma: +0 / -0   Thank you, like it!


Free account, no CAN development support

Post10-07-2023, 21:49    Subject: CAN Bus filter problem Quote

You're misunderstanding me again: I appreciate and respect your help. And I am very grateful for your assistance. I didn't want to seem ungrateful. Sorry.

I have already read the self-study program for Audo 286 to understand how a CAN message is structured. However, I haven't studied computer science, and I don't think I need it for my project. For this, it should have been possible to simply explain that...

A mask is nothing more than a "bit filter," and every subsequent filter simply filters CAN IDs. You can either let a specific byte pass through unchanged, or you can OR it with the entire CAN ID.
I have acquired all my knowledge of C++ and Arduino through the internet and AI, and from the very beginning, I have tried to always understand and follow the code, because that's the only way to learn. Previously, without AI, it would have been impossible to learn everything on your own at home within a reasonable timeframe.

"By CH340, I meant the USBTTL adapter. I use it for serial communication, for example, to configure the Neo6m via the U Center. I still haven't understood where the PIDs come from. I mean, when I use Arduino, I see the raw data on the CAN bus, and the PIDs are defined through the bus protocol, which you can only access if you have the corresponding hardware? I definitely find all of this very interesting, and I want to learn everything about CAN bus because I want to master it, and I find it interesting. The traffic on the Arduino comes in serially. Exactly. Unfortunately, I can't process it further with a sniffer. I've already tried Vcan and Slcan, simply redirecting the serial data to the Vcan." I also managed to get it working and receive data, but I no longer saw any CAN IDs, and the output only showed "leng" and single-digit numbers. Of course, the baud rate and other settings were configured correctly.

You are absolutely right about AI. This thing makes a lot of mistakes. But when I don't understand something, I use it, and it explains the code to me, and so far, I've understood every code snippet. Before, I would never have understood what an array or a string, or characters, etc., were. I've found it very interesting so far, and I'd like to pursue it as a hobby in the future. I also have a high school diploma and I've studied. But I just enjoy working on cars. I studied law for 7 semesters, and before that, I completed an apprenticeship as an automotive mechanic.


Last edited on 10-07-2023, 22:22, edited 8 times in total.
Back to top Profile PM
CAN-Diagnose
Administrator
Administrator
Avatar-CAN-Diagnose

Joined: 06/07/2011
Posts: 573
Karma: +29 / -0   Thank you, like it!
Location: Ländle



Post10-07-2023, 21:54    Subject: CAN Bus filter problem Quote

VCDS interfaces are not suitable for direct bus access, not because the hardware is incapable of it, but because the software and drivers are designed for a different target audience.

What do you mean by CH340?

Your source code already looks like it's printing bus traffic to the serial interface.

Quote:
ID: 2A0 Data: 00 00 00 00 00 00 30 30

Well, it works after all.
0x2a0 is the CAN ID, so which message is it? And then, after that, include the 8 data bytes of each message.

0x280 is not in your output. The 0x280 command is sent by the engine control unit (ECU) for VAG models, not by any VW/Audi/Seat/Skoda ECU. If it's not a VAG ECU, it won't send the 0x280 command.

PID: Another build site, likely OBD2.

ChatGPT: produces questionable code, poorly usable. The reverse function works well with the existing code.

You need to understand what's going on and do it yourself. Asking ChatGPT how it's doing is like asking someone in the stands at a sports game what the world champion did wrong.

You can't learn to ski from someone who has only watched ski races on TV and is now fantasizing, in a believable and convincing way, about how to become a world champion.
Dipl.-Ing. (FH) Rainer Kaufmann - Embedded Softwareentwicklung
CANhack.de System RKS+CAN: CAN-Bus Interface


Last edited on 10-07-2023, 22:09, edited 4 times in total.
Back to top Profile PM WWW
Michael42



Joined: 07/10/2023
Posts: 12
Karma: +0 / -0   Thank you, like it!


Free account, no CAN development support

Post11-07-2023, 4:48    Subject: CAN Bus filter problem Quote

I'm still having a problem: I've managed to get the ESP32+MCP2515 can tool working, but the CAN bus is only read at the beginning, during initialization. After that, no updates are received. I tried assigning the INT to pins 34, 36, and 39 in the code, but without success. In the can tool.h file, I adjusted the clock to 8 MHz.

Since the code is for the Arduino and the CAN shield, I need to make some adjustments for it to work with the ESP32. Thank you for your efforts.

Here's the translation:

"I used the following code:"

Code:


#include <can>
#include <mcp2515>

#include <can tool>
#include <CanHackerLineReader>
#include <lib>

#include <SPI>

const int SPI_CS_PIN = 5;
const int INT_PIN = 32;

CanHackerLineReader *lineReader = NULL;
can tool *can tool = NULL;

void setup() {
    Serial.begin(115200);
    SPI.begin();
   
    can tool = new can tool(&Serial, NULL, SPI_CS_PIN);
    lineReader = new CanHackerLineReader(can tool);
   
    pinMode(INT_PIN, INPUT);
}

void loop() {
    if (digitalRead(INT_PIN) == LOW) {
        can tool->processInterrupt();
    }

    // uncomment that lines for Leonardo, Pro Micro or Esplora
    // if (Serial.available()) {
    //   lineReader->process();   
    // }
}

// serialEvent handler not supported by Leonardo, Pro Micro and Esplora
void serialEvent() {
    lineReader->process();
}


According to my understanding, the code assumes that the MCP2515 sets the INT pin to low when new data has been received.


Last edited on 11-07-2023, 5:01, edited 3 times in total.
Back to top Profile PM
Zampan0
CAN-Profi
CAN-Profi


Joined: 06/28/2016
Posts: 30
Karma: +20 / -0   Thank you, like it!


CAN Support

CAN-Diagnose likes this.
Post11-07-2023, 8:28    Subject: CAN Bus filter problem Quote

Michael42 wrote:
I still have one problem: I've managed to get it working so that I can use the ESP32+MCP2515 CAN tool. However, the CAN bus is only read at the beginning, during initialization. After that, no updates are received anymore. I tried assigning the INT to pins 34, 36, and 39 in the code, but without success. In the CAN Tool.h file, I adjusted the clock to 8 MHz.

Since the code is for the Arduino and the CAN shield, I need to make some adjustments for it to work with the ESP32. Thank you for your efforts.

According to my understanding, the code assumes that the MCP2515 int pin is pulled low when new data has been received.

I'm not familiar with the CANShild, but the interrupt pin must be connected on the hardware side to the same location where it is defined in the software.
The MPC has 3 buffers, and as long as there is data in these buffers, the INT is low.
Back to top Profile PM
Michael42



Joined: 07/10/2023
Posts: 12
Karma: +0 / -0   Thank you, like it!


Free account, no CAN development support

Post11-07-2023, 10:47    Subject: CAN Bus filter problem Quote

https://github.com/autowp/arduino-mcp2515

"I tried adapting the code yesterday to work without using INT. The problem (for me) is that the `lib.mcp2515.h` library is included in the code, but it's not being used. I don't understand the can tool library at all. I haven't been able to find any syntax documentation for it. The code works, but only once. I don't understand the error."


Last edited on 11-07-2023, 11:34, edited 4 times in total.
Back to top Profile PM
CAN-Diagnose
Administrator
Administrator
Avatar-CAN-Diagnose

Joined: 06/07/2011
Posts: 573
Karma: +29 / -0   Thank you, like it!
Location: Ländle



Zampan0 likes this.
Post11-07-2023, 22:26    Subject: CAN Bus filter problem Quote

Michael42 wrote:


I tried adapting the code yesterday without using INT. The problem (for me) is that the `lib. mcp2515.h` is included in the code, but it's not being used. I don't understand the CAN Tool library at all. I haven't found any syntax for it. Is it in the `CAN Tool.h`? The code works, but only once. I don't understand the error.https://github.com/autowp/arduino-mcp2515
In the initial post, there were many CAN frames visible. How can the IRQ (Interrupt Request) not be triggered then?

Is this output really what you obtained with your test setup?

Has it ever worked? Is there any example code specifically for your CAN shield? Please do not mix different things together (e.g., code from A, a shield from B, etc.).

Edit: The code at the beginning is also different; I would start from where it was working.
And the code below isn't really any smarter or different in terms of logic... In the first example, the IRQ pin is 34, and below it's 32... If it worked with pin 34, it's obvious why pin 32 is the wrong pin.
Dipl.-Ing. (FH) Rainer Kaufmann - Embedded Softwareentwicklung
CANhack.de System RKS+CAN: CAN-Bus Interface


Last edited on 11-07-2023, 22:33, edited 4 times in total.
Back to top Profile PM WWW
Zampan0
CAN-Profi
CAN-Profi


Joined: 06/28/2016
Posts: 30
Karma: +20 / -0   Thank you, like it!


CAN Support

CAN-Diagnose likes this.
Post12-07-2023, 9:31    Subject: CAN Bus filter problem Quote

I think you first need to learn how a library is structured.
The .h files are header files that correspond to the associated .cpp files.

I found something here that explains how it's structured in a very simple way.

[url]

I would definitely use the interrupt, as it's easier for you to detect when data is available in the buffer.
You can also operate without it (like in the example [/url]https://wolles-elektronikkiste.de/bibliotheken-und-klassen-erstellen-teil-i), but this naturally puts more strain on the SPI bus, as the registers must be constantly queried to check if data is available.

But, as Rainer already wrote, it seems that it initially worked with interrupts.

Before you start experimenting with a CAN bus in a vehicle, I would recommend building a small test setup with two Arduinos, where one Arduino sends data to the other.
For now, PIDs, filters, and masks are not important; you still have a lot to learn.https://github.com/autowp/arduino-mcp2515/blob/master/examples/CAN_read/CAN_read.ino{MARKER}
Back to top Profile PM
New Topic Reply 🔗 🖨 CANhack.de - Index » Microcontrollers and Electronics, Programming
Go to page: 1, 2  Next
Similar articles and topics
Topic Forum
No new posts Brauche Hilfe bei Filter CAN Software Tools and Software
No new posts Hilfe bei Filter/Maske setzen CANHacker v2 CAN Software Tools and Software
No new posts Problem mit RKS+CAN CANhack.de CAN-USB System: RKS+CAN
No new posts CAN-Bus-Kollision-Symulation: ... 307cc - Eco-Mode Problem Vehicle-specific Hardware and Pin Assignments
Jump to:  
You cannot post new topics in this forum.