Записки юного кодувальника №2 (огляд E-SYS та прості кодування)

Опубліковано: 11 березня 09:29
Я їжджу на BMW 5 series (F10)
Львів, Україна

Через постійну зайнятість був вимушений відкласти трохи цей розділ та і поки BMW на цьому ресурсі досить мало, а тим більше аудиторії, яка буде цікавитись цією темою. Але все ж є надія, що колись це комусь буде у нагоді. Перший допис із програмним забезпеченням та описом про нього був ось тут. Завантажити програмне забезпечення E-SYS з яким я буду працювати також можна у попередньому дописі. Чому E-SYS? Це професійне програмне забезпечення яке дає необмежений доступ до вашого автомобіля, саме яким я і користуюсь. Хоча купував ліцензію на BimmerCode, нажаль функціонал його далекий від E-SYS і якщо потрібно зробити складні кодування, то робити це зручніше саме із ноутбуком.

Одразу додам важливу нотатку на тему "У мене Macbook Pro із М процесором на борту, чи можу я використовувати цей софт?". Одразу відповім, що НІ. Можливо ви зможете якось привести все у робочий стан, так як я не користуюсь технікою Apple, то нічого подібного спробувати самостійно і підтвердити я не можу. Якщо у вас є інформація як це зробити, як завжди "You're welcome" у коментарі. 

Після встановлення E-SYS 3.30.1 версії, який активований так званим TokenMasterом, у вас відтепер доступні два шляхи його використання:

  • запуститити офіційну неактивовану версію

  • запуститити його із використанням цього лаунчера


І яка між ними різниця? А одна суттєва, у взламаній версії нам доступне так зване FDL кодування. Що це, навіщо, ви дізнаєтесь коли дочитаєте цей допис до кінця. Наразі для вас це означає одне, що ви не зможете здійснювати конкретні кодування різних параметрів, які зазвичай можуть бути недоступні із заводським кодуванням. Тобто, без цього, закодувати яскравість "янгольських оченят", активацію відображення знаків за допомогою KAFAS в Україні, активацію чогось не передбаченим BMW із заводу в цілому - неможливо. Ви зможете все ще, додати якийсь блок та закодувати згідно вашої комплектації. Але про це все згодом.

Я особисто користуюсь іншою та свіжішою версією E-SYS, за яку заплатив гроші, але для цих дописів повернусь до версії 3.30.1 та усі скріншоти будуть стосуватись саме її.

Важливий аспект який ви маєте зрозуміти під час підключення до автомобіля потрібно увімкнути запалювання, усі кодування БАЖАНО проводити із пристібнутим ремнем безпеки, закритими дверцятами, увімкненим регулятором світла у режим "АВТО" і увімкненим клімат контролем. В цілому, якщо ви вже досвідчений кодувальник, то зможете проводити якісь "махінації" і у іншому режимі. Але якщо ви початківець, то рекомендую дотримуватись загальних правил. Також не рекомендується це робити на ходу, як от наприклад дуже поганою ідеєю є, кодувати на ходу, заведеним двигуном або навіть приглушеним за допомогою системи "START/STOP". Я багато вже експериментів проводив із кодуванням навіть на ходу, в цілому нічого страшного не відбудеться, якщо ви добре розумієте, як працюють усі модулі у вашому автомобілі, які кодування ви проводите і т.д. Але для початку краще уникати подібних ситуацій.

Також, під час запуску процесу кодування, краще переконатись, що ви ніяк не від'єднаєте ваш автомобіль від ноутбуку, усе живлення справно працює як і у автомобілі так і на пристрої з якого буде відбуватись кодування тощо. Але сподіваюсь, якщо ви серйозно збираєтесь пірнути у світ електроніки BMW, вам не потрібно пояснювати ці речі.

Ну і перебування у автомобілі на запалюванні у якому буде здійснюватись кодування, буде "висаджувати" ваш акумулятор. Для цього існують додаткові джерела живлення, але це мабуть точно не тема для цього запису.

Перше із чого усе починається, це саме підключення до автомобіля, за допомогою кнопки "Connect":

І якщо ви встановили усе правильно згідно інструкції яку я надавав, то ви будете бачити щось подібне:

