Saturday, 23 November 2013

audi FIS 3-line protocol

UPDATE:

check libraries for reading data from radio and writing to cluster:

https://github.com/tomaskovacik/VAGFISReader
https://github.com/tomaskovacik/VAGFISWriter

Here is  wikipage with schematics:

https://github.com/tomaskovacik/VAGFISReader/wiki/How-to-connect

also page ti theory of operation:

https://github.com/tomaskovacik/VAGFISReader/wiki/Theory-of-operation

When writing to the cluster, no external components are required,the  cluster has all these components inside.


I think, this apply for pre-CAN-BUS cars only, check sticker on your radio, if there are 3pins labled ENA DATA CLK in middle section of mini-iso connector:

some 2000 models can be switched from canbus to this 3lb protocol.

 

static text

moving text












DEC 255-DEC
ASCII REAL
0 0 0 0 1 1 1 1
15 240

ADDR?
1 0 1 0 1 1 0 1
173 82
R
1 0 1 1 1 1 1 0
190 65
A
1 0 1 1 1 0 1 1
187 68
D
1 0 1 1 0 1 1 0
182 73
I
1 0 1 1 0 0 0 0
176 79
O
1 0 0 1 1 0 0 1
153 102
f _
1 0 1 1 1 0 0 1
185 70
F
1 0 1 1 0 0 1 0
178 77
M
1 0 1 1 1 0 0 1
185 70
F
1 0 1 1 0 0 1 0
178 77
M
1 1 0 0 1 1 1 0
206 49
1
1 1 0 1 0 0 1 0
210 45
-
1 1 0 0 1 1 1 0
206 49
1
1 1 0 1 1 1 1 1
223 32

1 1 0 1 1 1 1 1
223 32

1 1 0 1 1 1 1 1
223 32

1 1 0 1 1 0 1 0
218


CRC














0 0 0 0 1 1 1 1
15 240

ADDR?
1 1 0 1 1 1 1 1
223 32

1 1 0 1 1 1 1 1
223 32

1 1 0 1 1 1 1 1
223 32

1 1 0 0 0 1 1 1
199 56
8
1 1 0 0 0 1 1 0
198 57
9
1 1 0 1 0 0 0 1
209 46
.
1 1 0 0 1 1 0 0
204 51
3
1 1 0 1 1 1 1 1
223 32

1 0 1 1 1 0 0 1
185 70
F
1 0 1 1 0 0 1 0
178 77
M
1 1 0 0 1 1 1 0
206 49
1
1 1 0 1 0 0 1 0
210 45
-
1 1 0 0 1 1 1 0
206 49
1
1 1 0 1 1 1 1 1
223 32

1 1 0 1 1 1 1 1
223 32

1 1 0 1 1 1 1 1
223 32

1 1 0 0 0 1 0 0
196


CRC

CRC=MODULO(SUM(255-DEC),256) = ((SUM(0xFF-HEX))&0xFF)

Starting "pulse" ?

packet
so, it's SPI!?

TODO: try to use SPI libs to hadle this. http://www.gammon.com.au/forum/?id=10892

ENABLE is bi-direction "wire":

from audi concert plus
audi concert (nav)/chorus
and here is something like "ping" to radio:




Arduino code to receive from radio and to send text to cluster is down there:

Arduino code to send data from RS232 to cluster 

Arduino code to receive data from radio





comunication betwen arduino reader and actual radio

video of code in action









Friday, 8 November 2013

How to enable CD changer input on audi chorus I

How to enable CD changer input on audi chorus I

I sell on Tindie
 From schematics, difrence between chorus and concert which has CD changer input,  is just few parts and enable CD-changer by coding as in here. Parts need to be soldered on main board to enable are this:

Audio input filter:
C1407 2.2uF/10V(THT, 2.54mm)
C1427 2.2uF/10V (THT, 2.54mm)
C1424 820pF (SMD 0805)
C1404 820pF (SMD 0805)
R1401 10kΩ (SMD 0805)
R1421 10kΩ (SMD 0805)
R1402 10kΩ (SMD 0805)
R1422 10kΩ (SMD 0805)


Location of all components on bottom side of PCB.
Power supply switch:
BSP452 (cheepest on ebay)
R2018 150Ω (SMD 0805)


Location of 150Ω resistor is on first picture.

Comunication lines Data-In, Data-out, clock
R5301 1kΩ (SMD 0805)
R5304 1kΩ (SMD 0805)
R5305 1kΩ (SMD 0805)
R5202  2,2kΩ (SMD 0805)
R5303  2,2kΩ (SMD 0805)
V5301 BC848B any BC848/850 is ok
 V5302 BZX84C5V6
