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

Arduino i ALDL w Lanos 1.5BG 16V – jak zainicjować odczyt danych po zapłonie?

wojciechratuszynski 08 Sie 2025 16:36 231 1
REKLAMA
  • #1 21629480
    wojciechratuszynski
    Poziom 3  
    Posty: 8
    Ocena: 1
    Witam wszystkich,
    Robię interfejs Arduino <-> ALDL,
    ale napotkałem problem – może ktoś będzie wiedział.

    Lanos rocznik 2000, 1.5 BG 16V.
    ALDL działa na TTL 5 V – czyli nie używam konwerterów napięć.

    Mam połączenie:
    Linia M przechodzi w dwa przewody; oba mają po rezystorze 1 kΩ: jeden do RX (pin 10), drugi do TX (pin 11).
    Linia A wchodzi do GND Arduino (wspólna masa).

    Arduino zasilane przez telefon (USB), żeby nie było zaniku napięcia przy odpalaniu.
    Serial baud 8192 – bo przy takiej prędkości ECU powinno wysyłać dane.

    Rzecz w tym, że po włączeniu zapłonu odbieram dane.
    Przy zgaszeniu zapłonu też coś odbieram (na ten moment nie dekodowałem tych danych).

    Problem jest w tym, że nie czyta danych na żywo.
    I teraz pytanie – czy ALDL w Lanosie wymaga ramki inicjującej?
    Czy też ALDL w Lanosie nadaje dane sam z siebie?
    Czy może po uruchomieniu silnika zanika napięcie i traci połączenie?
    Próbowałem zrobić pull-up za pomocą 10 kΩ do 5 V – bez zmian.

    Próbowałem wysłać { 0xF4, 0x56, 0x01, 0x00 }, ale nie wiem nawet, czy ECU w ogóle odbiera te informacje.

    Póki co jestem na etapie przesyłania jeszcze dwóch innych ramek:
    { 0xF4, 0x56, 0x08, 0x00 }
    { 0xF4, 0x56, 0x10, 0x00 }

    Ale otwieram post, bo raczej to nic nie da. Może ktoś wie, jak zainicjować ALDL po zapłonie?
    AI: Sprawdzałeś może sygnał na linii ALDL oscyloskopem albo analizatorem logicznym – czy widać tam jakąkolwiek odpowiedź ECU po wysłaniu ramki inicjującej?
    Brak danych po wysłaniu ramki.
    AI: Jakiego dokładnie kodu/biblioteki Arduino używasz do komunikacji z ALDL – możesz wrzucić fragment kodu albo opisać, jak masz skonfigurowany port szeregowy (np. 8N1 czy 8E1)?
    8N1
  • REKLAMA
  • #2 21879064
    wojciechratuszynski
    Poziom 3  
    Posty: 8
    Ocena: 1
    W sumie sam sobie poradziłem. Na początku męczyłem Arduino - udało się na 8200. Dane się rozjeżdżały i zrezygnowałem, bo w pewnym momencie przestał współpracować.

    Gdyby ktoś potrzebował prawidłową ramkę to następujące 5 bajtów:
    0xF4 id ECU
    0x57 Długość = liczba następujących bajtów + 85. Dla 2 bajtów Mode + Parametr to 87
    0x01 Kolejny bajt to mode - dane
    0x00 Kolejny to parametr - puste
    0xB4 Checksum poprzednich bajtów liczony 2's complement

    Przesiadłem się na ESP32 - ma szybszy procesor i wstrzelił się w 8192. Działa w miarę stabilnie. Jedyne co potrzeba to konwerter 3.3v - 5v, żeby się nie spalił. Zasilany z zapalniczki przez USB.
    Aktualnie zbieram dane telefonie przez Bluetooth. Dashboard to strona internetowa, która wykorzystuje Web Bluetooth LE. Nie jest to klasyczny program instalowany na komputerze.

    Zarzucam filmik z Dashboardu. Jest to demo z danych zebranych podczas jazdy.
    https://youtu.be/tMeQF3UMoHg?si=gasMaXMTyLetwCf-

    Nie wszystkie bajty są prawidłowo zmapowane - aktualnie szukam zależności na wykresach. Wszystko co związanego z moim ECU to tajemnica...
    Kody błędów w tym ECU są nieznane - nigdzie nie ma informacji - jeśli będzie mi się chciało to będę szukał wypinając różne czujniki po kolei.
REKLAMA