Honda Accord (7G) (Black Demon)

Температура на панелі приладів з китайською магнітолою

Я їжджу на Honda Accord (7G), Subaru Impreza (GE, GH)
Одеса, Україна

Думаю всі знають що на 7 аккорді клімат контроль це частина штатної магнітолу, тож при заміні на китайську магнітолу на панелі приладів зазвичай пропадає температура і з'являються прочерки у вигляді ---°С. Воно наче не критично, але ну от хотілося мені щоб температура там була, тож ще 2 роки тому я почав ресьорчити це питання. Спочатку справи йшли не дуже, тому що я просто не розумів що до чого, думав що можливо просто треба прокирути якийсь дріт, але після вивчення схем та спілкуванням з більш прохаваними людьми проблему було локалізовано. Температура в штаті працює за таким принципом: магнітола отримує аналоговий сигнал з датчику температури, обробляє його та відправляє у кан шину в одному пакеті зі станом увімкнення обігріву заднього скла у вигляді пакета з 2 байтами, перший байт це значення ввімкнення обігріву, 0 - вимкнуто, 80 увімкнуто, а другий байт це власне температура, значення від 20 до 254, всі інші значення - це прочерки. Чому так зробили хз, і чому китайці реалізували ввікнення обігріву та не реалізували температуру теж хз, китайці у 2 байті просто відправляють 255, що за межами допустимого діапазону.

Перші успіхи я мав десь пів року тому, коли зібрав на ардуінці пристрій, який може відправляти повідомлення у кан шину. Складався він із Arduino Nano та модуля кан шини на MCP2515 та TJA1050. З його допомогою я міг відправляти необхідну температуру, але при цьому на китайській магнітолі переставали працювати все, що працює по кан шині, а саме відображення налаштувань клімату, відкриті двері, ввімкнення обігріву скла (чому читайте вище) та ще кілька дрібниць. По факту можна було лишити і так, але мене не влаштовувало те, що я описав в реченні вище, а отже нам потрібно не просто відправляти повідомлення у шину, а підміняти неправильний пакет з магнітоли, про цьому всі інші пакети слати в тому вигляді як вони є. Для цього нам необхідно зробити CAN фільтр, його логіка така, що він ставиться у розрив кан проводу магнітоли і повідомлення від машини до магнітоли просто пересилає, а повідомлення від магнітоли до машини пропускає через фільтр, при пересиланні необхідного пакету з температурою виконується функція, яка підміняє саме другий байт з температурою на коректний (звідки бралося значення температури буде описано нижче). Ця маніпуляція зберігає функціонал увімкнення обігріву скла та фіксить температуру, до чого я йшов майже 2 роки)

Тепер про те, звідки береться значення температури. Я намагався зчитати аналогове значення зі штатного датчика температури, але і тут китайці зробили погано, в штатній магнітолі на датчик подається 5 вольт, датчик це терморезистор, який змінює супротив залежно від температури і на виході ми мали б отримати значення від 0 до 5 вольт, але китайці вирішили подавати на цей датчик 12 вольт, які через ардуїно зчитати вже проблематично. Є метод використовування дільника напруги, але тоді ломається логіка клімату, тому що він запрограмований на значення до 12в + показники, які повертаються не лінійні, зробити формулу для конвертації у значення в діапазоні дозволеного не виходило, тож я забив і вирішив просто використати виносний датчик виміру температури для ардуїно. Тут теж виникла проблема, датчик повертає вже цифрове значення температури, а машина очікує свій формат, тож довелося дебажити, надсилати кожне значення від 0 до 255 машині та дивитися що відмальовує панель приладів, це було складно, але я вже знав що результат буде позитивний і це варто зробити, витратив на цей дебаг приблизно 3 години) Тож знаючи значення температури, яке очікує машина я зробив просту структуру даних та функцію, яка по цифровій температурі повертала значення, яке розуміє авто та надалі просто підміняв необхідний пакет цими даними.

По витратам вийшло приблизно 2 тисячі гривень на різні компоненти для побудови цього кан фільтру, найдорожчі компоненти це мікросхеми, ардуїно та датчик температури, купа нервів на паяння дрібних компонентів та дуже багато часу. Прткряпляґ фото та відео на якому видно що температура відображається на приборці і стоїть магнітола з Китаю, а також фото самого фільтра, на якому видно наскільки дрібні деталі


