Дошли руки до описания подключения мультируля от Golf 7 к платформе mk4. Долго я искал время чтобы описать этот процесс, да и рассказчик я тот ещё)
И так, на большинстве вагах мультируль общается с магнитолой через кан шину. Штатно, между рулём и магнитолой также устанавливается дополнительный блок, назовём его "шлюз", который преобразует сообщения, передаваемые по LIN шине мультируля в сообщения для CAN шины, которые воспринимает магнитола.
Немного теории:
CAN шина — это линия связи, обычно 2-х проводная, при помощи которой различные блоки обмениваются информацией между собой. Грубо говоря, все блоки шлют в шину сообщения с различными идентификаторами и данными. Каждый из блоков слушает необходимые ему сообщения и преобразует условные величины из нужных байт информации в понятные ему величины.
К примеру обороты двигателя передаются с идентификатором 0x353. Сообщение: 00 AA XX YY ZZ BB DD CC Значения оборотов двигателя хранятся в 2 и 3 байтах и преобразуются в понятные для нас величины по формуле: (XX*(2^8)+AA)/4. Подсветка кнопок салона и приборки передаётся с ID 0x635 с посылкой XX FF 00, где XX — это величина яркости подсветки (00 — выкл., 5D — 100% яркости). Идентификаторы сообщений для управления окнами это: 0x181, 0x3B5, 0x4B9 и 0x4BD, также центральный замок. Расшифровываются сообщения достаточно просто, пишем лог, выполняем какие-то действия с автомобилем, замечаем какие сообщения меняются, записываем лог, воспроизводим, при необходимости повторяем действия заново.
Как пример, отслеживания оборотов в can шине:
Шлюз, который бы преобразовывал сообщения из одной шины данных в другую было решено изготовить на базе Arduino uno т.к. больших знаний в схемотехнической части у мены нет. Для подключения Arduino к CAN шине автомобиля использовался модуль MCP2515 с интерфейсом SPI. Примеров по нему достаточно, но подобрать правильную библиотеку для китайского экземпляра оказалось не просто. Оригинальный модуль имеет кварц 16МГц, а китайский 8МГц. Магнитола подключена к кан шине комфорта. Работает со скорость 100 кбит/с. В моторной кан шине, конечно, передаётся на много больше интересной информации, но куда эту информацию применить я ещё не придумал. Продолжим…
Появилась возможность просканировать кан шину автомобиля с помощью CAN хакера. Дело сдвинулось с мёртвой точки. В тот же вечер нашёл готовые скетчи для подключения ардуино к ПО от кан хакера и вычислил большую часть сообщений в кан шине моего автомобиля.
Наигравшись перемещением окон, я принялся сканировать эмулятор кан шины для китайской магнитолы RCN210. Тут китайцы, конечно, очень постарались, используя однопроводную передачу информации по кан шине. На попытки эмулировать работу эмулятора ушёл ни один вечер. Плюнув всё заказал с aliexpress адаптер для подключения штатного мультируля к RCN210. Он подключается к штатной кан шине и преобразует понятные сообщения от штатного руля в сообщения понятные для магнитолы. Забегая вперёд, скажу что пробомбив все адреса вычислил только 4 сообщения(увеличение, уменьшение громкости и переключение треков). В будущем буду резать рамку и ставить балалайку по-интереснее.
Итак, магнитола откликается на сообщения от ID 0x5С1 с 1 байтом информации. Удалось выяснить, что на большинстве платформ они оказались такими же (для audi ID 0x5C3). Выкладываю весь список:
5C1 DLC: 1 Data: 01 Change input
5C1 DLC: 1 Data: 02 Scan forward
5C1 DLC: 1 Data: 03 Scan backward
5C1 DLC: 1 Data: 06 Vol up
5C1 DLC: 1 Data: 07 Vol down
5C1 DLC: 1 Data: 0A Menu
5C1 DLC: 1 Data: 1A Phone
5C1 DLC: 1 Data: 22 Arrow up
5C1 DLC: 1 Data: 23 Arrow down
5C1 DLC: 1 Data: 28 OK
5C1 DLC: 1 Data: 2B Mute
5C1 DLC: 1 Data: 00 None
И так, магнитола на сообщения откликается, треки переключаются, громкость рулится. Хотелось добиться от магнитолы большего, стал изучать скрытый функционал. Удалось найти 2 сервисного меню: чтобы отрыть первое необходимо удерживать кнопки menu около 10 сек, второе диагностическое меню открывается удержанием средних кнопок по бокам дисплея.

