[Программирование] Блок BTA для NAC

Программируем своими руками
laleksss
Прапорщик
Прапорщик
Сообщения: 204
Зарегистрирован: 07 дек 2018, 23:29
Откуда: Sacramento USA
Авто: Volkswagen Jetta
Пробег: 117117
Прошлый авто: Peugeot 508
Благодарил (а): 63 раза
Поблагодарили: 22 раза

[Программирование] Блок BTA для NAC

#16

Сообщение laleksss » 12 сен 2021, 21:04

frog2050
Вообще не горит. Свои то блоки я оттелекодировал уже давно :)

Отправлено спустя 1 минуту 13 секунд:
frog2050
Если в разъёме используется кан-комфорт (125 килобит), то сделать. Попробуй с второй версией скетча, должно получиться.

Аватара пользователя
frog2050
Маршал
Маршал
Сообщения: 14134
Зарегистрирован: 13 апр 2014, 21:03
Откуда: Москва
Авто: Citroen C4L Optima, 120л.с. Белый
Пробег: 56400
Прошлый авто: Citroen C4(B7) Хэтч проехал 96т.км за 3,5 года
:
За активность - Серебро За активность - Золото Мастер на все руки
Благодарил (а): 1430 раз
Поблагодарили: 2064 раза

[БЖ] Блок BTA для NAC

#17

Сообщение frog2050 » 12 сен 2021, 21:07

У людвига вроде на 500 кбит через OBD
Изображение
Есть Лексия, Бутово.

laleksss
Прапорщик
Прапорщик
Сообщения: 204
Зарегистрирован: 07 дек 2018, 23:29
Откуда: Sacramento USA
Авто: Volkswagen Jetta
Пробег: 117117
Прошлый авто: Peugeot 508
Благодарил (а): 63 раза
Поблагодарили: 22 раза

[БЖ] Блок BTA для NAC

#18

Сообщение laleksss » 12 сен 2021, 21:11

frog2050
У него разные. Там в папке лежат два скетча.
Насчёт работоспособности - можешь залить в ардуинку один из представленных скетчей, да запустить программу, далее выбрать произвольные данные и не подключая ардуину к блокам - запустить, должно дойти до этапа "Module unlocked" и повиснуть на "Opening diag session"

UPD:
Я подумал, в теории нет никаких препятствий к тому, что бы оно стало общаться с блоком и через 500 килобит. Но нужно проверять.

UPD2:
Сама коммуникация работает и на высокоскоростном скетче. Нужно проверить на машине, может потом схожу, проверю ))

UPD3:
Проверил на машине, через 500 килобит не работает (но оно изначально и не предназначалось для этого). Может быть, когда-нибудь допишу. Но особо на это я бы не надеялся - на столе блок телекодирует, а больше и не нужно. На досуге может разберу настройки, что бы отключить проводное соединение с подушкой безопасности.

infizer
Старшина
Старшина
Сообщения: 190
Зарегистрирован: 19 май 2019, 17:14
Откуда: Иркутск
Авто: C4 sedan 150 Д.С.серебристый
Пробег: 60000
:
Герой труда Золотые руки Мастер на все руки
Благодарил (а): 21 раз
Поблагодарили: 110 раз

[БЖ] Блок BTA для NAC

#19

Сообщение infizer » 13 сен 2021, 04:49

У меня на двух ардуино нано скетч Людвига ведёт себя нестабильно, иногда вешая шину с последующей гирляндой. Мало памяти. Поэтому все операции с данными лучше проводить на стороне ПО, а не железа.

laleksss
А в чем принципиальное отличие, кроме скорости шины? Через скетч канхакера все работает отлично и на разных скоростях.

Зы. Даже через elm327 половина блоков читаются, а с дополнительными 5 проводами Бси, НАК и прочие блоки читаются

laleksss
Прапорщик
Прапорщик
Сообщения: 204
Зарегистрирован: 07 дек 2018, 23:29
Откуда: Sacramento USA
Авто: Volkswagen Jetta
Пробег: 117117
Прошлый авто: Peugeot 508
Благодарил (а): 63 раза
Поблагодарили: 22 раза

[БЖ] Блок BTA для NAC

#20

Сообщение laleksss » 13 сен 2021, 08:13

infizer
Да ничем ) Просто ответы от блока захардкожены и, вполне возможно, что при подключении к кану живой машины, в ответ прилетает что-то не то )

laleksss
Прапорщик
Прапорщик
Сообщения: 204
Зарегистрирован: 07 дек 2018, 23:29
Откуда: Sacramento USA
Авто: Volkswagen Jetta
Пробег: 117117
Прошлый авто: Peugeot 508
Благодарил (а): 63 раза
Поблагодарили: 22 раза

