5.0 KiB
5.0 KiB
Elmer — анализ и план (2026-05-25)
Суть проекта
Сервис анализа ошибок электроники автомобиля через ELM327 OBD2 + LLM.
Железо
- Сканер: ELM327 Bluetooth v1.5, чип PIC18F25K80 (китайский клон)
- Ноутбук разработчика: с Bluetooth, будет соединяться с ELM327 напрямую для отладки
Целевая аудитория
- Технически любопытный автовладелец (не профессионал, но и не «глубинарий»)
- Уже имеет ELM327 — значит базовое понимание есть
- Хочет понять проблему, а не просто получить код ошибки
Ключевые требования к ответам
- Честная уверенность: «С вероятностью ~80% проблема в X, потому что...»
- Пояснение логики: почему именно этот вывод
- Предупреждения: «Если НЕ помогло — тогда проверь Y»
- Никаких категоричных «меняй X» без 100% уверенности
- Liability Protection: нельзя чтобы пользователь сломал машину из-за неверного диагноза
LLM
- Рассматривается DeepSeek (дёшево через API)
- Или другая простая/дешёвая модель
- Нужен RAG/grounding на реальных repair manuals и TSB, чтобы минимизировать галлюцинации
Компоненты системы
-
Android-приложение (в последнюю очередь)
- Стабильная версия Android (не гоняться за новейшей)
- Максимально простое: минимум кнопок
- Русский язык
- Bluetooth SPP → ELM327
-
Сервер (после отладки логики на ноутбуке)
- Принимает данные от приложения
- Формирует запросы к LLM
- Итеративный цикл: запрос → ответ → может запросить ещё параметры или действия от пользователя
- Отдаёт диагноз с пояснениями
-
LLM-слой
- Промпт с контекстом автомобиля (VIN → марка/модель/двигатель)
- RAG на базу знаний (ошибки, мануалы, TSB)
- Итеративная диагностика: сервер может переспрашивать LLM
Протокол диагностики (конечный автомат)
Цикл:
- Приложение считывает VIN → сервер
- Приложение считывает коды ошибок → сервер
- Сервер → LLM: первичный анализ
- LLM может запросить:
- Дополнительные PID'ы с ЭБУ (live data)
- Действия от пользователя (прогазовать, проехать, считать на холодную и т.д.)
- Повторять пока не будет достаточно данных для диагноза
- Финальный ответ: диагноз + степень уверенности + пояснения + что делать
План разработки (три фазы)
Фаза 1: Ноутбук + ELM327 (СЕЙЧАС)
- Python-скрипт: Bluetooth → ELM327 → читаем VIN, ошибки, PID'ы
- Отправляем в LLM вручную — отлаживаем логику, промпты, цикл вопросов-ответов
- Никакого сервера, никакого Android
Фаза 2: Сервер
- Flask/FastAPI — принимать данные, проксировать в LLM
- База знаний / RAG
- State machine диагностики
Фаза 3: Android-приложение
- Bluetooth SPP (Serial Port Profile) — есть нюансы на Android 12+
- Минималистичный UI
- Отправка данных на сервер, отображение ответов
Риски
- ELM327 v1.5 клон — неполный протокол, глюки на高速 CAN
- PID'ы разные у разных марок — нужна БД по производителям
- LLM галлюцинации — только grounding/RAG спасёт
- Bluetooth SPP на Android 12+ — permissions, pairing
Ресурсы
python-OBD— библиотека для работы с ELM327 (или свой serial-протокол)pyserialуже установлен в системе- DeepSeek API (или OpenRouter как альтернатива)
Продолжить: читать данные с ELM327 на ноутбуке по Bluetooth.