Для себя здесь интересного я не нашёл, но возможно кого-то заинтересует. Можно изменять яркость подсветки к примеру.
Так как со стороны CAN шины все вопросы решились принялся разбираться с рулём и LIN шиной.
Шина LIN — это простая последовательная однопроводная шина. По шине LIN управляются различные приводы (корректоры фар, заслонки климатической системы, приводы центрального замка), а так же собирается информация с простых датчиков (датчики дождя, света, температуры).
Особенностью шины LIN является то, что в сети присутствует два вида узлов: Master и Slave, Master — ведущий, Slave — подчиненный. Master может опрашивать Slave о его состоянии, будить его, отправлять ему команды.
© canhacker.ru
Собрал схемку и подключил по uart к ардуино.


Распиновка фишки руля:
1 GND
2 +12V
3 LIN
4 кнопка HORN
5 кнопка HORN
По lin шине информации нашлось минимально. Дело в том, что руль сам по себе ничего не передаёт, пока не получит заголовок сообщения PID. Начал бомбить руль идшниками в цикле и ждать ответ.
Руль откликнулся на сообщения от PID 0x8E, 0xCF и 0xBA). Я говорю про PID, потому что на самом деле ID это младшие 6 бит, старшие это контрольные биты ID, которые вычисляются из ID (контрольная сумма).
Пример пакетов CF:
ID: CF DATA: 55 CF F7 4A 40 2A 0 0 0 0 83
ID: CF DATA: 55 CF 52 4B 40 2A 0 0 0 0 28
ID: CF DATA: 55 CF 17 4C 40 2A 0 0 0 0 62
ID: CF DATA: 55 CF 43 4D 40 2A 0 0 0 0 35
ID: CF DATA: 55 CF C 4E 40 2A 0 0 0 0 6B
ID: CF DATA: 55 CF 26 4F 40 2A 0 0 0 0 50
ID: CF DATA: 55 CF AD 40 40 2A 0 0 0 0 D7
ID: CF DATA: 55 CF DF 41 40 2A 0 0 0 0 A4
ID: CF DATA: 55 CF 7B 42 40 2A 0 0 0 0 8
ID: CF DATA: 55 CF 23 43 40 2A 0 0 0 0 5F
ID: CF DATA: 55 CF A3 44 40 2A 0 0 0 0 DD
ID: CF DATA: 55 CF 6 45 40 2A 0 0 0 0 7A
ID: CF DATA: 55 CF 1F 46 40 2A 0 0 0 0 60
ID: CF DATA: 55 CF 3A 47 40 2A 0 0 0 0 44
ID: CF DATA: 55 CF EF 48 40 2A 0 0 0 0 8D
ID: CF DATA: 55 CF E7 49 40 2A 0 0 0 0 94
Руль на запросы откликался, но в ответ регистрировать события нажатий на кнопки не получилось. Долго ломал голову, мучил вопросами кого только мог, большую помощь оказали: yam1966 и auditt81. Огромное спасибо!
Подсказали, что:
0x0D — включение / выключение подсветки, 4 байта данных
0xFF, 0xFF, 0x00, 0x00 — включить
0x00, 0xFF, 0x00, 0x00 — выключить
0x8E — запрос состояния кнопок, первая часть
0xCF — запрос состояния кнопок, вторая часть
0xBA — температура термодатчика (если есть подогрев руля)
Моя проблема была в том, что я опрашивал эти айдишники по отдельности, тем самым не пробуждая руль из "спящего" режима. В один прекрасный момент всё заработало, я считал все нажатия кнопок и принялся за написание скетча и изготовления проводки для подключения в машине. Сделал всё на разъёмных соединениях