[Программирование] Блок BTA для NAC

#21

Сообщение laleksss » 15 сен 2021, 23:06

Дописал инструкцию по пользованию программой и ссылкой на неё на драйве, если хотите - копируйте: https://www.drive2.ru/b/598710195798953203/



Эта часть записи является продолжением предыдущей. По сути — краткой инструкцией по пользованию софтом и описанием его возможностей. Ну и опишу подключение к блоку BTA в двух словах. Но, традиционно, прежде чем мы начнём…:

!Предупреждение!
1. Всё, что описано в этой и последующих статьях вы делаете на свой страх и риск. За последствия использования или неиспользования программного/аппаратного обеспечения, равно как и действия / бездействия вызванное им, автор(ы), т.е. я и люди на которых ссылаюсь и чьи наработки по программному/аппаратному обеспечению представлены в этом и последующих текстах, ответственности не несут. Все права на интеллектуальную собственность принадлежат её авторам.

2. Хотя оборудование, которое вы получите у итоге — универсальное, скажу, что оно будет работать только с моим софтом (просто другие варианты использования мне лень описывать — сами нагуглите), на настоящий момент, единственная цель которого — читать/писать вин в блок BTA (все виды, существующие на настоящий момент), в режиме "на столе", а так же читать/стирать в нём ошибки. Возможно, в будущем, его функционал будет расширен, а возможно и нет, ибо смотрите п.3

3. Поддержка не осуществляется и всё, что представлено в этой и других статьях, предоставляется как есть.

Если вы не согласны с этими правилами — не читайте и не используйте программное и аппаратное обеспечение
Так же добавлю, что в ЛС я не отвечаю. В комментариях — пишите, ибо в них вероятность ответа существенно выше.

Вы это прочитали, супер! Понаехали!

Подключение блока к проводам
Первым делом нам нужно подключить наш блок BTA|BTA2|BTA3 / 3s / 3.1s к созданному нами интерфейсу. Это — очень просто и делается по схеме:

[Программирование] Блок BTA для NAC - W8uiihj5_Dxh1hPTeduuDzymp68-960.jpg


14 контакт = +12v
16 контакт = -12v

9 и 18 контакт — шина кан хай и кан ло (вам предстоит выяснить полярность опытным путём, ибо мне лень копать схематики глубже, а при неверном подключении блок просто не будет выходить на связь — см последний скрин)

После того, как с этой сложной процедурой разобрались, подключаем сначала питание на блок, а после этого включаем ардуино в компьютер.
Ожидаемый результат, если вы всё сделали правильно: блок просыпается и начинает потреблять 50-100 миллиампер. Если не просыпается — пропробуйте поменять полярность кан-шины (отключив питание от блока, а ардуино от компьютера). Если потребление поднялось до 400-500 миллиампер, а блок внезапно начал разговаривать с вами (а он может) — значит вы сделали что-то не то.

Запуск программы
Для того, что бы начать пользоваться программой, нужно её просто скачать отсюда и разархивировать в любое место, не имеющее варварских символов в пути относительно корня (пример: C:\BTA\ — нормальный путь, C:\Пользователи\я_у_мамы_дурачок\бта\ — не очень нормальный путь).
Выделю жирным: программа компилировалась под Windows 10 x64, потому как она будет работать на других версиях ОС — хз, под особое сомнение ставятся системы x32 — может не запуститься вообще. Если что-то не нравится — смотрите п.3 правил :)

После того, как вы разархивировали её, открываете папку и запускаете вот этот файл:

[Программирование] Блок BTA для NAC - 69KdjnLDC9F5-jugkfsctu5dZs0-1920.jpg


В принципе — он там один, доступный для запуска, но я недавно понял, что если что-то пойти не так — оно пойдёт именно так )))

После запуска открывается вот такое окно:

[Программирование] Блок BTA для NAC - 5siuG1zpIRkpLL1RdpRDbBzkSE4-1920.jpg


Внимательно читаем, что написано. Если всё ок, вводим тот ком-порт из списка представленных, которым мнит себя ардуино. Вводим буквами, английскими, с цифрой, без кавычек. Регистр значения не имеет. Вот так:

[Программирование] Блок BTA для NAC - 6DFALjd64KPx7GybiT3ea0tAr1I-1920.jpg


