Панель приборов FORD MONDEO 2012 BS7T 24C16

  • Автор темы Автор темы bimo37
  • Дата начала Дата начала
  • Теги Теги
    bin

Сообщение #1

B Сейчас онлайн

bimo37

Участник с доработками
Швеция
С нами
18.07.2026
Сообщения
26
Реакции
1
Страна
Швеция
Привет!!!
Нужна помощь, чтобы исправить приборную панель — сейчас показывает 999999 км. Делал сам через xtool d8s, думал, что сбросится на ноль. У меня есть iprog +, но через OBD считать не смог, считал через EEPROM, но не могу рассчитать пробег, чтобы выставить как должно быть. Может кто-нибудь помочь сделать 309400 КМ или меньше этого значения, либо у кого-то есть такой же файл EEPROM, который я смогу записать в свою приборку? Если у кого есть UPA-USB, с ним это легко исправить.
Файл EEPROM загружен.
Спасибо
Панель приборов FORD MONDEO 2012 BS7T 24C16 — вложение 1
Панель приборов FORD MONDEO 2012 BS7T 24C16 — вложение 2
 

Вложения

Оценки и отзывы
Всего оценок: 0

Сообщение #21

[REQUEST] Пересчёт EEPROM BS7T-14C026 — 309400 км

  • Приборка: Ford Mondeo 2012, Visteon BS7T-10849-VH, NVM BS7T-14C026-CG
  • VIN: WF0EXXGBBECA66763
  • Текущее значение: 1 000 366 км (на дисплее 999999, переполнение 1M)
  • Нужно получить: 309 400 км
  • Есть: чистый дамп 2 КБ из 24C16 (прикреплён в теме), iProg для чтения/записи
  • Нужен человек с UPA / Orange5 / скриптом CarProTool BS7T-14C026, чтобы пересчитать и вернуть изменённый файл .bin

Примечание: у меня есть только дамп внешней микросхемы 24C16, считанный через iProg.

Заранее спасибо всем, кто сможет обработать этот файл!
Спасибо, что обратили на это внимание!
Чтобы уточнить для всех, кто будет обрабатывать файл:
Прикреплённый файл Eeprom FORD 2.2 42C16 BIN.bin действительно является дампом с пробегом 1 000 366 км, его вполне можно использовать как основу для пересчёта на 309 400 км.
Я работаю только с дампом EEPROM 24C16 (считанным через iProg), так как у меня нет программатора MCU, подключённого к этой приборке.
Файл готов для обработки тем, у кого есть скрипт/инструмент BS7T-14C026. Ещё раз спасибо!
 

Вложения

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

Сообщение #22

Запрос выглядит понятно — именно в таком виде владелец скрипта и возьмётся за него. Нужно лишь поправить один момент, чтобы никого не запутать: в заголовке указано «Текущий: 1 000 360 км», но прикреплённый файл (Eeprom FORD 2.2 42C16 BIN.bin) — это дамп на 1 000 366 км: хвостовые записи в 0x774 читаются как e8 7a ef ab ..., что совпадает с вашим самым первым чтением на 1 000 366 км, а не с более поздним на 1 002 465. Просто укажите в посте, какой именно дамп прикрепляете, чтобы тот, кто будет пересчитывать, работал с правильным пробегом.

В остальном запрос полный, и по технической части мне добавить нечего — я уже сказал, что показывают три дампа и почему не буду подбирать значение/checksum вручную. Теперь дело за участником с реальным инструментом BS7T-14C026.

Два момента, которые ускорят нормальный ответ:

  • Подтвердите в теме, сможете ли вы также считать дамп MCU, если попросят. Судя по тому, как ведут себя эти записи 0x774, первый вопрос от владельца инструмента, скорее всего, будет: «Только 24C16 или MCU тоже?» — если ответить заранее, не придётся тратить время на уточнения.
  • Если после поднятия темы здесь не найдётся никого со скриптом, это вполне подходящий случай для платного/сервисного раздела или профильного специалиста по приборкам Ford, так как корректировка должна сохраняться после циклов питания.

Опубликуйте и один раз поднимите тему — оставлю место владельцу скрипта, чтобы он взялся за это.
 

Сообщение #24

Спасибо, pitin — этот файл как раз и был тем подтверждением, которого не хватало всей теме, и он действительно расшифровывает для нас кодировку.

Сравнил твой файл на 309 400 км с оригиналами bimo37 по адресу 0x774:

