Цей запис у бортожурналі авто а не блозі тільки тому, що має хоч якесь відношення до авто (приборка від нього), а також що це дало поштовх розібратися з F-CAN.
Коротше кілька днів назад, граючі на ПК в гоночки на курсі я подумав, а класно було би підключити приборку. Як ви розумієте, ця думка мене не полишила. Придбав донорську приборку і почав її колупати. Спочатку думав що зможу заюзати B-CAN, так як знав що там є діагностичні команди для приборки і їх можна витягнути, але коли це зробив мені стало ясно що в один момент часу можна робити лише одну дію, підняти одну стрілку чи запалити одну лампочку, отже варіант не підійшов. Почав розбиратися а як же панель приладів отримує дані по швидкості, тахометоу та інше на панель приладів, виявилося що такі дані прилітають від ЕБУ по мережі F-CAN.
За цією схемою видно що є дві мережі кан, одна салона, друга моторна. Моторна набагато швидше і гуляє в ній трошки менше даних ніж в салонній, але частіше. І лише панель приладів має обидві ці шини, виступаючі в ролі хоста, що бере інфу від обох шин и відправляє, перетворюючи повідомлення у зрозумілий формат для кожної із мереж. Також є діагностична К лінія, яка йде в блок MICU (або блок запобіжників по нашому).
Тобто формально мені треба емулювати ЕБУ. Ну що ж, гроші вже витрачені, тож пішов колупати тачку і знімати логи. Використовував ардуїно уно та кан модуль mcp2515 з tja1050. Підключився прям до панелі приладів і поїхав кататися збирати логи.
За 15 хвилин назбирав 1200000 записів) закинув все у csv, відкрив лібою pandas в python та почав аналізувати дані. Потрібні пакети знайшов дуже швидко, але от незадача, пакети використовують контрольний підпис, або контрольну суму, тож просто так відправити потрібний пакет не можна. Тут на допомогу прийшов чат гпт, допоміг проаналізувати існуючі дані, знайти залежність та написати метод рахування контрольної суми. Після цього справи йшли як по маслу, дуже швидко накидав код, який приймає значення, створює пакети, підписує та надсилає в приборку.
З цим розібралися, тепер треба подружити з грою. Існує такий прикольний застосунок, SimHub, створений як раз для підключення різних приколюх до симуляторів. Використав його, наконфігурував відправку потрібних даних по серійному порту, зробивши різні повідомлення і відповідно написав скетч на ардуїно для зчитування значень та відправку на панель приладів. Поки що віддаю тільки тахометр та спідометр, але можна віддавати багато чого іншого)
Тестував на Ассето Корса. Нижче додам відос.
А отак виглядає підключення до приборки, по факту треба лише 4 проводки, + і - живлення, а також can hi та can lo.
Думаю навіть чи треба робити під це плату)
Ще попереду прошивання приборки під кілометри та заміна шкали на кілометрову. А також гасіння помилок абс та подушок.
Відео демонстрація тестового сетапу
Update: замінив шкалу на кілометрову, була від донора дореста, довелося трохи вирізати під бортовий, а також погасив усі чеки та прошив під літри та кілометри
По суті приборку будь яку, так. Нюанси можуть бути певні. Моя приборка наприклад наполовину аналогова, той самий бензобак аналоговий, срс, абс теж, саме індикація. А от помилки по кану
А потім буде так :)
https://www.youtube.com/watch?v=T4xrktOpteQ
Можливо підрульові ще підключу і поки все
На приборці планує все що можливо задіяти. Підрульові перемикачі теж є від донора, можливо колись підключу. Та. Простіше, перемикач світла заходить в перемикач до склоочтснтків, а звідки по кану можна все брати