Почнімо із основної секції, а саме вибір кузову, над яким ми будемо здійснювати усі маніпуляції, їх тут дуже багато і якщо для умовної F10 стає все зрозуміло, що є подібний проект, то наприклад F015 ви там точно не знайдете. Чому так? Якщо ви вже стикались із кодуванням E серії, то точно знаєте, що умовний E90, E91, E92 кузов вимагає наявності даних E089 для нього. Така ж система узагальнення працює і тут. Адже більшість кузовів дуже схожі між собою за електронікою яка знаходиться у всьому автомобілі. Тому між F06 та F10 з точки зору електроніки, взагалі немає ніякої різниці.

Тому залишу тут інформацію по усім кузовним даним, які наявні для бази 2022 року:

  • F001 - F01, F02, F03, F04, F07, RR4, RR5, RR6 (так, якщо ви здогадались у маркуванні RR, мова йде саме про Rolls-Royce, це все ще та ж сама BMW)
  • F010 - F05, F06, F07, F10, F11, F12, F13, F18
  • F020 - F20, F21, F22, F23, F30, F31, F32, F33, F34, F35, F36, F80, F82, F83, F87, F88
  • F025 - F15, F16, F25, F26, F85, F86
  • F056 - F39, F45, F46, F47, F48, F49, F52, F54, F55, F56, F57, F60
  • I001 - I01, I12, I15
  • I020 - I20
  • K001 - K10, K18, K19, K21, K22, K23, K32, K33, K34, K35, K45, K46, K47, K48, K49, K50, K51, K52, K53, K54, K61, K63, K66, K67, K69, K80, K81, K82, K83, K84, KM3, KM9 (все із приставкою K - це мотоцикли, про які я навряд чи детально можу розповісти, так як не стикався із подібним наразі)
  • KE01 - K07, K17
  • KS01 - K02, K03, K08, K09, K60
  • RR21 - RR21, RR22, RR25
  • S15A - F90, F97, F98, G01, G02, G11, G12, G13, G30, G31, G32, RR11, RR12, RR31
  • S15C - G08, G38
  • F18A - F40, F42, F44, F91, F92, F93, F95, F96, G05, G06, G07, G09, G14, G15, G16, G18, G20, G21, G22, G23, G24, G26, G28, G29, G42, G80, G81, G82, G83, G87
  • U006 - F65, F66, F67, F70, F74, F78, U06, U10, U11, U12, U25, U28 (U - це саме уже новий формат маркування кузовів BMW, до прикладу U11 - BMW X1 2022 року)

І так, обираємо, саме той кузов із яким будемо працювати. У моєму випадку ми будемо працювати із кузовом F10, так як на даний момент написання цього допису я володію саме цим автомобілем. Інші кузови ми будемо дуже поверхнево оглядати, адже приклади роботи з ними надати не маю можливості, через те що не володію іншими наразі :).

Наступний етап, це саме вибір з'єднання який ми будемо використовувати:

  • Connection via bus - E-SYS надає нам можливість буквально підключитись до модулю за будь-яким типом з'єднання доступним у автомобілі: MOST, ETHERNET тощо. Потрібен для підключення до конкретного модулю.
  • Connection via gateway URL - Із цим типом ми можемо підключитись до прикладу віддалено до іншого автомобіля за допомогою мережі інтернет, про що я створю інший допис, якщо подібні дописи взагалі будуть комусь цікаві та мені вистачить на це все сил та часу.
  • Connection via ICOM/D-CAN - цей тип підключення потрібно використовувати якщо ви володієте пристроєм ICOM.
  • Connection via ICOM/ETHERNET - цей тип підключення вже здійснюється напряму до основного модулю автомобіля, як і за допомогою ICOM, так і ENET кабелю. Саме цей тип підключення використовую я, так як підключаюсь якраз за допомогою ENET кабелю.
  • Connection via VIN - А ось це автоматизована система пошуку підключення у вашій мережі. В цілому, якщо ви підключились до автомобіля, то після натискання кнопки "Refresh" у вас має з'явитись у списку ваш автомобіль із VIN номером та IP адресою.

Саме якщо ви використовуєте подібне підключення як і я, то для вас доступні два останніх способи підключення до автомобіля. Натискаємо кнопку Connect та якщо отримали повідомлення про успішне підключення, можемо приступати до маніпуляцій із автомобілем.

І так розпочнімо з головного розділу який розташований у вкладці "Expert Mode" під назвою "Coding", який нам натякає на те що ми можемо зробити. 

