Приветствую всех. Буквально пару дней назад я сделал запись (www.drive2.ru/l/647241264659439775) по поводу проблемы: после установки цветной 3D приборки и магнитолы от DM от VW перестал работать выход из меню Телефон. Варианты сменить руль Skoda на VW не рассматривались, также не хотелось городить лин-адаптер и вообще разбирать подрулевой и тд.
В итоге в теме проскочило сообщение от AHAT0M: "Поставь такую стрекозу и будет тебе счастье. Выход из меню телефона по нажатию кнопки." Речь шла о стрекозе MQB с кнопкой вызова Ассистентов.
Но опять же: не хотелось менять стрекозу. Подумав: нажатие кнопки на стрекозе формирует какой то пакет в can шине. Сегодня списался с Артуром (bauhax) и он подсказал, как сделать кнопку вызова Ассистентов самостоятельно и как закодировать подрулевой блок.
Ну что же, приступаем, делаем кнопку, синенькую:

Подключаем:

Кодируем блок, подключаем кан-сниффер к шине CAN Comfort, жмем кнопку и видим:

При нажатии кнопки меняется 6 байт в посылке с CAN_ID 0x2C1, также в этой посылке передается статус переключателя скорости дворников и состояние стрекозы дворников.
Шлю пакет в кан-шину с помощью сниффера и вижу: приборка вызывает меню Ассистентов.
Т.е. вот и решение: плата, подключается к шине комфорта и питанию, анализирует нажатия кнопок руля (can id 0x5C1) и на нажатии определенной кнопки шлет нужный пакет с измененным последним байтом. И вуаля, выходим в меню Ассистентов из любого пункта приборки.
Можно конечно было сделать адаптер и его установить, но у меня же установлен miniFIS, он уже подключен к шине Приборной панели, т.е. он может послать нужные данные, а также он имеет доступ к статусу кнопок руля.
Значит добавим эту фишку в код прошивки miniFIS.
Для начала выясним, что шлется в приборку, когда нажимаем кнопку Ассистентов, подключаемся кан-сниффером к шине приборки и видим:

Пакет из шины комфорта (can id 0x2C1) с помощью gateway превращается в пакет с адресом 0x35F и у него уже меняется 7 байт.
Формируем посылку, также шлем в кан-шину приборки и видим, все работает: меню Ассистентов появляется.
Ну все, теперь дело за малым, добавляем код в прошивку miniFIS:
1. Берем кнопку и ее код, я взял кнопку Mute, ее код 0x2B
2. Если обнаружили ее нажатие — то получаем штатный пакет с can id 0x35F, модифицируем предпоследний байт и отправляем в кан-шину.
3. Проверяем, работает.
4. Да, включать бит в подрулевом не надо, он уже не принимает участия когда мы сами шлем посылку. Осталось проверить, что не будет проблемы в движении при включенном круизе, но это чуть позже.
Вот небольшое видео:
Кому интересно описание проблемы и ее решение полностью — полная версия видео:
З.Ы. По итогам этих изысканий сделаю маленький адаптер, который подключается к каншине и решает данную проблему, по сути аналог того, что описано в записи Дениса www.drive2.ru/l/515890307070427600/









