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.
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
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.
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.
Spróbowałem sekwencje escape opisaną w dokumentacji: +++ odczekanie na literę a i wysłanie znaku a
i zadziałała:
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.
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.
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.
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
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.
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.
Spróbowałem sekwencje escape opisaną w dokumentacji: +++ odczekanie na literę a i wysłanie znaku a
i zadziałała:
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.
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