І основа усього з чого складається електроніка нашого автомобіля це: Vehicle Order та SVT. 

Vehicle Order це уся інформація про поточний автомобіль, яка складається із він коду, номеру кузову, дати початкового інтеграційного рівня (версія заводського програмного забезпечення), комплектації, кольору кузову, оббивки салону та допоміжних кодів які визначають додаткові налаштування автомобіля. Ця тема настільки довга та цікава, що заслуговує окремого допису.

SVT - System-Verbau-Tabelle, вона ж таблиця налаштувань системи (прим. з німецької). В цілому якщо ви поринаєте у світ німецького автопрому, то маєте бути готові до великої кількості німецької мови. І так, за увесь час роботи із BMW мені вдалось дуже добре покращити свої знання німецької мови і хоч я не зможу замовити якусь страву у ресторані без англомовного меню, але добре розумію, як налаштувати фільтри на будь-якому німецькому сайті з продажу автомобілів. SVT - це уся інформація про усі модулі у вашому автомобілі, версія програмного забезпечення, файли кодувань, різні допоміжні модулі, версія апаратного забезпечення тощо. Про це все згодом.

І важливою частиною для усього кодування також є наявність двох кнопок "Read VCM" та "Read ECU".

VCM - Vehicle Configuration Management та ECU - Electronic Control Unit. У даному випадку різниця дуже проста, під час спроби зчитати VCM буде зчитуватись інформація блоків записана у самому автомобілі та ECU із зчитуванням усіх модулів підключених у даний момент до автомобіля. При більшості маніпуляцій рекомендую використовувати саме "Read ECU". Який дає змогу отримати максимально актуальний список усіх модулів які є у нашому автомобілі. Також під час підключення нових модулів вони будуть відображатись саме під час зчитування ECU, так як VCM, у якому міститься інформація у незалежній пам'яті автомобіля, не буде містити цієї інформації.

Дуже хорошим прикладом роботи VCM є саме підключення діагностики типу Rheingold/ISTA, який виводить усі модулі у вигляді дерева саме із пам'яті автомобіля. І до прикладу у мене після встановлення NBT EVO замість CIC, дерево виглядало ось так:

Це все встановлювалось через ретрофіт дуже нехорошими людьми із дуже нехорошого сервісу, тому вони зробили усе криво не оновивши VCM автомобіля. І що ми отримали у результаті. Ми бачимо HU-H (NBT EVO), який присутній у автомобілі, KOMBI, який хоч і підключений та працює, але через ретрофіт адаптер не виходить на зв'язок. Але найголовнішим є те, що все ще у системі присутній CBX-MEDIA (ComBox) та CID (дисплей CIC), яких фізично не існує у автомобілі, але діагностика дуже активно намагається вийти із ними на зв'язок. VCM у цьому випадку дуже важливий, адже, якби якийсь модуль у нашому автомобілі, який передбачений та має працювати справно - вийшов з ладу, то ми якби ISTA/Rheingold робив усе через ECU, не дізнались би навіть про існування цих модулів.

Але у випадку E-SYS під час саме кодування, довстановлення тощо, не сильно переймаємось зазвичай про те, які модулі записані у автомобілі, тому я рекомендую використовувати саме "Read ECU", але розуміння цієї різниці, я сподіваюсь допоможе вам використовувати ефективно цей функціонал. Про оновлення VCM я також згадаю у іншому дописі.


Розпочати роботу потрібно саме із зчитування поточної комплектації автомобіля, яка зберігається також у пам'яті. Тому натискаємо клавішу "Read" та обов'язково із натисканням правої кнопки миші активовуємо її. Що це означає? Під час натискання клавіші "Activate FA", E-SYS перевіряє файл на цілісність, на те чи наша версія PsdzData дозволяє обробити усі опції які у ньому наявні. До прикладу, якщо спробувати це зробити із базою PsdzData 2013 року, у автомобілі 2015 року із NBT EVO із опцією 6CP - CarPlay Preparation, ви отримаєте помилку, так як E-SYS не розуміє, що робити йому із цією опцією, про яку він нічого не знає.

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

Після активації Vehicle Order (FA), натискаємо "Read ECU" про який я згадував раніше

І як результат з'являється увесь список модулів які присутні у моєму автомобілі, а їх назбиралось за останні роки дуже багато. В цілому не кожна F01/F02 може потягатись по кількістю цих модулів з цим автомобілем.

Давайте розглянемо структуру одного із модулів, у даному випадку NBT EVO, який по наповненню є одним із найбільших модулей і його оновлення займає найбільше часу:

BTLD - це так званий "бутлоадер", частина програми модулю з якої відбувається його запуск. Є одним із найважливіших і у випадку, якщо злетить ця його частина, відновити його буде дуже складно.

CAFD - файл кодування, у якому містяться усі конфігурації і з якими ми будемо надалі працювати.

ENTD - актуальний мабуть тільки для модулю мультимедії, так як це "Gracenote DB", яка містить зображення альбомів для різних аудіокомпозицій.

HWEL, HWAP - апаратна частина та її версія, практично будь-яку частину модуля можна оновити, апаратну версію оновити не вийде ніяк, окрім фізичної заміни модулю на іншу :)

IBAD - теж унікальна частина, яка присутня тільки у мультимедійному модулі, яка містить інформацію про інтерактивний посібник з експлуатації.

NAVD - база навігації із картами.

SWFL - усе програмне забезпечення модулю.


Є і модулі, які не містять файлів CAFD (кодувань) і це в цілому є нормальним явищем, як наприклад для модулю гейтвею (ZGW).

І так, як я писав раніше, працювати під час кодування, ми будемо тільки із відповідними файлами, а саме із CAFD. І у випадку, якщо ми хочемо зчитати поточні кодування модулю, то натиснувши правою кнопкою миші по CAFD файлу, у нас буде змога прочитати їх за допомогою кнопки "Read Coding Data".

Про успішне виконання цієї операції ми отримаємо одразу повідомлення, та цей файл розшириться у E-SYS із NCD файлом який буде зберігатись на поточному комп'ютері.

Уже у наступній директорії CAFD файла, ми можемо знову натиснути праву кнопку миші та побачимо "EDIT FDL" (FDL - Function Data Lists).

І уже у зручному інтерфейсі зможемо переглядати усі кодування доступні для поточного модулю із врахуванням його версії та версії самого файлу кодувань.

Так як модуль який ми зчитували у моєму випадку, це панель інструментів (нім. KOMBI/DKOMBI). То закодуємо дуже просту функцію, яка практично ніколи недоступна як заводська, а саме "Компас". За допомогою функціоналу пошуку, ми можемо шукати щось із використанням ключових слів, у даному випадку конкретний пункт кодувань мені відомий - "KOMPASS_GRAPH_ENABLE".

І одразу можемо звернути увагу, на те, з чого складається кожен параметр. У ньому міститься інформація про усі можливі конфігурації цього параметра, у даному випадку "aktiv" та "nicht_aktiv". Інколи також може бути присутній опис (зазвичай німецькою). Та значення яке він проставляє у самому кодуванні. Так як параметр є простим, то йому доступні два стани true або false, aktiv або nicht aktiv, 01 або 00.

І у самому низу ми бачимо, що поточна його конфігурація (werte) це 00 або nicht_aktiv. Які ми можемо змінити за допомогою натискання на цей елемент та вибору параметру який нам потрібен.

Обираємо aktiv та продовжуємо.

Обов'язково, після завершення кодування, потрібно натиснути кнопку "Save", так як файл який ми змінюємо знаходиться локально на нашому комп'ютері та саме із нього буде здійснюватись кодування.

Після виходу у попередній розділ "Coding", після натискання на файл який ми тільки що змінювали, ми можемо натиснути "Code FDL", що розпочне процес кодування.

Перед тим, як ви це натиснете, переконайтесь, що одразу після початку кодування комп'ютер не вимкнеться, розрядиться тощо. А також, що ви ніяк не зачепите кабель ENET який під'єднаний до комп'ютера на даний момент.

Після того, як увесь процес кодування завершиться, ви отримаєте подібне повідомлення:

Що буде означати, що кодування завершене. Ну і також потрібно зауважити, так як запалення ввімкнене та автомобіль готовий до роботи, то після процесу кодування модуль автомобіля буде перезапущено, що може спровокувати автомобіль на безкінечне генерування помилок, пов'язані із цим модулем, а також тими, які залежні від нього. Що в цілому є нормальним, лякатись не потрібно. Усі ці помилки будуть записані у систему та їх можна просто очистити за допомогою діагностичного програмного забезпечення. Після перезапуску автомобілю, вони не будуть з'являтись знову (якщо ваші кодування були правильні звичайно).


