Хабрахабр

[Из песочницы] Второе дыхание Pandora DXL 3000 или как я прикрутил собственную телеметрию

К разработке собственной телеметрии меня привела, пожалуй, многим знакомая ситуация — работало, да перестало. Однажды вечером блок автосигнализации перестал воспринимать брелок. Я понимал, что нужно для начала попытаться перепривязать брелок, для чего требовалось выполнить несложную процедуру, четко следуя инструкциям из руководства по монтажу. Выполнение процедуры становилось невозможным, так как автосигнализация находилась в режиме охраны, отключить которую аварийно можно было кнопкой Valet, введя сервисный код.

Безуспешно перебрать на память несколько кодов я все-таки попытался. Сервисный код я никогда не пытался запомнить, а мастер-код — тем более. Трель от сирены в ушах еще потом стояла долго, так как сирена была установлена в салоне авто. В течении нескольких минут мне пришлось угнать свой автомобиль. Знаете, по личному испытанному ощущению, это может привести в сильное замешательство неподготовленного злодея. Не помню почему я разместил сирену именно там — то ли по собственной лени, то ли увидел в этом какой-то смысл. Я начал разбираться как быть дальше и что с этим делать. К моему глубокому сожалению, блок мне пришлось демонтировать. Кому интересно, что же вышло в итоге, прошу под кат.
У меня было несколько гипотез:

  1. Сбои в работе антенного модуля.
  2. Сбой энергонезависимой памяти в основном блока. В результате могли быть повреждены данные о брелоках и их синхронизации.
  3. Сбой энергонезависимой памяти брелока. Последствия схожи с п. 2.
  4. Глушение сигнала в целях подготовки к угону.

Вариант с наличием глушилки сигнала я проверил сразу же как переехал в безопасное место. Автосигнализация так же не реагировала на брелок.

возможности сброса сервисных кодов. Я обратился к дилеру по вопросу наличия тех. Да и будет лучше если вы установите всё это дело у нас — сообщили они, отдав при этом еще несколько тысяч. Мне ответили, что такой возможности нет и вам придется приобрести новый комплект за несколько тысяч рублей. Дилеру лучше продать новый комплект, чем производить сервисное обслуживание. Такой ответ меня ничуть не удивил, имхо, понятное дело! Вообще именно такие моменты и побуждают к альтернативам, реверсу, разработке и DIY. Тут внезапно я почувствовал как мое настроение резко улучшилось, появилась мысль разобраться во всем самостоятельно, попутно выяснив можно ли сбросить коды или нельзя. Я бросил себе вызов.

Пока Pandora лежала в шкафу я пытался сделать свой модуль. Начал я отнюдь не с копаний в блоках, а с альтернативного варианта. Что сказать, все это был голый энтузиазм. Я прикинул, что если разработать свой модуль автосигнализации, то это будет сразу круто, надежно, гибко и абсолютно не сложно. Процесс был полностью творческим. Я провел несколько недель за написанием прошивки и прототипированием модуля. Например, уже на стадии рабочего прототипа с нужными релюшками, транзисторами и GSM я вдруг захотел добавить еще GPS и Bluetooth. Так, внезапно, мне приходила какая-либо идея и я с удовольствием реализовывал ее. Пусть модуль будет сразу крутым, как я изначально прикинул и мне пришлось сменить микроконтроллер на более жирный, так как UART портов у ATMega328 всего один единственный. Ну а чего тянуть кота за хвост? Вариант реализации программных UART мне не понравился, по той простой причине, что аппаратный надежнее. Достать у AVR что-то распространенное и с тремя UART мне показалось нереальной затеей. Не долго думая я выписал себе пару STM32F103, так как это был настоящий 32-битный микроконтроллер с большим объемом памяти и богатой периферии, а тем более и нужным числом UART. Помню как STM32 уже вовсю мелькал в различных статьях по электронике и был доступен к заказу на AliExpress. Опыта программирования STM32 у меня на тот момент не было, но этого лишь возник интерес изучения чего-то нового.
В ожидании прихода микроконтроллеров было решено отложить прототип и не просто ждать, а проверить гипотезы, который остались.

Все продолжалось до тех пор, пока однажды я не заглянул под крышку блока автосигнализации. Зима приближалась, да и машина без “присмотра” как-то не вселяла комфорта. Радости моей не было и предела, так как это был AVR, а значит с ним можно было поработать и как следует. Внутри я обнаружил ATMega324! У ATMega324 2 UART порта. Первым делом я начал проверять разводку UART и SPI. Цепи SPI же привели меня на нераспаянную колодку (на фото у кварца в нижнем левом углу платы). Один UART заведен на сдвиговый регистр, а второй на разъем антенного модуля.

Чтение прошивки и EEPROM приводили к пустым дампам. Быстренько напаял колодку и подключил программатор. Проверил обмен между блоком и антенным модулем. Понятное дело, разработчик не мог допустить такой прокол. Это могло означать, что число брелоков в памяти равно 0. Линия TX была чистая в момент тревоги. Также выяснилось, что микроконтроллер управляет питанием антенного модуля через транзисторный ключ. Антенный модуль оказался совсем не разговорчивым. Все это мне показалось немного странным. На выходе ключа было обнаружено входное напряжение, а по инструкции должно быть +5В. Вариантов проверки гипотез у меня не оставалось. Может быть по этой причине антенный модуль молчал? Вот так сюрприз! А что там с фьюз-битами? Ну и как теперь сидеть на месте ровно? Во фьзах разрешена прошивка через SPI интерфейс. Это был такой хардкорный вариант, поскольку кроме самой прошивки еще и плату прозвонить пришлось. Правильно — написать свою прошивку!

