Коли я почав готувати CaRadio до встановлення у Volkswagen Golf, насамперед вирішив спробувати використати штатну магнітолу RCD510.
Схожий досвід у мене вже був із Mystery у Volkswagen T4. Тоді готова магнітола стала основою для власного пристрою, і мені здалося логічним повторити цей підхід.
До того ж RCD510 вже ідеально вписувалася в інтер'єр Golf. Залишалося розібратися, що з її електроніки можна зберегти, а що доведеться замінити.
Що всередині RCD510
Після розбирання стало зрозуміло, що RCD510 влаштована помітно складніше, ніж магнітола, з якою я працював раніше.
Тут була не просто плата підсилювача з кількома кнопками. Основна електроніка, дисплей і керування магнітолою були тісно пов'язані між собою.
Спочатку я розраховував зберегти оригінальну плату, використовувати її підсилювач і штатне керування живленням, а замість рідного екрана встановити дисплей Waveshare, підключений до Raspberry Pi.
У теорії все виглядало цілком розумно. Навіщо збирати власну схему живлення й купувати окремий підсилювач, якщо необхідні компоненти вже є всередині магнітоли?
Але спочатку потрібно було розібратися, як усе це вмикається.
Перші успіхи на столі
Поступово мені вдалося знайти на платі точки, що відповідають за керування живленням.
Це було важливо, оскільки я хотів зберегти штатну логіку ввімкнення магнітоли. Автомобіль надсилає команду по CAN-шині, RCD510 прокидається, а разом із нею отримує живлення Raspberry Pi.
Перші випробування проходили на столі.
Магнітолу доводилося вмикати вручну й вводити PIN-код. Після цього вона продовжувала працювати навіть тоді, коли я відключав плату штатного екрана.
У якийсь момент конструкція виглядала практично готовою. Raspberry Pi запускалася, знайдені сигнали керування живленням працювали, а оригінальна електроніка магнітоли продовжувала виконувати своє завдання.
Здавалося, що залишилося тільки встановити все в автомобіль.
В автомобілі все виявилося інакше
Але після встановлення в Golf почалися проблеми.
В автомобілі RCD510 розблоковувалася вже через CAN-шину, без ручного введення PIN-коду. І саме в такому режимі з'ясувалося, що без плати штатного екрана основна електроніка відмовляється нормально працювати.
Магнітола йшла в циклічне перезавантаження.
Ще неприємніше поводилися знайдені точки керування живленням. На столі вони працювали передбачувано, а в автомобілі сигнали почали постійно перемикатися: живлення то з'являлося, то зникало.
У результаті Raspberry Pi могла почати завантаження, але домогтися стабільної роботи всієї конструкції не вдавалося.
Чому RCD510 настільки по-різному поводилася на столі та в автомобілі, я тоді так і не з'ясував. Можливо, справа була в послідовності запуску або залежності основної плати від електроніки дисплея.
Розібратися з цим було б цікаво, але часу на подальші експерименти практично не залишалося.
Коли надійність важливіша за експерименти
Попереду була далека поїздка, а мені вже була потрібна працююча навігація.
Звісно, можна було продовжувати досліджувати RCD510, шукати причину перезавантажень і намагатися обійти обмеження штатної електроніки.
Але виникло інше питання: наскільки безпечно залишати таку конструкцію в автомобілі?
Якщо CaRadio зависне або перестане відтворювати музику, це неприємно, але не критично. А от якщо через неправильне керування живленням електроніка не засне після вимкнення автомобіля й за час стоянки розрядить акумулятор, наслідки будуть зовсім іншими.
Тому я вирішив відмовитися від використання оригінальної основної плати RCD510.
Замість неї купив готовий модуль підсилювача. Це означало, що живлення та інші функції доведеться організувати самостійно, зате більше не потрібно було залежати від поведінки штатної електроніки.
Не зовсім той результат, який планувався
Спочатку я хотів зберегти якомога більше компонентів RCD510 і просто додати до них Raspberry Pi з CarPlay.
У результаті вийшло майже навпаки: штатна електроніка виявилася надто складною для швидкої переробки, і довелося рухатися в бік повністю власної начинки.
Залишалося зібрати все разом, вирішити питання з живленням Raspberry Pi й домогтися нормальної роботи в автомобілі.
І тут теж не обійшлося без компромісів.
Втім, про це вже в наступній статті.