Прошивка приборной панели Infiniti EX35
Этот пост должен был выйти в блоге финика, но так как он больше связан с IT я решил опубликовать его здесь.
TLDR - я купил бу приборку в более лучшем состоянии для своего автомобиля и скорректировал на ней пробег выставив значения со старой приборки.
Зачем
Итак, уже довольно давно я являюсь владельцем автомобиля Infiniti EX35. В целом он меня почти всем устраивает. Не устраивает только высокий транспортный налог и то что машине уже 16 лет. Если с первым стоит просто смириться, то со вторым еще как-то можно работать время от времени обслуживая автомобиль и заменяя устаревшие агрегаты.
Еще при покупке я заметил что на приборной панели не светило два светодиода. Тогда я подумал что пробелма решлается простой перепайкой пары светодиодов. Но как оказалось светодиоды там не самые распространенной версии и найти их довольно трудно. Также при перепайке только пары светодиодов подсветка стала бы неравномерной.
На фото видно что левая часть спидометра светит более тускло, а на тахометре погасли пара светодиодов
Короче проблему я отложил в долгий ящик и ездил так. А потом наткнулся на авито на объявление о продаже приборки с EX37 в хорошем состоянии и со всеми целыми светодиодами.
На донорской приборке пробег был 219 тысяч км. Тогда как на моей было только 200 703 км. Разница невелика, но я решил перепрошить приборку так как мне это было вдобавок и интересно 😄.
Приборка которая ко мне приехала
Подготовка к перепрошивке
На просторах драйва нагуглился вот такой материал - https://www.drive2.ru/l/668752385023161800/
Получается что для коррекции пробега нужно купить программатор ch341a, правильно подключиться прищепкой к чипу S93C76, слить дамп, поправить пробег и зашить дамп обратно.
На этом моменте я заказал на WB программатор (артикул 93568117).
Чтобы избежать правки пробега я решил просто слить дамп со своей приборки и залить его в новую. Это было первым моим ошибочным решением. Ниже подробности.
Первый облом
Как только программатор пришел я сразу же попытался подключиться к плате прищепкой. И тут меня ждал облом - прищепка подключалась к маленькой плате-ключу из комплекта программатора, но это был вариант для подключения к микросхемам другого типа. Мне же было необходимо подключить прищепку к ряду ножек на программаторе.
В интернете нагуглились разные решения в виде припаивания пинов пришепки напрямую к программатору и т.д.
А я выбрал другой путь - заказал на том же WB провода мама-папа (артикул 175797158).
Вторая попытка, тоже облом
Схема подключения программатора
С проводами все получилось аккуратно подключить. Так как на разъеме прищепки пины не были пронумерованы я воспользовался лайфхаком - взял плату-ключ, приложил к разъему и подсмотрел на ключе цифры которыми пронумерованы пины.
В найденных в интернете мануалах обычно предлагалось прошивать плату при помощи программы SiberiaProg которая работает на Windows.
Винды под рукой у меня не было и я решил воспользоваться линуксовой утилитой IMSProg. Это стало второй моей ошибкой.
На фото первое подключение программатора.
Программатор определился в программе, но вот точый тип используемого чипа не идентифицировался. Я выбрал подходящий как мне кажется вариант и сдампил прошивку с новой приборки. В окне программы появилось что-то похожее на код с приборки. Я на радостях сохранил этот код и побежал в гараж прошиваться.
В гараже я слил дамп с оригинальной приборки и попробовал зашить его в новую.
В процессе прошивки я получил ошибку записи данных. Новая приборка при подключении к автомобилю показала 999 999км и перевела указатели топлива и температуры в неестественные положения выше максимума.
Прошивка не удалась. Откат к бэкапу также не удался.
В итоге я отправился домой для установки винды и поиска нормального дампа.
Подготовка к третьей попытке
Так как сносить линукс не хотелось я решил поставить VirtualBox и установить туда старую добрую Windows XP. Чтобы не тратить время на установку ОС я просто взял образ XP который ранее бесплатно распространяла Microsoft для того чтобы разработчики могли тестировать сайты на IE. Сейчас набор этих образов можно найти на торрентах.
С дампом прошивки вышло интереснее. Нашлось несколько сайтов типа CarDamp где дампы предлагались за деньги. Платить порядка 10 евро за попытку с непредсказуемым результатом не хотелось и поэтому мне удалось нагуглить дамп с Infiniti G25. Да машина другая, но приборка там идентичная.
Как оказалось сфера это довольно мутная так как коррекцией пробегов часто занимаются не из благих побуждений. Поэтому онлайн-калькуляторы пробегов и архивы дампов платные.
На этот раз прошиваться я решил при помощи SiberiaProg.
Третья попытка, частичный успех
Сперва я решил попробовать заново сдампить прошивку с родной приборки и залить в новую. SiberiaProg сама определила используемый чип и мне осталось только нажать пару кнопок. В результате я также получил окирпиченную новую приборку. Но в этот раз кое что бросилось мне в глаза - на моей приборке чип определился как S93C66! А в этом чипе памяти в два раза меньше - 512 байт вместо 1 килобайта!
Чип S93C76 в новой приборке
Кто бы мог подумать что в разных ревизиях приборки разные чипы.
В итоге остался только один вариант - шить скачанный дамп от G25. В итоге я его загрузил и… приборка заработала! Правда пробег на ней стал вообще в районе 70 тысяч км 😄
Четвертая попытка, успех
Сперва я решил подправить пробег в онлайн калькуляторе Carprog online. После загрузки дампа веб-сервис правильно его считывал и показывал верный пробег. Но для получения скорректированной версии он просил деньги. В целом я уже был готов заплатить деньги, но решил поискать варианты еще.
Сперва я попробовал разобраться в дампе самостоятельно, а также при помощи ChatGPT. У нас обоих это не удалось. Единственное что я выяснил это строчки в которых хранится пробег и чексумма этого зачения. Но алгоритм генерации значения я не узнал.
Затем нагуглилась старая программа под Windows под названием NYO4. В ней был оффлайн-кальулятор. При помощи этой программы я забил свой пробег в 200703 км и прошил приборку.
Все прошло успешно, но пробег почему-то выставился в 200529 км. Решив что +-200км это допустимая погрешность я успокоился и собрал наконец панель обратно.