Получалось, что слой лак не сдирался, а аккуратно прокалывался в нужных местах. Защитный лак мешал процессу, но вооружившись щупами с острым кончиком дела пошли гораздо лучше. Прозвонка платы заняла два вечера.

Распиновка портов микроконтроллера

Антенный модуль и брелок уже были бесполезны. Написал тестовую прошивку, прошил, пощелкал релюшками — отлично! Я подумал, а что если оставить в своем проекте GSM и GPS, выкинуть Bluetooth и прикрутить все его к автосигнализации Pandora? Так если можно написать прошивку для блока автосигнализации, используя всю его готовую схемотехнику и точки подключения в авто, то остается решить вопрос с каналом связи. Во-первых не нужно было готовить сложную плату, схемотехника Pandora решала многие задачи, а мне же лишь нужно было сделать модуль расширения, который подключался бы взамен штатного антенного модуля. Ну конечно, это же лучший вариант! Как можно понять, период ожидания микроконтроллеров из Китая прошел не заметно.

Она очень простая. Чтобы соединить все модули между собой я вытравил плату. В ней готовые модули GPS, GSM и блок автосигнализации подключены к UART портам микроконтроллера STM32.

Начинка модуля разместилась в корпусе блока питания от ноутбука.

В итоге на роль корпуса очень хорошо подошел пенал от лицевой части магнитолы SUPRA с удобным механизмом защелкивания. DC-DC преобразователь ни в какую не хотел размещаться внутри корпуса и пришлось подыскать более просторный корпус.

Плата была покрыта полиуретановым лаком.

Тут все просто: Компоненты.

6-4. DC-DC преобразователь LM2596
GSM модем SIM800L (питание 3. 4-3. 4)
GPS модуль NEO-6M (питание 3. 8)
Кусок текстолита.

Его выходное напряжение установлено в 3. Необходимое напряжение для модулей формирует DC-DC преобразователь. Винт регулировки замазан лаком, чтобы предотвратить его смещение от вибраций. 7 вольта.

Я думал какую периферию мне необходимо поддержать в первую очередь и получился такой список:

Датчики температуры салон и двигателя.
2. 1. Вольтметр бортовой сети.
4. Акселерометр.
3. Вход концевого выключателя багажника.
6. Вход концевых выключателей дверей.
5. Выход на зажигание.
8. Вход концевого выключателя педали тормоза.
7. Выход на обходчик иммобилайзера.
10. Выход на реле повторителей.
9. Выход на сирену. Выход на реле блокировки.
11.

Сознательный отказ от поддержки:

  1. Выход на реле центрального замка. В автомобиле отсутствует проводка до двери центрального замка.
  2. Вход тахометра, так как он просто не имеет смысла для подключения на гибридном автомобиле.
  3. Вход концевого выключателя капота, так как отсутствует штатно на автомобиле.

Алгоритмы и функции, которые были реализованы:

Хранение настроек в EEPROM.
2. 1. Активация бесключевого обходчика с аналоговым управлением (iDatalink).
4. Запуск двигателя по технологии START-STOP.
3. Контроль пониженного напряжения на аккумуляторе.
6. Удаленный запуск двигателя.
5. Постановка/снятие охраны (контроль периметра зон).
8. Контроль работы двигателя по напряжению.
7. Поддержка сирены.
10. Контроль концевых выключателей дверей и багажника.
9. Поддержка тихого режима.
12. Поддержка сигнальных огней (повторителей поворотов).
11. Соединение и передача состояний на сервер.
14. Поддержка внешней платы расширения (модуль телеметрии).
13. Список доверенных номеров. Управление системой DTMF кодами, в случае отсутствия связи с сервером.
15.

Обратная связь реализована вызовом на доверенный номер телефона, c которого был установил режим охраны.

Управление системой было реализовано через Telegram-бот:

image

Также бот отправляет сообщения о критических состояниях, таких как:

  1. Низкое напряжение на аккумуляторе.
  2. Напряжение на аккумуляторе восстановлено.
  3. Низкая температура двигателя.
  4. Высокая температура двигателя.

По факту самоделке уже исполнилось 3 года и за этот срок я выяснил, что:

  1. Самоделка была в максимальном аптайме порядка 80 дней, затем следовала перезагрузка устройства, так как GSM модем переставал принимать даже звонки.
  2. Стабильная работа в отрицательные и высокие температуры (от -40 до +40).
  3. Нужно сделать поддержку цифровых шин.

Возможность перепрошивки Pandora DXL 3000 по SPI шине является уязвимостью, потому что позволяет загрузить ПО, которое может активировать выходы бесключевого обходчика иммобилайзера и деактивировать блокировки.

Я изучил схемотехнику автомобильный сигнализации, увидел как можно делать компактно и просто и научился программировать микроконтроллеры STM32. В целом проделанная работа дала мне огромный опыт. Я вдохновился и продолжил разработку второй версии. В итоге я сделал продукт, которым пользуюсь сам. Вторая версия сможет подключаться к цифровым шинам для упрощения и сокращения числа точек подключения, а также реализовывать обход штатного иммобилайзера без внешних обходчиков по цепям IMMO-IMI.

Полным ходом идет отладка поддержки шины BEAN. Ах да, все это время система работала и продолжает работать на семейном автомобиле Toyota Prius в 20 кузове, который богат на цифровые шины.

S.: Вторая версия была разработана и проходит тестирование на автомобиле Toyota Camry 2007 года выпуска. P.

В итоге свой проект я вижу как возможность создания открытой системы автомобильной телеметрии.

Спасибо за внимание!

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»