Если порты не предлагаются, значит у вас их нет и дальнейшее не имеет смысла ;(
Нажимаем Enter. Появляется часть выбора типа устройства, выбираем 1 или 2. В примере — БТА2, потому ввёл цифру 2, у вас — может быть не так:

[Программирование] Блок BTA для NAC - qmxtI7dwC9eGJiPQGPcMFfNEOrU-1920.jpg


Нажимаем Enter, появляется следующий текст. Разбираю по пунктам — тип блока — тип выбранный на предыдущем шаге, чтение чего либо — чтение соответствующих параметров, ничего не меняет в блоке, потому всегда начинайте с этих пунктов, стирание ошибок — стирает ошибки (они снова появятся, ибо блок вне машины), запись vin — записывает вин.

[Программирование] Блок BTA для NAC - oiioAjwUWQaZfv_m0g3MTsKfzIg-1920.jpg


Для начала — выбираем чтение ошибок, для чего вводим 1 и нажимаем Enter:

[Программирование] Блок BTA для NAC - 8wjWZYBDoWFBtMr_pd2fZ_dQQKQ-1920.jpg


Полученный результат
Думаю, что комментарии к картинке излишни.

Если ваша картинка выглядит так же, то, поздравляю, вы всё сделали правильно и можно переходить к следующим шагам, например чтению ВИН (2):

[Программирование] Блок BTA для NAC - vWzEr6l9ixmTZPsJbROiGKOaY9w-1920.jpg


Или чтению зоны А0 (3) (покажет количество записей и дату загрузки блока):

[Программирование] Блок BTA для NAC - m45UVjSxBJd01UGzq4SPWugfZY4-1920.jpg


После записи VIN она станет такой же и у вас, только число записей будет другим
Стирание ошибок не сильно отличается, потому не буду заострять на нём внимание — нажали, подождали, сравнили результаты.

Теперь — сама запись вин номера. Валидация поля работает по длине (17 знаков) и совпадению 1 и 2 ввода. Если что-то не так — программа называет вас дураком. Вин вводить можно в любом формате, но я бы рекомендовал вводить БОЛЬШИМИ ЛАТИНСКИМИ БУКВАМИ и цифрами:

[Программирование] Блок BTA для NAC - RCN7FETVZInLG-PBFc-pstPFaiE-1920.jpg


После второго ввода появляется таймер на раздумья — в течение 30 секунд можно безопасно закрыть программу — ничего не запишется:

[Программирование] Блок BTA для NAC - adN0LJsXuZYDaMeOF_a8nZWH52I-1920.jpg


Далее происходит процедура записи:

[Программирование] Блок BTA для NAC - BZNAkgXNj96LDLQPoSZz6gjQAU8-1920.jpg


Зона A0 формируется на основе вашей зоны, её перезапись нужна для того, что бы предтотвратить появление ошибки F303 — ошибка защищённого телекодирования, ни на что не влияет, но лишняя ошибка нам ни к чему. Срабатывает примерно в 80% случаев, но я лучше скажу, что после записи вин эта ошибка будет с вами. На скрине ниже — она никуда не делась (ну ещё бы, я 25 раз блок писал).

После того, как всё записали — перезагрузите блок и ардуино путём отключения питания и считайте вин заново:

[Программирование] Блок BTA для NAC - NhYYaTAjNvtCijOleA55SAGZlC8-1920.jpg


Как видим — всё записалось. Ниже — ещё одно предупреждение, прежде чем что-то делать — прочти и его.

Важно:
1. Я специально не обрабатывал фаталы, как дополнительную защиту от идиота — если у вас окно в какой то момент само закрывается, значит вы что-то сделали не так (введите ком3 или 3 или ком в порт и посмотрите что будет) и, возможно, вам стоит отказаться от попыток использования этой программы.
2. Программа коммуникации представляет собой набор скриптов, отправляющий определённую команду в порт и ждущую ответа из него, например, если окно выглядит так, как на картинке ниже и больше ничего не происходит, значит вы что-то где-то не так подключили, например, перепутали кан-шину:

[Программирование] Блок BTA для NAC - acCLso8RauTyVcLMmCwcayCQ9TA-1920.jpg


3. В некоторых случаях фатал (закрытие окна) и зависание может происходить и при записи вин-номера. Это не страшно — у всех разное железо и не все блоки стабильны, просто перезапустите программу и повторите запись. Так, как программа обращается к отдельным байтам, изменение одного, не затрагивает изменение другого.

4 Иногда не записывается A0, в этом случае, не выключая железо — повторите процесс.

На этом всё, надеюсь, что инструкция будет вам полезна и вы сможете безболезненно заменить свой старый блок телематики на новый. Возможно, в будущем, функционал будет расширен, но я бы на это не надеялся, ибо мне лень :)

И да, обе инструкции написаны пошагово. Если что-то не работает == перечитайте обе.

До новых встреч! :)