logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Budowa i modyfikacja modułu OBD2 WiFi

witek_34 14 Kwi 2022 13:15 9249 1
  • Cześć

    Przedstawiam częściowy teardown i modyfikację funkcjonalności
    interfejsu OBD2 VGATE z modułem WiFi zamiast BT. Interfejs ten
    kupiłem kilka miesięcy temu i korzystałem w połączeniu z androidowym
    Head Unit w samochodzie wraz z aplikacją hybrid assistant.

    Widok z góry na czarny interfejs OBD2 marki Vgate.

    Standardowo interfejs pracuje jako AP, tworzy otwartą sieć WiFi o SSID VLINK.
    Po podłączeniu urządzenie klienckie dostaje adres IP z zakresu 192.168.0.0/24.
    Interfejs pracuje jako przeźroczysty dwukierunkowy konwerter TCP - serial, nasłuchuje na
    adresie 192.168.0.10 i porcie 35000. Po stronie ELM327 transmisja szeregowa 38400 bps.
    Można się połączyć standardowym telnetem i wydawać polecenia dla ELM327.

    Elm327 przedstawia się jako:
    ATZ
    ELM327 v2.1
    ATI
    OBDII to RS232 Interpreter

    Interfejs pobiera do 50mA podczas pracy modułu WiFi. Można
    w nim wyłączyć automatyczny tryb uśpienia po zadanym czasie bezczynności.
    Po wejściu w tryb uśpienia pobór spada do 1mA, lecz z tego trybu moduł już się
    nie obudzi gdyż ma wyłączony interfejs WiFi. Ponadto mój egzemplarz bardzo mocno
    zaniża napięcie zasilania, będę próbował z tym walczyć bo ELM327 ma możliwość kalibracji programowej.
    Ponieważ tryb AP interfejsu OBD2 jest dla mnie niewygodny postanowiłem zdemontować
    moduł w nadziei że w środku będzie ESP32 lub coś podobnego co pozwoli zainstalować
    alternatywny FW.

    Moduł składa się z 2 delikatnie połączonych na kanapkę PCB:

    - dolnej zawierającej kompletny interfejs OBD2 zrealizowany w oparciu o PIC18f25k80
    - górnej zawierającej moduł HF LPT230 oraz przetwornicę 12V->3V3. Konwersja napięć na linii PIC18f25k80 (zasilanie 5V)
    realizowana jest przez dzielnik napięcia

    Zdjęcie modułu HF LPT230 na płytce PCB z widocznymi ścieżkami i komponentami. Płytki PCB modułu OBD2 z modułem WiFi zdemontowane od obudowy.

    PCB połączone są 5 pinowym złączem o rastrze 2mm, sygnały

    LED ELM_RXD ELM_TXT GND 12V

    Moduł HF LPT230 jest stosunkowo popularnym i eleganckim rozwiązaniem
    dokumentacja jest dostępna na stronie:
    https://fccid.io/2ACSV-HF-LPT230/User-Manual/Users-Manual-3552381.pdf

    Do dalszych eksperymentów odseparowałem sygnały RX i TX pomiędzy
    modułem a PIC18f25k80 i przystąpiłem do kolejnych eksperymentów za pomocą
    interfejsu UART - USB o programu terminala i telnetu. Zweryfikowałem miedzy innymi
    przeźroczystą transmisję danych.

    Obrazek przedstawia dwa okna programu PuTTY z wyświetlonym tekstem testowym.

    Niestety próba wejścia na defaultową stronę konfiguracji nie powiodła
    się, GUI się pojawia, ale żąda hasła i podawane w dokumentacji admin/admin nie działa.

    Ekran logowania do strony konfiguracji urządzenia sieciowego.

    Spróbowałem sekwencje escape opisaną w dokumentacji: +++ odczekanie na literę a i wysłanie znaku a
    i zadziałała:

    Ekran terminala PuTTY z zestawem komend AT i odpowiedzią.

    Korzystając z poleceń AT+ zmieniłem konfigurację modułu na STA, ustawiłem
    własne SSID oraz szyfrowanie:

    AT+WMODE=STA
    +ok

    AT+WSSSID=Prius2
    +ok

    oraz zapisałem konfigurację.

    Po zrestartowaniu interfejs OBD2 podłączył się jako klient, pobierał adres IP i był dostępny w HA w samochodowym
    head unit.

    Zrzut ekranu terminala PuTTY z wyświetlonymi komendami AT.

    W stosunkowo prosty sposób osiągnąłem cel, ale reagowanie modułu na sekwencje escape w gotowym
    produkcie trochę niepokoi. Na szczęście moduł reaguje tylko od strony interfejsu szeregowego. Tutaj przypomina mi się
    z początku Internetu dodawanie w mailach +++ATH0, co rozłączało błędnie skonfigurowane modemy TPSA.

    Fajne? Ranking DIY
    O autorze
    witek_34
    Poziom 13  
    Offline 
    Specjalizuje się w: arm, pic32, pic24
    witek_34 napisał 115 postów o ocenie 18, pomógł 3 razy. Mieszka w mieście Wrocław. Jest z nami od 2008 roku.
  • #2 19982204
    hindoos
    Poziom 36  
    Posty: 3687
    Pomógł: 286
    Ocena: 654
    OBD2, nie ODB2 :) OBD = On-Board Diagnostics.
REKLAMA