BMW Serie 1 E81/E82/E87/E88 Soluzione aggiunta Bluetooth Arduino + KCAN

Discussione in 'BMW Serie 1 E81/E82/E87/E88' iniziata da DaIceMan, 3 Marzo 2019.

Tag (etichette):
  1. DaIceMan

    DaIceMan Kartista

    112
    52
    22 Ottobre 2018
    Milano
    Reputazione:
    24.243.386
    116i Futura E81
    Per vedere il traffico dati, basta che apri il monitor di Arduino tramite la seriale virtuale (usb) quando è tutto collegato dato che nel codice c'è già la parte di debug per osservare il traffico. Inizializzo l'MCP con dei filtri per rimuovere traffico non rilevante perchè è veramente (tanto e non serve mandarlo all'Arduino, lo sovraccaricherebbe e basta). Dovresti quindi vedere i comandi che invi dal volante: se il codice li riconosce te lo dice, se non li riconosce non lo conferma e quindi devi modificare il codice corrispondente al comando che dai in modo da farlo quadrare.
     
  2. Mini98

    Mini98 Aspirante Pilota

    7
    1
    7 Febbraio 2022
    Modena
    Reputazione:
    0
    Mini COOPER R56
    Perfetto non ho ben capito solo la parte dei filtri, come devo impostarli?
     
  3. DaIceMan

    DaIceMan Kartista

    112
    52
    22 Ottobre 2018
    Milano
    Reputazione:
    24.243.386
    116i Futura E81
    E' molto probabile che tu debba apportare qualche modifica - sarà lieve ma i codici comandi tra modelli anche vicini tra loro possono variare. Per quanto riguarda l'allacciarsi al bus K-CAN devi trovare una periferica come la stessa radio o qualcosa che sia sullo stesso bus che abbia la coppia verde/verde-marrone (o giallo in base ai modelli). FYI il volante in se usa un bus diverso "mono direzionale" (non è proprio un bus CAN) per comunicare con una delle centraline che poi "rilancia" il segnale sul bus K-CAN appropriato (almeno sulle serie E81/E87 E89) quindi non è adatto pescare da lì. Posti dove prenderlo in alternativa è dietro il cluster strumenti (anche dietro al tachimentro della Mini per es c'è il connettore con anche bus K-CAN) o pannello radio/clima. Ti allego un documento utile per localizzare i pin e posizione su molti modelli.
     

    Files Allegati:

  4. DaIceMan

    DaIceMan Kartista

    112
    52
    22 Ottobre 2018
    Milano
    Reputazione:
    24.243.386
    116i Futura E81
    I filtri programmati per l'MCP per ora lasciali invariati e vedi se trovi corrispondenza con i comandi. Se mentre provi i comandi non vedi alcuna variazione o comando nel log allora va investigato meglio perchè evidentemente la radice è diversa - ma non dovrebbe essere. Dovrebbe cambiare solo un codice esadecimale dopo l'ID dispositivo quindi prima vedi cosa succede quando è tutto collegato. Dovresti vedere un traffico regolare e vedere i tuoi comandi ripetuti N volte quando premi.
     
  5. Mini98

    Mini98 Aspirante Pilota

    7
    1
    7 Febbraio 2022
    Modena
    Reputazione:
    0
    Mini COOPER R56
    Ti ringrazio molto, appena ho un pò di tempo mi metto sotto.
     
  6. ndk

    ndk Presidente Onorario BMW

    8.100
    3.543
    19 Gennaio 2016
    Italia
    Reputazione:
    715.289.830
    e46
    I comandi al volante penso comunichino via LIN
    Comunque la CAN dovrebbe arrivare se non alla radio (perchè in effetti non c'è in diagnosi), sicuramente al modulo del clima automatico che è nel DIN inferiore.
     
  7. DaIceMan

    DaIceMan Kartista

    112
    52
    22 Ottobre 2018
    Milano
    Reputazione:
    24.243.386
    116i Futura E81
    Esatto il volante usa il Lin-bus (single line bus). Si, dietro al clima dovresti trovare il bus K-CAN nel multi connettore. Infatti è anche possibile iniettare stringe sui display LCD a piacimento customizzate (per es la scritta "AUX" sulla radio è noiosa e si può scrivere "BT" e stato dei tasti premuti), ma per tenere al minimo il traffico e codice non l'ho implementato.
     
  8. ndk

    ndk Presidente Onorario BMW

    8.100
    3.543
    19 Gennaio 2016
    Italia
    Reputazione:
    715.289.830
    e46
    Sono andato a vedere la radio in cantina e come ricordavo ha l'ingresso AUX (E' una business CD presa su ebay anni fa.. la mia originale è una business a cassette :) )

    Hai visto i BT che ho postato poco più su? A differenza di quello che hai tu, non hanno (non tutti) jack o usb.. ma a quanto ho capito non sono necessari. Dovrei preò poi prendere un microfono a parte
     
  9. DaIceMan

    DaIceMan Kartista

    112
    52
    22 Ottobre 2018
    Milano
    Reputazione:
    24.243.386
    116i Futura E81
    Quei moduli non sono adatti perchè mancano dei tasti comando separati che servono appunto per comandare il telefono remotamente - non tutti i moduli li hanno, quelli comuni sono solo moduli che ricevono lo stream e lo inviano su uscita analogico, ma non basta per lo scopo. Il modulo io l'ho preso su aliexpress qui:
    https://it.aliexpress.com/item/32809733834.html?gatewayAdapt=glo2ita

    Come vedi ha i tasti che comandano la periferica connessa (telefono). Senza questi non è possibile inoltrare i comandi ricevuti dal volante via BT. Inoltre il modulo accetta scheda microSD o chiavetta USB per riprodurre file mp3. Ha anche un ingresso analogico AUX per segnali analogici esterni.
     
  10. ndk

    ndk Presidente Onorario BMW

    8.100
    3.543
    19 Gennaio 2016
    Italia
    Reputazione:
    715.289.830
    e46
    Hai ragione.
    Come questa: https://smile.amazon.de/-/en/Blueto...4&sprefix=bluetooth+board+play,aps,92&sr=8-13
     
  11. DaIceMan

    DaIceMan Kartista

    112
    52
    22 Ottobre 2018
    Milano
    Reputazione:
    24.243.386
    116i Futura E81
    Si quello va bene: controlla solo quali tasti fanno cosa in modo da saldare correttamente le uscite dell'Arduino. Verifica anche la parte corretta del tasto (c'è una parte che va a massa e l'altra verso l'input - è quella che va saldata).
     
  12. ndk

    ndk Presidente Onorario BMW

    8.100
    3.543
    19 Gennaio 2016
    Italia
    Reputazione:
    715.289.830
    e46
    A casa ho un ELEGOO UNO R3.. dovrebbe andare bene al posto dell'arduino

    [​IMG]
     
  13. DaIceMan

    DaIceMan Kartista

    112
    52
    22 Ottobre 2018
    Milano
    Reputazione:
    24.243.386
    116i Futura E81
    Certo va benissimo, l'importante è che abbia le stesse uscite e stesse mappature porte - ma i cloni sono ovviamente identici (basati su Atmel 328p).
     
  14. ndk

    ndk Presidente Onorario BMW

    8.100
    3.543
    19 Gennaio 2016
    Italia
    Reputazione:
    715.289.830
    e46
    Si, al massimo cambio il codice.. ho già giocato con arduino per fare una piccola stazione meteo che riceve tramite API da un sito meteo

    Mi manca solo il microfono a questo punto
     
  15. DaIceMan

    DaIceMan Kartista

    112
    52
    22 Ottobre 2018
    Milano
    Reputazione:
    24.243.386
    116i Futura E81
    Nel kit del ricevitore solitamente di danno un microfono a condensatore, prova a verificare. Al max puoi recuperarne uno da un vecchio microfono soundblaster o da auricolare cellulare.
     
  16. ndk

    ndk Presidente Onorario BMW

    8.100
    3.543
    19 Gennaio 2016
    Italia
    Reputazione:
    715.289.830
    e46
    si.. oppure tengo quello che ho della Eonon (autoradio android che ho al momento montata), che è già in posizione.
     
  17. ndk

    ndk Presidente Onorario BMW

    8.100
    3.543
    19 Gennaio 2016
    Italia
    Reputazione:
    715.289.830
    e46
    Bluetooth arrivato

    72E125D9-8354-49BD-AC53-D1CF68D88191.jpeg
     
  18. ndk

    ndk Presidente Onorario BMW

    8.100
    3.543
    19 Gennaio 2016
    Italia
    Reputazione:
    715.289.830
    e46
    @DalceMan un paio di domande.

    Giusto per fare chiarezza e capire bene il codice:

    Codice:
    #define MODE_PIN 9    // Speak button
    #define PLAY_PIN 8    // Phone button
    #define NEXT_PIN 7    // Up button
    #define PREV_PIN 6    // Down button
    #define EQ_PIN 5      // To Be Defined
    #define CAN0_INT 2    // Set MCP INT output to pin 2
    MCP_CAN CAN0(10);     // Set CS to pin 10
    
      pinMode(MODE_PIN, INPUT);    // set pin mode as floating no pu
      pinMode(PLAY_PIN, INPUT);
      pinMode(NEXT_PIN, INPUT);
      pinMode(PREV_PIN, INPUT);
      pinMode(EQ_PIN, INPUT);
      pinMode(CAN0_INT, INPUT);    // set pin 2 for /INT input
    

    Qui definisci tutti i PIN come input

    Ma il 6, 7, 8, 9, non sono degli output?
    Nella mia testa, in input ricevo il messaggio CAN e in base a quello mando in output il segnale relativo (esempio, ricevo CAN play, mando in output sulla scheda BT dal PIN 8)
     
  19. ndk

    ndk Presidente Onorario BMW

    8.100
    3.543
    19 Gennaio 2016
    Italia
    Reputazione:
    715.289.830
    e46
    Volevo citarti ma non sono riuscito
     

Condividi questa Pagina