Add README.md and COPYING
[revag-nm.git] / README.md
1 VAG / VW reverse-engineered Network Management implementation
2 ==============================================================
3
4 This is a dump of my previous work in re-implementing the Network
5 Management routines used on the CAN bus in a VW Golf Mk 6, using
6 Linux SocketCAN.
7
8 The code was cobbled together quickly, but I'd rather have it out
9 in the open than lost in the sands of time.
10
11
12 How to use this
13 ----------------
14
15     make
16     ./revag-nm can0 0x0b
17
18 This will start the fake NM node on SocketCAN interface can0 and
19 pretend to be node 0x0b. That is, it will send CAN frames with
20 ID 0x42b which is the same as used (presumably) by the instrument
21 cluster in a VW Golf Mk 6.
22
23
24 Sources
25 --------
26
27 The vendor specific CAN protocol has been reverse engineered entirely
28 from wire traces.
29
30
31 The terminology used for the state machine in the code is derived
32 from the public standard document for OSEK/VDX Network Management,
33 Version 2.5.3 as published on the OSEK/VDX website:
34
35   http://portal.osek-vdx.org/files/pdf/specs/nm253.pdf
36
37 Note that no claim is made as to adherence to this specification.
38 The primary focus is on cloning the behaviour of a Golf Mk 6's ECUs,
39 and the specification merely provides terminology that will hopefully
40 help future readers understand the code.
41
42
43 Disclaimer
44 -----------
45
46 This code has only been used in a lab bench setup, driving an RCD 310
47 radio head unit, as well as a MDI/Media-In interface. It has NOT been
48 tested inside a real car, and the author(s) take NO responsibility
49 whatsoever for any damage, safety issues, or anything else, be it
50 in a lab setup or in an actual car.
51
52
53 Licence
54 --------
55
56 GNU GPL v2 only.
57
58 Please see the file COPYING for details.