Перепрошивка TCB-4G в ATM: теорія та практика
Наступним кроком стала спроба перепрошити TCB-4G у ATM.
Ті, хто коли-небудь перепрошивали ZGW-01 у ZGW-02, добре розуміють суть задачі.
Потрібно:
зчитати SVT-Actual автомобіля
згенерувати правильний SVT-Target
розрахувати TAL
і вже після цього прошивати блок
Проблема полягала в тому, що в F10 штатно не встановлювався ATM. Тобто згенерувати SVT-Target під свій FA просто неможливо. Найпростіший варіант - тимчасово змінити в FA ідентифікацію кузова на F06 або F12 пізніх років випуску. Ці моделі мають спільну платформу з F10 і штатно оснащувалися ATM.
Після зміни FA я згенерував SVT-Target для F06 і зберіг його.
Далі цей файл використовувався лише як референс для назв та версій софту.
Схема була такою:
беремо свій SVT-Actual
копіюємо його
завантажуємо копію замість SVT-Target
вручну редагуємо назви та версії SWFL / BTLD / FLSL відповідно до референсу F06
У результаті має вийти модифікований SVT, який “імітує” ATM.
Після цього генерується TAL і починається оновлення блоку.
Перша проблема: FLSL
На першому ж кроці FLSL не захотів оновлюватися. Процес доходив до 100%, після чого з’являлася помилка. Довелося редагувати TAL-файл, щоб пропустити оновлення FLSL.
Далі почалося оновлення BTLD - і воно пройшло успішно.
Це важливий момент. Якщо BTLD оновився коректно, значить блок уже навряд чи буде “вбитий”.
Оновлення SWFL
Далі система почала заливати чотири SWFL-файли:
два невеликі
два великі
Малі файли встановилися без проблем.
Великі - приблизно по 40 хвилин кожен.
Після завершення встановлення з’являлася помилка:
“job failed with negative response”
Але при цьому в дереві ECU було видно, що софт фактично встановився.
Тому я продовжив і залив усі SWFL до кінця.
У підсумку, приблизно через дві години:
всі SWFL встановлені
BTLD оновлений
блок живий
Але конфігурацію він приймати не хоче.
Система видає помилку SOS.
Це означало, що програмно блок ще не став ATM повністю.
На цьому етапі я зібрався і поїхав додому.
Стенд для прошивки на столі
Після кількох двогодинних сесій у гаражі стало зрозуміло, що так експериментувати більше не хочеться.
Було прийнято рішення зібрати мінімальний конфіг для прошивки блоку на столі.
Я придбав ZGW-02 High за 350грн.
Трохи “колхозу” з проводкою - і в мене з’явився стенд для кодування та прошивки.
Після цього було витрачено ще багато часу на спроби перепрошити TCB-4G.
Результат кожного разу однаковий:
прошивка стає
блок завантажується
але конфігураційний файл не приймається
Після кількох повторів стало очевидно, що адекватний ліміт часу на експерименти вже перевищений.
Я перепрошив TCB-4G назад у його штатний софт, залив рідний конфіг, переконався що блок працює коректно - і відклав його в сторону з думкою продати.
Експеримент з ATM: ще глибше в проблему
Після невдалих спроб з TCB-4G я вирішив підключити блок ATM до свого стенду.
Задача була проста:
подивитися версії софту
залити конфіг
при необхідності оновити до останньої доступної версії
ATM підключається до ZGW так само, як і TCB.
Блок вийшов на зв’язок без проблем. Конфігурація успішно залилася.
Але далі мене “смикнуло” перевірити, чи є доступне оновлення софту. Блок 2015 року, і виявилося, що оновлення є.
Далі - стандартна процедура:
читаємо SVT-Actual
генеруємо SVT-Target
розраховуємо TAL
запускаємо оновлення
FLSL проходить успішно.
BTLD - теж успішно.
Два маленькі SWFL заливаються без проблем.
Починається великий SWFL - 100%, і помилка.
Підозріло.
Повторюю процедуру - обидва великі файли стають без помилок.
Залишається конфігурація - і тут сюрприз.
Конфіг не приймається.

