Files
elmer/doc/history/opus-sonnet-comparison-2026-06-29.md
T

4.5 KiB
Raw Blame History

Ответы Opus и Sonnet — залипание клона ELM327 v1.5

Дата: 2026-06-29


Opus 4.8

1. Природа залипания

Прошивка-эмулятор (MCU имитирует команды, нет настоящего чипа). Под нагрузкой буфер ответа переполняется, MCU зацикливается, отдавая последний кадр (7F0112) на всё. CAN-контроллер жив, мёртв эмулятор. UART отвечает, но игнорирует ввод.

2. Детект залипания

AT-команда возвращает OBD-кадр = залип. ATRV без V/напряжения = залип. 3+ одинаковых hex-ответа на разные PID. 7F на PID 0100 — флаг.

3. Паузы

2-3 сек снижают вероятность, но не устраняют. Залипание зависит от суммарного числа команд, а не интервалов.

4. Auto-recovery

ATWS/ATZ иногда оживляют, но если завис UART-приём — команды не дойдут. 90% случаев — только обесточивание. Алгоритм: ATWS → 2 сек → ATRV для проверки. Не сработало → требовать переподключения.

5. Оптимальный размер цикла

2-3 PID на цикл при паузе 2-3 сек. 4 уже на грани.

6. Влияние оборотов

CAN-нагрузка ускоряет залипание. 3500+ → больше трафика → раньше переполнение.

7. Замена адаптера

OBDLink SX/MX+ — лучший. v2.1 клон — миф, тот же эмулятор.

8. Стратегия

Гибрид: адаптироваться (2-3 PID, паузы, детект+recovery), детектить тип, предупреждать, не блокировать.


Sonnet

1. Природа залипания

Баг клонов v1.5 (CH340/PIC18F). Залипает CAN-контроллер внутри клона.

2. Детект залипания

ATRV до/после цикла. 2-3 одинаковых ответа подряд.

3. Паузы

2-3 сек помогают. Минимум 1.5 сек. 6+ PID → 3-5 сек.

4. Auto-recovery

ATZ — надёжный. ATWS — мягче. ATPC — иногда. Последовательность: ATPC → 500ms → ATZ → переинит.

5. Оптимальный размер цикла

4 PID — хороший баланс. 6 рискованно. 2 безопасно.

6. Влияние оборотов

Да, прямое. Холостые — залипает позже.

7. Замена адаптера

OBDLink EX/MX+ → оригинал ELM327 v1.4b/v2.1 → клоны v2.1 лотерея.

8. Стратегия

Медленный режим (4 PID, 3 сек) как default. Детект + авто-ATZ. Предупреждение в UI.


Моё мнение

Opus точнее в трёх ключевых пунктах:

  1. Природа залипания — Opus правильно указывает на эмулятор/прошивку, а не CAN-контроллер. Это объясняет почему AT-команды тоже ломаются.

  2. Auto-recovery — Opus реалистичнее: 90% только обесточивание. Соннет излишне оптимистичен про ATZ. Наш опыт подтверждает Опуса — ATZ не помогал.

  3. Размер цикла — Opus консервативнее (2-3 PID). С учётом что клон залип после ~10 команд, 2-3 PID на цикл безопаснее.

Соннет практичнее в одном: 4 PID + 3 сек как default для продакшена. Но с учётом рисков, 2-3 PID + детект залипания + авто-предупреждение — более надёжный путь.

Что берём в работу:

  • Детект залипания через ATRV (без V = залип)
  • Циклы по 3 PID с паузой 2-3 сек
  • Auto-recovery через ATWS → проверка ATRV → если нет → сообщение пользователю
  • Предупреждение в UI: «Адаптер нестабилен, рекомендуем OBDLink»