|Back to Project Index||http://graham.auld.me.uk||E-Mail me|
|USB VAN Monitor|
|Pioneer Headunit Control|
|VAN Line Protocol|
|VAN Frame Check Sequence|
|VAN Bus Packets|
Sorry about the state of these pages - I'm trying to do a brain dump before I forget everything!
Vehicle Area Network Bus (VANBus) is a bus used on some PSA group vehicles for body control. My 2002 Peugeot 406 uses it for some body electronics control, headunit, cd changer, sat-nav, steering wheel controls, multifunctional display etc.
My interest really started when I swapped out the standard head unit for a different one - the steering wheel controls for volume used the VAN to communicate back to the headunit, this was not compatable with my Pioneer headunit. The Pioneer HU expects a different resistances to be presented on the remote port to represent different button pushes.
The obvious solution to this problem was to make a small interface that could listen to the VAN bus and control the Pioneer head unit based on the bus data! Yes - I know some wires straight from the stalk switches would be much easier but where is the fun in that?
The first problem I came across was the lack of documentation on the VAN standard (hence why I'm writing this one up). The first source of info I located was on a French car forum, this thread http://www.forum-auto.com/les-clubs/section4/sujet174953.htm which drifts from French to English actually hides a lot of important info. It seems that much of the info these pioneers found out over a couple of years went into the RT3 wiki, sadly this has ceased to be. Google cache gave a few hits at the old address http://184.108.40.206/search?hl=en&client=firefox-a&gl=uk&q=site%3Art3wiki.free.fr&btnG=Search This directed me to a few other likley places. I've put most of the useful docs in the links section - if somone has a copyright issue then get in touch please. Atmel who seem to be the only makers of a standalone VAN controller have a reasonable description of the bus in their datasheet.
In order to see what was floating around on the bus and see if it was the same as the data I was reading on the forum-auto thread, I wanted to build a bus monitor. I wasn't entirely happy with the monitors I'd read about other people making which had issues in keeping up with the data stream in real-time so I designed my own. I would have liked to use the Atmel VAN controller which should have made life much easier but sadly I was not able to easily source one or two. Bitbanged comms on a PIC then! The old head unit from the car when powered externally was kind enough to spit out a regularly repeated string of data - I captured this with a 'scope and started out decoding it by hand. Once I was happy with the data on the line I proceeded to write some PIC code to do the job. An 18F series chip running with a 10MHz crystal PLL'd up to 40MHz was ample to decode the 125kbps data stream. With the data being sent in 4 bit chunks (nibbles) I really wanted to send an ascii character (0-F) out to a PC's serial port for every nibble received. To do this in real time means a COM port running at a shade over 250kbps which is a little over the 115kbps that a standard PC COM port maxes out at. I used an FTDI USB UART which is capable of much higher speeds, I can quite happily run that and the PIC at 500kbps exactly which gives plenty of head room to have a line feed on the end of each packet too! To make sense of the data I cooked up a perl script that converts the message addresses it knows about into real words and prints them on screen in the same order to try and make it readable with live data incoming. http://fafou.ben.free.fr/van/Van_main.html is where I found some more info.
I do now have working a VAN-Pioneer head unit interface in the car that allows me volume seek and source control from the steering wheel stalk. It's just VAN+- to a mcp2551 CAN traciever to a PIC 18f4515 to a DS1867 digipot to the pioneer head unit remote socket. With a bit of software that decodes the radio remote codes from COM2000. Read all about it here!
I have a working VAN bus monitor and some rough software for displaying the data on a pc which is detailed on this page!
A project has been started on google with info so please check there for info too http://code.google.com/p/van-bus/
VAN related PDF's all copyright of their authors:Atmel TSS461F Datasheet (details the line protocol, preambles, flags, checksums etc)