Introduction to LIN-bus:
The LIN-bus (this stands for Local Interconnect Network) does not operate with two wires like the CAN-bus, but with a single wire between two or more control units. With LIN-bus, there is a master and a slave: the master sends a message and the slave receives it. The master is connected to one of the other networks, such as the MOST-bus or the CAN-bus.
The master can be a control module or a simple switch, and the slave can be a sensor, actuator, or control module. This could, for example, be applied in the control of an AC compressor, or in the operation of a window motor. In this case, the switch is the master and the window motor is the slave.

Some applications where LIN-bus is used for control include:
- Sunroof and tilt roof
- Mirror adjustment
- Window motors
- Door locks
- Electric seat adjustment
The image on the right shows how the LIN-bus can be applied in a car door. The master is connected to the gateway via the CAN-bus (orange and green wires). Four slaves are connected to the master: the top one for mirror adjustment, below that for the door handle electronics, bottom left for the lock, and bottom right for the window motor.
Compared to CAN-bus, LIN-bus is simple and slow. The speed of the LIN-bus is about 1 to a maximum of 20Kbit/s (compared to CAN-bus with a maximum speed of 20Mb/s). This makes the development and production of the parts much cheaper. Since high operating speed is not critical for the above-mentioned systems, a slow network like LIN-bus is sufficient. Furthermore, the maximum length of the wiring is 40 meters and up to 16 control units (so up to 16 slaves) can be connected.

The LIN-bus is connected to the gateway. Through the gateway, communication with other types of networks, such as the CAN or MOST bus, is possible.
Recessive and dominant:
The master sends a message to the slave. This information is transmitted by voltages that are either 0 volts or 12 volts. The LIN-bus signal can be measured with the oscilloscope.
At point 1 there is a voltage of 13 volts on the bus. At point 2 the master starts sending a message. The master switches the bus to ground (point 3). Within 0.1 milliseconds the line rises back to 13 volts. While the bus is switched to ground, information transfer takes place.

When the voltage on the bus is equal to the battery voltage, this is called recessive. During the recessive voltage, no information is transmitted.
The recessive bit is a logical 1.
Only when the bus is switched to ground is a logical 0 formed. This is called a dominant bit. In the signal, the bus becomes dominant several times and then recessive again. The duration that the bus is dominant or recessive also varies (one horizontal line is wider than the other). By alternating these voltages, a signal consisting of ones and zeros is formed.

The quantity of ones and zeros forms a signal that the slave recognizes. The combination 01101100010100 could mean: move window motor up. The respective window motor will move the window up with this command. When the window reaches its highest position, the window motor (the slave) will send a signal to the master to stop operation. In that case, the LIN-bus does not become fully recessive, but the data bytes in the signal change.
During vehicle use, the LIN-bus never goes completely recessive; there is always communication between the master and the slaves. If the slave is not communicating because the LIN-bus wire is interrupted or the slave has a power or ground issue and cannot be turned on, the master will ensure a fault code is stored in the control module.
Data frames:
A LIN-bus signal consists of a frame that is made up of different fields. The signal below shows how a data frame is structured.

- Break field (Break): The Break field is used to activate all connected slaves to listen to the next parts of the frame. The break field consists of a start bit and at least 13 dominant bits (in the dominant part, the voltage is 0 volts), followed by a recessive bit. Thus, the Break field serves as a start-of-frame notification for all slaves on the bus.
- Synchronization field (Sync): Due to the lack of crystals in the slaves, the transmission time must be determined for each message. By measuring the time between the rising and falling edges, the master clock is synchronized, thus determining the transmission speed. LIN slaves are intentionally simple and inexpensive. For this reason, they do not have their own crystal oscillators for a fixed and precise clock. The slave’s baud rate is therefore not fixed and must be determined with each LIN message.
- Identifier (ID): The identifier indicates whether the message is a transmit frame or a response frame. The transmit frame is sent by the master (this is called a TX-ID), and the response frame is sent by the slave (RX-ID). Both messages contain the break field, the sync, and the message ID fields generated by the master. Depending on whether it is a TX or an RX frame, the message is completed by either the master or the slave. The TX and RX frames are sent alternately. This allows the master to request information from the slave. The master sends the first part of the message up to the id field, the slave completes it with all the data blocks up to and including the checksum.
- Data fields (Data 1 & 2): Contain the data bytes and the information to be sent (for example, the actual command from the master to the slave, or sensor data from the slave to the master).
- Checksum (Check): The checksum is a control field used to verify if all data has been received. Using the data in the checksum field, a calculation is performed that must match the data received in the data fields. If the result is positive, the message is accepted. If negative, an error handling procedure is executed, and it is tried again.
- Interframe Space (IFS): The LIN-bus is made recessive for several bits before a new message is transmitted. After the IFS, the master can send a new message.
Between the different fields, the bus is recessive for a set period. This period is specified in the protocol. Then the Break field of the next message follows. The oscilloscope capture below shows a LIN-bus message from a windshield wiper motor.

