nkha
Просто заглянул
Всех приветствую!
Я решил установить в свои автомобиль не родные сидения. Порылся по разборкам и нашел сиденья от Volkswagen Phaeton 2005 г.в.(со слов разборщиков, маркировка на сидухах 2003 год), с подогревом, массажем и вентиляцией в идеальном состоянии. Сиденья супер - но есть трудность чтобы их установить. Подогрев и вентиляция управляется по CAN шине. Массаж кнопкой на сиденьях.
Просто взять выводы физического нагревателя и вентиляторов и подать на них 12 вольт - вариант сильно "не очень". Тот же подогрев разделен на 4 зоны и у каждой зоны свой датчик температуры... комфорт емое. Поэтому очень хотелось бы использовать родной "мозг" кресел.
Я так посмотрю на форуме есть куча спецов по CAN шине, посему обращаюсь здесь за помощью.
Для начала что я сделал. Слепил CAN сниффер из того что было, а так же из чего планирую делать само управление со стороны машины. А именно микроконтроллер STM32F103C8T6 + адаптер CAN шины TJA1050. Ничего нового я думаю, кроме софта. Софт написал с нуля свой, т.к. все равно бы его придется писать реализацию управления со стороны машины, да и интересно самому было по-ковыряться.
Софт здесь - https://github.com/Nikolay-Kha/CANBusHacker
Несложно догадаться, что СТМка цепляется к CAN шине через TJA1050 и потом через последовательный порт все пишет/управляется в терминале. В компьютер он подключается через CP2102. Кстати у контроллера есть USB через который можно было бы реализовать виртуальный последовательный порт, но к сожалению 103 серия использует один и тот же буфер в памяти для CAN и USB, поэтому одновременно можно использовать что-то одно. Т.к. я не пользуюсь вендой терминал реализован как стандартный POSIX терминал, т.е. с историей ввода, редактированием и прочим, будет работать в любой POSIX системе(под вендой все же можно PuTTy использовать). т.е. тупо 'screen /dev/ttyUSB0 115200' и вперед использовать этот сниффер прямо в терминале.
А теперь главная проблема - т.к. самого фаетона или блока комфорта у меня от него нету(на разборке тоже уже нет), я пытаюсь как нибудь найти нужные команды для управления этим креслом. Написал парочку простых брут форсов. Перебирать 8 байт + 11 бит - не вариант конечно, но погонять несколько бит по разным ID кан шины я все же попытался. Пока удалось найти следующее:
при включении шлет что-то наподобие:
формат думаю ясен - CAN ID решетка данные.
406#060200000200 высылает кресло при нажатии на кнопку памяти 1
406#060200000400 высылает кресло при нажатии на кнопку памяти 2
406#060200000800 высылает кресло при нажатии на кнопку памяти 3
В результате брутфорса вычислил, что команда 2C1#0010 (кстати еще много вариантов с какими данными) заставляет щелкать какое-то реле в блок - предположительно реле моторов регулировки положения руля(да, эти моторы управляются с блока кресла водителя) - не разбирался, не важно.
5DD#0000F0 - свет ног пол ток 300мА
5DD#FF000F - свет ног пол ток 180мА
5DD#0F000F - свет ног пол ток 380мА
5DD#0F0006 свет полная - 400мА(осцилографом ШИМ на лампе не проверял, но по току максимум)
5DD#000000 - выключить свет ног
Со светом понятно я думаю, CAN ID найден, данные подобрать можно, да и принципе уже есть примеры данных что бы им управлять.
Но самое главное - ни нагрев, ни вентиляцию во время брутфорсов не включились ни разу. Контролировал на слух и по амперметру блока питания. Возможно надо подсунуть сначала команду включения зажигания или еще что... даже пробовал питать от 14.5В - вдруг напряжение контролирует.
Нашел по VAG вот такие примеры CAN пакетов:
https://docs.google.com/spreadsheets/d/1eir...vHJw/edit#gid=0
https://www.janssuuh.nl/en/blog/2016/03/18/bekende-canids/
5DD там кстати для управления салонным светом фигурирует, правда формат данных другой, указанный в доке у меня не работает. 3E1 указан как подогрев... тщательного попробовал пробрутфористь 3 байта целиком и до 8 байт разными комбинациями - ничего.
Посему вопросы:
1) (легкий я думаю и не особо важный) В CAN шине фольцвагена жеж должен стоять резистор между CANL и CANH в 120 Ом. Без резистора не работает. С резистором тоже не работает. Работает с резистором 120 Ом между землей и CANL... почему, не понимаю. Какие нибудь соображения на этот счет?
2) Кто нибудь знает CAN ID для включения подогрева, вентиляции или просто как сказать креслу что зажигание включено на этом или любом другом VAG авто. Да и любая инфа от других VAG автомобилей по подогреву и вентиляции сидений будет полезна.
Спасибо.
Я решил установить в свои автомобиль не родные сидения. Порылся по разборкам и нашел сиденья от Volkswagen Phaeton 2005 г.в.(со слов разборщиков, маркировка на сидухах 2003 год), с подогревом, массажем и вентиляцией в идеальном состоянии. Сиденья супер - но есть трудность чтобы их установить. Подогрев и вентиляция управляется по CAN шине. Массаж кнопкой на сиденьях.
Просто взять выводы физического нагревателя и вентиляторов и подать на них 12 вольт - вариант сильно "не очень". Тот же подогрев разделен на 4 зоны и у каждой зоны свой датчик температуры... комфорт емое. Поэтому очень хотелось бы использовать родной "мозг" кресел.
Я так посмотрю на форуме есть куча спецов по CAN шине, посему обращаюсь здесь за помощью.
Для начала что я сделал. Слепил CAN сниффер из того что было, а так же из чего планирую делать само управление со стороны машины. А именно микроконтроллер STM32F103C8T6 + адаптер CAN шины TJA1050. Ничего нового я думаю, кроме софта. Софт написал с нуля свой, т.к. все равно бы его придется писать реализацию управления со стороны машины, да и интересно самому было по-ковыряться.
Софт здесь - https://github.com/Nikolay-Kha/CANBusHacker
Несложно догадаться, что СТМка цепляется к CAN шине через TJA1050 и потом через последовательный порт все пишет/управляется в терминале. В компьютер он подключается через CP2102. Кстати у контроллера есть USB через который можно было бы реализовать виртуальный последовательный порт, но к сожалению 103 серия использует один и тот же буфер в памяти для CAN и USB, поэтому одновременно можно использовать что-то одно. Т.к. я не пользуюсь вендой терминал реализован как стандартный POSIX терминал, т.е. с историей ввода, редактированием и прочим, будет работать в любой POSIX системе(под вендой все же можно PuTTy использовать). т.е. тупо 'screen /dev/ttyUSB0 115200' и вперед использовать этот сниффер прямо в терминале.
А теперь главная проблема - т.к. самого фаетона или блока комфорта у меня от него нету(на разборке тоже уже нет), я пытаюсь как нибудь найти нужные команды для управления этим креслом. Написал парочку простых брут форсов. Перебирать 8 байт + 11 бит - не вариант конечно, но погонять несколько бит по разным ID кан шины я все же попытался. Пока удалось найти следующее:
при включении шлет что-то наподобие:
Код:
CAN received: 406#060280000000 [6 bytes]
CAN received: 406#060100000000 [6 bytes]
CAN received: 406#060200000000 [6 bytes]
CAN received: 406#060100000000 [6 bytes]
CAN received: 511#00008000000000 [7 bytes]
CAN received: 406#060200000000 [6 bytes]
CAN received: 406#060100000000 [6 bytes]
CAN received: 406#060200000000 [6 bytes]
CAN received: 406#060100000000 [6 bytes]
CAN received: 511#00008000000000 [7 bytes]
CAN received: 406#060200000000 [6 bytes]
CAN received: 511#00008000000000 [7 bytes]
CAN received: 406#061400000000 [6 bytes]
406#060200000200 высылает кресло при нажатии на кнопку памяти 1
406#060200000400 высылает кресло при нажатии на кнопку памяти 2
406#060200000800 высылает кресло при нажатии на кнопку памяти 3
В результате брутфорса вычислил, что команда 2C1#0010 (кстати еще много вариантов с какими данными) заставляет щелкать какое-то реле в блок - предположительно реле моторов регулировки положения руля(да, эти моторы управляются с блока кресла водителя) - не разбирался, не важно.
5DD#0000F0 - свет ног пол ток 300мА
5DD#FF000F - свет ног пол ток 180мА
5DD#0F000F - свет ног пол ток 380мА
5DD#0F0006 свет полная - 400мА(осцилографом ШИМ на лампе не проверял, но по току максимум)
5DD#000000 - выключить свет ног
Со светом понятно я думаю, CAN ID найден, данные подобрать можно, да и принципе уже есть примеры данных что бы им управлять.
Но самое главное - ни нагрев, ни вентиляцию во время брутфорсов не включились ни разу. Контролировал на слух и по амперметру блока питания. Возможно надо подсунуть сначала команду включения зажигания или еще что... даже пробовал питать от 14.5В - вдруг напряжение контролирует.
Нашел по VAG вот такие примеры CAN пакетов:
https://docs.google.com/spreadsheets/d/1eir...vHJw/edit#gid=0
https://www.janssuuh.nl/en/blog/2016/03/18/bekende-canids/
5DD там кстати для управления салонным светом фигурирует, правда формат данных другой, указанный в доке у меня не работает. 3E1 указан как подогрев... тщательного попробовал пробрутфористь 3 байта целиком и до 8 байт разными комбинациями - ничего.
Посему вопросы:
1) (легкий я думаю и не особо важный) В CAN шине фольцвагена жеж должен стоять резистор между CANL и CANH в 120 Ом. Без резистора не работает. С резистором тоже не работает. Работает с резистором 120 Ом между землей и CANL... почему, не понимаю. Какие нибудь соображения на этот счет?
2) Кто нибудь знает CAN ID для включения подогрева, вентиляции или просто как сказать креслу что зажигание включено на этом или любом другом VAG авто. Да и любая инфа от других VAG автомобилей по подогреву и вентиляции сидений будет полезна.
Спасибо.