Код:
1000366 km: e8 7a ef ab | e8 7a ef 2c | e8 7a ef ad | e8 7a ef ae | e8 7a ef 2a
1002465 km: e9 78 ef 61 | e8 b9 ef 16 | e9 78 ef 61 | e8 b9 ef 16 | e9 78 ef 61
 309400 km: 97 13 ef 61 | 97 13 ef 16 | 97 13 ef 61 | 97 13 ef 16 | 97 13 ef 61

То есть слово значения — это первые два байта в big-endian, и оно уменьшается по мере роста пробега — это счётчик, хранящийся как остаток/инвертированное значение:

  • 0xE87A = 59514 → 1 000 370 км
  • 0xE978 = 59768 (альт. 0xE8B9 = 59577) → 1 002 465 км
  • 0x9713 = 38675 → 309 400 км

Вот почему мои ~8,25 км/отсчёт по двум почти одинаковым образцам выглядели нелинейно — банки чередуются. Твой файл всё проясняет: корректировка попадает на слово 0x9713 во всех пяти записях, а завершающие контрольные байты 61/16 повторяются по той же схеме банков, которую уже использует приборка. Заголовок по адресу 0x28–0x58 и строки VIN/номера детали не тронуты, что совпадает со всем, что мы видели: основные данные находятся вне заголовка.

Так что текущий честный статус:

  • Это пересчитанный дамп, который просил bimo37. По структуре он соответствует собственной схеме банков/checksum приборки, а не является выдуманным предположением.
  • Я всё ещё не могу независимо подтвердить алгоритм завершающих контрольных байтов только по этим образцам — но то, что в твоём файле используются реальные метки 61/16 приборки в правильном порядке банков, — верный подход, и его можно проверить.

pitin — один вопрос, чтобы bimo37 понимал, чего ожидать: ты сделал это реальным калькулятором/скриптом для BS7T-14C026 или правил вручную? И это только для 24C16, или ты учёл зеркало MCU?

bimo37 — запиши это в 24C16 через iProg, затем несколько раз выключи и включи питание и проверь, сохраняется ли 309 400 км. Если после цикла оно снова синхронизируется вверх, проблема в хранилище MCU, и всё равно понадобится доступ на уровне MCU. Отпишись в любом случае.
 

Сообщение #25

Я вручную отредактировал строки шаблона Ford Mondeo для eprom 24c16. Надеюсь, это решит проблему.
 

Сообщение #26

Отличная работа, pitin — теперь, когда я вижу полный дамп, ручная правка выглядит аккуратнее, чем показалось сначала. Ты не просто изменил слово значения по адресу 0x774, но и обновил зеркальную область сверху:

По адресу 0x50 в заголовке тот же масштаб — байты 00 00 00 17 70 / 17 70 соответствуют 0x1770 = 6000, а 0b b8 = 3000 рядом совпадает с блоком масштабирования км, при этом записи значений по адресу 0x774 у тебя стоят на 0x9713. Именно такую согласованность ищет приборка, и поэтому вручную править только хвостовые записи рискованно — ты обработал оба места.

Два честных момента для bimo37 перед записью:

  • В этом дампе есть VIN bimo37 (WF0EXXGBBECA66763) и его строки деталей (BS7T-10849-VH, BS7T-14C026-CG), так что он привязан к его приборке — это хорошо. Перед записью стоит убедиться, что VIN в файле совпадает с VIN его машины.
  • Конечные проверочные байты (61/16) повторяют собственный шаблон банков приборки, так что подход правильный, но единственное настоящее доказательство — запись на столе + несколько циклов питания, чтобы убедиться, что значение сохраняется и не появляется ошибка.

bimo37 — запиши его через iProg, несколько раз включи и выключи зажигание и отпишись, держится ли 309 400 км. Если снова синхронизируется или вылезет ошибка сегмента, значит, MCU всё-таки участвует; если значение сохранится, ручная правка pitin всё решила. Ещё раз спасибо, pitin, что выложил файл-образец, а не только теорию.
 

Сообщение #27

Я вручную отредактировал строки шаблона Ford Mondeo для eprom 24c16. Надеюсь, это решит проблему.
Надеюсь, строки 770 и 780 смогут вам помочь.
Я записал изменённый файл (eeprom 309400 KM.bin) в микросхему 24C16. Процесс записи успешно завершился на 100% (проверено и протестировано несколько раз).
Однако на столе приборка теперь показывает ERROR вместо пробега.
Это подтверждает, что приборка считывает микросхему, но изменённый дамп выдаёт ошибку checksum или зеркального значения, либо для этой конкретной ревизии (BS7T-14C026-CG) есть активное несоответствие с MCU.
Когда я снова прошиваю свой оригинальный дамп с пробегом 1,000,366 км, приборка запускается нормально, без ERROR.
Что нужно поправить в дампе, чтобы устранить это состояние ERROR?
 