LIN-bus communication from the seat heater button:
This section gives an example of controlling the seat heating via LIN-bus. The A/C control panel features a button for the seat heater. Under the button, there are three LEDs indicating the setting level of the seat heating. Pressing the button multiple times will change the level of the seat heater (setting 1 is the lowest and setting 3 is the highest). In the image below, three LEDs are lit to indicate the highest seat heater setting. In this section, a diagram is used to explain how the communication via LIN-bus works to operate the LEDs when the button is pressed.

The wiring diagram below is for the seat heater. The A/C control panel is also control module G600. On the panel, both the switches and the LEDs for the left and right seat heaters are visible. The arrows next to the control modules indicate that the control module is larger than shown in the diagram; it continues onto other diagrams.

When a seat heater button on the control panel is pressed, it sends a signal via the LIN-bus to the comfort electronics control module (G100).
Control module G100 will activate the seat heater by supplying voltage to pin 21 or 55 on connector T45. The voltage is adjusted according to the button setting (low voltage in setting 1, maximum voltage in setting 3). Next to the heating element there is a symbol of a temperature sensor. This is an NTC sensor that sends the temperature to the control module to protect the seat heater elements against overheating.
When the button is operated, the slave converts the physical position of the switch into a bit value. After the master sends a response frame, the slave places this bit value in the data bytes (see the change in the Data 1 frame in image 2). This bit value is transmitted for as long as the button is held down. When the button is released, the signal reverts to its original signal (image 1).
Image 1: signal with the button at rest in the response frame:

Image 2: signal with the button pressed in the response frame:

Once the master has received the bit values from the pressed switch, it operates the LED in the switch by placing a bit value in the data bytes of the transmit frame. In this case, too, the voltage pattern in Data 1 or Data 2 changes as in the example above. The LED will remain on until the master sends a command to switch the LED off.
LIN-bus communication from the windshield wiper motor:
More and more often, the windshield wiper motor is controlled via the LIN-bus. The operation and advantages over the conventional system are described on the windshield wiper motor page. This page examines the signals in detail and displays oscilloscope captures of possible faults.

As described previously, the LIN-bus includes a master and one or more slaves. In the diagram above, the ECU (central electronics control unit) is the master, and the RLS (rain/light sensor) and RWM (windshield wiper motor) are the slaves. The oscilloscope capture below shows three signals sent sequentially on the LIN-bus.
In every signal the Break and Sync fields are clearly visible. In the subsequent signals it is not apparent to whom they are addressed or what exactly is being transmitted. What we do know is that in the Identification field, the master specifies for which slave the message is intended. The ID field also indicates whether the slave is to receive the message (Transmit frame) or send a response back (Response frame). A Transmit frame could mean the slave must operate an actuator, such as switching the windshield wiper motor on or off. With a Response frame, the master can request the current moisture level from the rain sensor. Based on this value, the master (the ECU) determines the speed at which the windshield wiper motor should be controlled. The actual data to be transmitted is placed in the Data fields. This could include, for example, the required speed of the windshield wiper motor. Multiple data fields are possible.
The oscilloscope capture was taken with the windshield wiper motor switched off and under conditions where no moisture was detected on the windshield. Nevertheless, there is continuous communication between the master and slaves. The ECU in the wiper motor detects a change in one or more bits in this signal, indicating that it needs to be activated.
Fault in communication with the windshield wiper motor:
When the windshield wiper motor is disconnected, the master tries to reach the slave. This can happen if the motor has a power supply problem or if the LIN-bus wire is broken. The master sends the Break, Sync, and ID fields with a Response bit, but the windshield wiper motor does not respond.
In the oscilloscope capture alongside, it can be seen from the third data frame that the master sends the data frame, but the slave does not respond. In this case, the master will store a DTC fault code relating to the communication problem. Such a code is indicated with U (User Network). It will also continuously attempt to reach the slave to resume communication.
In this case, measurements should be taken at the connected plug of the windshield wiper motor. If the LIN-bus wire is broken, or if the power (12 volts) or ground wire is interrupted, the windshield wiper motor will also no longer be able to communicate. A blown fuse is also a possible cause.
On the page: LIN-bus diagnosis several fault scenarios with solutions are described.
Related page: