2ГИС на руле без телефона: как я сделал opensource HUD за копейки
Телефон на руле — это боль
Если ездишь на мотоцикле или велике и юзаешь навигатор, почти наверняка начинаешь с держалки. Я тоже так начинал. И довольно быстро понял, что это плохая идея.
Телефон на руле — самая дорогая и хрупкая деталь. Флагман за 100-200к висит на зажиме за 500 рублей, который ослаб на кочках. Даже без драматичного «вылетел на асфальт» хватает постоянного дребезга: стекло и корпус после пары сезонов уже не скажут спасибо.
А если повезёт не ушатать смартфон, то со временем неизбежно деградирует оптическая стабилизация камеры. Мото и жёсткий велоруль дают вибрацию, под которую модуль просто не проектировали. Со временем OIS «устаёт»: люфт, стук при встряхивании, мыло на видео. Держалка с амортизацией смягчает, но спектр двигателя и дороги никуда не девается.
Ну и бытовой ад: блики от глянца на солнце, выгорает дисплей, батарея дохнет от постоянного GPS + экрана.
Мне нужно было другое
Не смартфон на траверсе, а маленький экранчик в периферийном зрении: куда свернуть и через сколько метров. Телефон пусть лежит в кармане или сумке, а за навигацию отвечает штука, которую не жалко и в которой нет OIS за полцены флагмана.
И ещё принципиальное: я не хотел менять навигатор. Езжу в 2ГИС — пробки, избранное, привычный поиск уже есть. Идея «скачай наше отдельное приложение, там свои карты» меня бесит. Значит, нужен мост: привычный навигатор на телефоне → крошечный HUD на руле.
Что есть на рынке (и почему не подходит)
Beeline Moto II — круглая шайба, яркий экран, Bluetooth, IP67, 14 часов езды. Смотрится серьёзно, но $220-350 + крепления + не шлют в РФ. И главное: маршрут живёт в их приложении, а мне нужен мой привычный навигатор.
Garmin zūmo XT2 — это уже планшет за $600. Для дальняков ок, для города на лёгком мото — тяжеловато и по цене, и по логике.
CarPlay/Android Auto с Алика — $150-290, ярко, «как в машине». Но это снова большой стеклянный монитор + проводка 12В. Тот же класс проблем, что телефон в держалке.
В сухом остатке: за полторы сотни баксов — CarPlay-коробки, за двести-триста — Beeline, за шестьсот — Garmin. Чего почти нет — маленького открытого OLED-HUD, который ест уже установленный 2ГИС/Яндекс, без чужих карт и без телевизора на руле.
Почему своё
Я хотел три вещи:
Телефон в кармане, на руле — дешёвый экран
Навигация остаётся привычной: 2ГИС, потом Яндекс
Железо и протокол открыты, чтобы не зависеть от чужой подписки и можно было дебажить самому
Так появился Atenboro Nav.
Введите описание к изображению (не обязательно)
Сейчас в железе ESP8266 + двухцветный OLED 128×64. Бюджет платы — копейки (~250₽). Из минусов: нет IP67 из коробки, нет яркого IPS днём, нет готового корпуса. Это DIY-стенд, который едет к полевым тестам, а не конкурент Beeline.
Как это работает
Схема простая:
OLED двухцветный физически: жёлтая полоса сверху, синяя снизу. Стрелки рисую своими глифами — иначе на 128×64 получается каша.
Телефон в кармане или сумке, 2ГИС работает как обычно. Когда нужно свернуть — уведомление уходит на плату, на руле загорается стрелка + дистанция. Всё.
Где было больно
У 2ГИС нет нормального API вроде nextTurn=RIGHT, distM=400. Есть шторка с баннером типа:
400 m — Большой Строченовский переулок
Рядом — мусор: Update, Step by Step, ETA, Parking. Accessibility параллельно может принести «осталось 17 км». Если скормить парсеру всё подряд, на OLED легко получить прямо / 1000, пока на телефоне живой направо / 400.
Пришлось строить иерархию: карманный баннер главнее, слабый straight из иконки лучше считать «не знаю», чем угадывать. Один раз стрелка инвертировалась — прозрачный фон приняли за белый. Чинил отдельным детектором.
Короче, каркас мне быстро набросал ИИ-агент, а вот отладка — это уже я сам, вручную, с логами и тестовыми поездками.
Что работает, что нет
Работает:
Сплэш и HUD рисуются ✓
Карманный режим через уведомления ✓
Live 2ГИС парсится ✓
Inject-маршрут для тестов ✓
Косяки:
SoftAP сушит батарею (следующий шаг — BLE)
Телефон иногда уезжает на знакомый Wi-Fi, плата теряет связь (пофиксил приоритетами)
Днём OLED просит тень (IPS был бы ярче, но жрёт больше)
Корпуса пока нет — плата на стяжках
Что дальше
По приоритету:
BLE вместо Wi-Fi — меньше жрёт, нет войны с сохранёнными сетями
ESP32-C3 или nRF52840 — удобнее прошивка
Нормальный корпус под мото-крепление (на 3D-принтере)
Яндекс.Навигатор тем же мостом
Код открытый, забирайте
Репозиторий на GitHub, лицензия MIT: github.com/jdmarshall95/atenboro-nav
Там прошивка, Android-приложение, схема подключения, чеклист тестов. Буду рад PR и issue — особенно полезны логи сессий с коротким «на телефоне было X, на OLED Y».
Если кто шарит в BLE GATT или хочет помочь с корпусом — пишите, обсудим.








