diff --git a/doc/competitors.md b/doc/competitors.md index 05e5d08..b8de702 100644 --- a/doc/competitors.md +++ b/doc/competitors.md @@ -127,3 +127,47 @@ | **Дешёвый ELM327** | ✅ | ✅ | 🟡 | ❌ | ✅ | ✅ | ✅ | ✅ | **Уникальных фич Elmer:** 7 из 11 (отмечены ✅ только у нас). + +--- + +## 2026-05-27 (2): Масштабный поиск — 50+ проектов + +Найдено через GitHub Code Search: 50+ open-source проектов на стыке ELM327 + LLM. + +### 🔥 Проекты с рабочим Android→ELM→LLM (можно изучать код) + +| Проект | Язык | LLM | Звёзды | Обновлён | Ценность для нас | +|--------|------|-----|--------|----------|------------------| +| **Wal33D/OBD-Droid** | Java | ChatGPT | 4 | Фев 2025 | ⭐ **ЛУЧШИЙ.** Рабочий Android→ELM→LLM. AI copilot, GPS, NHTSA | +| **catsmoker/OBD2AI** | Kotlin | gpt-5-mini | 3 | Окт 2025 | ⭐ Android Kotlin. BT SPP + BLE | +| **petrpatek/obd2-mcp-server** | Python | Claude MCP | 2 | 10 дней назад | Свежий. 1937 Ford DTC | +| **castlebbs/Vehicle-Diagnostic-Assistant** | Python | DeepSeek/Claude | 2 | Дек 2025 | Hackathon-победитель. W600 MCU | + +### 🧠 Что украдено из OBD-Droid (Java Android) + +**Подтверждённые паттерны ELM327-коммуникации:** + +1. **UUID SPP:** `00001101-0000-1000-8000-00805F9B34FB` ✅ как у нас +2. **Чтение:** побайтово, сон 1мс между проверками (не sleep(250)!) +3. **Детекция промпта `>`:** КРИТИЧНО — не слать следующую команду пока не получили `>` +4. **Обработка ошибок:** SEARCHING → ждать, NO DATA → пропустить, UNABLE → reconnect, CAN ERROR → warm start +5. **Мульти-фрейм ISO-TP:** строки с префиксом `:`, буферизация до полного ответа +6. **Адаптивный таймаут:** базовый 5000мс, увеличивается для медленных шин +7. **`flush()` после каждой команды** — иначе данные теряются +8. **ATH1/ATH0:** управление заголовками CAN + +**Что у нас НЕ так по сравнению с OBD-Droid:** +- ❌ Мы ждём `sleep(250)` вместо ожидания `>` промпта +- ❌ Нет адаптивного таймаута +- ❌ Нет recovery при CAN ERROR / UNABLE TO CONNECT +- ❌ Нет `flush()` после отправки + +### 📊 Итоговая картина рынка + +| Тип | Количество | +|-----|-----------| +| ELM327 + LLM (всего) | 50+ | +| Рабочий Android→ELM→LLM | 4 | +| Русский язык | **0 (только мы)** | +| Offline fat-client | **0 (только мы)** | +| Жалобы водителя | **0 (только мы)** |