Open ASC — як я створив власну систему керування пневмопідвіскою для Audi C7
Ідея Open ASC насправді з’явилася ще задовго до того, як я почав щось паяти, писати код(писати я і не вмію, але є чудо-чудесне GPT) чи розбиратися в сигналах автомобіля.
Ще до придбання своєї Audi я бачив у продажу модуль заниження пневмопідвіски CETE ASC. Річ крута: встановлення Plug&Play, можливість змінювати висоту автомобіля, готове рішення без необхідності щось вигадувати самому.
Але була одна проблема — ціна.
Новий модуль коштував приблизно 1100–1200 євро. Уже після придбання своєї Audi думки про CETE ASC періодично не давали мені спокою. Я постійно переглядав оголошення в Німеччині, шукав б/у варіанти, але дешевше приблизно 650 євро майже нічого не траплялося.
Та й хороші варіанти довго не лежали.
Особливо в сезон такі модулі продавалися досить швидко.
І одного вечора мені в голову прийшла дуже проста, але, як виявилося пізніше, доволі небезпечна для мого вільного часу думка:
«А чого б не спробувати створити такий модуль самому?»
На той момент я ще не зовсім розумів, у що вплутуюся.
Я починав практично з нуля
Важливий момент: я не електронщик, не програміст автомобільних блоків і взагалі був новачком у цій темі.
До початку Open ASC я не мав досвіду створення подібних автомобільних пристроїв.
Але було бажання розібратися.
І був ChatGPT.
З цього все й почалося.
Перші два місяці проєкту зараз можна описати приблизно так:
ChatGPT, мати, паяльник, мікросхеми, замовлення з AliExpress, очікування посилок, знову пайка, знову замовлення, тисячі логів з автомобіля, сотні помилок, нові теорії та нескінченні тести.
Щойно здавалося, що я нарешті зрозумів принцип роботи системи, наступний тест міг повністю зруйнувати попередню теорію.
І все починалося спочатку.
Саме так я і вчився.
Не за підручником.
Не маючи готової схеми перед очима.
А через власні помилки.
Момент, коли я мало не розбив ноутбук
Десь приблизно через місяць роботи над проєктом стався момент, який я точно запам’ятаю.
Ми вже пройшли купу тестів, вимірювань, логів, я перепаяв не одну схему, зібрав багато інформації про роботу пневмопідвіски — і в якийсь момент ChatGPT повідомив мені, що не буде писати фінальний код, тому що це втручання в систему автомобіля.
У той момент я реально думав, що розіб’ю свій ноутбук.
Місяць роботи.
Купа тестів.
Купа деталей.
Купа вечорів біля машини.
І тут — все.
Але здаватися вже було пізно.
У моєї дружини для роботи була інша платна версія ChatGPT Pro. Спробували продовжити там — і цього разу робота над програмною частиною пішла далі.
Щоправда, майже все довелося починати заново.
Новий контекст.
Нові тести.
Нові логи.
Нові вимірювання.
Знову пайка.
Знову автомобіль.
Знову помилки.
Але цього разу я вже набагато краще розумів, що саме шукаю.
Від простої ідеї до Open ASC
Спочатку мені здавалося, що подібний модуль буде досить просто повторити.
Є автомобіль.
Є пневмопідвіска.
Є датчики висоти.
Десь треба змінити сигнал — і машина стане нижче.
На практиці все виявилося набагато цікавіше.
Перші експерименти були пов’язані з обміном даними між електронними блоками автомобіля.
Я почав аналізувати, як машина розуміє режими:
Comfort
Auto
Dynamic
Lift
Потім перейшов безпосередньо до датчиків положення кузова.
Спочатку я взагалі неправильно зрозумів принцип їхньої роботи.
Мені здавалося, що я маю справу зі звичайним аналоговим сигналом.
Пізніше, після великої кількості вимірювань і тестів, стало зрозуміло, що все працює значно складніше.
І це відкриття фактично змусило переробити концепцію всього Open ASC.
Чому Open ASC відрізняється від звичайного заниження через діагностику
Одним із головних завдань було зробити не просто статичне зміщення висоти.
Наприклад, через діагностику можна змінити базову висоту автомобіля.
Але якщо умовно опустити автомобіль на 10 мм, зміщення впливатиме на всю систему.
Мені цього було мало.
Я хотів, щоб кожен режим Audi Drive Select можна було налаштовувати окремо.
І зараз Open ASC це вже вміє.
Наприклад:
Dynamic можна зробити -10 мм.
А Comfort водночас +10 або +20 мм.
Auto можна залишити на своїй висоті.
Або налаштувати зовсім інакше.
Тобто різниця між режимами більше не прив’язана тільки до заводських значень.
Кожен режим можна налаштовувати незалежно.
Для мене саме це і є одна з основних переваг системи.
Drive Select залишається заводським
Я не хотів ставити в салон окремі кнопки «вище» і «нижче».
Навіщо, якщо Audi вже зробила Drive Select?
Логіка проста.
Я вибираю на автомобілі:
Comfort → Auto → Dynamic
і Open ASC розуміє, який режим увімкнено, та застосовує до нього відповідне налаштування висоти.
Тобто з точки зору водія все залишається максимально близьким до заводської логіки.
Сів.
Завів автомобіль.
Вибрав потрібний Drive Select.
Поїхав.
Чотири колеса — чотири незалежні канали
Ще один принциповий момент Open ASC — система не працює з автомобілем як з одним умовним значенням висоти.
Контролюється кожен кут кузова окремо:
переднє ліве;
переднє праве;
заднє ліве;
заднє праве.
Система аналізує сигнали з автомобіля, перевіряє їхню стабільність і тільки після цього переходить до активного керування.
Саме тут було дуже багато роботи.
Тому що автомобіль не можна просто обдурити одним випадковим значенням і сподіватися, що все буде добре.
Система повинна працювати стабільно й передбачувано.
BYPASS — одна з найважливіших речей
Ще на етапі прототипу я хотів закласти одну принципову функцію — BYPASS.
Якщо Open ASC з якоїсь причини зависне, перезавантажиться, втратить живлення або станеться інший форс-мажор, автомобіль не повинен залишитися залежним від мого модуля.
Тому реалізований автоматичний перехід назад на штатне керування.
У нормальному стані Open ASC може керувати висотою.
У випадку проблеми автомобіль повертається до заводської системи.
Open ASC повинен доповнювати Audi, а не ламати її заводську архітектуру.
А тепер причина, через яку, по суті, весь цей проєкт і почався.
Show Mode.
Я хотів мати можливість поставити машину максимально низько.
Не для щоденної їзди.
Не для того, щоб так літати трасою.
А просто щоб припаркувати автомобіль, активувати режим і зробити гарні фото, коли Audi лежить буквально «на пузі».
Звучить, можливо, трохи смішно.
Особливо якщо згадати, скільки годин роботи пішло заради цієї функції.
Але саме Show Mode був однією з головних причин, через які я взагалі почав цей проєкт.
Зараз автомобіль уже опускається дуже низько.
Але ще не настільки, як мені хочеться.
Тому робота над Show Mode продовжується.
Від першого повідомлення про ідею створення власного модуля до реально працюючого Open ASC минуло приблизно два місяці.
Два місяці тому я практично нічого не знав про те, як працюють такі системи.
А сьогодні модуль уже стоїть на автомобілі та працює.
Він уміє:
окремо змінювати висоту Comfort;
окремо налаштовувати Auto;
окремо налаштовувати Dynamic;
піднімати або опускати кожен режим незалежно;
працювати разом із заводським Drive Select;
автоматично переходити в BYPASS у разі проблем;
активувати Show Mode для максимального заниження.
Поки що все це зроблено у вигляді макетної версії.
І я чудово розумію різницю між фразами:
«воно працює»
та
«це готовий автомобільний продукт».
До другого ще є шлях.
Наступний етап — нормальний готовий модуль
Макет довів головне — концепція працює.
Тепер я хочу забрати всі тимчасові рішення та створити повноцінний пристрій.
Наступна версія Open ASC повинна бути зібрана на одній власній платі, у компактному корпусі, без купи окремих модулів і проводів усередині.
Також я хочу перейти на більш серйозні й авторитетні компоненти, які краще підходять для роботи в автомобільному середовищі.
У готовій версії повинні бути:
власна PCB;
компактний корпус;
автомобільні роз’єми;
надійна система живлення;
апаратні захисти;
контроль помилок;
автоматичний BYPASS;
захист від некоректних сигналів;
збереження налаштувань;
керування зі смартфона.
Конкретні мікросхеми, схема та внутрішня логіка при цьому вже залишаться частиною самого Open ASC.
Я вчився на помилках
Мабуть, саме це для мене найважливіше в усій цій історії.
Я десятки разів помилявся.
Бували неправильні припущення.
Бували невдалі схеми.
Був код, який працював зовсім не так, як повинен.
Були години логування автомобіля.
Були моменти, коли здавалось, що я зайшов у глухий кут.
Бувало, що одна маленька деталь перекреслювала кілька днів попередньої роботи.
Але практично кожна помилка давала якусь нову інформацію.
Тому через два місяці я знаю про цю систему в десятки разів більше, ніж у день, коли вперше подумав:
«А чого б не зробити самому?»
Що буде далі
Open ASC для мене вже перестав бути експериментом на один вечір.
У планах:
власна автомобільна плата;
компактний корпус;
налаштування кожного Drive Select режиму;
повноцінний Show Mode;
керування та конфігурація зі смартфона;
діагностика;
збереження користувацьких параметрів;
автоматичний BYPASS;
подальше тестування на інших автомобілях платформи C7.
Першими автомобілями, на які орієнтований Open ASC, є:
Audi A6 C7 / 4G
Audi A7 C7 / 4G
Audi RS6 C7 / 4G
Audi RS7 C7 / 4G
думаю A8 тих років також
Open ASC
Все почалося з того, що я не хотів віддавати більше тисячі євро за готовий модуль.
Потім з’явилася дурна думка:
«А може, зроблю сам?»
Далі були два місяці матів.
Пайки.
Замовлень.
Логів.
Помилок.
Переробок.
Безсонних вечорів.
І моментів, коли хотілося все кинути.
А потім одного дня я натиснув кнопку — і Audi почала опускатися саме так, як я хотів.
Ось тоді я зрозумів:
ми це зробили.
Поки що це прототип.
Попереду ще дуже багато роботи.
Але Open ASC уже існує.
І він уже працює.
Open ASC
Open Air Suspension Control
Створено не тому, що я знав, як це зробити.
Створено тому, що мені стало цікаво, чи зможу я.
Повага, однозначно.
Успіху в проекті, реально круто.
Якщо потрібно - зможу допомогти з тестуванням. Можу підписати NDA.