Just den du länkat (tänkte på iDrive-kontrollen) sitter i senaste modellerna (bla i min X3 F25) och dessa har 4 pinnar vilket jag gissar på matning samt CAN-H och CAN-L.
I bästa av världar så är det nog bara att koppla upp den med matning och sedan läsa av CAN för att då få ut identifierarna och data för varje knapp etc.
Alternativt så behövs enheten väckas upp med ett CAN meddelande, om jag då skulle gissa så är det i sådana fall bara att skicka ut ett tomt meddelande med ID 0x0.
Sista och tråkigaste scenariot är om den (som hos vissa andra fordonstillverkare) att den först initieras med ett meddelande ID på 250 kbit/s sedan när den svarat så går systemet över
till 500 kbit/s och börjar därefter att skicka data.
Bästa är helt enkelt att sniffa CAN-nätverket på en redan befintlig bil med exempelvis en PEAK-CAN dongle och deras enkla (men ändå kraftfulla) PCAN-View. (€180 för en dongle.
http://www.peak-system.com/PCAN-USB.199.0.html). Då ser du hur transmissionsmeddelandena ser ut och hur man ska initiera enheten etc.
Samtliga knapptryckningar från iDrivepanelen går att läsa ut genom OBD2 gränssnittet, men då måste förstås bilen ha den installerad, vettetusan om det går att bara koppla in den om du inte har någon CIC enhet. Notera att jag skriver "går att läsa ut" problemet är att dessa PID's inte är allmänt tillgängliga utan hålls hemliga av BMW och ges bara ut till dom som köper informationen, priset ligger på €23.500 och sedan tillkommer det en årliga prenumeration på €1.800, plus att man inte får senaste MY tillgänglig. Dessutom skriver man på ett avtal att man inte får sälja vidare informationen, göra den tillgänglig osv vilket gör att ingen av de High-end OBD2 verktyg som finns på nätet går att använda sig av för att exempelvis exportera en lista med PID.
Men det finns ju inget som hindrar dig att sniffa bussen och sedan självmant sitta och trycka på knappar och lista ut vilka meddelanden som hör till vad. Att ställa en fråga till en BMW modul gör du på följande sätt:
1. DU: Hallå styrenhet F1:50 finns du hos oss? (0x6F1: [72]-[03]-[22]-[
F1]-[
50]-[00]-[00]-[00])
2. F1:50: Japp! Jag finns här! (0x672: [F1]-[06]-[62]-[F1]-[50]-[0F]-[10]-[D0])
3. DU: Kan du ge mig sensordata för XX-funktion? (0x6F1: [72]-[03]-[22]-[
XX]-[
XX]-[00]-[00]-[00])
4. F1:50: Ville du ha status för XX-funktion? (0x672: [F1]-[10]-[08]-[62]-[
XX]-[
XX]-[0F]-[00])
5. DU: Japp det är korrekt! (0x6F1: [72]-[30]-[00]-[00]-[00]-[00]-[00]-[00])
6. F1:50: Här är datan du efterfrågade: Byte3, bit2 = 1. (0x672: [F1]-[21]-[B0]-[
1B]-[BC]-[FF]-[FF]-[FF])
Exemplet ovan ställs en fråga till footwell modulen som sitter i det flesta moderna BMW modellerna.
Just PEAK-CAN dongeln så finns det drivers för Linux till den och en hel del information om du vill skriva egen mjukvara men den. Har själv skrivit windowsmjukvara till en av våra produkter med hjälp av den dongeln för felsökning och justering. Mycket enkel och smidig.