В первой статье «Хакаем CAN шину авто для голосового управления» я подключался непосредственно к CAN шине Comfort в двери своего авто и исследовал пролетающий траффик, это позволило определить команды управления стеклоподъемниками, центральным замком и др.
В этой статье я расскажу как собрать свою уникальную виртуальную или цифровую панель приборов и получить данные с любых датчиков в автомобилях группы VAG (Volkswagen, Audi, Seat, Skoda).
Мною был собран новый CAN сниффер и CAN шилд для Raspberry Pi на базе модуля MCP2515 TJA1050 Niren, полученные с их помощью данные я применил в разработке цифровой панели приборов с использованием 7″ дисплея для Raspberry Pi. Помимо простого отображения информации цифровая панель реагирует на кнопки подрулевого переключателя и другие события в машине.
В качестве фреймворка для рисования приборов отлично подошел Kivy для Python. Работает без Иксов и для вывода графики использует GL.
- CAN сниффер из Arduino Uno
- Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
- Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
- Софт панели приборов на Python и Kivy (UI framework)
- Видео работы цифровой панели приборов на базе Raspberry Pi
Под катом полная реализация проекта, будет интересно!
Водительская дверь открыта
- CAN сниффер из Arduino Uno
- Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
- Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
- Софт панели приборов на Python и Kivy (UI framework)
- Видео работы цифровой панели приборов на базе Raspberry Pi
- Приложение на телефон Виртуальная панель приборов
- CAN Coder
- Внимание!
- Основные функции программы:
- Список автомобилей на которых проводилось тестирование
- Автомобили на который требуется подключение к шине CAN-FD и использование интерфейса CAN-Hacker CH-P FDL
- Описание программы
- Вкладка Interface
- Для начала работы необходимо:
- Вкладка CLU – панель приборов
- Выпадающий список CLU Type
- Блок Odometer Calibration
- Блок EOL Variant coding
- Работа с EEPROM панелей приборов
- Блок Service functions
- Вкладка BCM. Работа с блоком комфорта
- ВАЖНО
- Пример подключения к модулю ICU автомобилей Sorento MQ4 и Carnival KA4
- Подключение к панелям приборов на рабочем столе
- 🔥 Видео
CAN сниффер из Arduino Uno
Чтобы послушать, что отправляет VCDS в CAN шину я собрал сниффер на макетке из Arduino и модуля MCP2515 TJA1050 Niren.
Схема подключения следующая:
Для прослушивания трафика использовал анализатор CanHackerV2 и прошивку arduino-canhacker для Arduino, которая реализует API совместимое с этой программой. Прошивка в гите https://github.com/autowp/arduino-canhacker.
CanHackerV2 позволяет смотреть пролетающий трафик, записывать и проигрывать команды с заданным интервалом, что очень сильно помогает в анализе данных.
Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
Описание VCDS с официального сайта ru.ross-tech.com:
Программно-аппаратный сканер VCDS предназначен для диагностики электронных систем управления, устанавливаемых на автомобилях группы VAG. Доступ ко всем системам: двигатель, ACP, АБС, климат-контроль, кузовая электроника и т.п., считывание и стирание кодов неисправностей, вывод текущих параметров, активация, базовые установки, адаптация, кодирование и т.п.
Подключив сниффер к линиям CAN_L и CAN_H в диагностическом шнурке я смог увидеть какие запросы делает VCDS и что отвечает авто.
Особенность авто группы VAG в том, что OBD2 разъем подключен к CAN шине через шлюз и шлюз не пропускает весь гуляющий по сети трафик, т.е. подключившись в OBD2 разъем сниффером вы ничего не увидите. Чтобы получить данные в OBD2 разъёме нужно отправлять шлюзу специальные запросы. Эти запросы и ответы видно при прослушивании трафика от VCDS. Например вот так можно получить пробег.
В VCDS можно получить информацию почти с любого датчика в машине. Меня в первую очередь интересовала информация, которой вообще нет на моей приборке, это:
- температура масла
- какая именно дверь открыта
Скорость, обороты, температура ОЖ, пробег, расход, место в баке и другие запросы я тоже получил, для справки размещу.
Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
В качестве аппаратной части я выбрал Raspberry Pi. Была идея использовать Android планшет, но показалось, что на Raspberry Pi будет проще и быстрее. В итоге докупил официальный 7″ дисплей, и сделал CAN шилд из модуля TJA1050 Niren.
OBD2 штекер использовал от старого ELM327 адаптера.
Используются контакты: CAN_L, CAN_H, +12, GND.
Тесты в машине прошли успешно и теперь нужно было все собрать. Плату дисплея, Raspberry Pi и блок питания разместил на куске черного пластика, очень удачно подобрал пластмассовые втулки, с ними ничего не болтается и надежно закреплено.
Читайте также: Шины для peugeot 2008
Местом установки выбрал бардачок на торпедо, которым я не пользуюсь. По примеркам в него как раз помещается весь бутерброд.
Напильником довел лист черного пластика до размера крышки бардачка, к нему прикрепил бутерброд и дисплей. Для прототипа сойдет, а 3D модель с крышкой для дисплея и всеми нужными крепежами уже в разработке.
Софт панели приборов на Python и Kivy (UI framework)
Параллельно со сборкой самой панели приборов я вел разработку приложения для отображения информации с датчиков. В самом начале я не планировал какой либо дизайн.
Первая версия панели приборов
По мере разработки решил визуализировать данные более наглядно. Хотел гоночный дизайн, а получилось, что-то в стиле 80-х.
Вторая версия панели приборов
Продолжив поиски более современного дизайна я обратил внимание какие цифровые приборки делают автопроизводители и постарался сделать что-то похожее.
Третья версия панели приборов
Ранее, я никогда не разрабатывал графические приложения под Linux поэтому не знал с чего начать. Вариант на вебе простой в разработке, но слишком много лишних компонентов: иксы, браузер, nodejs, хотелось быстрой загрузки. Попробовав Qt PySide2 я понял, что это займет у меня много времени, т.к. мало опыта. Остановился на Kivy — графический фреймворк для Python, простой в понимании с полной библиотекой графических элементов и дающий возможность быстро создать мобильный интерфейс.
Kivy позволяет запускать приложение без Иксов, прямо из консоли, в качестве рендера используется OpenGL. Благодаря этому полная загрузка системы может происходить за 10 секунд.
Алгоритм работы следующий, используется 3 потока:
- В главном потоке работаем с графическими элементы (спидометр, тахометр, часы, температуры и др) на экране
- Во втором потоке каждые 5 мс делаем опрос следующего датчика
- В третьем потоке слушаем CAN шину, получив ответ парсим его и обновляем соответствующий графический элемент
Работает стабильно, самый долгий процесс в разработке был связан с рисованием дизайна. На данный момент обкатываю решение и потихоньку пишу мобильное приложение для iOS, чтобы любой мог попробовать цифровую панель приборов.
Проект цифровой панель приборов открытый. Рад буду предложениям и комментариям!
Видео работы цифровой панели приборов на базе Raspberry Pi
Приложение на телефон Виртуальная панель приборов
Для телефона написал приложение — виртуальная панель приборов, данные от машины передаются через ELM327 Wi-Fi адаптер. Адаптер подключается в OBD2 разъем, делает запросы по CAN шине и возвращается ответы в приложение по Wi-Fi.
Приложение VAG Virtual Cockpit уже в AppStore. Пока, что только под iPhone/iPad, но Android версия планируется. Приложение решил сделать платным с минимальной символической стоимостью.
Если есть желание поддержать проект, то вот ссылка на приложение, принимаю любые замечания и предложения!
VAG Virtual Cockpit
Видео:Анализ CAN шины автомобиля адаптер Канхакер-avto100Скачать
CAN Coder
Видео:Анализ CAN-шины Гранта. CAN-hacker.Скачать
Внимание!
Перед работой с CAN-Coder убедитесь что используете актуальную прошивку!
Программное обеспечение CAN Coder служит для программирования блоков управления автомобилей марок KIA\HYUNDAI.
CAN Coder это дополнительно приобретаемая опция для интерфейсов:
и базовая для CH-OBD.M02+Coder.
Если CAN-Coder приобретен отдельно от интерфейса, то необходимо произвести его активацию. Активация опции проводится при помощи программы UBT согласно инструкции на ваш интерфейс. Ключ активации предоставляется при покупке опции.
Если CAN-Coder приобретен в нашем магазине в составе интерфейса CH-OBD.M02+Coder или совместно с другим интерфейсов поддерживающим данную опцию, то активировать CAN-Coder не нужно. Мы сами производим активацию перед отправкой интерфейса клиенту.
Видео:Подробно про CAN шинуСкачать
Основные функции программы:
1. Кодирование EOL панелей приборов для автомобилей выпущенных с 2016 г. в.
2. Программирование типа сервисного обслуживания, расстояния и времени до сервисного обслуживания (с 2016).
3. Калибровка пробега для панелей приборов производства VDO / Continental.
4. Программирование пользовательских настроек BCM для автомобилей с 2018 г. в. (BCM должен поддерживать диагностику по CAN шине)
Читайте также: Монтаж шины медной фер
Видео:CAN HACKER обзорчик - первый опыт и плюсик в Orange5Скачать
Список автомобилей на которых проводилось тестирование
- HYUNDAI Tucson 2015…2020 (OBD2)
- HYUNDAI Сreta 2016…2020 (OBD2)
- HYUNDAI Solaris 2010…2021 (OBD2)
- HYUNDAI Genesis 2018…2019 (OBD2\C-CAN)
- HYUNDAI G70 2018…2019 (OBD2\C-CAN)
- HYUNDAI Sonata LF OBD2, только панели 94001C2000
- Hyundai Sonata DN8 2021 (требуется прямое подключение к C-CAN)
- KIA Ceed 2012…2018 (OBD2)
- KIA Optima\K5 2012 (OBD2)
- KIA Optima\K5 JF4 2016…2021 (OBD2\ с 2021г. C-CAN)
- KIA Optima\K5 DL3 2020…2021 (требуется прямое подключение к C-CAN )
- KIA Rio 2018…2021 (OBD2)
- KIA Sportage 2010…2018 (монохромная панель OBD2)
- KIA Sorento Prime (панели приборов VDO\Continental, OBD2 )
- KIA Stinger (C-CAN)
- KIA Soul 2, 3 (только панели VDO\Continental, OBD2)
- KIA Soul EV (OBD2) первое поколение
Для автомобилей: Hyundai Tucson, Hyundai Sonata DN8, KIA Optima JF, KIA Sportage IV (монохром), KIA Soul EV, KIA Stinger доступен пакет специальных утилит для программирования региональных настроек, Limiter, ActiveHood и других систем в зависимости от типа, серийного номера и версии прошивки панели приборов. Это дополнительный функционал и его совместимость со всеми типами панелей приборов не гарантируется. Важно знать, что языковые настройки так же могут зависеть от настроек мультимедийной или навигационной системы и программное обеспечение этих систем так же требует изменения.
Видео:Arduino CAN Hacker, CAN Monitor, CAN Sender разбор вопросовСкачать
Автомобили на который требуется подключение к шине CAN-FD и использование интерфейса CAN-Hacker CH-P FDL
- KIA Sorento MQ4 Бензин. Простая панель приборов (E-CAN)
- KIA Sorento MQ4 Бензин. Панель приборов ЖК SuperVision (E-CAN)
- KIA Sorento MQ4 Гибрид. Панель приборов ЖК SuperVision (E-CAN)
- KIA Carnival KA4. Панель приборов ЖК SuperVision (E-CAN). Только EOL
- HYUNDAI Tucson NX4. Панель приборов ЖК SuperVision (E-CAN). Только EOL
Видео:Arduino CanHacker Lowicel (дружим Ардуино с программой CanHacker)Скачать
Описание программы
Вкладка Interface
- Выпадающий список COM port – выбор порта к которому подключен интерфейс
- Connect\Disconnect – кнопка подключения к интерфейсу
- Чек бокс 120 Ohm – Требуется установить при подключении к панели приборов на столе. Подключает терминатор 120 Ом на шину CAN. (активен для интерфейсов CAN-Hacker CH-P FDL)
- Log – окно с логом выполненных операций.
- Clear – кнопка очистки лога.
Для начала работы необходимо:
- В выпадающем списке COM Port выбрать порт
- Нажить кнопку Connect. Убедиться что в строке Mode отображается режим coder
- Подключить интерфейс к автомобилю\панели приборов или шине CAN.
- Подать питание на панель приборов или включить зажигание.
Вкладка CLU – панель приборов
- Кнопка CAN Test – проверка связи с панелью приборов.
- Кнопка Get Idents – получить серийный номер и версию прошивки панели приборов
Выпадающий список CLU Type
Задает тип панели приборов с которой будет вестись работа.
Доступные варианты панелей приборов:
- CLU before 2013 ext EEPROM 24C16 – Панели приборов с внешней EPPROM выпуска до 2013 года. (Например Solaris 1, Sportage 3 дорестайлинг)
- CLU after 2013 ext EEPROM 24C16 – Панели приборов с внешней EEPROM после 2013. (Например Solaris 1 , Sportge 3)
- CLU after 2015 w\o ext EEPROM – Большинство панелей приборов KIA\HYUNDAI производства Continental\VDO. (Tucson 3, Sportage 4, Rio с 2018, Solaris с 2018, Ceed JD Supervision, Optima NF4, Creta, Stinger, Genesis G70 и ряд других )
- CLU Color YAZAKI Sportage – Sportage 4 с цветной панелью приборов. Поддерживаются панели только первых выпусков.
- CLU Continental CAN-FD – Панели приборов программируемые по шине CAN-FD. (KIA Sorento MQ4, KIA Carnival KA4, Hyundai tucson NX4. Опция активна только для интерфейсов CAN-Hacker CH-P FDL)
Читайте также: Стандартный размер шин для нивы
Блок Odometer Calibration
- Get ODO – кнопка чтения текущего пробега
- Set ODO – кнопка программирования пробега заданного в поле слева
Калибровка одометра доступна только для панелей приборов производства VDO\Continental.
Блок EOL Variant coding
- Get EOL – кнопка чтения текущего кода EOL. Прочитанное значение кода EOL отобразится в логе слева, а флаги активированных функций в блоке Variant coding будут отмечены.
- Set EOL – кнопка записи кода EOL согласно установленным флагам в блоке Variant coding.
- 2 Bytes EOL set – кнопка записи кода EOL в виде двухбайтового шестнадцатиричного значения.
Вариантное кодирование возможно осуществлять как и через диагностический разъем OBD2 так и при непосредственному подключению к CAN шине панели приборов (CAN-C). На ряде автомобилей с 2019 года выпуска кодирование EOL возможно только при подключении к шине CAN-C, ввиду блокировки операции со стороны межсетевого интерфейса ICU.
Для того чтобы осуществить вариантное кодирование EOL необходимо нажать кнопку Get EOL для чтения текущего кодирования, а затем удалив или установив флаги напротив необходимых систем автомобиля и нажать кнопку Set EOL.
На некоторых автомобилях начиная с 2014 года осуществить кодирование можно, но функция чтения текущего кода EOL не доступна. В этом случае необходимо сразу установить флаги напротив всех необходимых систем и нажать Set EOL.
Работа с EEPROM панелей приборов
Функция чтения и записи EEPROM доступна только для панелей приборов производства VDO\Continental.
- Кнопки Read EEPROM и Write EEPROM служат для чтения и записи содержимого EEPROM панели приборов.
- Кнопка Write value to EEPROM cell – служит для записи любого значения в ячейку EEPROM по заданному адресу. Значение ячейки и адрес задаются в соответствующих полях выше.
Блок Service functions
- Кнопка RESET – перезапуск панели приборов. Необходимо нажимать после операций программирования, для того чтобы изменения вступили в силу.
- Кнопка Lamp Test – включение всех индикаторов на панели приборов на несколько секунд.
- Кнопки Get DTC\Clear DTC – чтение и стирание текущих ошибок.
Видео:CAN-Hacker Как искать пакеты в CAN шине на примере Toyota Prius-C AquaСкачать
Вкладка BCM. Работа с блоком комфорта
Работа с блоком комфорта – BCM возможна только в том случае, если он поддерживает диагностику по CAN шине. Такие блоки BCM начали устанавливаться на автомобилях KIA\Hyundai премиум класса с конца 2016 года (например KIA Optima). А на автомобилях класса KIA Rio – Hyundai Solaris с 2018 года.
Видео:Как работает чтение и запись EEPROM по CAN. Базовый принцип.Скачать
ВАЖНО
Начиная с 2019 года на автомобили KIA\HYUNDAI стали устанавливать модуль межсетевого интерфейса – ICU. Модуль ICU блокирует работу функций конфигурирования автомобиля без предоставления крипто-сертификата. По состоянию на 2021 год модуль ICU не устанавливается только на самые простые модели, такие как Solaris и Rio.
В случае если автомобиль оборудован модулем ICU, то необходимо подключаться либо непосредственно к снятой с автомобиля панели приборов, либо к тому участку сети CAN который подключен к панели приборов. Этот участок сети называется “C-CAN”, а для автомобилей оборудованных шиной CAN-FD – “E-CAN”.
Подключиться к необходимым участкам CAN сети можно на самом модуле ICU, находящимся за защитой над левой ногой водителя.
Пример подключения к модулю ICU автомобилей Sorento MQ4 и Carnival KA4
Разъем -H
31 CAN (FD) High
З2 (крайний) CAN (FD) Low
Видео:LIN шина - пример работы. LIN bus exampleСкачать
Подключение к панелям приборов на рабочем столе
Подключиться к панели непосредственно можно при помощи поставляемого нами кабеля
Для самостоятельного подключения используйте следующее назначение контактов. Эта схема актуальна для большинства панелей приборов KIA\HYUNDAI с 2015 года.
Пользуясь данным программным обеспечением пользователь безоговорочно принимает правила оказания технической поддержки.
- Свежие записи
- Нужно ли менять пружины при замене амортизаторов
- Скрипят амортизаторы на машине что делать
- Из чего состоит стойка амортизатора передняя
- Чем стянуть пружину амортизатора без стяжек
- Для чего нужны амортизаторы в автомобиле
- Правообладателям
- Политика конфиденциальности
Автоподбор © 2023
Информация, опубликованная на сайте, носит исключительно ознакомительный характер🔥 Видео
CanHacker из 2CAN модуля своими руками КанХакер подробно в деталяхСкачать
Поиск уровня топлива в CAN шине Toyota Camry 2017Скачать
CANbus Gateway mode. Режим CAN шлюза на CAN-HackerСкачать
CAN шина👏 Как это работаетСкачать
Оживление по шине LIN блока кнопок стеклоподъемников от Mercedes Benz W220Скачать
Экспресс диагностика CAN шины на автомобиле. №21Скачать
Как CanHacker , но дешевле от CDEBYTEСкачать
Renault Kaptur CAN bus CAN шинаСкачать
Can Hacker. Краткий обзорСкачать
Пример работы с протоколом J1939Скачать