I am starting a project to use OEM auto parts in my PC simulator.
The parts I am trying to use are a Volvo V40 steering wheel and a VW Beetle electric window motor switch.
Both are Lin bus.
I have very little understanding of the lin bus protocol, so I've searched for success cases here in the forum.
I tried to replicate everything....but with no luck.
My guess is that I am failing the basic connection setup.
I’ve followed your help in other topics and seen also your Github LIN library.
I know that I need to send a frame header…but not exactly sure how. Does each device need it’s own unique header? If so….how can I find the one for my device?
Chatgpt suggested this:
Common LIN IDs for Volvo V40
While IDs can vary slightly depending on the year and trim (e.g., Adaptive Cruise Control vs. Standard), the most common IDs documented for this platform are:
0x01 (or 0xC1 with parity bits): Typically used for the Right-hand keypad (Media, Volume, Next/Previous, Voice Control, OK/Thumbwheel).
0x02 (or 0x42 with parity bits): Typically used for the Left-hand keypad (Cruise Control, Speed Limiter, ACC distance buttons).
lin_bus.sendHeader(0x01); // Dependent on your LIN library (e.g., MCP2004)
You have a LIN monitor example in your Github. I guess it will only work after the “wake up”, right?
I am now ready to move to the next stage: make it 100% wireless.
My setup will be:
An ESP32-C6
A linbus transceiver (LINTTL3)
A MT3680 step-up converter
A 3.7v Li-Po battery
My question is regarding the MT3680 that I need to convert voltage to 12v (or the minimum accepted to make the lin bus work). I want it to power off when the ESP enters deep sleep.
I read that I also need something to stabilize the power output of the MT3680 because the lin bus is very sensible to power interference.
What extra resistors, transistors, capacitors or mosfets do I need to ensure that the MT3680 safely turns off and that it’s output is stable enough to feed the lin bus?
Could you tell me how you pulled this off or perhaps share your code (here or on Github)? I am trying to make a 2005 (or maybe 2006) V70 steeringwheel working, but I am stuck. I am using an Arduino Mega 2560 with the green LINTTL3 board you also tried, but all I get are time-outs (0x04).
It has been a lot of years, but if my memory is still working:
LIN is essentially a protocol layered on top of asynchronous serial. At the physical/data level it looks a lot like UART:
Start8 Data BitsStop
LIN adds master/slave control, frame format, synchronization, identifiers, checksums, and scheduling.
The BREAK is interesting and stalls a lot of designs. It is basically an intentionally long dominant (low) condition that normal UART framing would not generate.
I used to generate this with a port pin and an open collector transistor.