Mazda Entertainment System - Capturing Bus Data

From nikosapi.org wiki
Revision as of 14:17, 7 November 2011 by Nikosapi (talk | contribs) (→‎Related files)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Here are two ways to get data off the bus. The first is useful for bulk transfer and the second is useful for examining signal timing.

Using A Decoder

The easiest way to view data on the bus is to use an external decoder. I wrote some software for an ATmega168 that captures data off the bus and sends it (one command at a time) out of it's USART. It can then be connected to a computer where the data can be presented with the use of a simple python script.

This simple circuit is all you need: MazdaDump.png

Related files


Capturing Raw Data

The easiest way to capture data off the message bus is to connect the bus directly to a parallel port and sample the port roughly every 0.1ms (more than fast enough to capture even the shortest messages). This method also allows you to accurately measure message timing.

One problem I had was that my parallel port's input resistance was too low which would cause the bus to idle at around 4V instead of 5V. That small voltage drop was enough to prevent the radio from sending messages so I had to build a small non-inverting amplifier. The schematic for that amplifier is available here: Mazda-radio-bus-amp.png

Related files

  • Code used to sample the parallel port: sample.c

See Also