V5303 BZX84C5V6
V5304 BZX84C5V6



Location of 3x1k and 2x2k2 is on first picture.

Price for this components is 0.68€ at gme.sk.

After this, you need CD changer emulator and simple circute, which emulate "mode" button press. For so small project is perfect attiny25/45/85 actualy 85 is cheapest one. For attiny support in arduino, follow this tutorial. Sketch for tiny:


Schematic  and pcb for this "mode button emulator":

schematics

PCB





Tuesday, 29 October 2013

audi a4 b5 woofer + fix







If subwoofer and rear speakers not working (avant version):
While radio is ON check if ther is 12V as red marks show. If so, check if there is a short like yellow marks show, if there is no short while 12V is in place, that means, relay is not working, change it or make permanent short between yellow solder joints.

Tuesday, 15 October 2013

how-to recover code from audi beta autoreverz CC AUZ1Z5

location of eeprom where safe code is stored:

 remote it and extend legs that it can be used in breadboard
After this connect it to arduino as described here.

eeprom pin | arduino pin
       1          |       GND
       2          |       GND
       3          |       GND
       4          |       GND
       5          |        D7
       6          |        D4
       7          |       GND
       8          |        D2

Download and compile  host program, upload EEPROM sketch (add #define __PROG_TYPES_COMPAT__ to first lines of code to avoid errors in anrduino 1.0) to arduino and dump eeprom content:

ardpicprog -p /dev/ttyUSB0 -d 24lc01 -o out.hex

Find eeprom dump with know safe code for exact model of radio. I found my here with code 7273. We must compare this two, so we need make bin from hex dump of out eeprom. I used hex2bin, you need to compile it, just type make no need to install it.

Downloads/Hex2bin-1.0.10/hex2bin out.hex

after this i look in bin file with know safe code. I was grep-ing 7273, hex forms of this witout luck, then I realiaze there is 2737 ....

hexdump Downloads/ABETACC.BIN
0000000 32a3 e1a8 02ad 2220 122d 422c 4220 0ef0
0000010 02ab e12b 0222 2220 f1a7 422c 0000 1e30
0000020 02ab e12b 0222 2220 f1a7 422c 0000 0000
0000030 0a70 37c0 7737 2737 f4b4 0025 c898 00f8
0000040 0000 ffff ffff ffff ffff ffff ffff ffff
0000050 ffff ffff ffff ffff ffff ffff ffff ffff
*
0000080

i looked in my dump converted to binary format:

hexdump out.bin
0000000 2226 42a5 12a3 32ac 0220 e1ac 2229 0e10
0000010 322d 22a6 32a8 f1ae 222c 22a6 f124 1ef0
0000020 02ab e12b 0222 2220 f1a7 422c 0000 0000
0000030 0a70 37b0 7737 6093 25e4 0065 f8c8 0039
0000040 0000                                  
0000042



and theres my code ... 0639:


 Look it's working! :D

Monday, 14 October 2013

Remote control audi radio

audi radio (concert in my case) remote control protocol spec:
5V LOGIC idle state is HIGH (5V)

start bit:
 9ms LOW
4.55ms HIGH

 logic 1:
~600us LOW ~1700us HIGH

logic 0:
~600us LOW ~600us HIGH

stop bit:
~600us LOW

I use arduino duemilanove as logic analyzer, 10kHz sampling. OLS in version 0.9.7 already has arduino as input option, so no need for copying config files to plugins directory, actualy it's not working with this files.

I have MFSW without telephone option, so I read codes just for radio:

UP:       0x41E8D02F
DOWN: 0x41E850AF
LEFT:   0x41E840BF
RIGHT: 0x41E8C03F
VOL+:  0x41E8807F
VOL-:    0x41E800FF

code is always 0x41 0xE8 X 0xFF-X

after this i made simple arduino code to test all combination 0x00-0xFF with LCD sheel.

Emulator code is on github.


Discovered codes:


0x00 Volume down
0x01 mem/cd1
0x02
0x03 mem/cd3
0x04
0x05 mem/cd5
0x06
0x07 search up
0x08
0x09 reg on/off
0x0A
0x0B tp
0x0C
0x0D
0x0E
0x0F
0x10
0x11 AM
0x12
0x13
0x14
0x15 AS-STORE
0x16
0x17 FM
0x18
0x19
0x1A
0x1B
0x1C
0x1D search down
0x1E
0x1F
0x20 AM->AM+AS->FM1->FM2->FM1+AS->FM2->AS/in CD mode “RD”
0x21
0x22 AM->AM+AS->FM1->FM2->FM1+AS->FM2->AS/in CD mode “RD”
0x23
0x24 AM->AM+AS->FM1->FM2->FM1+AS->FM2->AS/in CD mode “RD”
0x25
0x26 AM->AM+AS->FM1->FM2->FM1+AS->FM2->AS/in CD mode “RD”
0x27
0x28
0x29 TP
0x2A
0x2B search up
0x2C
0x2D
0x2E
0x2F
0x30
0x31
0x32
0x33
0x34
0x35
0x36
0x37
0x38
0x39
0x3A
0x3B
0x3C seek up
0x3D
0x3E
0x3F
0x40 LEFT FM1 6-5-4-3-2-1-FM2 6-5-4-3-2-1
0x41
0x42 LEFT FM1 6-5-4-3-2-1-FM2 6-5-4-3-2-1
0x43
0x44 LEFT FM1 6-5-4-3-2-1-FM2 6-5-4-3-2-1
0x45
0x46 LEFT FM1 6-5-4-3-2-1-FM2 6-5-4-3-2-1
0x47
0x48
0x49
0x4A
0x4B
0x4C
0x4D
0x4E
0x4F
0x50 Seek down/FR
0x51
0x52 Seek down/FR
0x53
0x54 Seek down/FR
0x55
0x56 Seek down/FR
0x57
0x58
0x59
0x5A
0x5B
0x5C
0x5D
0x5E
0x5F
0x60 Seek down/FR
0x61
0x62 seek down
0x63
0x64 seek down
0x65
0x66
0x67
0x68
0x69
0x6A
0x6B
0x6C
0x6D
0x6E
0x6F
0x70
0x71
0x72
0x73
0x74
0x75
0x76
0x77
0x78
0x79
0x7A
0x7B
0x7C
0x7D
0x7E
0x7F
0x80 Volume up
0x81 Volume up
0x82 Volume up
0x83 Volume up
0x84 Volume up
0x85 Volume up
0x86 Volume up
0x87
0x88
0x89 -2 Volume down bas/treble down/fade rear/bal left
0x8A
0x8B -4 Volume down bas/treble down/fade rear/bal left
0x8C
0x8D -6 Volume down bas/treble down/fade rear/bal left
0x8E
0x8F -8 Volume down/fade rear/bal left
0x90
0x91
0x92
0x93
0x94
0x95
0x96
0x97 TP
0x98
0x99
0x9A
0x9B SCAN
0x9C
0x9D
0x9E
0x9F
0xA0 MODE
0xA1
0xA2 MODE
0xA3
0xA4 MODE
0xA5
0xA6 MODE
0xA7
0xA8
0xA9
0xAA
0xAB
0xAC
0xAD
0xAE
0xAF
0xB0
0xB1
0xB2
0xB3
0xB4
0xB5
0xB6
0xB7
0xB8
0xB9
0xBA
0xBB
0xBC
0xBD
0xBE
0xBF
0xC0 RIGHT FM1 6-5-4-3-2-1-FM2 6-5-4-3-2-1
0xC1
0xC2 RIGHT FM1 6-5-4-3-2-1-FM2 6-5-4-3-2-1
0xC3
0xC4 RIGHT FM1 6-5-4-3-2-1-FM2 6-5-4-3-2-1
0xC5
0xC6 RIGHT FM1 6-5-4-3-2-1-FM2 6-5-4-3-2-1
0xC7
0xC8
0xC9
0xCA
0xCB
0xCC
0xCD
0xCE
0xCF
0xD0 Seek up/FF
0xD1
0xD2 Seek up/FF
0xD3
0xD4 Seek up/FF
0xD5
0xD6 Seek up/FF
0xD7
0xD8
0xD9
0xDA
0xDB
0xDC
0xDD
0xDE
0xDF
0xE0 seek up
0xE1
0xE2 seek up
0xE3
0xE4 seek up
0xE5
0xE6 seek up
0xE7
0xE8
0xE9
0xEA
0xEB
0xEC
0xED
0xEE
0xEF
0xF0
0xF1
0xF2
0xF3
0xF4
0xF5
0xF6
0xF7
0xF8
0xF9
0xFA
0xFB
0xFC
0xFD
0xFE
0xFF

Friday, 27 September 2013

trunk light fix

as always, cold solder joint .... 



Monday, 23 September 2013

Audi Multifunction steeering wheel

Schematics:











Steering wheel with electronic for MFSW (4B0 419 091 BB)










control unit in steering wheel



connectors from left: power, button inputs, output





Control unit for MFSW (4B0 907 487 E)








Based on MCU pins used, comunication is CAN @ ~17000kHz 

looks like control unit is sending to steering  wheel 0xfe

VOLUME_UP:


RIGHT:


LEFT:



DOWN:


lights on PROBABLY: