Marcin648 / e90-dashboard-ets2

GNU General Public License v3.0
17 stars 10 forks source link

zegary od e60 #5

Open Dreed420 opened 1 year ago

Dreed420 commented 1 year ago

Witajcie, zaprogramowalem arduino nano waszym softem lecz zmienilem biblioteke MCP2515 na aktualniejsza poniewaz była tam obsługa oscylatora 8mhz - po dodaniu pluginu w simhub - mam taki oto komunikat

[2022-08-05 01:31:14,363] INFO - Game successfully loaded [2022-08-05 01:31:14,409] WARN - System.MissingMethodException: Method not found: 'Int32 GameReaderCommon.StatusDataBase.get_EngineIgnitionOn()'. at E90DashboardSimhub.E90Dashboard.DataUpdate(PluginManager pluginManager, GameData& data) at SimHub.Plugins.PluginManager.manager_DataUpdated(GameData data, IGameManager manager) [2022-08-05 01:31:15,984] WARN - System.MissingMethodException: Method not found: 'Int32 GameReaderCommon.StatusDataBase.get_EngineIgnitionOn()'. at E90DashboardSimhub.E90Dashboard.DataUpdate(PluginManager pluginManager, GameData& data) at SimHub.Plugins.PluginManager.manager_DataUpdated(GameData data, IGameManager manager)

Moje pytanie czy zegary od e60 są w ogole wspierane? Z gory dziekuje za odpowiedz i pozdrawiam

Marcin648 commented 1 year ago

Cześć! Nie jestem w stanie stwierdzić czy zegary od e60 zadziałają. Bazowałem na kodach CAN z tej strony http://www.loopybunny.co.uk/CarPC/k_can.html jeśli w e60 są takie same, to powinno działać. Niestety nawet w niektórych wariantach zegarów z tytułowego e90 występują pewne problemy. Błąd, który masz sugeruje mi, że gra, którą próbujesz uruchomić, nie obsługuje informacji o włączonym silniku. Nie jestem tego pewien, może też w nowej wersji SimHUB'a coś się zmieniło. Plugin rzeczywiście nie uruchomi zegarow jeśli nie dostanie tego sygnału E90Dashboard.cs#L19

Też jestem świadomy, że aktualnie używana biblioteka CAN ma pewne wady, chciałem ją wymienić na https://github.com/autowp/arduino-mcp2515 Jeśli masz inną propozycję, pisz śmiało. :)

vejinnovem commented 1 year ago

Dreed420 będziesz miał zamiar podzielić się swoim szkicem? Mam anglika z e90. Celuję w SimHuba, a nie mogę nawet zmusić licznika do ruszenia. Wciąż mruga ikonką samochodu na podnośniku. To co wynalazłem w sieci to jakieś kody z błędami z tematów na forach, na które nikt nie odpowiedział i nie daję rady na własną rękę zmusić tego do działania. Projekt Marcina mi nie pomoże, bo wymaga od razu arduino mega, a ja mam tylko leonardo i platformio się wiesza przy próbie wgrania firmware'u.

Marcin648 commented 1 year ago

@vejinnovem Cześć! Ikonka na podkowniku to zwykle błąd na magistrali canbus. Też tak miałem na początku, rozwiązaniem okazało się odłączenie rezystora terminującego na płytce modułu canbus. Wiem, że to nieintuicyjne, bo według specyfikacji ten rezystor tam powinien być, ale podziałało i kilku innym osobom również. Na płytce Seeed Studio robi się to poprzez przecięcie pola stykowego oznaczonego jako P1 pod płytką.

Arduino Mega nie jest wymagane, zostało użyte tylko dlatego, że je miałem pod ręką. Robiłem testy na najtańszym zestawie Arduino Nano + tania płytka MCP2515 i działało dobrze. Jedyne wymagało to zmiany zegara biblioteki, bo ta tańsza płytka działa na 8MHz, a nie 16Mhz. Aby kompilować w platform.io do innych płytek, starczy dopisać je do platformio.ini. Lista płytek z przykładami: https://docs.platformio.org/en/latest/boards/index.html

Do zegarów nie mam aktualnie dostepu, ale postaram się w wolnym czasie przepisać ten projekt na bardziej przyjazny i wykorzystać nowszą bibliotekę.

vejinnovem commented 1 year ago

W pewnym momencie mi się udało, a przynajmniej nie zwróciło mi żadnego błędu, wybrałem płytkę, wgrałem kod. Nie mam zielonego pojęcia gdzie wrzucić dll, więc wrzuciłem go wszędzie. (ale w domyśle tam, gdzie binarka, wrzuciłem zarówno do x86 jak i do x64). Program od telemetrii łączy się z Arduino, ale nie chce się połączyć z telemetrią na 127.0.0.1. Niby host od razu odrzuca połączenie. Licznik cały czas pokazuje ikonkę samochodu na podnośniku. Mam płytkę MCP2515. Przynajmniej tak zapamiętałem nazwę. Na pewno coś tam robi, bo bez niej nie ma ikonki podnośnika. Możesz mnie nakierować, gdzie zmienić ten zegar? Nie mam żadnego innego arduino pod ręką. I jeśli ta tania płytka też wymaga wywalenia rezystora, to możesz nakierować mnie, który to? Na mojej płytce są dwa rezystory.

Dreed420 commented 1 year ago

MCP2515 posiada punkt J1 - tam montuje sie zworke aby byl aktywny rezystor 120k z tego co pamietam. Plugin (dll) wrzucasz do folderu gdzie jest zainstalowany simhub - glowny folder - wtedy pojawi ci sie w simhub aditional plugins u gory e90 dashboard

Zastanawiam sie, czy komus to zadzialalo na zegarze 8mhz ?

vejinnovem commented 1 year ago

Odlutowałem R1 i wtedy płytka nie chciała działać. Odlutowałem R2 i zero różnicy, dalej biedne BMW na podnośniku. J1 zwierałem i rozwierałem, ale bez różnicy. Zegary jakby pstrykają kiedy jest aktywny inny kod, ostatni stąd: https://forum.arduino.cc/t/controlling-bmw-e90-instrument-cluster/670728 Pstrykają wtedy, gdy uruchamiam monitor portu szeregowego, choć nie zawsze. Lub wtedy gdy ten kod jest aktywny, a nadpisuję go tym samym kodem. Poza podnośnikiem i pstrykaniem na ułamek sekundy zegarami nie udało mi się gnoja zmusić do działania.

Dreed420 commented 1 year ago

@vejinnovem masz discorda? - wroce ze spaceru z psami to podzialamy razem Dreed#7529 - dodaj lub odezwij sie

vejinnovem commented 1 year ago

Chociaż to totalny offtop, no ale nie chciałem zasyfiać issuesów polskimi tematami, no a jednak wygodniej po swojemu narzekać na pasmo niepowodzeń, to dopiszę tylko że ten plugin w simhub udało mi się odpalić, ale ma totalnie w głębokim poważaniu polecenia connect. Podłącza się totalnie bez weryfikacji, nawet jak dam fizyczny port szeregowy COM1 to się łączy, a po chwili zupełnie z niczym się nie chce połączyc i nie reaguje w ogóle na connect. Jedynie raz udało mi się zrobić connect i zegary pstryknęły, pokazał się podnośnik, ale zanim mi się odpaliła gra, wcisnąłem alt-tab, to już nie było połączone.

Dreed420 commented 1 year ago

@vejinnovem Cześć! Ikonka na podkowniku to zwykle błąd na magistrali canbus. Też tak miałem na początku, rozwiązaniem okazało się odłączenie rezystora terminującego na płytce modułu canbus. Wiem, że to nieintuicyjne, bo według specyfikacji ten rezystor tam powinien być, ale podziałało i kilku innym osobom również. Na płytce Seeed Studio robi się to poprzez przecięcie pola stykowego oznaczonego jako P1 pod płytką.

Arduino Mega nie jest wymagane, zostało użyte tylko dlatego, że je miałem pod ręką. Robiłem testy na najtańszym zestawie Arduino Nano + tania płytka MCP2515 i działało dobrze. Jedyne wymagało to zmiany zegara biblioteki, bo ta tańsza płytka działa na 8MHz, a nie 16Mhz. Aby kompilować w platform.io do innych płytek, starczy dopisać je do platformio.ini. Lista płytek z przykładami: https://docs.platformio.org/en/latest/boards/index.html

Do zegarów nie mam aktualnie dostepu, ale postaram się w wolnym czasie przepisać ten projekt na bardziej przyjazny i wykorzystać nowszą bibliotekę.

Jest szansa na tą nowszą blibliotekę? :)

Marcin648 commented 1 year ago

@Dreed420 Mogę zdradzić, że za kulisami powstaje projekt, który będzie obsługiwał większą ilość zegarów i wszystko będzie się dało skonfigurować w jednym pliku. Niestety dużo pracy jeszcze trzeba w to włożyć. :)

Dreed420 commented 1 year ago

Chętnie się pisze do pomocy ;) mam parę zegarów więc zawsze mogę coś potestowac

niedz., 9 kwi 2023, 12:54 użytkownik Marcin Jakubowski < @.***> napisał:

@Dreed420 https://github.com/Dreed420 Mogę zdradzić, że za kulisami powstaje projekt, który będzie obsługiwał większą ilość zegarów i wszystko będzie się dało skonfigurować w jednym pliku. Niestety dużo pracy jeszcze trzeba w to włożyć. :)

— Reply to this email directly, view it on GitHub https://github.com/Marcin648/e90-dashboard-ets2/issues/5#issuecomment-1501100449, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOJUB7EJFA4STNORL4Y4MKTXAKIPBANCNFSM55UHSB6A . You are receiving this because you were mentioned.Message ID: @.***>