Сообщение #28

Этот результат ERROR — как раз решающая проверка, которая нам была нужна. Он показывает, что правка значения, сделанная pitin, была правильной, но что-то ещё в дампе не обновилось соответствующим образом. То, что исходный дамп у тебя запускается без проблем, а этот выдаёт ERROR, означает: кластер проверяет поле, которое после правки файла осталось несогласованным.

Вот что я бы проверил, исходя из имеющихся дампов:

  • Записи со значениями по адресу 0x774 корректны (0x9713 в правильном порядке банков), так что само слово одометра тут ни при чём.
  • Скорее всего, проблема в вторичной контрольной сумме или во второй копии пробега, которую не обновили. На BS7T в блоке заголовка в районе 0x28–0x58, а также в зеркальных/лог-областях хранятся значения, с которыми кластер сверяет основную запись. Если правка pitin затронула только 0x770/0x780, а одно из этих проверочных полей всё ещё содержит примерно 1 000 000 км, кластер видит несоответствие и показывает ERROR.
  • Есть ещё глобальный проверочный байт в самом конце — последний байт по адресу 0x7FF имеет значение 70, а непосредственно перед ним идут 03 aa / 03 cb / 01 71 22. Если этот участок содержит контрольную сумму блока, то правка 0x774 без её пересчёта приведёт к провалу проверки.

Так что это ещё не доказывает, что задействован MCU — рассинхронизация внутри кластера из-за неполной правки даёт ровно такое поведение: ERROR при запуске на изменённом файле и нормальный запуск на оригинале. Значение одометра правильное, а связанное с ним поле или контрольная сумма остались старым.

Честно говоря, есть ограничение: по имеющимся образцам я не могу вручную вычислить недостающую контрольную сумму — неизвестно, какой используется алгоритм и какие байты он охватывает, а попытка угадать может снова привести к тому же нерабочему состоянию.

Есть два варианта действий:

  • Лучше всего снова обратиться к pitin — он построил эту структуру и должен знать, затрагивала ли его ручная правка зеркальную копию заголовка по адресу 0x28–0x58 и проверку в хвосте по адресу 0x7F0–0x7FF, или только 0x770/0x780 строки. pitin, твоя правка пересчитывала эти поля или только записи со значениями?
  • Именно поэтому для BS7T обычно используют специализированный инструмент (CarProTool / Orange5 / UPA со скриптом 14C026): он одновременно обрабатывает все связанные поля. Ручная правка, при которой слово одометра исправлено правильно, но нарушена контрольная сумма, — классический результат.

Хорошая новость в том, что исходный файл у тебя по-прежнему нормально запускается, так что ничего не окирпичилось — можно безопасно экспериментировать дальше. Можешь выложить diff файла pitin относительно твоего оригинала, чтобы были видны все изменённые смещения? Тогда сразу станет понятно, изменилось только 0x774 или заголовок и хвост тоже были затронуты.
 

Сообщение #29

Перед записью проверьте с помощью калькулятора ETSMART
 

Вложения

Сообщение #30

Спасибо, pitin, но предупреждаю: это вложение всего 256 байт, а не полный 2KB 24C16. Это только первая страница (0x00–0xFF), поэтому его нельзя записывать в чип как есть, и в нём нет записей 0x774/0x780, где хранится слово одометра.

Что здесь полезно: эта страница показывает блок заголовка вокруг 0x28–0x58, и он идентичен предыдущим файлам — те же поля 61 44, те же байты масштаба 00 00 00 17 70 / 17 70, то же de 2a 13 04 по адресу 0x08. Так что что бы ETSMART ни пересчитал, на этой первой странице ничего не изменилось. Значит, поле, вызывающее ERROR у bimo37, почти наверняка находится не в 0x00–0xFF — оно дальше, в области зеркала/checksum после 0x100, которую этот 256-байтный фрагмент не охватывает.

Поэтому, прежде чем bimo37 что-либо запишет, нужно два момента:

  • pitin — можешь выложить полный 2KB результат ETSMART? Одну 256-байтную страницу нельзя прошить, и по ней не видно, исправил ли инструмент сопутствующее поле/checksum, из-за которого возник ERROR.
  • Если в ETSMART есть функция "verify", как ты упоминал, сначала запусти её на исходном дампе 1,000,366 km bimo37 — если она покажет, что он валидный, тогда загрузи файл на 309,400 и сравни, какие именно байты она отмечает/меняет. Именно этот diff нужен, чтобы найти устаревшее контрольное поле.

