Всем привет, меня зовут Виталий, я инженер-программист и я делаю виртуальную панель приборов, которая подходит многим VAGам.
Мне давно было интересно узнать, как работает электроника в моей машине Skoda Octavia A5, могу ли я перенастроить ее работу и управлять с телефона. После изучения работы VCDS я понял, что через OBD2 разъем можно запросить все данные о машине, если знать какие команды отправлять.
Для того, чтобы узнать какие CAN команды отправляет VCDS я собрал сниффер из Arduino и модуля MCP2515 TJA1050 Niren и подключил его к кабелю.
Специальный скетч arduino-canhacker для Arduino отлавливает все CAN команды и передает их в программу CANHacker V2.
За несколько месяц исследования я собрал список CAN команд для запроса значения датчиков и подобрал формулы для расшифровки.
// Двери 714 03 22 22 0D 55 55 55 55 77E 05 62 22 0D 55 65 AA AA — все закрыты 77E 05 62 22 0D 00 65 AA AA — все открыты 77E 05 62 22 0D 54 65 AA AA — водительская открыта 77E 05 62 22 0D 51 65 AA AA — пассажирская открыта 77E 05 62 22 0D 50 65 AA AA — водительская и пассажирская открыта 77E 05 62 22 0D 45 65 AA AA — задняя левая открыта 77E 05 62 22 0D 15 65 AA AA — задняя правая открыта 77E 05 62 22 0D 44 65 AA AA — водительская и задняя левая открыта 77E 05 62 22 0D 40 65 AA AA — водительская, пассажирская, задняя левая открыты 77E 05 62 22 0D 54 65 AA AA — багажник закрыт 77E 05 62 22 0D 54 64 AA AA — багажник открыт 01010101 = 0x55 (все закрыты) 0 бит — водительская 2 бит — пассажирская 4 бит — задняя левая 6 бит — задняя правая // Ручник 714 03 22 22 05 55 55 55 55 77E 05 62 22 05 21 AA AA AA — нажат 77E 05 62 22 05 20 AA AA AA — не нажат // Наружная температура 714 03 22 22 0С 55 55 55 55 77E 04 62 22 0C 55 AA AA AA — -7.5°С 77E 04 62 22 0C 65 AA AA AA — 0.5 101°С 77E 04 62 22 0C 66 AA AA AA — 1 = 102°С 77E 04 62 22 0C 68 AA AA AA — 2 = 104°С // Наружная температура отображаемая 714 03 22 10 14 55 55 55 55 77E 04 62 10 14 84 AA AA AA — 16°С // Запас хода 714 03 22 22 94 55 55 55 55 77E 05 62 22 94 00 8E AA AA — 142км // Запас хода в литрах 714 03 22 22 9A 55 55 55 55 77E 05 62 22 9A 00 85 AA AA — 16.625л = 133 77E 05 62 22 9A 00 66 AA AA — 12.750л = 102 // 102/8 = 12.75 // Уровень топлива с датчика 714 03 22 22 06 55 55 55 55 77E 04 62 22 06 2C AA AA AA — 44л 77E 04 62 22 06 16 AA AA AA — 22л // Положение стрелки указателя уровня топлива 714 03 22 22 96 55 55 55 55 77E 05 62 22 96 01 9A AA AA — 41.0° 77E 05 62 22 96 01 13 AA AA — 27.5° // Температура ОЖ 714 03 22 F4 05 55 55 55 55 0 = 63 77E 04 62 F4 05 63 AA AA AA — 27°С 77E 04 62 F4 05 85 AA AA AA — 52.5°С — 133 // 1.5 = 2; 52.5/1.5 = 35; 77E 04 62 F4 05 87 AA AA AA — 54.0°С — 135 77E 04 62 F4 05 8F AA AA AA — 60.0°С — 143 77E 04 62 F4 05 91 AA AA AA — 61.5°С — 145 77E 04 62 F4 05 93 AA AA AA — 63.0°С — 147 77E 04 62 F4 05 95 AA AA AA — 64.5°С — 149 77E 04 62 F4 05 97 AA AA AA — 66.0°С — 151 77E 04 62 F4 05 BD AA AA AA — 94.5°С — 189 // (189 — 63)/2*1.5 = 94.5 77E 04 62 F4 05 BF AA AA AA — 96.0°С — 191 77E 04 62 F4 05 C1 AA AA AA — 97.5°С — 193 77E 04 62 F4 05 С5 AA AA AA — 100.5°С — 197 77E 04 62 F4 05 С7 AA AA AA — 102.0°С — 199 77E 04 62 F4 05 СB AA AA AA — 105.0°С — 203 // Обороты двигателя 714 03 22 F4 0C 55 55 55 55 77E 05 62 F4 0C 0B C6 AA AA — 753.5 об/мин; 0BC6 = 3014/4 = 753 77E 05 62 F4 0C 0B DC AA AA — 759 об/мин; 0BDC = 3036 77E 05 62 F4 0C 0B E8 AA AA — 762 об/мин; 0BE8 = 3048 77E 05 62 F4 0C 1C 32 AA AA — 1804.5 об/мин // Скорость 714 03 22 F4 0D 55 55 55 55 77E 04 62 F4 0D 18 AA AA AA — 24 км/ч 77E 04 62 F4 0D 16 AA AA AA — 18 км/ч 77E 04 62 F4 0D 1С AA AA AA — 28 км/ч // Температура масла 714 03 22 20 2F 55 55 55 55 77E 04 62 20 2F 36 AA AA AA — -4°С 77E 04 62 20 2F 67 AA AA AA — 45°С 77E 04 62 20 2F 68 AA AA AA — 46°С // Температура в салоне 746 03 22 26 13 55 55 55 55 7B0 05 62 26 13 00 5B AA AA — 9.1, 91 == 0x5B 7B0 05 62 26 13 00 5C AA AA — 9.2°С 7B0 05 62 26 13 00 5D AA AA — 9.3°С // Время 714 03 22 22 16 55 55 55 55 77E 05 62 22 16 11 1E AA AA — 17:30 // Кнопки подрулевого переключателя 714 03 22 22 1B 55 55 55 55 77E 05 62 22 1B 80 AA AA AA — не нажата 77E 05 62 22 1B 81 AA AA AA — нажата вверх 77E 05 62 22 1B 84 AA AA AA — нажата вниз // Средний расход 2 714 03 22 22 99 55 55 55 55 77E 05 62 22 99 00 91 AA AA — 14.5л/100км 77E 05 62 22 99 00 49 AA AA — 7.3л/100км // Текущий расход 714 03 22 22 98 55 55 55 55 77E 05 62 22 98 00 00 AA AA — 0.0л/100км // Пробег 714 03 22 22 03 55 55 55 55 77E 05 62 22 03 24 C0 AA AA — 94080 км 0x24С0 * 10 // Напряжение сети 746 03 22 02 86 55 55 55 55 7B0 04 62 02 86 8C AA AA AA — 14.0В 7B0 04 62 02 86 8B AA AA AA — 13.9В // TRIP
Я протестировал эти команды на нескольких Octavia A5 разных комплектаций и они всегда срабатывали, но вот на Octavia A7 не все работает, например для состояния дверей другие команды.
Пишу программу в машинных кодах
Следующим этапом было визуализировать полученную информацию с датчиков. На базе микрокомпьютера Raspberry Pi и 7 дюймового дисплея я собрал панель приборов, которая подключается к CAN шине.
В Skoda Octavia A5 особо нет места для дополнительно дисплея, поэтому я решил бардачок на торпедо переделать в стойку для панели. Из черного пластика вырезал заглушку для бардачка и на ней закрепил все компоненты.
Вот так выглядит установленная панель приборов
Исходные коды выложены на github, при желании любой может повторить. Работать должно и на VW, Audi, Skoda, Seat. Интерфейс написан на python kivy и работает очень быстро.
Видео работы панели приборов
Я не стал останавливаться на достигнутом и решил найти способ, как перенести эту панель приборов на телефон. У меня был ELM327 Wi-Fi сканер, который я изредка использовал для считывания и сброса ошибок. Я решил выяснить, может ли он работать с CAN шиной и как оказалось ДА! при правильной настройке ELM327 может отправлять и принимать CAN команды через OBD2 разъем.
Вот так можно получить доступ к CAN шине с помощью ELM327:
atz // сброс всех настроек at e0 // отключаем эхо at sh 714 // ID к которому будем отправлять запрос at cra 77e // ID с которого будем получать ответ at fc sh 714 // Включить Flow control для ID 714 at fc sd 30 00 00 // Задать данные для Flow control at fc sm 1 // Режим Flow Control, когда юзер задает ID и данные at al // Разрешить длинные сообщение, больше 7 байт at sp 6 // Протокол общения ISO 15764-4 CAN (11 bit ID, 500 kbaud) at ca f0 // CAN auto formating off at l0 // отключаем перенос
Тестовый запрос в CAN-шину:
03 22 22 0D 55 55 55 55 // запрос температуры масла 05 62 22 0D 55 65 AA AA // ответ
Оставалось нехитрое дело, а именно написать приложение для телефона, которое по Wi-Fi отправляет запрос на ELM327, а адаптер запрашивает данные уже по CAN шине. В итоге получилось приложение VAG Virtual Cockpit пока, только под iOS.
- Какая дверь открыта
- Скорость
- Обороты
- Температура масла
- Температура двигателя
- Объем топлива в баке в литрах
- Запас хода в километрах
- Средний расход
- Время в машине
- Пробег
- Температура за бортом
- Skoda Octavia A5 2011
Skoda Octavia A5 Универсал 2012
Skoda Yeti 2011
Skoda Octavia A7 2014 (не все параметры отображаются)
Сейчас я активно работаю над следующей версией, если есть идеи, что добавить, пишите. Версия для Android планируется.
Источник: vwts.ru
Проекты на автомобильную тематику
Предлагаю вашему вниманию доработку стеклоочистители (в дальнейшем «дворники»). Собранная схема была сделана для автомобиля ГАЗ 31105. За основу работы алгоритма взят принцип от Фольксваген Кратер. Алгоритм схемы таков. Нулевой режим. Дворники «паркуются» на место. Для этого было установлено реле Р1 с НЗ контактами и подключено к «плавающим» контактам дворников.
Первый режим. При включении этого режима …
Аналоговое управление вентилятором охлаждения двигателя, с помощью ARDUINO и программы FLProg .
26.09.2019 от RW4HDL
Данное устройство позволяет поддерживать температуру двигателя плавно и точно, благодаря ПИ ШИМ регулятору, вентилятор не шумит и не происходит резких скачков температуры. Подключается параллельно штатному реле, по этому в схему не вносится ни каких изменений, показания температуры (от-40 до +120) выводятся на экран, подходит практически к любой машине а возможность менять программу самостоятельно дает большие …
Кнопка Старт-Стоп двигатель своими руками
29.01.2018 24.12.2017 от Анатолий
Привет всем, сделал кнопку запуска на ваз 21124. Полное описание и фото в этой теме https://www.drive2.ru/l/487976455620264023/ если кратко описать, то это урезаная версия этой кнопки https://flprog.ru/?p=574 печатку и проект качаем здесь https://yadi.sk/d/75L9H_IR3PmgPB Источник: https://www.drive2.ru/l/487976455620264023/ Добавил: Kas-161
Старт Стоп двигатель, своими руками
29.01.2018 24.12.2017 от Анатолий
В основу легла тема www.drive2.ru/b/2873218/, но руки таки не дошли, за поиском компонентов… пока искал микросхемы к561тм2, нашел Arduino NANO, а точнее мне ее подарили… и тут началось самое интересное… Ведь как можно написать прошивку не зная языков программирования?! на помощь приходит программа FLProg. Описываем в ней задачу и вливаем в контроллер…, а контроллер к тому …
Алкотестер на датчике Q3 и индикаторе 74Н595 4-bit led.
24.12.2017 от Анатолий
Алкотестер на ARDUINO PRO MINI под FLProg. Алкотестер сделан на датчике Q3 и индикаторе 74Н595 4-bit led. В начале программы, после включения запускается таймер на прогрев датчика. После прогрева производится автоматическая установка и смещение «0». При нажатии кнопки измерение загорается —— и можно дышать на датчик пока не пропадет ——. Производится 20 замеров и формирование …
Подогрев сидений+ДХО
24.12.2017 от Анатолий
сылка Прошу не критиковать, а помочь. Это первый проект который я тут выкладываю. В принципе все норм, но остается ощущение недоделанности… В принципе микросхему расширения я буду ставить, пока ее в наличии нет… Схема состоит из двух плат. 1) Регулировка подогрева сидений с индикацией на 5161BS и управлением энкодером ER11. 2) Включение ДХО (дневные ходовые …
Автозапуск двигателя по звонку
04.02.2018 23.12.2017 от Анатолий
Сделал свой первый проект, обкатал на своем автомобиле, вроде всё хорошо. В основе проекта Arduino UNO, gsm модем m590 и 4 релейных модуля. В блоке сравнения строк в поле константы необходимо написать свой номер телефона с которого будите производить запуск. (защита от ложных звонков) В реле которое идет на стартер ОБЯЗАТЕЛЬНО впаять шунтирующий диод 1N4007 параллельно …
Рубрики Проекты на автомобильную тематику Метки m590 8 комментариев
Самодельные шилды на ATmega328p
23.12.2017 от Анатолий
Самодельные шилды на ATmega328p Угломер+ дальномер был опубликован мной ранее. Новый вариант GSM сигнализации к которой подключается внешний датчик движения для охраны гаража. Также сделана постоянная подпитка аккумулятора и дистанционное включение выключение подогрева тосола либо картера от ~200В. Модуль на основе MP3 плеера для звукового сопровождения, оповещения. Программа полностью на FLProg. Модуль без контроллера состоит …
Разработки на ARDUINO и FLProg
24.12.2017 23.12.2017 от Анатолий
Хочу предложить несколько своих разработок. Круиз контроль для автомобиля. Поддерживает текущую скорость, ее можно корректировать + -, настроки ПИ регулятора записываются в ЕПРОМ. также есть режим контроля превышения скорости от текущей на 2км/ч без включения круиза. Авто GSM сигнализация к иммобилайзеру. Подключается к стандартному к иммобилайзеру (блоку управления электропакетом). С помощью акселерометра отслеживает любые изменения …
Управление осветительными приборами автомобиля
04.02.2018 23.12.2017 от Анатолий
Блок управления светом на автомобиле. При включении режима автомат (габариты, ходовые огни, ближний свет) включаются и выключаются автоматически. Как поступил сигнал с тахометра вкл режим авт и загораются габариты и диод (автомат вкл). После пропадания сигнала(через 10 сек ) вык режим автомат, а габариты гаснут после выкл зажигания. При появлении сигнала с датчика скорости вкл …
Источник: flprog.ru
Форум: Программы
IGO 8.3 for PC
Программы управления и оболочки.
(7 Просматривает)
Опции форума:
Статистика раздела:
- Тем: 508
- Сообщений: 9,364
Последнее сообщение:
Скины для Centrafuse 3.5
Разработка софта
(6 Просматривает)
Выкладываем свой софт.
Опции форума:
Статистика раздела:
- Тем: 55
- Сообщений: 6,187
Последнее сообщение:
Универсальная панель приборов.
Открытые проекты для Arduino
(16 Просматривает)
Выкладываем свои проекты для arduino
Опции форума:
Статистика раздела:
- Тем: 574
- Сообщений: 14,873
Последнее сообщение:
AVC-Lan адаптер на arduino
Настройки, оптимизация Windows и полезные утилиты
(1 Просматривает)
Здесь выкладываем темы, обои, настройки,оптимизации,прикольные программы и т.п.
Опции форума:
Статистика раздела:
- Тем: 58
- Сообщений: 851
Последнее сообщение:
Установка Windows XP на USB.
Информация о разделе и настройки отображения
Модераторы этого раздела
Пользователи, просматривающие этот раздел
Настройка отображения тем
Список иконок
Непрочитанные сообщения
Нет непрочитанных сообщений
Популярная тема с непрочитанными сообщениями
Популярная тема без непрочитанных сообщений
Тема закрыта
В этой теме есть ваши сообщения
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
Текущее время: 20:26 . Часовой пояс GMT +5.
Источник: compcar.ru