Результат:

Как только появится время доработаю схемы для управления круизом с мультируля и приборной панелью (только тут рулить пока не чем))) Проводку под них в жгуты я уже заложил. Также планирую переместить всё на arduino nano и в один маленький корпус.
Если будут заинтересованный в покупке подобных устройств, с товарищем изготовим устройства на stm32, жду обратную связь)









Комментарии 50
Привет. Может хто-то поделится CANHacker V3.0 или другой версией которая может работать с LIN bus.
Софт использую CANHacker V2.00.02(есть версия V2.00.01), ардуина на преобразователе USB-COM CH340. Пробовал и резистором 120Ом подтягивать шину и без него.
Можно постучать мне в мессенджерах 8(747)82пять4два4восемь
Приветствую Друг!
Хотел постучаться в л.с. но там закрыто
Не первый год хочу достучаться до CAN комфорта, как вижу, у тебя всё удачно получилось.
Я же в свою очередь собрал канхакер на базе Arduino nano и mcp2515, читает моторку нормально, комфорт не видит, пробовал менять кварц с 8мгц на 16мгц, перешил, тоже результата не дало, нашёл модуль 2can StarLine, перепрошил его под канхакер, всё тоже самое, комфорт не видит… Уже не знаю что делать, куда податься, прошу помощи разобраться 🤷🏻♂️
На сегодня возможно уже модуль StarLine не откликается.
Поменял на 5 джете руль с 6 рестайла(12 кнопочный), установил круиз, поставил блок CH, всё заработало… Кроме подсветки кнопок. Подскажите распиновку подсветку, или куда рыть? Кодировка правильная, думаю дело в проводке, она шла вместе с рулём и подушкой. В ней пришлось поменять местами два пина чтоб заработал сигнал.
Вот у меня нет кан шины, значит у меня неполучиться такое внедрить?
Добрый день, как дело состоит с проектом? Доработали круиз и управление БК?
А что такое лин шина?
Привет сколько будет стоить такой готовый блок?
Я бы взял блочёк, под бортовик, круиз, типтроник и резистив на мафон.
xthf ct хера-се во ты дал красава взрыв мозга не ну я тоже руль такой себе вкорячил правда к кнопкам еще не дорос .уж както это для меня сложно .и срс кольцо даже не знаю как сделать или переделать нужно там дорожки добавлять незнаю но ты красавчик :)
Сколько будет стоить готовое устройство ? Я то себе уже вариант решил но знаю кому будет интересен такой вариант решения задачи
С другом обсуждаем пока что, планируем сделать как управление по кан шине, так и по резистивной схеме. Посчитаем что к чему, и сделаем опрос желающих.
Ок отпиши потом в личку
ок
Я пытался разрулить схему Ардуино + руль для управления всем по принципу КЗ на выходах Ардуино но так и не понял как руль заставить слать пакеты скажи какой набор нужен для реализации такого варианта
Да вроде бы всё описал, руль сам просто так ничего не шлёт, ему нужно отправить "заголовок" сообщения, в данном случае PID. Т.е. в отличии от кан шины, где устройства сами шлют сообщения, в lin слейв ожидает от мастера опрос состояния.
aspirins
Я пытался разрулить схему Ардуино + руль для управления всем по принципу КЗ на выходах Ардуино но так и не понял как руль заставить слать пакеты скажи какой набор нужен для реализации такого варианта
А управление бк будет работать вот по такой схеме
Для оконечных устройств я просто использовал оптроны результат тот же + полная развязка
Суть в общем то одна) Для круиза через 2 транзистора
Жаль круиза нет :( так хотелось руль с подогревом что только после покупки я понял что не знаю куда задействовать 20 кнопок включая подруливые липестками :D
подогрев конечно вещь, как реализовано управление и контроль тепературы?
Я теперь лепестки хочу, у меня акпп типтроник, было бы здорово реализовать переключение передач
Подогрев ещё в процессе там проблема большая он жрет 6 ампер уже придумал как будет реализован шлеф и как понизить ток до приемлемых шлефу 4 ампер термоконтроль будет либо на Ардуино либо вообще не будет такая как на 4 х амперах он просто не нагревается выше критической температуры
Понял. Штатно температура руля по lin шине передаётся, удобно было бы контролировать. У меня сейчас стоит подрулевой шлейф от комплектации с esp и мультирулём, остался один свободный пин после подключения руля. Но на нашу платформу также подходят подрулевые шлейфы от ауди, где не так трудно найти вариант с жирными шинами на подогрев.
На 6 амперах два шлейфа по 5 жил каждый греется не хуже руля и две пускай и жирнве шины не хватит на него я так понимаю vw сделал такой нагревательный элемент для скорости нагрева по моим расчетом это 80 ватт скорее всего что контроллер штатный после определенной температуры снижает ток но реализовать это на Ардуино будет геморно но реально я скорее снижу ток до 4 ампер и он будет грется просто медленней
aspirins
Жаль круиза нет :( так хотелось руль с подогревом что только после покупки я понял что не знаю куда задействовать 20 кнопок включая подруливые липестками :D
А что это за руль на 20 кнопок?
Такой же как у тебя 9 кнопок на каждом блоке плюс подруливые и того 20 кнопок
Круто молодец что допилил я сдался и начал рисовать другие платы с резестивным управлением и красной подсветкой :) но тема интересная
Свои платы всегда были запасным, но не интересным планом. И белая подсветка мне очень вкатывает в сочетании с приборкой
Согласен твой вариант предпочтительнее ( просто я уже перевел 210 на резестив и бк на руль вывел так же )
У тебя RCN с резистивным управлением?)) с передний панели вывел?)
Управление бк и круизом уже в процессе исполнения. Нажатие кнопок на подрулевом бк это просто коммутация на массу, а круизом на +12. На транзисторных ключах схема управления у меня.
Да я это ещё с первым рулем от Тигуана делал тогда про lin шину даже не подумал
👍🏻👍🏻👍🏻
По поводу руля, сугубо индивидуально, не подходит он сюда. Иноземно выглядит в интерьере.
А вот подключение его это вышка, работа колоссальная.
уже год стоит руль от туарега с подогревом, не могу подключить…
Однозначно надо ставить на поток) я бы себе от а7 поставил мультик. А у них с гольфом же аналогичные схемы работы
Схема такая же, возможно отличаются идентификаторы в шине lin, но это не проблема.
псих.
Я бы хотел себе такую роскошь:)
Голова! Каков прогнозируемый прайс на устройство?
Пока просто опрос, стоит того или нет) а там уже нужно считать по компонентам и работе
Ну так то это интересно конечно! Я бы сказал это прорыв в сфере тюнячества MK4 =)
капец ты замутил! респект!
А вариант для тех у кого не по кану идет будет? У кого 450 реле
Да вариант конечно, штатный руль в мк 4 также работает по Lin шине, нужно только пакеты подменять на верные, но через 450 все кнопки не удастся задействовать, лучше уже сразу самой платой рулить магнитолой
в обход реле? сразу через ардуино?
Да, платы конечно с некоторыми схемами все равно придётся изготовить, но задача понятна
Китайцы любую плату сделают) И не дорого)
Ты ещё большой псих чем я)))) 👍🏼
Думаю, что скоро всё переделаю и соберу на одной плате, эта так скажем отладочная))
Собирал уже?