Elektroda.pl
Elektroda.pl
X
Sklep HeluKabel
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

MeganeBT - BT audio z emulacją zmieniarki i obsługą wyświetlacza (CAN, CDC)

TMank 03 Sty 2018 23:01 7860 23
  • MeganeBT - BT audio z emulacją zmieniarki i obsługą wyświetlacza (CAN, CDC)

    Cześć,

    chciałbym Wam pokazać ostatnio wykonany projekt. Posiadam Renault Megane II ph. II z 2006 roku z fabrycznym radiem Renault UpdateList. W dzisiejszych czasach standardem jest, że muzyki w samochodzie słuchamy nie tylko z radia FM czy z płyt CD, ale także z telefonu. Radio w wersji UpdateList wyposażone jest w wejście liniowe AUX, dlatego dotychczas korzystałem z różnego rodzaju chińskich dongli bluetooth do słuchania muzyki. Brakowało mi natomiast możliwości sterowania odtwarzaczem w telefonie (np. Spotify) z panelu radia czy kierownicy wielofunkcyjnej, jak ma to miejsce w nowszych autach. Dlatego powstał MeganeBT. Na powyższym zdjęciu można zobaczyć wykonany przeze mnie moduł wraz z podłączoną przelotową wiązką radia, poniżej film na YT przedstawiający działanie urządzenia:

    Film:


    Link


    Opis:

    Urządzenie wykorzystuje interfejs zmieniarki (CDC) w radiu UpdateList, dzięki czemu można sterować telefonem/tabletem bezpośrednio z przycisków na panelu przednim radia i z pilota przy kierownicy. Generalnie interfejs CDC to UART z poziomami logicznymi 0V i 12V, o polaryzacji odwrotnej niż standardowa. Wykorzystany moduł BT to RN52, moduł ten ma możliwość odczytania z urządzenia źródłowego informacji o utworze. Urządzenie podpięte jest do szyny CAN pomiędzy radiem a wyświetlaczem i w miarę możliwości podmienia tekst na tytuł oraz wykonawcę utworu. Implementacja CAN pomiędzy radiem a wyświetlaczem jest w miarę standardowa, prędkość 500 kbps. Audio przesyłane jest interfejsem S/PDIF. Konieczne było rozpracowanie zarówno protokołu CDC, jak i protokołu pomiędzy radiem i wyświetlaczem. Musiałem wykonać sniffery do obu protokołów i przeanalizować komunikację pomiędzy radiem a wyświetlaczem, a także między radiem a zmieniarką. W Internecie jest trochę informacji na temat protokołu CDC Renault, natomiast CAN wyświetlacza jest prawie w ogóle nieopisany. Trochę wieczorów to zajęło, ale działa. Całość kontroluje mikrokontroler STM32F042K6T6.

    Schematy i program uC:

    Schemat układu:
    https://www.github.com/Tomasz-Mankowski/MeganeBT/blob/master/PCBSch/MeganeBT_PCBSch.pdf Same schematy zawierają parę dodatkowych elementów, których ostatecznie nie przylutowałem. Np. wzmacniacz audio, który dołożyłem w razie problemów z S/PDIF i konieczności powrotu do pomysłu z wejściem liniowym. Czy wejście mikrofonu - to jest kwestia otwarta, można dołożyć funkcjonalność zestawu głośnomówiącego, ale to może na kiedy indziej. :)





    Źródła programu i dodatkowe informacje zamieściłem na git-hubie:
    https://www.github.com/Tomasz-Mankowski/MeganeBT

    Schemat podłączenia MeganeBT:
    MeganeBT - BT audio z emulacją zmieniarki i obsługą wyświetlacza (CAN, CDC)

    Fotorelacja

    Zaczęło się oczywiście od dużo mniej skomplikowanego projektu: audio miało być z AUX miał być najprostszy chiński moduł BT, w ramach rozrywki napis "AUX" miał zostać podmieniony na "Bluetooth". Ponieważ pilot przy kierownicy podpięty jest do CAN wyświetlacza chciałem przechwytywać wciskanie przycisków i tak sterować modułem BT. Na stole skompletowałem kopię instalacji radia:
    MeganeBT - BT audio z emulacją zmieniarki i obsługą wyświetlacza (CAN, CDC)MeganeBT - BT audio z emulacją zmieniarki i obsługą wyświetlacza (CAN, CDC)

    Zaprojektowałem pierwszą wersję opartą o chiński moduł BT XS3868, który dodatkowo wyposażony był w moduł transceivera CAN. Uruchomienie poszło gładko, natomiast były gigantyczne problemy z samymi modułami BT. Najmniejsze wyładowanie elektrostatyczne (dotknięcie palcem czegokolwiek) powodowało natychmiastowo uszkodzenie modułu BT. Spaliłem tak chyba 4 sztuki.

    EDIT: Błąd nie wynikał prawdopodobnie z elektrostatyki, ale ze niepoprawnego obciążenia wyjścia audio, słaba dokumentacja modułu wyprowadziła mnie na błędne tory. Więcej informacji w postach użytkownika -rafal- poniżej.

    MeganeBT - BT audio z emulacją zmieniarki i obsługą wyświetlacza (CAN, CDC)

    Dlatego zdecydowałem się wykorzystać inny moduł BT, wyższej jakości. Wybór padł na RN52, w tym miejscu projekt się skomplikował. RN52 oferuje wyjście S/PDIF oraz możliwość odczytywania z telefonu informacji o utworze. Dlatego zdecydowałem po pierwsze, że zamiast wejścia liniowego w radiu wykorzystam cyfrowe wejście S/PDIF, a do tego konieczna była emulacja zmieniarki. Dodatkowa przewaga nad wcześniejszym rozwiązaniem to możliwość przechwytywania akcji przycisków nie tylko z pilota, ale także panelu przedniego radia. Po drugie podmiana nazwy źródła na wyświetlaczu rozrosła się do wyświetlania informacji o utworze. Powstała druga wersja modułu.

    MeganeBT - BT audio z emulacją zmieniarki i obsługą wyświetlacza (CAN, CDC)MeganeBT - BT audio z emulacją zmieniarki i obsługą wyświetlacza (CAN, CDC)

    Bardzo pomocna okazała się strona dot. emulacji CDC, głównie program w pythonie: tlcdcemu.sourceforge.net/ Niestety program był chyba przygotowany dla TunerList, dlatego do stanowiska testowego dołączyła oryginalna zmieniarka za 35zł. Teraz miałem możliwość podsłuchania i rozpracowania protokołu CDC. Dodatkowo konieczne było podpięcie głośnika, w przypadku AUX wystarczyły słuchawki do sprawdzania muzyki, teraz musiałem korzystać z dekodera S/PDIF w radiu.

    MeganeBT - BT audio z emulacją zmieniarki i obsługą wyświetlacza (CAN, CDC)

    Od tego miejsca poszło już w miarę gładko. Na dzień dzisiejszy moduł trafił na testy do samochodu. Oczywiście nie obyło się bez problemów. Okazało się, że protokół CDC w radiu, które mam w aucie minimalnie różnił się od tego na biurku, MeganeBT musiał wrócić jeszcze na 2h na stół. Nadal jest trochę bugów w oprogramowaniu, głownie w temacie wyświetlania informacji o utworze. Czasami ta część programu się wykrzacza i muszę to jeszcze dopracować. Poza tym samo odtwarzanie i kontrola odtwarzania działa całkiem sprawnie. Po podpięciu do radia wygląda to następująco:

    MeganeBT - BT audio z emulacją zmieniarki i obsługą wyświetlacza (CAN, CDC)

    Jeżeli macie jakieś pytania lub uwagi, śmiało.
    Tomek


    Fajne!
  • Sklep HeluKabel
  • #2 04 Sty 2018 08:19
    ostry_18
    Poziom 24  

    Cześć, czy w razie "wykrzaczenia" musisz zrobić reset systemu /zaplon/? Czy wystarczy restart radia?

  • Sklep HeluKabel
  • #4 04 Sty 2018 11:19
    RaTaJ_87
    Poziom 12  

    Jaki koszt wyniósł cały projekt i ile roboczogodzin pochłonęło ?

  • #5 04 Sty 2018 11:31
    TMank
    Poziom 3  

    RaTaJ_87 napisał:
    Jaki koszt wyniósł cały projekt i ile roboczogodzin pochłonęło ?


    Ciężko powiedzieć, nie zliczałem tego na bieżąco, a cały projekt rozciągnął się na prawie rok, gdzie większość czasu przeleżał na biurku bez dotykania.
    - Przygotowanie stanowiska do testów (radio, wyświetlacz, pilot, wiązka, zmieniarka) ~250 zł
    - Pierwsza wersja elektroniki (płytki w Satlandzie, moduły z chin, elementy) ~200 zł
    - Moduł RN52 ~60zł
    - Druga wersja elektroniki (płytki z AllPCB.com - promocja 5$ - POLECAM, tutaj większość elementów miałem podwójnych z poprzedniej płytki) ~100zł
    - Ogólnie pojęte pozostałe koszta (złączki miniISO, itp.) ~100zł

    Czyli razem jakieś 700zł w górę :). Zrobienie pojedynczej sztuki, nie wliczając błędów, prób, stanowiska testowego byłoby dużo tańsze. Koszt może wydawać się duży, ale wiadomo, nie o to w tym chodzi :).

    Jeżeli chodzi o roboczogodziny to jeszcze trudniej policzyć, strzelałbym w jakieś 150 roboczogodzin, wliczając wszystko, rozrzuconych oczywiście na pracę po parę godzin od czasu do czasu.

  • #6 05 Sty 2018 13:30
    -rafal-
    Poziom 15  

    TMank napisał:
    - Moduł RN52 ~60zł


    Powiedz mi gdzie kupiłeś RN52 za ~60zl, chętnie kupię :)

    I jak to jest z tymi CANami są dwa? Mozesz to rozwinąć?

    Rafał

    PS. Tak z ciekawości co z tymi XS3868 jakaś wadliwa seria? Sam mam z 8szt. popełniłem kilka podobnych zmieniarek z nimi i nie było żadnych problemów tego typu. Jedno co że ma wyjście różnicowe i trzeba wzmacniacz.

  • #7 05 Sty 2018 14:01
    TMank
    Poziom 3  

    -rafal- napisał:

    Powiedz mi gdzie kupiłeś RN52 za ~60zl, chętnie kupię :)


    Na TME, widzę że teraz jest dużo droższe, kupowałem ponad pół roku temu. 60zł to pewnie cena netto była :).

    -rafal- napisał:

    I jak to jest z tymi CANami są dwa? Mozesz to rozwinąć?

    Rafał


    Jest jeden, podpięty jako kolejne urządzenie do linii CAN. Gdybym przerwał linię musiałbym zajmować się przekazywaniem całej komunikacji pomiędzy wyświetlaczem, a radiem. Ramki synchronizujące, od pilota itp. Rozważałem takie rozwiązanie ale uC z dwoma CAN to są zawsze modele z "wysokiej półki" przez co drogie i przewymiarowane na to rozwiązane. W konfiguracji z jednym CAN wyszukuję konkretnej ramki w której idzie napis "CD 1 TR 01" (taki napis pojawia się w czasie emulacji zmieniarki), czekam na ramkę synchronizującą wyświetlacz i zaraz za nią wysyłam ramkę z moim napisem. Potem nasłuchuję już tylko ramek synchronizujących i po nich wysyłam update moich napisów. Dopóki radio nie musi zmienić napisu na wyświetlaczu nie wysyła ramek z updatem treści wyświetlacza. Jeżeli odbiorę od radia ramkę nakazującą wyświetlaczowi zmienię napisu na inny niż "CD 1 TR 01" znaczy że wyświetlacz trzeba oddać pod kontrolę radia. "CD 1 TR 01" ponownie oznacza że wracamy do wysyłania nazwy utworu.

    -rafal- napisał:

    PS. Tak z ciekawości co z tymi XS3868 jakaś wadliwa seria? Sam mam z 8szt. popełniłem kilka podobnych zmieniarek z nimi i nie było żadnych problemów tego typu. Jedno co że ma wyjście różnicowe i trzeba wzmacniacz.


    Możliwe, zamówione na AliExpress, a wiadomo jak to z chińczykami bywa. Zrezygnowałem kiedy w płytce bazowej zaczęły odpadać pady. Moje XS3868 nie miały wyjścia różnicowego, wyraźnie AGND, ARIGHT i ALEFT. W RN52 jest wyjście różnicowe, w projekcie jest wzmacniacz "na wszelki wypadek", gdyby S/PDIF nie wypaliło.

  • #8 05 Sty 2018 14:16
    Mad Bekon
    Poziom 23  

    Pięknie!
    Tylko jedno pytanie mnie nachodzi, czy przy odpalaniu auta, radio sie nie resetuje?
    A jeśli tak, to ile trwa parowanie z BT? Sam mam w samochodzie audio po Bluetooth, ale póki co podpięte pod zapłon i parowanie bywa dość upierdoliwe, do tego stopnie, że myśle o tym żeby czasówke na moduł bluetooth założyć.

  • #9 05 Sty 2018 14:25
    TMank
    Poziom 3  

    Mad Bekon napisał:
    Pięknie!
    Tylko jedno pytanie mnie nachodzi, czy przy odpalaniu auta, radio sie nie resetuje?
    A jeśli tak, to ile trwa parowanie z BT? Sam mam w samochodzie audio po Bluetooth, ale póki co podpięte pod zapłon i parowanie bywa dość upierdoliwe, do tego stopnie, że myśle o tym żeby czasówke na moduł bluetooth założyć.


    Próbuję sobie przypomnieć jak ty wygląda. Moja Meganka ma odpalanie z "karty". Przy normalnym zapłonie radio włącza się dopiero po odpaleniu auta i nie wyłącza się aż do otwarcia drzwi po zgaszeniu auta. W mojej Renówce jest tak że jeżeli radio jest włączone przed zapłonem to nie wyłącza się nawet na czas zapłonu, więc generalnie problemu który opisujesz nie ma.

    Moduł RN52 ustawiłem na automatyczne łączenie z ostatnio połączonym urządzeniem. Czas połączenia jest różny, nie wiem od czego to zależy. Czasami 5 sekund, czasami 20 sekund.

  • #10 05 Sty 2018 14:25
    -rafal-
    Poziom 15  

    Dzięki za wytłumaczenie!

    Mad Bekon napisał:
    Możliwe, zamówione na AliExpress, a wiadomo jak to z chińczykami bywa. Zrezygnowałem kiedy w płytce bazowej zaczęły odpadać pady. Moje XS3868 nie miały wyjścia różnicowego, wyraźnie AGND, ARIGHT i ALEFT. W RN52 jest wyjście różnicowe, w projekcie jest wzmacniacz "na wszelki wypadek", gdyby S/PDIF nie wypaliło.


    Co do tego czy XS3868 ma wyjście różnicowe to - napewno ma :) AGND jest utrzymywane na poziomie ok 1V i tak musi pozostać bo inaczej są problemy i uszkodzenia :) tak samo napięcie zasilania 3.3V to za mało bo nakłada się ton 800Hz. Ja u siebie rozwiązałem to tak ale to już bardziej dla potomnych :)

    MeganeBT - BT audio z emulacją zmieniarki i obsługą wyświetlacza (CAN, CDC)

  • #11 05 Sty 2018 14:40
    TMank
    Poziom 3  

    -rafal- napisał:
    Dzięki za wytłumaczenie!

    Mad Bekon napisał:
    Możliwe, zamówione na AliExpress, a wiadomo jak to z chińczykami bywa. Zrezygnowałem kiedy w płytce bazowej zaczęły odpadać pady. Moje XS3868 nie miały wyjścia różnicowego, wyraźnie AGND, ARIGHT i ALEFT. W RN52 jest wyjście różnicowe, w projekcie jest wzmacniacz "na wszelki wypadek", gdyby S/PDIF nie wypaliło.


    Co do tego czy XS3868 ma wyjście różnicowe to - napewno ma :) AGND jest utrzymywane na poziomie ok 1V i tak musi pozostać bo inaczej są problemy i uszkodzenia :) tak samo napięcie zasilania 3.3V to za mało bo nakłada się ton 800Hz. Ja u siebie rozwiązałem to tak ale to już bardziej dla potomnych :)

    MeganeBT - BT audio z emulacją zmieniarki i obsługą wyświetlacza (CAN, CDC)


    Hmmm, najwyraźniej masz rację. Musiałem trafić na niezbyt precyzyjny opis tego modułu. Ale dzięki temu błędowi MeganeBT ma więcej funkcji ;). Dzieki za schemat, na pewno się komuś przyda.

  • #12 05 Sty 2018 14:46
    -rafal-
    Poziom 15  

    No ogólnie z tymi XS to o dobry opis naprawde ciężko co do komend to najlepiej pdf do OVC3860 chociaż i tu jest ciekawie tzn podstawowe do przeiwjania itp działają ale już np. do zmiany nazwy nie i chcąc zmienić nazwe trzeba sobie EEPROM reprogramować...

    Troche mnie cena tego RN odstrasza w porównaniu do XS ale tak jak mówisz coś za coś. Najpierw może spróbóję ogarnąć tego CANa w moim samochodzie (A4B6) i jak uda mi się podmieniać napisy to może się i ja skuszę :)

  • #13 07 Sty 2018 01:21
    electro
    Poziom 17  

    TMank napisał:
    Rozważałem takie rozwiązanie ale uC z dwoma CAN to są zawsze modele z "wysokiej półki" przez co drogie i przewymiarowane na to rozwiązane. W konfiguracji z jednym CAN wyszukuję konkretnej ramki


    Można tez użyć dodatkowy kontroler np. MCP2515, przepuszczając cały ruch masz nad nim pełną kontrolę. Podziwiam cię ze włożyłeś w to trochę pracy i udostępniasz wyniki publicznie. To materiał na fajny produkt :)

  • #14 07 Sty 2018 13:47
    TMank
    Poziom 3  

    electro napisał:
    To materiał na fajny produkt :)


    Niby tak, ale może 6 lat temu. Teraz Megane II zaczyna nas już powoli opuszczać ;). Na forum megane.com.pl zainteresowanie moim postem dot. MeganeBT jest znikome, o ile nie żadne.

    Od początku zakładałem, że nie będę chciał tego sprzedawać i wszystko udostępnię. Na pewno nie gotowe urządzenia, za dużo zachodu. Natomiast jeżeli ktoś ma ochotę i wystarczająco samozaparcia i narzędzi, mogę odsprzedać gołe PCB, których mam w nadmiarze :).

  • #15 13 Sty 2018 06:22
    Jogesh
    Poziom 28  

    Zainteresował mnie wyświetlacz. Czy kolega mógłby napisać coś więcej o zastosowanym wyświetlaczu LCD? Potrzebuję podobny do swojego projektu.

  • #16 13 Sty 2018 11:15
    TMank
    Poziom 3  

    Jogesh napisał:
    Zainteresował mnie wyświetlacz. Czy kolega mógłby napisać coś więcej o zastosowanym wyświetlaczu LCD? Potrzebuję podobny do swojego projektu.



    To jest dedykowany wyświetlacz do radia UpdateList. Generalnie są dwie wersje AFFA3 (taki jak powyżej) oraz AFFA2 - segmentowe LCD. Oba można stosować zamiennie. Były jeszcze wersje z navi i kolorowy z navi, ale nie interesowałem się nimi. Generalnie nie ma dostępu do wyświetlacza per pixel. Można jedynie korzystać z góry zaprogramowanych trybów tekstowych. Jest tryb standardowy, jaki widać na filmie powyżej, tryb menu radia oraz tryb mp3 - tutaj kolega milyges zrobił parę fotek, na których wszystko widać: https://megane.com.pl/topic/47797-wy%C5%9Bwietlacz-radia-update-list-protok%C3%B3%C5%82/

    Komunikacja po szynie CAN, 500 kbps. Radio co chwilę monitoruje obecność wyświetlacza wysyłając ramkę kontrolną, na którą wyświetlacz odpowiada. Do każdego trybu jest inaczej wyglądająca ramka, to tak w skrócie. Dodatkowo do wyświetlacza podpięty jest pilot sterowania radiem przy kierownicy. Wciskając coś na pilocie wyświetlacz wysyła ramkę do radia po CAN.

  • #17 31 Sty 2018 14:36
    rumpelek
    Poziom 9  

    Jezzzuu... Ty mi z nieba spadłeś człowieku... :) to byłby najlepszy prezent na urodzinki dla mojej żony do jej Scenica II PH I ... no właśnie... przed liftem radio było Tuner List i nie miało wejścia AUX .. Ale miało także możliwość podłączenia zmieniarki po CAN itp... więc chyba jest szansa by to uruchomić ? :)

  • #18 31 Sty 2018 16:12
    TMank
    Poziom 3  

    rumpelek napisał:
    Jezzzuu... Ty mi z nieba spadłeś człowieku... :) to byłby najlepszy prezent na urodzinki dla mojej żony do jej Scenica II PH I ... no właśnie... przed liftem radio było Tuner List i nie miało wejścia AUX .. Ale miało także możliwość podłączenia zmieniarki po CAN itp... więc chyba jest szansa by to uruchomić ? :)


    Jest, ale z tego co wiem Tuner List ma trochę inny protokół komunikacji CDC (ze zmieniarką). CDC to nie CAN, tylko UART. Po CAN komunikuje się radio z wyświetlaczem. Projekt komunikacji z Tuner List jest opisany na tej stronie: http://tlcdcemu.sourceforge.net/ . Generalnie płytka, którą zrobiłem powinna pasować bez zmian, konieczne będzie jednak zmodyfikowanie kodu. Dodatkowo Scenic ma inny wyświetlacz, nie wiem czy radio do Scenica mają ten sam protokół komunikacji po CAN, ale raczej tak.

    Dodano po 1 [godziny] 9 [minuty]:

    Jako szybki prezent pewnie lepsza by był taki gotowy emulator. Dostępne na allegro pod hasłem: "emulator zmieniarki renault".

  • #19 31 Sty 2018 16:50
    jaku_z_jelcza
    Poziom 11  

    Można u ciebie takie cacko zamówić? :-) auto laguna ii po lifcie, wyświetlacz taki jak u ciebie, czyta mp3

  • #21 01 Lut 2018 18:11
    -rafal-
    Poziom 15  

    TMank napisał:
    CDC to nie CAN, tylko UART
    Nie prawda. CDC to SPI...

  • #22 01 Lut 2018 18:16
    TMank
    Poziom 3  

    -rafal- napisał:
    TMank napisał:
    CDC to nie CAN, tylko UART
    Nie prawda. CDC to SPI...


    Spoko luz...natomiast ja tu linii zegarowej nie widzę. Widzę natomiast Rx i Tx, w sumie to zrobiłem zrobiłem obsługę CDC, tak jak opisałem powyżej...i zdecydowanie jest to UART. Ale może w innym markach jest to SPI...

  • #23 03 Lut 2018 11:37
    -rafal-
    Poziom 15  

    Jeśli mówimy od CDC (CD-Changer) to jest to standard Panasonica i na pewno jest to SPI.

  • #24 03 Lut 2018 11:49
    TMank
    Poziom 3  

    -rafal- napisał:
    Jeśli mówimy od CDC (CD-Changer) to jest to standard Panasonica i na pewno jest to SPI.


    Dobrze, tak oto sprawiedliwości stało się zadość ;). Co nie zmienia faktu że w UpdateList i TunerList od Renault zmieniarka komunikuje się z radiem po UART :), a to chyba kolegę powyżej interesowało w pierwszej kolejności.