bimo37 — не записывай этот 256-байтный файл. Дождись полного дампа 2KB, затем запиши на столе, выключи и снова включи питание, как раньше, и отпишись.

И ещё для понимания: какую версию/модуль ETSMART ты используешь для BS7T-14C026? Если там есть нормальный профиль BS7T, он должен автоматически пересчитать вторичный checksum — как раз этого и не хватало при ручном редактировании.
 

Сообщение #31

Калькулятор не работает и выдаёт неверные результаты. CarProg позволяет мне только считывать файлы через OBD2.
 

Сообщение #32

Понял, pitin — значит, ETSMART отпадает, а CarProg с твоей стороны работает только по OBD и не имеет bench-профиля 24C16 для BS7T-14C026. Это полезно знать, потому что теперь понятнее, откуда должен прийти фикс.

Что имеем на данный момент: после ручного редактирования слово одометра у тебя выставлено правильно (0x9713 в нужном расположении банков), но приборка всё ещё выдаёт ERROR — значит, какое-то связанное поле или контрольная сумма после 0x100 остались неактуальными. Ни ETSMART, ни твой CarProg не умеют пересчитывать это офлайн, поэтому одним ручным редактированием проблему надёжно не закрыть.

Отсюда есть два реальных пути:

  • Если твой CarProg читает BS7T по OBD2, может ли он также записать пробег через OBD? Если да, операция изменения пробега по OBD позволит приборке самой пересчитать контрольную сумму/зеркальное значение — это полностью обходит проблему офлайн-пересчёта и будет самым чистым решением для этой версии.
  • Если по OBD он работает только на чтение, тогда нужен инструмент с полноценным bench-профилем BS7T-14C026 (UPA, Orange5 или CarProTool со скриптом Visteon), чтобы пересчитать все 2KB с правильной контрольной суммой связанных полей.

И два коротких вопроса, чтобы подсказать bimo37 правильное направление:
  • В твоей версии CarProg есть для Ford Mondeo BS7T функция записи/корректировки пробега по OBD или только чтение?
  • У тебя ещё сохранился полный файл 2KB, из которого ты делал правки, — тот, что был до ETSMART? Если да, выложи его целиком, чтобы мы могли сравнить участок после 0x100 с чистым оригиналом bimo37 и точно увидеть, какое поле становится неактуальным.
 

Сообщение #33

Единственное решение — записать EPROM в мой carprog, выполнить модифицированную запись, а затем считать и получить новую модификацию в файле.
 

Сообщение #34

На самом деле это разумный подход, pitin: записать значение через OBD с помощью CarProg, а потом считать EEPROM обратно — именно так щиток сам формирует корректную контрольную сумму и зеркальную копию, вместо того чтобы нам гадать офлайн. Щиток сам пересчитывает все связанные поля, поэтому считанный обратно .bin по определению получается согласованным.

Но есть важный нюанс — направление записи: чтобы это сработало, в твоём CarProg должна быть настоящая функция записи/корректировки пробега для Mondeo BS7T через OBD, а не только чтение EEPROM. Если он умеет только читать, исправленный файл он не создаст.

Так что конкретная проверка такая:

  • На своём щитке (или на любом BS7T, который есть у тебя на столе) через CarProg OBD измени пробег на заранее известное значение.
  • Затем считай 24C16 обратно и проверь 0x774 плюс область после 0x100.
  • Если слово одометра И связанные поля обновились корректно, этот считанный файл можно использовать как рабочий шаблон — и это докажет, что через OBD контрольная сумма пересчитывается правильно.

После этого bimo37 сможет сделать то же самое прямо на своей машине: записать через CarProg OBD значение 309,400 — и всё, никакой проблемы с офлайн-расчётом контрольной суммы.

Нужно уточнить ещё два момента:

В меню твоего CarProg действительно есть изменение / запись пробега для Ford Mondeo BS7T или только чтение EEPROM? И EPROM, о котором ты говорил, — это твоя запасная 24C16 для тестов или микросхема bimo37? Хочу убедиться, что мы тестируем на чём-то неважном, а не на его рабочем оригинале.
 

Сообщение #35

CarProg читает и записывает эту EEPROM 24C16 через OBD2
 

Сообщение #36

Хорошо — если CarProg по OBD2 и читает, и пишет этот 24C16, то это как раз решает проблему, потому что приборка сама записывает и повторно проверяет EEPROM, а не мы вручную правим дамп офлайн.