Плата без ардуїно



Плата з ардуїно з можливістю міняти без віпаювання



Фото 1



Фото 1

Посилання на коротке відео 


АПДЕЙТ 06.08.2024: Пройшов день і мені вдалося подружити фільтр зі штатнім датчиком температури, рішення стає більш plag&play, тепер замовити фішки з аліку та можна зробити підключення по красивому. Я просто передивився схеми і зрозумів що сигнал я брав не з того дрота. Після вірного підключення датчик став видавати від 0 до 5В, що функцією analogRead інтерпретувалося у вигляді числа від 0 до 1024, це 5в із шагом 1 == 0.0049В. Подивившись на значення які читалися с датчика я зрозумів що для конвертації у зрозумілий формат для панелі приладів необхідно просто розділити на 4


Ціна питання 2000 UAH, Пробіг 164904 км.
Опубліковано: 05 серпня 2023р. 23:12
23 0 1

Коментарі

Щоб залишати коментарі, потрібно авторизуватись.
Доречі в тебе клімат працює нормально ?
Який canbus профіль використовуеш ?

15 вересня 2023р. 18:49
accordtribe, та наче нормально, прийнамні як клімат працює. Ставив DaoJun.High. Інші не працюють
15 вересня 2023р. 18:50
Оо доречний допис)
тілько он поставив собі CC3 і шукав як це вирішити теж

15 вересня 2023р. 18:43
accordtribe, рішення не просте. І багато компонентів не просто знайти
15 вересня 2023р. 18:50
Uns8ted, а можу в тебе позичити список всього що потрібно та невеликий ман step by step ?)
Хоч спробую

15 вересня 2023р. 18:55
accordtribe, сорі, та мануал ніякий не писав, а частина роботи взагалі втрачена із жорстким диском
15 вересня 2023р. 18:58
accordtribe, можу тільки порадити те, з чого я починав все, і взагалі входив у курс діла що воно таке, як працює тощо
https://www.driveaccord.net/threads/accord-android-head-unit.548027

15 вересня 2023р. 22:40
Я їжджу на Volkswagen ID.4
Оце так заморочився, красавчик.
13 серпня 2023р. 12:39
ifynk, Дякую) Ти в свій час теж заморочився, завдяки твоїй лібі у мене працює сабдісплей)
13 серпня 2023р. 12:43
Я їжджу на Volkswagen ID.4
Uns8ted, Було діло )
13 серпня 2023р. 14:13
Я їжджу на Honda Accord (7G)
За заморочку респект) Але я б манав стільки з тим трахатись)
Тому я залишив свою Наві і не поставив китайщину)

07 серпня 2023р. 17:14
stephanco, ну мені по приколу було + це відкриває нові можливості у роботі з кан шиною. Своє ставлення до наві я вже в чаті казав) ну і якщо порахувати час коли я цим прям займався то від сили 2 тижні вийде
07 серпня 2023р. 17:16
Я їжджу на Honda Accord (7G)
Uns8ted, нема що додати) задрот) молодець)
07 серпня 2023р. 17:21
stephanco, коли чогось хочеться немає неможливого)
07 серпня 2023р. 17:23
Я їжджу на Honda Accord (7G)
Ох, прям високі матерії)))
Але те, що розібрався - 👍🏻👍🏻👍🏻

06 серпня 2023р. 08:38
Я їжджу на Honda Accord (8G)
Достойно - задумався про те, чим я займався в університеті взагалі...
05 серпня 2023р. 23:44
nightscale, я в універі взагалі ніфіга не робив, перший рік ходив, потім почав працювати і приходив лиш на сесії
05 серпня 2023р. 23:47
nightscale, а на кого вчився?
05 серпня 2023р. 23:47
Я їжджу на Honda Accord (8G)
Uns8ted, ну впринципі аналогічна історія з навчанням - інженер ПЗ 😄
06 серпня 2023р. 08:56
nightscale, о, я теж)
06 серпня 2023р. 11:34
Я їжджу на Honda Accord (8G)
Uns8ted, :D
06 серпня 2023р. 17:26
Ох і заморочено))) Але варте того)
05 серпня 2023р. 23:19
dioneight, заморочено не те слово, не думаю що воно прям критично важливо, для мене це був більше челендж
05 серпня 2023р. 23:20