Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/laurynas/volvo_linbus
Volvo LIN bus reader
https://github.com/laurynas/volvo_linbus
arduino linbus mcp2004 volvo
Last synced: 11 days ago
JSON representation
Volvo LIN bus reader
- Host: GitHub
- URL: https://github.com/laurynas/volvo_linbus
- Owner: laurynas
- License: mit
- Created: 2017-05-18T17:24:55.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2020-12-25T23:11:34.000Z (over 3 years ago)
- Last Synced: 2024-03-08T05:35:28.814Z (4 months ago)
- Topics: arduino, linbus, mcp2004, volvo
- Language: C++
- Size: 640 KB
- Stars: 77
- Watchers: 24
- Forks: 11
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-linbus - Volvo LIN bus reader
README
# VOLVO LIN BUS READER
Simple Arduino + MCP2004 based reader. Reads steering wheel keys via LIN bus.
Part of [retrofitting of Android Auto to Volvo RTI project](https://github.com/laurynas/volvo_crankshaft).
Tested with **Volvo V50 2006**.
## Scheme
Arduino UNO + MCP2004 LIN transceiver.
![](doc/scheme_bb.png)
## Connector
Connection to LIN bus can be found behind Volvo Infotainment Control Module (ICM).
![](doc/ICM_connector.png)
Video instructions how to remove stereo from Volvo V50 floating dash:
[https://www.youtube.com/watch?v=Xo5NpBt04qs](https://www.youtube.com/watch?v=Xo5NpBt04qs)## LIN Message
![](doc/LIN_message.png)
A message on LIN is called a frame and consist of the following parts:
1. **Synchronisation interrupt.** Used to wake slave nodes that are in sleep mode.
Synchronisation field. The synchronisation field helps slave nodes to synchronise with their master node's clock frequency, in order for messages sent to be received correctly.
2. **Identification field.** Contains information about the contents of the message. All nodes can read and respond to a message, yet only one node has the right to send a response to the message. Which node has the right to answer the message (send response data) is evident from the identifier.
3. **Data information.** The data sent can be two to eight bytes long. The data information is sent with the least significant bit first.
4. **Checksum.** The checksum is a way for slave notes to check whether the received message has been transferred correctly, or if any disturbance can have occurred during the transmission which has corrupted the data. If an error has occurred in a message during transmission from the master node to the slave node, i.e. the checksum calculated by the slave node does not correspond, the slave node will erase the message and await the next message sent from the master node.## References
* [MCP2004 documentation](http://www.microchip.com/wwwproducts/en/MCP2004)
## Credits
Frame checksum calculation based on [Arduino LINBUS Gadgets code](https://github.com/zapta/linbus/).