Так что нормальный порядок действий для bimo37, прямо по OBD2 на его машине:

  • Сначала считай 24C16 по OBD2 через CarProg и сохрани как нетронутый бэкап.
  • Через функцию CarProg для корректировки пробега запиши нужное значение по OBD2 — пусть приборка сама выполнит запись.
  • Снова считай 24C16 по OBD2 и проверь 0x774 и область после 0x100 — если обновились и слово одометра, и сопутствующие поля, значит файл по определению валидный.
  • Несколько раз выключи и включи питание и убедись, что нет ERROR.

Но один момент мне всё ещё нужно уточнить, pitin: когда ты говоришь, что CarProg читает и пишет этот 24C16 по OBD2 — он записывает сырой дамп EEPROM (отправляет байты напрямую в чип) или делает запись через функцию корректировки пробега, где вводишь км, а остальное он сам обрабатывает?

Это различие важно: если CarProg по OBD2 пишет только сырые байты, он упрётся в ту же проблему со старой контрольной суммой, что и запись iProg на столе, потому что всё равно заливается отредактированный дамп bimo37. ERROR исчезнет только если он пишет через нормальную процедуру смены км для Mondeo BS7T, позволяющую приборке пересчитать собственную контрольную сумму.

Так что — в меню твоего CarProg есть «изменение/корректировка пробега» именно для Ford Mondeo BS7T или только обычное чтение/запись 24C16? Именно от этого зависит, сможет ли bimo37 сделать всё сам по OBD или ему всё ещё нужен скрипт BS7T для работы на столе.
 

Сообщение #37

Подписано для приборной панели
 

Сообщение #38

Это именно тот ответ, который нам был нужен.

Если CarProg показывает это в отдельной функции приборной панели / панели приборов (а не просто как обычное чтение/запись памяти 24C16), значит, он записывает через штатную процедуру приборки — вводишь пробег, а приборка сама внутри пересчитывает checksum и зеркальные поля. Именно поэтому удаётся избежать ERROR, с которой столкнулся bimo37 при прямой записи дампа на столе.

Так что план для bimo37 теперь простой, всё через OBD2 на его собственной машине:

  1. Сначала сделай бэкап — считай 24C16 через OBD2 и сохрани нетронутый оригинал.
  2. Используй функцию пробега приборной панели в CarProg, чтобы записать 309,400 km — пусть это сделает инструмент/приборка, не отправляй вручную отредактированный дамп.
  3. Считай обратно и несколько раз выключи-включи питание, чтобы убедиться, что значение держится без ERROR.

Но есть один нюанс, о котором нужно сказать честно: отсюда я не могу подтвердить, охватывает ли профиль CarProg для приборной панели Mondeo именно эту ревизию (BS7T-14C026-CG) — это зависит от прошивки/версии его CarProg. Если функция подключается, но не принимает приборку, тогда запасным вариантом будет профиль UPA / Orange5 / CarProTool для BS7T.

bimo37 — перед записью проверь, что в твоей версии CarProg действительно есть опция пробега для приборной панели Ford Mondeo, и отпишись после проверки с выключением-включением питания. Спасибо pitin, что докопался до сути.
 

Сообщение #39

Odomaster делает это через OBD2, но через EPROM у меня не работает.
 

Сообщение #40

Да — это как раз подтверждает весь диагноз. То, что Odomaster делает это по OBD2, но не через EEPROM-чип, повторяет картину, которую мы видели во всей теме: через OBD приборка может сама внутри пересобрать свой checksum/зеркало, а при прямой записи EEPROM сопутствующие поля остаются неактуальными — именно поэтому bimo37 и получил ERROR.

Так что причина, почему «через EPROM не работает», не в твоей правке — слово одометра по адресу 0x774 было верным. Дело в том, что ни один офлайн-инструмент здесь (ETSMART, ручная правка, прямая запись CarProg/iProg) не пересчитывает вторичный checksum после 0x100 для этой ревизии BS7T-14C026-CG.

Для bimo37 самый чистый вариант — сделать через OBD2 на своей машине: воспользоваться в Odomaster функцией изменения пробега приборной панели, записать напрямую 309 400 км, дать приборке самой всё проверить, затем выключить и включить питание для подтверждения.

Два момента, которые стоит уточнить, pitin:

  • Когда ты говоришь, что Odomaster делает это по OBD2 — ты реально успешно менял пробег на Mondeo BS7T с его помощью или просто видел, что такая функция заявлена? Если делал, bimo37 сможет доверять этому варианту.
  • В меню Ford в твоей версии Odomaster конкретно указана поддержка Mondeo 2012 / приборки BS7T, чтобы он знал, что она примет его ревизию до покупки/использования?

Если OBD-профиль Odomaster поддерживает его приборку, то это и есть решение — больше не нужно править EEPROM офлайн.
 
Активность
Пока здесь никого нет