І у моєму випадку у бортовому комп'ютері панелі інструментів з'являється новий функціонал, а саме компас:

Який до речі працює дуже точно, адже система навігації автомобіля вимагає точної роботи системи GPS.


Наразі це все, далі буде...

19 3

Коментарі

Щоб залишати коментарі, потрібно авторизуватись.
Я їжджу на BMW X3 (F25)
Норм тема, BimDoc по українськи =)
12 березня 10:10
Я їжджу на BMW 5 series (F10)
Чекаю на продовження з нетерпінням)
12 березня 07:47
Я їжджу на BMW X3 (F25)
"яка практично ніколи недоступна як заводська, а саме "Компас"- доступна на 6wa по заводу)
12 березня 00:54
Я їжджу на BMW 5 series (F10)
oleh_o, дуже рідко бачив) навіть не у всіх американцях могла бути із заводу. На європейських автомобілях побачити її нереально в BMW
12 березня 11:33
Я їжджу на BMW X3 (F25)
"Я особисто користуюсь іншою та свіжішою версією E-SYS, за яку заплатив гроші, але для цих дописів повернусь до версії 3.30.1" - які переваги надає новіша версія?
12 березня 00:52
Я їжджу на BMW 5 series (F10)
oleh_o, краще інтерфейс, багато різних додаткових функцій. Але в плані, якщо робити кодування і цієї достатньо. Новіша нічого не дасть. Що, що, а саме функціонал оновлення блоків у новішій версії зрозуміліше і допомагає зробити менше помилок)
12 березня 11:34
Я їжджу на Volkswagen Passat CC
Я на тебе в суд подам 😉😂
11 березня 13:04
Я їжджу на BMW 5 series (F10)
Dido, за шо) за те що у тебе Passat CC і ти не можеш підкодувати щось із моїми чудо інструкціями?)😂
11 березня 13:23
Я їжджу на Volkswagen Passat CC
DimAssBMW, Йди в.....😂😂😂
11 березня 13:23
Я їжджу на BMW 5 series (F10)
Dido, ❤️❤️❤️❤️
повернешся знову у світ BMW, ще дякую скажеш)

11 березня 13:24
Я їжджу на Volkswagen Passat CC
DimAssBMW, Та ну, я знаю де ти є, що б закодував)))
11 березня 13:27
Я їжджу на BMW X3 (F25)
О, це клас, цей запис буде в нагоді як раз)
Купив рестайлову панель клімату, і наче її треба буде прописувати якось. Есіс вже скачав, хочу спробувати це все зробити самостійно) якщо що буду тобі писати)
11 березня 12:10
Я їжджу на BMW 5 series (F10)
Andrey_BMWDNA, без проблем, завжди радий допомогти
11 березня 12:17
Я їжджу на BMW 5 series (F10)
Andrey_BMWDNA, тут правда трохи інструкція інша потрібна, але якщо будуть питання, звертайся, там буде нескладно, окрім того, як закодувати правильно рестайлінгову панель у дорестайлінговому автомобілі.
11 березня 12:25
Я їжджу на BMW X3 (F25)
DimAssBMW, це цікаво, головне нічого не зламати) бо це вперше буде)
11 березня 12:33
Я їжджу на BMW 5 series (F10)
Andrey_BMWDNA, там зламати важко буде) оновлення блоків завжди ризикований процес, а кодування звичайна справа і щоб щось зламати, потрібно дуже постаратись
11 березня 12:38
Я їжджу на BMW X3 (F25)
DimAssBMW, це радує)
11 березня 12:49
Я їжджу на BMW X3 (F25), BMW 3 series (F30)
Andrey_BMWDNA, хех, теж взяв рейстайлову панель клімату але на F30. Ще й з амбіенс лайт. Вже встановив, але ще не кодував. Як на диво все, окрім зміни кольору підсвідки, працює) Потім викладу запис, як все дороблю.
11 березня 14:51
Я їжджу на BMW X3 (F25)
yuga, моя теж буде працювати, але без кодування буде працювати неправильно, може так і на f30
11 березня 15:05