3.0 KiB
Ответ Соннета — по результатам тестов 28.06.2026
(Отправлено по ошибке вместо Опуса)
1. Природа залипания
Известный баг клонов (особенно v1.5 на CH340/PIC18F). Залипает обычно CAN-контроллер внутри клона — накапливает необработанные фреймы и перестаёт принимать команды через UART. Настоящий ELM327 сбрасывает буфер сам; клоны — нет.
2. Детект залипания
Лучший вариант — сравнивать ATRV до и после цикла (у живого ELM всегда выдаёт реальное напряжение ~12.x V). Дополнительно: если два последних ответа на разные PID идентичны побайтово — залип. Трёх совпадений достаточно.
3. Паузы
2–3 секунды между циклами по 4 PID обычно помогают. Минимум ~1.5 сек. При 6+ PID в цикле лучше 3–5 сек. Чем больше PID, тем больше CAN-трафика, тем быстрее переполняется буфер.
4. Auto-recovery
ATZ (полный сброс, ~1 сек) — самый надёжный программный способ. ATWS (warm start) — мягче, но не всегда помогает клонам. ATPC (protocol close) — иногда достаточно. Последовательность: ATPC → 500 мс → если не помогло → ATZ → переинициализация.
5. Оптимальный размер цикла
При паузе 2–3 сек: 4 PID — хороший баланс. 6 PID уже рискованно на нагруженной шине. 2 PID — безопасно, но медленно.
6. Влияние оборотов
Да, напрямую. При высоких оборотах CAN-шина загружена больше (ECU шлёт больше фреймов), буфер клона заполняется быстрее. На холостых — залипает позже.
7. Замена адаптера
Приоритет: OBDLink EX/MX+ (оригинальный чип STN2120, нет этой проблемы) → оригинальный ELM327 v1.4b/v2.1 (реже). Клоны v2.1 — лотерея, та же болезнь. Китайские v1.5 — для продакшена непригодны.
8. Стратегия для продакшена
Адаптироваться под клонов, но с явными ограничениями:
- Медленный режим (4 PID, пауза 3 сек) как default
- Детект залипания + авто-
ATZ - В UI показывать «адаптер нестабилен, рекомендуем OBDLink/оригинал»