Комментарии 38
Отличное решение! И некоторым желающим поможет. 👍👍👍
Комментарий удалён
Ха. Да не работало оно. Моторник и круиз в ошибки падали. Думаете не пробовали чтоль?)) Коди 17 года с физической кнопкой лим, стрекоза более новая без оной.
Я же знаю о чем говорю, ошибки были именно из-за этого
Ну я не спорю, проверим как будет возможность ради интереса.
Согласен выступить в роли подопытного 😃
отлично🔥
Потыкать в клавиатуру компьютера и запрограммировать МК это кто угодно может, я то думал ты синюю кнопку врежешь в руль 🤣
это был план Б😁
Может тупой вопрос, а кнопки на руле не резистивные как в стрекозе?
вроде да, но у них своя плата управления
Я просто к тому что не проще было изменить сопротивление некой менее используемой кнопки и не сниферить шину? Недавно просто на кодьяка переделывал стрекозу ацц. Была от фабии и на коди все кнопки были перепутаны плюс ошибки по мех неисправности. Получилось колхозно, но никто не мешает потом изготовить свою плату под заказ))
цель была чтобы без вмешательства в штатные блоки тд реализовать данную функцию, + кнопка вызовов ассистентов подключается отдельной линией к подрулевому блоку
Ну если так то ясно. А то как по мне ради одной/двух кнопок воротить кан фильтр это сильно)))
наоборот изящное решение и всегда можно откатить в сток, резать плату и дорожки как то не комильфо
Резать да, но никто не запрещает развести свою)) А для теста вполне сгодится)) А по поводу стока: мы с товарищами тоже так думали раньше, а потом пришли к выводу: а зачем? И в итоге варианты отката в сток уже не рассматриваем.
ну не знаю, я люблю чтобы все внедрялось с минимальными переделками, но это уже мой загон😁
Ну я не говорю что плохо сделано))) Просто с моей колокольни это слишком сложно в данном конкретном случае)))
Helghast59
Я просто к тому что не проще было изменить сопротивление некой менее используемой кнопки и не сниферить шину? Недавно просто на кодьяка переделывал стрекозу ацц. Была от фабии и на коди все кнопки были перепутаны плюс ошибки по мех неисправности. Получилось колхозно, но никто не мешает потом изготовить свою плату под заказ))
Нужно было в 16м блоке, байт 1, бит 2 убрать так как переключатели у вас с ACC, без лимитера.
По памяти уже не помню что там, в субботу посмотрю ради интереса. Вернуть плату в сток не проблема))
bauhax
Нужно было в 16м блоке, байт 1, бит 2 убрать так как переключатели у вас с ACC, без лимитера.
«Факир был пьян и фокус не удался»
Кодировку покажите
Проблема не в кодировке, а в том что подрулевые 5q0, а не 5q1.
Причем тут 5q1? 5q0 с АСС были как с лимитером, так и без, в 16м блоке в кодировке лимитер нужно отключить.
5Q0953502AL АСС+LIM
5Q0953502AT ACC
Да только вот в данном случае не работало оно. Улитку никто не менял, да и кодировка уже 20 раз перепроверена и там всё верно. Блок ожидает не то падение напряжения какое получает по факту. Соответственно если выключить 2 байт (который подписан как «не используется») то по факту получаем в моторнике и в круизе «шину данных, недостоверное сообщение».
Номер улитки можно?
Не улитка, а подрулевой блок 5q0953569b, но точно такое же кодирование в блоке 5q0953569a, 5q0953569c
Да не важно как она называется.
bauhax
Причем тут 5q1? 5q0 с АСС были как с лимитером, так и без, в 16м блоке в кодировке лимитер нужно отключить.
5Q0953502AL АСС+LIM
5Q0953502AT ACC
Так у нас не АТ))
Даже если у вас стрекоза с АСС от 5q1 то круиз там точно такой же как на 5q0953502at/aq
Helghast59
Проблема не в кодировке, а в том что подрулевые 5q0, а не 5q1.
Helghast59
Проблема не в кодировке, а в том что подрулевые 5q0, а не 5q1.
Helghast59
Проблема не в кодировке, а в том что подрулевые 5q0, а не 5q1.
А получается теперь при выходе из Телефона (перехода в ассистенты) заодно и звук выключается?
если использовать кнопку mute. то да, но для выхода в меню Ассистентов можно взять любую кнопку на руле
Я на самом деле хотел предложить в качестве тригера брать не только код кнопки, но и длительность нажатия. (по крайней мере на MQB есть 3 окна длительности)
И например с той же кнопкой mute, отслеживать длинное нажатие (0,8-2сек), и уже на него пулять вызов ассистентов и тут же ещё раз mute, чтобы включить звук обратно.
А если совсем разойтись, то можно сразу пулять команды, чтобы автоматом из меню ассистентов выходило )
вы меня опередили, да, длительность нажатия я добавлю. Ага, добавляем вызов перехода на кнопку Назад и вызов кнопки Ок — полная автоматизация🔥
VanHighlander
Я на самом деле хотел предложить в качестве тригера брать не только код кнопки, но и длительность нажатия. (по крайней мере на MQB есть 3 окна длительности)
И например с той же кнопкой mute, отслеживать длинное нажатие (0,8-2сек), и уже на него пулять вызов ассистентов и тут же ещё раз mute, чтобы включить звук обратно.
А если совсем разойтись, то можно сразу пулять команды, чтобы автоматом из меню ассистентов выходило )
сделал с длит нажатием кнопки Назад, вообще прекрасно работает🔥