Повна копія поведінки TCB-4G.
З робочого блоку, який потрібно було просто встановити в авто, я отримав “напівмертвий”.
Почав шукати інформацію на форумах. Є згадки, що в BMW були проблемні партії ATM, і навіть сервісні бюлетені по ним.
Ситуація неприємна: софт оновлений, а повернутися на стару версію неможливо, бо в моїх базах навіть немає тієї старої прошивки 2015 року.
Спроби знайти причину
Я почав перевіряти всі можливі варіанти.
Перше - можливо, проблема в мережі.
Мій стенд працював через роутер, ноутбук був підключений по WiFi. Була ймовірність, що під час оновлення злітає з’єднання.
Друге - живлення.
Можливо, мій блок живлення занадто слабкий, просідає напруга, і ATM “засинає” під час довгого оновлення.
Третє - саме оновлення триває надто довго.
На стенді великі SWFL шилися майже по 40 хвилин. Є відчуття, що всередині блоку щось переходить у sleep-стан, і прошивка стає криво.
Перші два пункти я перевірив - проблема не в них.
А от із третім було складніше.
Щоб прошивати блок швидко, його потрібно підключити по Ethernet.
Але ATM працює по одній диференціальній парі (Automotive Ethernet), і нормально “підружити” його з роутером чи ZGW на столі не вийшло.
Отже, залишався лише один варіант - прошивати блок у машині.
Прошивка ATM в автомобілі
Я зібрав перехідник, щоб підключити ATM до штатної проводки автомобіля. Не найкрасивіше рішення, але функціональне.
У гаражі:
підключив ATM
підключив Ethernet-лінію
перевірив на роутері, що ATM отримав IP-адресу
Все працює.
Запускаю оновлення з уже підготовленим TAL.
Менше 5 хвилин - і софт встановлено.
Не 2 години, як на столі.
Заливаю конфігурацію - вона стає без проблем.
Блок читається діагностикою, працює коректно.
У цей момент приходить дуже проста думка.
А що, якщо проблема була не в прошивці, а в способі підключення?
У схемах BMW не вказано, що TCB-4G має Ethernet.
Але якщо згадати фото з першої частини - плати TCB-4G та ATM практично ідентичні.
І на обох встановлений контролер Broadcom.
Це означає, що апаратно підтримка Ethernet є.
Я прозвонив доріжки від Broadcom до роз’єму блоку.
Результат:
ETH_RX+ - PIN 10
ETH_RX- - PIN 9
Підключаю.
Заходжу на роутер - в мережі з’являється новий клієнт.
З’являється легкий оптимізм.
Повторна прошивка TCB-4G - вже по Ethernet
Оскільки версії софту в TAL для ATM та TCB-4G співпадали, я просто запустив той самий TAL, який використовував для ATM.
І що маємо?
Менше 5 хвилин - блок прошився без помилок з першого разу.
Найголовніше питання - чи прийме він конфіг?
Прийняв.

Перевірка в NBT EVO
Зайшов у сервісне меню NBT EVO.
EVO бачить координати.
Навігація спочатку показує мене десь в океані.
Я встановлюю TCB-4G на штатне місце в багажнику, збираю все назад і виїжджаю з гаража.
Через кілька сотень метрів навігація приходить до тями і починає показувати реальну позицію.
Висновок
Після заливки конфігурації всі помилки зникли.
Блок працює коректно, діагностикою читається і визначається як ATM.
Це означає головне:
Для роботи штатної навігації з NBT EVO не обов’язково встановлювати фізичний блок ATM.
Достатньо мати TCB-4G, перепрошитий у ATM.
Переваги такого рішення очевидні:
не потрібно виготовляти перехідник під проводку ATM
використовується штатний роз’єм TCB
достатньо подовжити GPS у багажник
Ethernet можна прокласти через існуючий HSD-кабель
Якщо у вашому автомобілі за роком випуску вже встановлений TCB-4G - вам пощастило.
Купувати ATM не потрібно. Достатньо правильно перепрошити свій блок.
Таким чином TCB-4G повністю замінює ATM для задачі передачі GPS-координат у NBT EVO.
P.S.
Блок ATM, який використовувався для тестів, виставлений на продаж.
Якщо комусь потрібен - пишіть у приватні повідомлення.