Перейти к содержимому

История версий

Чейнджлог

Важные для райдера изменения, разделённые по датам и номерам сборок Android и iOS.

Главное — алерт теперь умеет говорить: системный синтезатор произносит показатель и значение, фразу можно переписать и услышать заранее, а под звучащей тревогой речь молчит. У условия появился шаг «Повторять каждые N», без которого «пробег больше километра» срабатывал один раз за поездку. Трек на карте разложен по секундам поездки, а не по отметкам спутников, и красится худшим за секунду — провал ШИМ длиной в треть секунды больше не проваливается между точками. Настройки разведены на две двери: «Настройки колеса» — то, что уходит в аппарат, «Настройки» — всё, что живёт в телефоне, с новым разделом «Карта и GPS». Перенос поездок показывает полосу и умеет отменяться, а отдельная поездка выгружается в «Архив LoEUC».

Android · vc63

  • Алерт может говорить, а не пищать. В редакторе появился переключатель «Чем сигналит»: «Звук» или «Голос». Голосовое правило произносит показатель и значение системным синтезатором речи — «Скорость 60», «Аккумулятор 10», «Пробег 5» — и всегда срабатывает один раз: фраза, которая повторяется, перестаёт быть сообщением. Услышать показатель несколько раз за поездку можно шагом «Повторять каждые N» у условия.

  • Фразу голосового алерта можно переписать. Единицы измерения по умолчанию не произносятся: «шестьдесят» вместо «шестьдесят километров в час» — на 60 км/ч это пятнадцать лишних метров дороги; если они нужны, вставьте «{единицы}» — слово согласуется с числом само. Под полем стоит строка «Как это прозвучит»: всё предложение с подставленным числом и оценка его длины в секундах, чтобы сравнивать варианты.

  • Речь не накладывается на писк. Если в момент срабатывания звучит тревога, фраза ждёт её конца; если тревога начинается посреди фразы — фраза обрывается. Ждущая фраза перед тем как прозвучать перепроверяется и пересобирается по свежим данным: «Скорость 80» не переживёт вашего торможения до сорока и не прозвучит вовсе, а «Аккумулятор 10» после долгого аларма скажется как «Аккумулятор 8».

  • Голос доступен правилу с одним условием верхнего уровня: при двух ветках через «ИЛИ» неизвестно, какая сработала, и фраза назвала бы не то — переключатель там недоступен, и редактор говорит почему. Все голосовые оповещения выключаются одним тумблером в менеджере алертов, писки при этом остаются. Если в телефоне нет системного голоса нужного языка, редактор предложит открыть настройки речи. На часы голосовые правила не отправляются: вибрация значит «что-то не так», а «Пробег 5» — не «не так».

  • У условия появился шаг «Повторять каждые N». Условие взводится заново каждые столько-то единиц показателя, не дожидаясь, пока тот уйдёт за значение сброса. Без этого «пробег больше километра» звучал один раз за поездку: пробег не убывает. Шаг считается в сторону сравнения, поэтому «заряд ниже пятидесяти, каждые десять» идёт вниз — 50, 40, 30, — а под числом в редакторе показан ряд отметок, на которых правило сработает.

  • Трек на карте разложен по секундам поездки, а не по отметкам спутников. Под мостами и во дворах отметки приходят раз в сотню метров, и такой кусок был одного цвета целиком — внутри него у прибора не было ни одной точки. Точки расставляются по счётчику пробега колеса, поэтому там, где вы тормозили, они стоят плотнее, и место на карте совпадает с моментом записи: куда ткнули, то и показано. Колёса, которые пробег не отдают, раскладываются по времени, как раньше.

  • Цвет каждой точки трека — худшее за её секунду, а не значение ровно на отметке. Телеметрия пишется в разы чаще секунды, и провал ШИМ длиной в треть секунды раньше падал между точками и не красил ничего. Подпись в строке показаний теперь так и говорит — «за секунду».

  • Тап по треку попадает туда, куда ткнули. На подложке OSM выбиралась не ближайшая к пальцу часть нитки, а первая, попавшая в допуск: точка уезжала вдоль трека к началу поездки, а вместе с ней и показания. Нажатие мимо трека теперь снимает выбор.

  • В меню по трём точкам две разные двери. «Настройки колеса» в разделе «КОЛЕСО» открывают то, что записывается в сам аппарат: железо, профили, плагины, таймер выключения — до них теперь два тапа вместо четырёх, а крутят их на ходу. «Настройки» в разделе «ПРИЛОЖЕНИЕ» — всё остальное, что живёт в телефоне. Раньше плитка называлась «Настройки колеса», а открывала экран с заголовком «Настройки приложения».

  • В настройках приложения выделен раздел «Карта и GPS»: тип подложки, провайдер карты и запись трека переехали туда из «Записи и данных», а сам раздел стал «Данными» — частота логов, автоудаление, модель батареи. Wear OS уехал из меню дашборда в «Связь и датчики», к TPMS: это устройство на том же конце связи.

  • Экспорт и импорт поездок показывают окно с полосой — сколько поездок из скольких перенесено — и их можно отменить. Отмена останавливается на границе поездок, поэтому в истории остаются только целые поездки. Остаток довозит повторная загрузка того же файла, дубликатов она не создаёт, а оборванный архив удаляется сам: распаковать его всё равно нельзя, а в списке файлов он выглядел бы готовым.

  • Отдельная поездка выгружается в «Архив LoEUC» — свой формат приложения. GPX теряет телеметрию, WheelLog — всё, чего нет в его колонках; архив принимает наша же загрузка, поэтому поездка переезжает на другой телефон целиком, вместе со сводкой, по которой строится прогноз заряда. В режиме выбора тем же архивом уходят отмеченные поездки — «Экспорт выбранных».

iOS · build 66

  • Алерт может говорить, а не пищать. В редакторе появился переключатель «Чем сигналит»: «Звук» или «Голос». Голосовое правило произносит показатель и значение системным синтезатором речи — «Скорость 60», «Аккумулятор 10», «Пробег 5» — и всегда срабатывает один раз: фраза, которая повторяется, перестаёт быть сообщением. Услышать показатель несколько раз за поездку можно шагом «Повторять каждые N» у условия.

  • Фразу голосового алерта можно переписать. Единицы измерения по умолчанию не произносятся: «шестьдесят» вместо «шестьдесят километров в час» — на 60 км/ч это пятнадцать лишних метров дороги; если они нужны, вставьте «{единицы}» — слово согласуется с числом само. Под полем стоит строка «Как это прозвучит»: всё предложение с подставленным числом и оценка его длины в секундах, чтобы сравнивать варианты.

  • Речь не накладывается на писк. Если в момент срабатывания звучит тревога, фраза ждёт её конца; если тревога начинается посреди фразы — фраза обрывается. Ждущая фраза перед тем как прозвучать перепроверяется и пересобирается по свежим данным: «Скорость 80» не переживёт вашего торможения до сорока и не прозвучит вовсе, а «Аккумулятор 10» после долгого аларма скажется как «Аккумулятор 8».

  • Голос доступен правилу с одним условием верхнего уровня: при двух ветках через «ИЛИ» неизвестно, какая сработала, и фраза назвала бы не то — переключатель там недоступен, и редактор говорит почему. Все голосовые оповещения выключаются одним тумблером в менеджере алертов, писки при этом остаются. Если в телефоне нет системного голоса нужного языка, редактор предложит открыть настройки речи.

  • У условия появился шаг «Повторять каждые N». Условие взводится заново каждые столько-то единиц показателя, не дожидаясь, пока тот уйдёт за значение сброса. Без этого «пробег больше километра» звучал один раз за поездку: пробег не убывает. Шаг считается в сторону сравнения, поэтому «заряд ниже пятидесяти, каждые десять» идёт вниз — 50, 40, 30, — а под числом в редакторе показан ряд отметок, на которых правило сработает.

  • Трек на карте разложен по секундам поездки, а не по отметкам спутников. Под мостами и во дворах отметки приходят раз в сотню метров, и такой кусок был одного цвета целиком — внутри него у прибора не было ни одной точки. Точки расставляются по счётчику пробега колеса, поэтому там, где вы тормозили, они стоят плотнее, и место на карте совпадает с моментом записи: куда ткнули, то и показано. Колёса, которые пробег не отдают, раскладываются по времени, как раньше.

  • Цвет каждой точки трека — худшее за её секунду, а не значение ровно на отметке. Телеметрия пишется в разы чаще секунды, и провал ШИМ длиной в треть секунды раньше падал между точками и не красил ничего. Подпись в строке показаний теперь так и говорит — «за секунду».

  • В меню дашборда две разные двери. «Настройки колеса» открывают то, что записывается в сам аппарат: железо, профили, плагины, таймер выключения — до них теперь два тапа вместо четырёх. «Настройки» — всё остальное, что живёт в телефоне. Раньше пункт назывался «Настройки колеса», а открывал экран с заголовком «Настройки приложения».

  • В настройках приложения выделен раздел «Карта и GPS»: тип подложки, провайдер карты и запись трека переехали туда из «Записи и данных», а сам раздел стал «Данными» — частота логов, автоудаление, модель батареи.

  • Экспорт и импорт поездок показывают окно с полосой — сколько поездок из скольких перенесено — и их можно отменить. Отмена останавливается на границе поездок, поэтому в истории остаются только целые поездки. Остаток довозит повторная загрузка того же файла, дубликатов она не создаёт, а оборванный архив удаляется сам: распаковать его всё равно нельзя, а в списке файлов он выглядел бы готовым.

  • Отдельная поездка выгружается с карточки поездки в «Архив LoEUC» — свой формат приложения. GPX теряет телеметрию, WheelLog — всё, чего нет в его колонках; архив принимает наша же загрузка, поэтому поездка переезжает на другой телефон целиком, вместе со сводкой, по которой строится прогноз заряда. Там же на карточке появилась выгрузка в WheelLog CSV — раньше она была только из списка поездок.

Главное — до шести рабочих столов дашборда на одно колесо с переключением свайпом, ручной выбор модели колеса вместо угадайки по напряжению и переписанный заряд с запасом хода: шкала больше не растёт на ходу, не прыгает посреди поездки и не залипает на нуле, а плитка дальности не удваивается после торможения. Трек достраивает провалы GPS пунктиром честной длины, выученная модель батареи едет вместе с выгрузкой поездок, а история колеса переживает переустановку приложения. На Android виджет наконец рисуется, появились обучение модели по прошлым поездкам и автосвет по углу педалей.

Android · vc62

  • Несколько рабочих столов дашборда. На одно колесо можно завести до шести раскладок — например, городскую, скоростную и диагностическую. Столы переключаются горизонтальным свайпом, полоска под шапкой показывает, какой открыт и сколько их всего, а при переключении на секунду всплывает имя. Пока стол один, свайп предлагает завести второй; управление — по тапу на полоске или в меню дашборда, пункт «Рабочие столы»: копия текущего, переименование, удаление.

  • Модель колеса выбирается вручную: меню дашборда → «Модель». Выбор сохраняется за колесом и переживает переподключение, а если приложение опознало модель само, оно так и пишет. Пока модель не выбрана и не опознана, заряд по напряжению не показывается вовсе: вывести число банок из одного напряжения нельзя даже в принципе — полный 36S и 40S по 3.78 В дают одни и те же 151.2 В. Раньше приложение здесь угадывало, и на T4 просадка ниже 90 В переводила делитель с 24S на 20S: заряд показывал 100 % на наполовину пустом пакете до конца поездки. У кого класс напряжения Begode выставлен руками — он продолжает работать, пока модель не выбрана.

  • Заряд перестал расти, пока пакет отдаёт энергию. Напряжение после нагрузки восстанавливается само, и кривая читала это как приход: на Lynx после разгона шкала поднималась на восемь пунктов, пока из пакета уходило ещё 46 Вт·ч. Заодно ушёл скачок вверх посреди поездки на два десятка пунктов — признак «пакет полон» снимался одним кадром рекуперации в конце торможения, теперь ток в пакет считается зарядкой, только если продержится полминуты.

  • Ноль шкалы больше не наступает раньше времени: подгонка кривой могла утащить нижний узел к нулю, и на 3.93 В на банку райдер видел ровный ноль тридцать четыре минуты подряд. И наоборот — полный пакет теперь опознаётся после зарядки: пакет Sherman L отдыхает на 4.1655 В на банку и на четыре милливольта промахивался мимо прежнего порога, отчего весь следующий цикл шкала занижала заряд примерно на четверть.

  • Запас хода перестал раздуваться на ровном месте: плитка показывала 107 км там, где до торможения было 44. Кадры со стоянки в расход больше не входят — это подсветка и мозги, а не цена километра; расход меряется кусками по 250 метров, а не по четырёхметровым тикам одометра, и сглаживается на трёх километрах вместо полукилометра.

  • «Обучить по поездкам» в разделе «Модель батареи»: приложение проходит уже записанные поездки и строит кривую пакета по ним, не дожидаясь новых. Сначала показывает список — какие поездки годятся, сколько это километров и почему остальные не подошли. Не годятся записи старых версий, где торможение записывалось расходом, записи без знака тока и слишком короткие; склеенные поездки режутся по швам, а телеметрия со стоянки не берётся.

  • Выученная модель батареи и сводки поездок теперь попадают в выгрузку и восстанавливаются при импорте. Переезд на новый телефон больше не стирает всё, чему приложение научилось о пакете.

  • История колеса переезжает за ним, если оно пришло под новым адресом — например, когда архив снят с айфона, где колесо помечено другим идентификатором. Поездки, сводки, модель пакета и калибровка скорости привязываются к нынешнему колесу. Правило намеренно узкое: перенос делается, только если под этим именем в базе лежит ровно один чужой идентификатор.

  • Импорт архива поездок больше не роняет приложение. Одиннадцатимегабайтный архив, импортированный на связи с колесом, ронял его трижды подряд: импорт держал базу занятой всё время разбора файла, и очередная запись телеметрии идущей поездки не могла пробиться. Заодно импорт стал быстрее — 13.3 секунды против 0.21 на тридцати двух тысячах строк, — а неудачные импорт и экспорт показывают строку об ошибке вместо вылета.

  • Трек проходит сквозь провалы GPS. Там, где спутников не было, а колесо ехало, рисуется пунктирный участок ровно той длины, которую накрутил одометр, с подписью «без GPS» и километрами: на поездке райдера концы разрыва расходились на 4.1 км, а пройдено было 6.3. Лента показаний штрихует те же участки, а карточка поездки рвёт линию там же, где карта — раньше на ней было семь разрывов, которых на карте нет.

  • Сброс одометра посреди поездки больше не схлопывает трек. Счётчик колеса обнулился на двадцать первой минуте, и просмотр девяностоминутной поездки показывал почти пустую гребёнку с бегунком в самом начале, хотя все точки и вся телеметрия записаны. Километраж на карточке был правильный и раньше — расходилась только карта.

  • Виджет на домашнем экране наконец рисуется. В релизной сборке он вечно показывал крутилку — в отладочной этого не было видно вовсе. Заодно: настоящая карточка в списке виджетов вместо той же крутилки, растяжка до пяти столбцов, итоги поездки на широком ярусе (средняя и максимальная скорость, пик ШИМ, средняя банка), кнопка фары, которая шлёт ту же команду, что кнопка на дашборде, и фон на выбор — «Плитка», «Матовый», «Прозрачный». Кнопка сигнала рядом пока молчит: команды сигнала нет ни в одной разобранной прошивке, а слать в колесо угаданные байты нельзя.

  • Автосвет умеет выключаться по углу педалей — третий способ вдобавок к скорости и таймеру. Он смотрит на позу колеса, а не на движение: подняли за ручку, положили набок, поставили на подножку. Угол сообщают LeaperKim («Угол педалей») и Inmotion; у остальных колёс пункт недоступен, а неизвестный угол фару не гасит никогда.

  • Кнопка сигнализации в пульте быстрых действий: постановка и снятие охраны, тумблер идёт за ответом колеса, а не за нажатием. Кнопка появляется, только когда плагин сигнализации действительно работает на колесе — то есть на пропатченной прошивке. Проверено на стенде эмуляции прошивки, на живом колесе не подтверждено.

  • Прошивка LeaperKim проверяется до заливки: точное совпадение с известной сборкой, целостность структуры образа и предупреждение, если колесо называет себя не тем, что записано в файле. Файл, который прошивкой не является, экран отклоняет. И сама заливка теперь уходит только в ту характеристику, которую использует официальное приложение: запасные ветки могли отправить образ не туда — в худшем случае уже после того, как колесо уведено в загрузчик.

  • В конструкторе порога по тапу на значении наконец поднимается клавиатура. Поле открывалось и рисовало курсор, но набирать было нечем.

  • «Искать всегда» в настройках связи: попытка переподключения раз в тридцать секунд без предела по времени, пока не отключитесь сами. Реже обычного поиска — иначе телефон сядет за ночь.

  • Подложка карты «OSM» — обычная карта OpenStreetMap. Подписи и мелкие улицы у неё подробнее, чем у приглушённых подложек, и она не гасится ни в светлой теме, ни в тёмной: её выбирают именно такой, какая она есть.

  • Кнопка «сохранить текущее» в библиотеке оформлений больше не плодит одинаковые записи. Она сочиняла новое имя каждому нажатию, поэтому десять нажатий давали десять копий одного дашборда; теперь она гаснет и подписывается, под каким именем это оформление уже сохранено.

  • Боковые метрики закреплённой полосы можно переставлять: в настройках полосы потяните строку за ручку слева.

iOS · build 65

  • Несколько рабочих столов дашборда. На одно колесо можно завести до шести раскладок — например, городскую, скоростную и диагностическую. Столы переключаются горизонтальным свайпом, полоска под шапкой показывает, какой открыт и сколько их всего, а при переключении на секунду всплывает имя. Пока стол один, свайп предлагает завести второй; управление — по тапу на полоске или в меню дашборда, пункт «Рабочие столы»: копия текущего, переименование, удаление.

  • Модель колеса выбирается вручную: меню дашборда → «Модель». Выбор сохраняется за колесом и переживает переподключение, а если приложение опознало модель само, оно так и пишет. Пока модель не выбрана и не опознана, заряд по напряжению не показывается вовсе: вывести число банок из одного напряжения нельзя даже в принципе — полный 36S и 40S по 3.78 В дают одни и те же 151.2 В. Раньше приложение здесь угадывало, и на T4 просадка ниже 90 В переводила делитель с 24S на 20S: заряд показывал 100 % на наполовину пустом пакете до конца поездки. У кого класс напряжения Begode выставлен руками — он продолжает работать, пока модель не выбрана.

  • Заряд перестал расти, пока пакет отдаёт энергию. Напряжение после нагрузки восстанавливается само, и кривая читала это как приход: на Lynx после разгона шкала поднималась на восемь пунктов, пока из пакета уходило ещё 46 Вт·ч. Заодно ушёл скачок вверх посреди поездки на два десятка пунктов — признак «пакет полон» снимался одним кадром рекуперации в конце торможения, теперь ток в пакет считается зарядкой, только если продержится полминуты.

  • Ноль шкалы больше не наступает раньше времени: подгонка кривой могла утащить нижний узел к нулю, и на 3.93 В на банку райдер видел ровный ноль тридцать четыре минуты подряд. И наоборот — полный пакет теперь опознаётся после зарядки: пакет Sherman L отдыхает на 4.1655 В на банку и на четыре милливольта промахивался мимо прежнего порога, отчего весь следующий цикл шкала занижала заряд примерно на четверть.

  • Запас хода перестал раздуваться на ровном месте: плитка показывала 107 км там, где до торможения было 44. Кадры со стоянки в расход больше не входят — это подсветка и мозги, а не цена километра; расход меряется кусками по 250 метров, а не по четырёхметровым тикам одометра, и сглаживается на трёх километрах вместо полукилометра.

  • Выученная модель батареи и сводки поездок теперь попадают в выгрузку и восстанавливаются при импорте. Переезд на новый телефон больше не стирает всё, чему приложение научилось о пакете.

  • История колеса переживает переустановку приложения. iOS выдаёт колесу идентификатор, заведённый на пару «колесо — установка приложения»: обновление из App Store его сохраняет, а удаление с переустановкой — нет, и всё, что приложение помнило о колесе, оставалось лежать под старым ключом. Теперь поездки, сводки, модель пакета и калибровка скорости переезжают на нынешнее колесо. Правило намеренно узкое: перенос делается, только если под этим именем в базе лежит ровно один чужой идентификатор.

  • Трек проходит сквозь провалы GPS. Там, где спутников не было, а колесо ехало, рисуется пунктирный участок ровно той длины, которую накрутил одометр, с подписью «без GPS» и километрами: на поездке райдера концы разрыва расходились на 4.1 км, а пройдено было 6.3. Карточка поездки и превью в списке рвут линию там же, где карта.

  • Сброс одометра посреди поездки больше не схлопывает трек. Счётчик колеса обнулился на двадцать первой минуте, и просмотр девяностоминутной поездки показывал почти пустую гребёнку с бегунком в самом начале, хотя все точки и вся телеметрия записаны. Километраж на карточке был правильный и раньше — расходилась только карта.

  • Кнопка «сохранить текущее» в библиотеке оформлений больше не плодит одинаковые записи. Она сочиняла новое имя каждому нажатию, поэтому десять нажатий давали десять копий одного дашборда; теперь она гаснет и подписывается, под каким именем это оформление уже сохранено.

  • Боковые метрики закреплённой полосы можно переставлять: в настройках полосы потяните строку за ручку слева.

Главное в этом обновлении — виджет состояния колеса на домашнем экране, показатель «Скорость по GPS» с калибровкой поправки по накопленным поездкам и настройки, разложенные по семи разделам вместо двух плоских списков. Плюс плавающий пульт быстрых действий, сброс пиков сессии, ручной ввод значений в конструкторе порогов и работающая фара на старших Sherman.

Android · vc61

  • Виджет колеса на домашнем экране. Между поездками — заряд, запас хода, имя колеса и когда была последняя связь; на ходу — скорость, ШИМ и пробег поездки. Два размера, оформление берётся из приложения. Виджет ни с чем не связывается сам: он показывает то, что записало приложение, обновляясь раз в пятнадцать секунд, пока связь с колесом жива.

  • Плавающий пульт быстрых действий. Вместо полосы, занимавшей место под шапкой всю поездку, в углу висит одна точка: тап раскрывает пульт, а он закрывается по совершённому действию или через тридцать секунд после последнего касания. Точку можно перетащить в любой из четырёх углов, выбор запоминается.

  • Меню шапки переехало со списка на сетку плиток, разбитую по тому, над чем действие: колесо, экран, приложение, связь. Двенадцать пунктов читаются вдвое быстрее. Выключение колеса ушло из пульта в меню, под подтверждение.

  • «Сбросить пики» обнуляет максимумы текущей сессии: каретки пиков на приборах и растянутые под рекорд шкалы возвращаются к обычным значениям. Запись поездки при этом не меняется — в истории остаётся всё, что было на самом деле.

  • Новый показатель «Скорость по GPS», который можно вынести на панель. Он берётся с приёмника телефона, и коррекция скорости к нему не применяется. При потере сигнала показатель становится пустым, а не замирает на последнем значении, и алерт по нему в этот момент не срабатывает — это сделано намеренно.

  • Калибровка скорости по GPS. Приложение сравнивает показания колеса со скоростью по GPS на ровном ходу и, когда наберётся хотя бы три поездки и достаточно узкий разброс, предлагает поправку и показывает, на чём она основана. Применяете поправку вы: автоматически приложение ничего не меняет, чтобы подменённые координаты не испортили тихо и показания, и алерты.

  • Коррекция скорости запоминается отдельно для каждого колеса — у разных колёс разная одометрия. Уже настроенное общее значение никуда не пропадает и остаётся значением по умолчанию.

  • Свой максимум шкалы скорости. По умолчанию потолок приложение выбирает само и растягивает шкалу на рекорде; заданный вручную потолок жёсткий — стрелка упирается в край, и её положение всегда означает одно и то же. В режиме «Авто» видно число, которое выбрало приложение.

  • В конструкторе порога значение можно нажать и ввести с клавиатуры: степпером с шагом в пять в 87 не попасть. Кнопки «минус» и «плюс» остались, запятая принимается наравне с точкой, удержание вводится в секундах, а неверный ввод молча откатывается к прежнему значению.

  • Настройки разложены по семи разделам — «Скорость и точность», «Алерты», «Колесо», «Автоматика», «Запись и данные», «Связь и датчики», «Диагностика» — вместо порядка по типу контрола. Под названием раздела печатаются текущие значения, так что корень настроек читается как сводка. Экран «Дополнительные функции» убран, менеджер алертов открывается плиткой напрямую.

  • Средняя ячейка теперь показывается и на колёсах, которые не присылают отдельные ячейки: напряжение пачки делится на известное число банок. Минимума и максимума по ячейкам на таком колесе по-прежнему не будет, но привычное «сколько вольт на банке» есть и там.

  • На карте поездки и на ленте курсор встаёт в точку под пальцем, а не в ближайшую отметку спутников. Отметки пишутся раз в две секунды — это метров двадцать хода, — а показания берутся из записи поездки, поэтому они есть и там, где отметки GPS нет.

  • Фара снова включается на Sherman, Sherman Max, Sherman S и Abrams. Их прошивка понимает только текстовую команду света, двоичной в ней нет вовсе, и кнопка фары на этих колёсах молчала; теперь приложение смотрит, какое колесо ответило, и шлёт нужную форму команды. Соответствие выведено из разбора образов прошивки, на живом колесе пока не подтверждено. Заодно исправлена подпись у колёс с одной кнопкой света — она называлась «Дальний», хотя дальнего там нет.

  • Пункт «Обновление прошивки» показывался на любом колесе, включая KingSong и зарядку, хотя разобран ровно один формат. Теперь он есть только на колёсах LeaperKim, а экран прямо предупреждает, что заливка отлажена лишь на Lynx S: у остальных колёс марки формат тот же, но вход в загрузчик не проверялся, а у Sherman L вдобавок другой микроконтроллер.

  • Экран плагинов прошивки для LeaperKim: установка дополнений во второй банк флеша, три готовых плагина в комплекте, состояние слотов и памяти. Дополнения принимает только колесо с пропатченной прошивкой — стоковое кадры игнорирует, — и проверено это пока на эмуляторе прошивки, а не на живом колесе.

iOS · build 62

  • Виджет колеса на домашнем экране. Между поездками — заряд, запас хода, имя колеса и когда была последняя связь; на ходу — скорость, ШИМ и пробег поездки. Два размера, оформление берётся из приложения. Виджет ни с чем не связывается сам: он показывает то, что записало приложение, обновляясь раз в пятнадцать секунд, пока связь с колесом жива.

  • Плавающий пульт быстрых действий. Вместо полосы под шапкой в углу висит одна точка: тап раскрывает пульт, а он закрывается по совершённому действию или через тридцать секунд после последнего касания. Точку можно перетащить в любой из четырёх углов, выбор запоминается. Выключение колеса ушло из пульта в меню, под подтверждение.

  • «Сбросить пики» обнуляет максимумы текущей сессии: каретки пиков на приборах и растянутые под рекорд шкалы возвращаются к обычным значениям. Запись поездки при этом не меняется — в истории остаётся всё, что было на самом деле.

  • Новый показатель «Скорость по GPS», который можно вынести на панель. Он берётся с приёмника телефона, и коррекция скорости к нему не применяется. При потере сигнала показатель становится пустым, а не замирает на последнем значении, и алерт по нему в этот момент не срабатывает — это сделано намеренно.

  • Калибровка скорости по GPS. Приложение сравнивает показания колеса со скоростью по GPS на ровном ходу и, когда наберётся хотя бы три поездки и достаточно узкий разброс, предлагает поправку и показывает, на чём она основана. Применяете поправку вы: автоматически приложение ничего не меняет, чтобы подменённые координаты не испортили тихо и показания, и алерты.

  • Коррекция скорости запоминается отдельно для каждого колеса — у разных колёс разная одометрия. Уже настроенное общее значение никуда не пропадает и остаётся значением по умолчанию.

  • Свой максимум шкалы скорости. По умолчанию потолок приложение выбирает само и растягивает шкалу на рекорде; заданный вручную потолок жёсткий — стрелка упирается в край, и её положение всегда означает одно и то же. В режиме «Авто» видно число, которое выбрало приложение.

  • В конструкторе порога значение можно нажать и ввести с клавиатуры: степпером с шагом в пять в 87 не попасть. Кнопки «минус» и «плюс» остались, запятая принимается наравне с точкой, удержание вводится в секундах, а неверный ввод молча откатывается к прежнему значению.

  • Настройки разложены по семи разделам — «Скорость и точность», «Алерты», «Колесо», «Автоматика», «Запись и данные», «Связь и датчики», «Диагностика» — вместо порядка по типу контрола. Под названием раздела печатаются текущие значения, так что корень настроек читается как сводка. Экран «Дополнительные функции» убран, менеджер алертов открывается плиткой напрямую.

  • Средняя ячейка теперь показывается и на колёсах, которые не присылают отдельные ячейки: напряжение пачки делится на известное число банок. Минимума и максимума по ячейкам на таком колесе по-прежнему не будет, но привычное «сколько вольт на банке» есть и там.

  • На карте поездки и на ленте курсор встаёт в точку под пальцем, а не в ближайшую отметку спутников. Отметки пишутся раз в две секунды — это метров двадцать хода, — а показания берутся из записи поездки, поэтому они есть и там, где отметки GPS нет.

  • Фара снова включается на Sherman, Sherman Max, Sherman S и Abrams. Их прошивка понимает только текстовую команду света, двоичной в ней нет вовсе, и кнопка фары на этих колёсах молчала; теперь приложение шлёт ту форму команды, которую разбирает прошивка ответившего колеса. Соответствие выведено из разбора образов прошивки, на живом колесе пока не подтверждено.

  • Вкладки батарей на экране BMS переключались примерно с двадцатого нажатия — переключатель пересобран и реагирует на каждое. Сам экран стал обычным переходом: системная стрелка и свайп назад от края.

  • «Назад» из открытой поездки возвращает в список поездок, а не сразу на дашборд.

  • Вторая ведущая метрика полосы теперь сохраняется: двойной спидометр больше не превращался бы в одиночный после перезапуска приложения.

  • На iPhone появилась температура обмотки, а у колёс LeaperKim — ещё и температура мотора: общий движок их разбирал, а экран не показывал.

Карта поездки перестала выпрыгивать из-под пальца: свои кнопки масштаба, запасная подложка вместо надписи про ключ и трек, в который можно попасть, не целясь. Плюс честное переключение светлой темы, читаемые подписи пиков на iPhone и колесо из гаража, которое помнит свои метрики без связи.

Android · vc60

  • Карта на дашборде больше не выпрыгивает из-под пальца: трек вписывается один раз — когда он появился, — дальше камера ваша.

  • Свои кнопки «+» и «−» рядом с «Вписать трек» — и на экране поездки, и на карте-плитке дашборда.

  • Подложка больше не приходит с надписью «API KEY REQUIRED» поперёк: приложение раз в час проверяет CARTO само и при отказе переходит на Esri Gray Canvas, у которого свой предел приближения — z16.

  • В настройках карты подложку можно выбрать руками: «Авто», CARTO или Esri. Подпись об источнике теперь следует за выбранной подложкой и появилась на плитке дашборда.

  • По треку стало можно попасть пальцем: зона нажатия выросла до 56 dp и на OSM, и на Google — тапом по треку перематывается лента поездки.

  • Полоса курсора на ленте видна сразу: до первого касания она приглушённо стоит на пике ведущей метрики — там, откуда взяты числа рядом.

  • Светлая тема и чёрный фон больше не спорят: выбрали светлую — чёрный уходит, выбрали чёрный — тема переезжает в тёмную. Раньше переключатель показывал «Светлая», а экран оставался чёрным.

  • Образец плитки в редакторе показывает тот цвет, который метрика получит на дашборде, а не семейный.

iOS · build 58

  • Подписи пиков на карте поездки снова читаются: цифры перестали выходить чёрными, и подписаны все пики, а не один — когда они сходятся почти в одну точку, подписи встают стопкой.

  • По треку стало можно попасть пальцем: зона нажатия — 56 pt, как на Android.

  • Курсор ленты встал на место — раньше он уезжал за её край — и виден до первого касания: приглушённая полоса на пике ведущей метрики.

  • Колесо, открытое из гаража, помнит свои метрики: плитки, метрики полосы и пресеты настраиваются без связи, набор берётся из последней записанной поездки этого колеса.

  • Вместо вечной крутилки «Ожидание телеметрии…» у отключённого колеса — строка «Колесо не подключено», и плашка больше не перехватывает нажатия.

  • Пара дуг на узких экранах перестала быть придавленной: прибор получает свою ширину и стоит выше в полосе.

  • Светлая тема, включённая в системе, гасит чёрный фон, а в палитре на светлой теме чёрного больше нет.

  • Цвет плитки: все десять образцов вместо шести и свой цвет через системный подборщик — цвет, выбранный на Android, теперь виден и на iPhone. У композитной плитки вместо неработающей палитры подсказка: цвет выбирается у самой метрики.

Экран трека переписан целиком: маршрут красится показателем теми же цветами и порогами, что и дашборд, второй показатель идёт толщиной линии, а под картой — распрямлённые дорожки с общим курсором и всеми срывами порога в ряд. Заодно трек перестал врать: точки, записанные после конца поездки, прыжки приёмника и посчитанный по точкам километраж больше не портят маршрут. На дашборде появился «Кластер: спидометр» — два показателя на одной ленте в две дорожки, — а экран «Закреплённая полоса» переделан. Колесо из гаража теперь открывается без подключения, экран телефона не гаснет, пока приложение открыто, а прогноз заряда и пробега перестал ломаться на неудачной кривой и на затяжном спуске. В Android-версии добавлены обновление прошивки LeaperKim и плитки температуры мотора и обмотки.

Android · vc59

  • Экран трека поездки переписан целиком. Маршрут красится выбранным показателем — теми же цветами и порогами, что на дашборде: оттенок говорит, какой это показатель, насыщенность — насколько нагружен участок, а красный означает ровно одно, что сработал ваш порог. Второй показатель идёт толщиной линии, поэтому скорость цветом и ШИМ толщиной читаются на одном маршруте. Под картой тот же трек, распрямлённый по километрам: по дорожке на каждый выбранный показатель, один курсор на всех, а все срывы порога выстроены засечками в ряд. Показатели выбираются чипами внизу, до четырёх сразу, и нажатие ведёт чип по кругу: выключен → дорожка → цвет → толщина. Отмечены старт, финиш и пик каждого показателя со значением. Шкала цвета натянута на саму поездку, поэтому цвета сравнимы внутри одной поездки, но не между поездками.

  • Трек перестал врать. Точки, записанные уже после конца поездки, в маршрут больше не попадают: на поездке райдера их было 216 из 474, последняя через 44 минуты, и к маршруту пририсовывалась дорога домой в кармане. Прыжок приёмника больше не соединяется прямой через полгорода — скорость колеса это независимый от спутников свидетель, и отметку, которой колесо не подтверждает, трек либо выкидывает, либо оставляет разрывом. Одиночные выбросы перестали растягивать масштаб: рамка выходила 13 × 4.8 км там, где маршрут занимает 1.7 × 1.8. Пройденный путь берётся у колеса, а не считается по точкам: карта показывала 5.74 км там, где колесо намотало 12.4.

  • Карточка поездки берёт тот же трек, что и карта. Она собирала маршрут из сырой записи сама, поэтому на карте маршрут был честный, а на карточке к нему по-прежнему пририсовывалась дорога домой в кармане.

  • Новый вид прибора «Кластер: спидометр» — два показателя на одной ленте в две дорожки: внешняя ведущему, внутренняя соседу. Третьего не будет: прибор устроен ровно на пару. Пик за поездку отмечен кареткой на дуге. Режим доступен и обычной плитке, и ведущей ячейке закреплённой полосы — там нужны высота L и вторая метрика.

  • Экран «Закреплённая полоса» переделан: он говорит о составе полосы — ведущая ячейка со слотами, боковые по строке на показатель, высота, — а каталог показателей открывается по слоту. Раньше три полноразмерных каталога подряд не помещались и в два с половиной экрана прокрутки, и вторая метрика пряталась ровно посередине. Теперь экран помещается целиком.

  • Колесо из гаража открывается без подключения — в меню колеса появился пункт «Открыть без подключения». Раскладка, автогромкость и автофара — это настройки приложения, а не записи в колесо, и править их можно, пока колесо лежит выключенным: лишнее подключение только съедало бы его заряд. Тап по строке по-прежнему значит «поехали». Заодно диалог имени стал меню действий, а имя правится вторым шагом.

  • Плитки перестали пропадать из раскладки. Экран выбора показателей засеивался тем, что колесо отдаёт прямо сейчас, а сохранение пересобирало раскладку из показанного — показатель, переставший приходить, уносил свою плитку при первом же заходе, хотя галочку с него никто не снимал.

  • Экран не гаснет, пока приложение открыто. На прибор смотрят, а не трогают его, и системный таймаут гасил дисплей ровно тогда, когда показания и нужны. Свернули приложение — телефон засыпает как обычно; разрешений это не требует.

  • Прогноз заряда и прогноз пробега стали устойчивее. Плохо сшитая кривая разряда растягивала всю шкалу 0–100 на узкую полосу напряжения, где сотые доли вольта стоили десятков пунктов, — теперь такая кривая отбраковывается и работает запасная таблица по ячейке. Остаток пробега перестал исчезать на затяжном спуске, где расход уходит в минус, и перестал выдавать числа вроде 2325 км: он считается по расходу, ниже которого колесо с райдером не едет в принципе.

  • Begode без умного BMS: число банок в серии берётся из справочника моделей, а не угадывается по напряжению. Из одного напряжения его не вывести — 36S и 40S при 3.78 В на банку одинаково дают 151.2 В, — и процент заряда с прогнозом пробега расходились между собой. Теперь оба считают по одному пакету. Модели, которой в справочнике нет, это не касается, а ручной выбор класса напряжения остался на месте.

  • Обновление прошивки LeaperKim — отдельным пунктом в меню колеса. Приложение разбирает файл прошивки, показывает версию, размер и контрольную сумму, требует наклонить колесо (как это делает фирменное приложение) и переспрашивает перед первым отправленным байтом; порядок команд повторяет фирменный, и заливка проверена на живом Lynx-S. Запись флеша необратима, и гарантий тут нет: если прошивка не встанет, поднять колесо можно только режимом восстановления фирменного приложения.

  • Новые плитки «Температура мотора» и «Температура обмотки» для LeaperKim. Штатная прошивка эти поля не заполняет — в кадре на их месте заглушки, — поэтому плитки предлагаются только тому колесу, которое их действительно передаёт, то есть с пропатченной прошивкой. Значения сняты с живого колеса: 23.80 °C мотор и 30.00 °C обмотка.

  • В диагностике LeaperKim кнопка «Выгрузить значения» отдаёт поток целиком: каждую запись каждого пакета со своей отметкой времени, около 500 Гц вместо прежних ~6, и по каждой записи видно, что колесо передало, а что достроил предсказатель. Прежняя выгрузка была слишком грубой, чтобы разбирать по ней поведение датчиков.

iOS · build 57

  • Экран трека поездки переписан целиком. Маршрут красится выбранным показателем — теми же цветами и порогами, что на дашборде: оттенок говорит, какой это показатель, насыщенность — насколько нагружен участок, а красный означает ровно одно, что сработал ваш порог. Второй показатель идёт толщиной линии, поэтому скорость цветом и ШИМ толщиной читаются на одном маршруте. Под картой тот же трек, распрямлённый по километрам: по дорожке на каждый выбранный показатель, один курсор на всех, а все срывы порога выстроены засечками в ряд. Показатели выбираются чипами внизу, до четырёх сразу, и нажатие ведёт чип по кругу: выключен → дорожка → цвет → толщина. Отмечены старт, финиш и пик каждого показателя со значением. Шкала цвета натянута на саму поездку, поэтому цвета сравнимы внутри одной поездки, но не между поездками.

  • Трек перестал врать. Точки, записанные уже после конца поездки, в маршрут больше не попадают: на поездке райдера их было 216 из 474, последняя через 44 минуты, и к маршруту пририсовывалась дорога домой в кармане. Прыжок приёмника больше не соединяется прямой через полгорода — скорость колеса это независимый от спутников свидетель, и отметку, которой колесо не подтверждает, трек либо выкидывает, либо оставляет разрывом. Одиночные выбросы перестали растягивать масштаб. Пройденный путь берётся у колеса, а не считается по точкам: карта показывала 5.74 км там, где колесо намотало 12.4.

  • Новый вид прибора «Кластер: спидометр» — два показателя на одной ленте в две дорожки: внешняя ведущему, внутренняя соседу. Третьего не будет: прибор устроен ровно на пару. Пик за поездку отмечен кареткой на дуге, крупнее обычной. Числа геометрии те же, что на Android, — прибор один и тот же.

  • В настройках закреплённой полосы появился слот второй метрики: собранная на высоте L пара переводит ведущую ячейку в двойной спидометр, а выбор той же метрики снимает её. Второй показатель добавлен и в ряд переходов на экраны метрик — без этого экран младшего кольца было не открыть.

  • Колесо открывается без подключения: свайп по строке колеса вправо — «Настроить». Заодно закрыта дыра погрубее: тап по колесу, которого нет в эфире, раньше не делал вообще ничего. Тап по-прежнему значит «поехали», а офлайн-просмотр закрывается при уходе с дашборда и при любом подключении.

  • Экран не гаснет, пока приложение открыто. На прибор смотрят, а не трогают его, и системный таймаут гасил дисплей ровно тогда, когда показания и нужны. Свернули приложение — телефон засыпает как обычно; фоновой работой это не является.

  • Прогноз заряда и прогноз пробега стали устойчивее. Плохо сшитая кривая разряда растягивала всю шкалу 0–100 на узкую полосу напряжения, где сотые доли вольта стоили десятков пунктов, — теперь такая кривая отбраковывается и работает запасная таблица по ячейке. Остаток пробега перестал исчезать на затяжном спуске, где расход уходит в минус, и перестал выдавать числа вроде 2325 км: он считается по расходу, ниже которого колесо с райдером не едет в принципе.

  • Begode без умного BMS: число банок в серии берётся из справочника моделей, а не угадывается по напряжению. Из одного напряжения его не вывести — 36S и 40S при 3.78 В на банку одинаково дают 151.2 В, — и процент заряда с прогнозом пробега расходились между собой. Теперь оба считают по одному пакету. Модели, которой в справочнике нет, это не касается.

  • Расход на километр за поездку считается из набранных ватт-часов и пройденного пути. У склеенной поездки счётчик обнуляется на границе кусков, поэтому последний снимок описывал только последний перегон: райдер видел расход вечернего куска там, где ждал расход за день.

  • Меню «⋯» на главном экране больше не закрывается само. Секундный такт экрана бил и в тот момент, когда система следит за пальцем, — и меню схлопывалось под рукой.

Часы на Wear OS перестали быть экраном телефона: они сами находят колесо, подключаются к нему, показывают телеметрию, вибрируют на алертах и пишут поездку, пока телефон лежит дома. На дашборде появились прогноз заряда и прогноз пробега — приложение строит модель именно вашего пакета и снимает просадку напряжения под нагрузкой, поэтому процент больше не ныряет на разгоне. Свой дашборд теперь можно опубликовать в каталог на сайте прямо из приложения, а торможение перестало считаться расходом: цифры энергии стали честнее. На iPhone починено падение после потери связи и заметно выросла плавность дашборда, а в Android-версии появился раздел «Машины» — чтение BMW по OBD.

Android · vc58

  • Часы на Wear OS стали самостоятельным клиентом колеса. Они сами ищут колесо, подключаются к нему, показывают телеметрию, вибрируют на алертах и пишут поездку, а потом отдают её телефону в общую историю — поездка, записанная часами, так и помечена. Колесо держит одно подключение за раз, поэтому спор решает телефон: он рядом и держит колесо — часы остаются компаньоном; телефона нет — часы едут сами.

  • С запястья доступны три команды: фара, автофара и выключение колеса удержанием две секунды. Показываются только те, что умеет ваше колесо, а выключение — единственное с удержанием, чтобы случайное касание не выключило колесо под райдером. Алерты и раскладка метрик приезжают с телефона по кнопке «Синхронизировать»; если синхронизации не было ни разу, в автономном режиме работает один встроенный алерт — ШИМ выше 80 %.

  • Что часы пишут без телефона, выбирается на телефоне в настройках часов: только итог, телеметрия с шагом полсекунды или телеметрия вместе с GPS-треком часов. Уровень уезжает на часы вместе с остальной синхронизацией.

  • Синхронизация не требует сервисов Google: если Data Layer не работает, часы забирают конфигурацию и отдают поездки по обычному BLE. В настройках часов на телефоне видно, виден ли телефон часам, и там же можно выдать недостающее разрешение Bluetooth.

  • На циферблате главный показатель и три слота вокруг него — что в них стоит, выбирается на самих часах. Прокрутка короной и безелем по умолчанию выключена: в рукаве она уводила экран сама. В режиме компаньона часы показывают тот же набор величин, что и в автономном.

  • APK часового приложения теперь выкладывается на сайт вместе с телефонным. Это единственный способ получить его тем, кто ставил телефонное приложение APK-ом: такому приложению Wear OS часовую половину не доставляет.

  • Новые плитки «Прогноз заряда» и «Прогноз пробега». Процент, который показывает колесо, выводится из напряжения, а оно проседает под нагрузкой — приложение измеряет внутреннее сопротивление вашего пакета по вашей же езде, считает напряжение без нагрузки и сверяет его с реально израсходованными ватт-часами. Плитки надо добавить самому, они ничего не подменяют. Точность растёт с накатом; у модели, которой нет во встроенном справочнике, прогноз пробега появится не сразу — пока ёмкость не из чего вывести, он остаётся пустым. В «Дополнительных возможностях» появился экран «Модель батареи»: там видно кривую и её можно сбросить, не трогая поездки.

  • Торможение больше не считается расходом. Оба движка брали ток по модулю, и энергия, возвращённая рекуперацией, интегрировалась как потраченная: на реальной записи поездки на Begode из 20 000 кадров расход был завышен на 47 %. Знак теперь берётся относительно направления движения, а не потока мощности. ШИМ и фазный ток по-прежнему читаются по модулю — это сделано намеренно.

  • LeaperKim Sherman-S: полностью заряженное колесо показывало 15 %. Его не было в таблице моделей, и 24S-пакет опознавался как 30S. Заодно переделана кривая всей 24S-семьи Sherman: раньше она физически не умела показать больше 53 %, и нижняя половина пакета читалась примерно вдвое ниже правды.

  • Алерт можно завести на температуру АКБ — берётся самая горячая из тех, что колесо сообщает: тревога по батарее предупреждает о перегреве, и самый холодный пак его поднять не может. Заодно из редактора убраны величины, которых у колеса нет: Begode не измеряет температуру пачек ни в одном кадре, и предлагать по ней алерт, который никогда не сработает, приложение перестало.

  • Свой пресет дашборда можно опубликовать в каталог на сайте — пункт «В каталог» рядом с «Скопировать ссылку». Публикация отделена от ссылки намеренно: ссылку отдают одному человеку, каталог видят все. Дашборд, отличающийся от уже опубликованного только цветами, каталог не принимает и говорит об этом; снять свой пресет с каталога можно тем же путём. Чтобы у пресета был владелец, приложение молча заводит гостевой аккаунт; ключ восстановления показывается на экране «Аккаунт» в меню главного экрана, там же можно восстановиться по ключу или отозвать локальный сеанс.

  • Ссылки на пресеты открываются и на loeuc.pro, а не только на loeuc.ru, причём даже без «https://» — браузеры его прячут, и скопированный из адресной строки текст раньше отвергался.

  • Когда вставленная ссылка не открылась, приложение говорит, что именно не так: в буфере не ссылка на пресет, сайт недоступен или пресета по этому коду больше нет. Раньше на все три случая отвечало «в буфере нет пресета», и райдер шёл искать поломку не там.

  • Плитка длительности поездки показывает длительность, а не сырые миллисекунды: полчаса езды печатались как 1834000.0.

  • На графиках поездки срезаются одиночные выбросы у величин, которые физически не умеют прыгать за один кадр — напряжение, температуры, заряд. Битый кадр колеса рисовался пиком на ровном месте. Ток, мощность и ШИМ не трогаются: у них скачок настоящий.

  • Новый раздел «Машины» в гараже — чтение BMW через Bluetooth-адаптер OBD. Показывает VIN, список блоков, живые показания и ошибки; раздел появляется, только если у телефона спарен OBD-адаптер. Честно о границах: стандартные показания OBD-II, VIN и перечень блоков проверены на живой машине, а расшифровки фирменных датчиков BMW взяты из приложения производителя и по каждому полю на железе не подтверждены. Справочник расшифровок кодов в магазинную сборку не входит из-за размера, поэтому ошибки показываются голыми кодами.

iOS · build 56

  • Новые плитки «Прогноз заряда» и «Прогноз пробега». Процент, который показывает колесо, выводится из напряжения, а оно проседает под нагрузкой — приложение измеряет внутреннее сопротивление вашего пакета по вашей же езде, считает напряжение без нагрузки и сверяет его с реально израсходованными ватт-часами. Плитки надо добавить самому, они ничего не подменяют. Точность растёт с накатом; у модели, которой нет во встроенном справочнике, прогноз пробега появится не сразу — пока ёмкость не из чего вывести, он остаётся пустым. В «Дополнительных возможностях» появился экран «Модель батареи»: там видно кривую и её можно сбросить, не трогая поездки.

  • Торможение больше не считается расходом. Оба движка брали ток по модулю, и энергия, возвращённая рекуперацией, интегрировалась как потраченная: на реальной записи поездки на Begode из 20 000 кадров расход был завышен на 47 %. Знак теперь берётся относительно направления движения, а не потока мощности. ШИМ и фазный ток по-прежнему читаются по модулю — это сделано намеренно.

  • LeaperKim Sherman-S: полностью заряженное колесо показывало 15 %. Его не было в таблице моделей, и 24S-пакет опознавался как 30S. Заодно переделана кривая всей 24S-семьи Sherman: раньше она физически не умела показать больше 53 %, и нижняя половина пакета читалась примерно вдвое ниже правды.

  • Алерт можно завести на температуру АКБ — берётся самая горячая из тех, что колесо сообщает: тревога по батарее предупреждает о перегреве, и самый холодный пак его поднять не может. Заодно из редактора убраны величины, которых у колеса нет: Begode не измеряет температуру пачек ни в одном кадре, и предлагать по ней алерт, который никогда не сработает, приложение перестало.

  • Свой пресет дашборда можно опубликовать в каталог на сайте — пункт «В каталог» рядом с «Скопировать ссылку». Публикация отделена от ссылки намеренно: ссылку отдают одному человеку, каталог видят все. Снять свой пресет с каталога можно тем же путём. Чтобы у пресета был владелец, приложение молча заводит гостевой аккаунт; ключ восстановления показывается на экране «Аккаунт» в меню главного экрана, там же можно восстановиться по ключу или отозвать локальный сеанс.

  • Ссылки на пресеты открываются и на loeuc.pro, а не только на loeuc.ru, причём даже без «https://». Ссылка на loeuc.pro теперь действительно поднимает приложение, а не уводит в Safari.

  • Приложение больше не падает после того, как колесо пропало со связи. Когда окно переподключения истекало, показатель без значения уносил приложение в аварийное завершение — на TestFlight-сборке 49 это случалось через несколько минут после обрыва, часто в фоне, и райдер видел только отчёт о падении.

  • Дашборд стал заметно плавнее. Меню в шапке больше не пересобиралось десять раз в секунду — длинный список наконец нормально прокручивается и не наезжает сам на себя; экран добавления метрики, открытый поверх живого дашборда, перестал пересчитывать весь список на каждом кадре; кривые на плитках обновляются три раза в секунду вместо десяти, а значения, цвета и пробитые пороги остались на прежней частоте.

  • На графиках поездки срезаются одиночные выбросы у величин, которые физически не умеют прыгать за один кадр — напряжение, температуры, заряд. Битый кадр колеса рисовался пиком на ровном месте. Ток, мощность и ШИМ не трогаются: у них скачок настоящий.

  • Иконка на Apple Watch перерисована: она была копией телефонной, и почти чёрный фон не читался как круг на чёрном циферблате. Знак прежний, отношения обратные — фон бирюзовый, колесо тёмное.

График в плитке больше не подстраивается под последние минуты: окно строится по всему размаху поездки и по порогу алерта, поэтому линия предела лежит внутри графика, а не прижата к кромке. Карточка тревоги по ШИМ ушла с первого экрана настроек — на её месте вход в менеджер алертов, где тревога правится вместе со всеми остальными. В оформлении появились цвет рамки плиток и выключаемая подложка графика, а на iPhone починены автогромкость, съедавшая батарею, показания зарядных устройств и полоса приборов на узких экранах.

Android · vc52

  • График в плитке строится по всей поездке, а не по последним минутам: окно накрывает весь размах за поездку и порог алерта с запасом. Линия предела теперь лежит внутри графика, и одна и та же высота кривой означает одно и то же в начале поездки и в конце.

  • У двунаправленных шкал появилась вторая каретка: у тока это разгон и рекуперация, у ускорения — разгон и торможение. Вторая рисуется, только если поездка действительно уходила за ноль.

  • Карточка тревоги по ШИМ с ползунком убрана с первого экрана настроек, на её месте — вход в менеджер алертов. Сама тревога никуда не делась: порог, условия, приоритет и рисунок писка правятся там же, где у всех остальных, и перенастраивать ничего не нужно.

  • Предел по ШИМ на часах читается из включённых алертов, а не из старой карточки: если вы завели свой алерт по ШИМ, часы покажут именно его порог.

  • Проценты в автогромкости — это громкость на слух, а не позиция системного ползунка: нижние значения перестали означать почти тишину. Кривая одна на Android и iPhone, чтобы одна настройка звучала на двух телефонах одинаково.

  • Алерт, привязанный к конкретному колесу, снова виден на экране показателя и на шкалах плиток. Раньше приложение противоречило само себе: алерт звучал, а экран писал, что порогов не назначено.

  • Первой строкой в настройках закреплённой полосы стоят переходы к её показателям — цвет, вид и пороги правятся сразу, без поисков той же метрики в сетке.

  • Оформление: у рамки плитки появился свой цвет — шесть цветов палитры и «свой цвет» целиком, — а подложку графика можно выключить, и кривая ляжет прямо на плитку. Рамка пробитого порога цвет не отдаёт: она сообщает состояние.

  • Лист оформления больше не скачет под пальцем и не закрывается сам, когда его прокручивают.

  • Своё колесо видно в гараже всегда, даже когда оно молчит в эфире: нажатие подключит его по сохранённому адресу. Раньше после ручного отключения карточка исчезала совсем.

  • Возврат с дашборда в гараж больше не утаскивает обратно на дашборд. Связь при этом не рвётся и поездка продолжается, но подключиться заново — ваше решение.

  • В шапке дашборда стоит имя, которое вы дали колесу в гараже, а не заводское из эфира.

  • InMotion: плитка «Угол падения» больше не показывает живой наклон — такой настройки у InMotion нет вовсе. Сам наклон остался на месте как тангаж и теперь заполняется и на старых прошивках.

  • Жёсткость педалей стоит первой в настройках колеса на всех брендах — это то, за чем в них заходят чаще всего.

iOS · build 50

  • График в плитке строится по всей поездке, а не по последним минутам: окно накрывает весь размах за поездку и порог алерта с запасом. Линия предела теперь лежит внутри графика, и одна и та же высота кривой означает одно и то же в начале поездки и в конце.

  • У двунаправленных шкал появилась вторая каретка: у тока это разгон и рекуперация, у ускорения — разгон и торможение. Вторая рисуется, только если поездка действительно уходила за ноль.

  • Тумблер тревоги по ШИМ с ползунком порога убран из настроек, на его месте — вход в менеджер алертов. Сама тревога никуда не делась: порог, условия, приоритет и рисунок писка правятся там же, где у всех остальных.

  • Предел по ШИМ на Apple Watch читается из включённых алертов: если вы завели свой алерт по ШИМ, часы покажут именно его порог.

  • Включённая автогромкость больше не съедает батарею: она перестала опрашивать звуковую систему на каждом пакете от колеса и пишет громкость только тогда, когда та действительно изменилась. Райдер на iPhone X мерил 15–20 % батареи в час.

  • Проценты в автогромкости — это громкость на слух, а не позиция системного ползунка: нижние значения перестали означать почти тишину. Кривая одна на iPhone и Android.

  • Алерт, привязанный к конкретному колесу, снова виден на экране показателя и на шкалах плиток. Раньше алерт звучал, а экран писал, что порогов не назначено.

  • Зарядные устройства HW Smart Charger и SKAT / CAN-Control наконец показывают свои показания на дашборде: их кадры отбрасывались проверкой, рассчитанной на колесо, и дашборд стоял в прочерках при живой связи.

  • Экран показателя, открытый из поездки, больше не закрывается сам через мгновение после открытия.

  • Графики поездки и экран показателя рисуются заметно быстрее на старых iPhone.

  • Закреплённая полоса снова помещается на узких экранах вроде iPhone 8. Боковые показатели стали выше — шкала запаса под значением видна целиком, — и вместе с полосой вырос спидометр.

  • Подложка графика в плитке растёт вместе с масштабом дашборда, а не остаётся узкой полоской на всех размерах.

  • Первой строкой в настройках закреплённой полосы стоят переходы к её показателям — цвет, вид и пороги правятся сразу, без поисков той же метрики в сетке.

  • Оформление: у рамки плитки появился свой цвет — палитра для быстрого выбора и системный подборщик с пипеткой, — а подложку графика можно выключить, и кривая ляжет прямо на плитку. Выбранный цвет рамки применяется сразу, без перезапуска, и рамка пробитого порога цвет не отдаёт.

  • Датчик давления TPMS: привязка больше не предлагается заново после каждого подключения, а после восстановления приложения системой датчик снова слушается всю поездку.

  • Пресеты дашборда: повторный импорт больше не плодит дубли; пресет, открытый ссылкой, появляется в списке сразу и больше не пропадает после импорта файлом.

  • Кнопка меню на дашборде ловит нажатие всей своей площадью, а не только по самим точкам.

  • Жёсткость педалей стоит первой в настройках колеса на всех брендах — это то, за чем в них заходят чаще всего.

Приложение научилось слушать беспроводные датчики давления TPMS: давление, температуру шины и заряд самого датчика видно прямо на дашборде. На iPhone переехал новый экран правил-тревог и переписан их звук — разгоняющаяся тревога наконец сливается в непрерывный тон, а PWM-тревога стала обычным правилом со своими настройками. Набор показателей на Android и iPhone теперь один и тот же: на iPhone их стало 73 вместо 41.

Android · vc51

  • Поддержка беспроводных датчиков давления TPMS (совместимых с датчиками iBar). Приложение само замечает датчик рядом с колесом и предлагает привязать его; давление, температура шины и заряд батарейки датчика появляются плитками и графиками на дашборде. Привязку можно заменить или вернуть скрытый датчик в настройках колеса. Разбор пакетов датчика сделан по его официальному приложению и проверен на симуляторе — на живом датчике он ещё не подтверждён.

  • «Отключиться» теперь действительно отключает: приложение больше не подключается к тому же колесу заново само, пока вы не выберете его руками.

  • Правило-тревога со связкой «все сразу» больше не теряет свои условия после перезапуска — раньше такое правило оставалось пустым и переставало срабатывать.

  • Одно правило с испорченными настройками больше не мешает остальным: движок пропускает только его.

  • Показатели в списке добавления и в метриках поездки разложены по разделам по смыслу, а не по цвету: у датчика давления теперь свой раздел TPMS, а давление больше не лежит среди напряжений.

  • Цвет показателя принадлежит самому показателю: он сохраняется, даже если удалить плитку, и подхватывается полосой приборов.

  • Под ведущим спидометром полосы приборов видно, до чего доходило значение за поездку — максимум или минимум, как у метрики.

  • Высота полосы приборов выбирается в её настройках (жест за нижний край убран), а на самой большой высоте ведущим прибором сразу становится спидометр.

  • Пробеги подписаны километрами, а таймер отключения — секундами.

iOS · build 49

  • Новый экран тревог: правило читается фразой, порог правится на шкале самой метрики, а весь звук собран на одном экране — тип повтора, тон, длительность и рисунок кривой разгона. Отдельная вкладка «Шаблоны» убрана, заготовки порогов остались рядом с порогом.

  • Звук тревог переписан на один движок: разгоняющаяся тревога плавно ускоряется и сливается в непрерывный тон вместо писка раз в секунду, а голос тревоги замолкает при разрыве связи и на паузе плеера дампов.

  • PWM-тревога стала обычным встроенным правилом. Ваш прежний порог и включённость переносятся один раз при запуске, а карточка PWM в настройках снова правит именно эту тревогу — до этого она выглядела рабочей, но ни на что не влияла.

  • В редакторе появились параметры разгона: подъём тона, точка слияния в непрерывный тон и форма кривой. Раньше форма кривой и эти параметры сбрасывались при каждом сохранении.

  • Приложение больше не вылетает при подключении к колесу из-за сохранённого правила с перевёрнутыми настройками разгона.

  • Переключатели в редакторе тревог срабатывают с первого касания — раньше на живой телеметрии их приходилось нажимать по два-три раза, и выбор откатывался назад.

  • Правило-тревога со связкой «все сразу» больше не теряет свои условия после перезапуска.

  • Показателей стало 73 вместо 41: подтянуты все, что приложение и так расшифровывало, — целиком показатели InMotion и угол педалей LeaperKim.

  • Исправлены подписи: тангаж InMotion больше не называется «Углом падения», температуры пачки и максимальной ячейки — «Мин./Макс. темп. АКБ»; у температур вернулся знак градуса, а дубль «Ток мотора», показывавший то же число, что и фазный ток, убран.

  • Пресеты оформления дашборда: библиотека, отчёт о том, что изменится при применении, и четыре способа поделиться — ссылка, буфер обмена, QR и файл. Ссылка на пресет с loeuc.ru теперь открывается сразу в приложении.

  • Поддержка беспроводных датчиков давления TPMS — то же, что и на Android: датчик предлагается сам, давление, температура шины и заряд датчика идут на дашборд, замена привязки в настройках колеса. Разбор пакетов сделан по официальному приложению датчика и проверен на симуляторе, на живом датчике ещё не подтверждён.

  • Колесо, включённое раньше приложения, больше не заставляет ждать: список найденных колёс наполняется сразу, а не спустя восемь секунд слепой попытки подключиться.

  • Правки дашборда, сделанные после того как колесо отключилось или уснуло, теперь сохраняются, а не откатываются при следующем запуске.

  • Цвет показателя сохраняется за самим показателем и переживает удаление плитки; список выбора разложен по разделам по смыслу, включая свой раздел TPMS.

  • Высота полосы приборов выбирается в её настройках (жест за нижний край убран), а на самой большой высоте ведущим прибором сразу становится спидометр.

Разгоняющаяся тревога на Android теперь не просто учащается: вместе с писком поднимается тон, а на верху кривой сигналы сливаются в один непрерывный звук. И звучит всегда ровно один алерт — самый важный, без каши из чередующихся писков. PWM-тревога стала таким же алертом с наивысшим приоритетом, а экран правила переделан: фраза вместо конструктора, порог на шкале, звук одним экраном. Собранное оформление дашборда передаётся на второе своё колесо или другому райдеру — ссылкой, QR-кодом, через буфер или файлом. Ещё появились свой акцент и фоны, экран «Метрики дашборда», диагностический лог, свайп между батареями в BMS и собственные показатели у зарядных устройств. На iPhone — метрики ячеек и зарядок, мин/макс за поездку под шкалой и отправка отчёта о падении.

Android · vc50

  • Разгоняющаяся тревога звучит по-новому. Писк не просто учащается — вместе с ним поднимается тон, а на верху кривой сигналы сливаются в один непрерывный звук. Точку слияния, во сколько раз поднимется тон и форму кривой — равномерную, с ускорением к концу или с рывком в начале — вы задаёте сами, а кнопка «Прослушать разгон» проигрывает всю кривую от порога до слитного тона, а не один писк. Весь звук идёт теперь через один непрерывный осциллятор: щелчков между писками и обрубленных сигналов больше нет.

  • Звучит ровно один алерт. Раньше равные по важности алерты чередовались, и вместо сигнала выходила каша. Теперь пока звучит самый важный, остальные молчат полностью и видны только глазами на приборе. Приглушение музыки, если вы его включили, происходит один раз на всю тревогу, а не на каждый писк.

  • PWM-тревога стала обычным алертом — с наивысшим приоритетом среди всех и порогом, который по-прежнему правится на своей карточке в настройках. Отдельного звукового механизма у неё больше нет. При первом запуске новой версии её порог, диапазон частот и точка слияния в непрерывный тон переносятся автоматически, перенастраивать ничего не нужно.

  • Экран правила переделан. Карточка в списке называет правило тем, когда оно срабатывает, — фразой, а не набором терминов. Порог получил свой экран со шкалой: насечка — порог, полоса за ней — гистерезис («авто», если вы его не задали), штриховка — опасная зона; там же «Держать дольше» и «Разгон до», без которого разгон у процентов никогда не доезжал до слитного тона. Звук собран на один экран. Вкладка «Условия» убрана, но заготовки никуда не делись — они за кнопкой «Из заготовки».

  • Пресеты оформления. Меню ☰ → «Пресеты оформления»: собранный дашборд сохраняется и передаётся на второе своё колесо или другому райдеру — ссылкой, через буфер обмена, QR-кодом или файлом. На QR достаточно навести штатную камеру второго телефона, отдельный сканер не нужен. Перед применением приложение показывает честный отчёт: что встанет как есть, что займёт то же место под своим именем (у вашего колеса нет такого датчика, но есть близкий — и плитка подписана тем, который читает на самом деле) и что отброшено. Углы и токи заменяются только внутри одной марки. Короткая ссылка кладёт на loeuc.ru само оформление и больше ничего; без сети приложение молча отдаёт длинную самодостаточную ссылку, которая работает так же.

  • Оформление приложения настраивается: тема, свой акцент, фон приложения и фон плиток из десяти образцов, а любой плитке можно задать свой цвет по оттенку, насыщенности и яркости. Редактор акцента с экрана «Поделиться» убран — настройка одна и правится в одном месте.

  • Новый экран «Метрики дашборда»: показатели сгруппированы, а выбор подтверждается или отменяется целиком, а не по одному.

  • Под шкалой печатаются мин и макс за поездку, если под них хватает места, и каждое число стоит под своей точкой на шкале. У показателей, которые за поездку только падают — заряд, напряжение, ячейки, запас хода, — риска пика отмечает не вершину, а просадку: максимум у них известен заранее, это состояние на старте.

  • Батареи в BMS листаются свайпом, а не только вкладками. У колеса с четырьмя пачками ряд вкладок уезжал за край, и добраться до последней можно было только жестом, о котором ничто на экране не говорило.

  • У зарядных устройств появились собственные показатели: мощность зарядки, температура зарядного, залитые ампер-часы и ватт-часы, а у СКАТа ещё и целевое напряжение. Раньше зарядка заполняла колёсные поля, и её выход подписывался «Напряжением АКБ» и «Температурой контроллера». У HW Smart Charger подписи полей были прочитаны неверно — теперь они сверены с приложением производителя, а раскладка кадра подтверждена на живом зарядном. Оговорка: обе снятые записи сделаны с закрытым выходом, поэтому ток, залитые А·ч и Вт·ч у него пока видели только нулями.

  • Диагностический лог. Включите его в дополнительных возможностях, повторите поездку и пришлите файл: по нему видно, что делало приложение — когда подключилось к колесу и когда потеряло связь, что решила автофара на каждом изменении скорости, почему применилась или нет автогромкость, в какой момент система отправила приложение в фон. Это простой текст, сырых данных колеса в нём нет; лог выключен по умолчанию и на скорость работы не влияет.

  • Исправлено: экран настроек зарядки открывался в пустоту; выбранная форма кривой разгона молча терялась при сохранении, и играла линейная; тревога, застигнутая обрывом связи, выла через все попытки переподключения; алерт, включённый в менеджере, сам выключался при подключении к колесу; переключатель на карточке PWM переставал работать, если сам алерт был удалён; второе условие, добавленное вами, стиралось при каждом движении ползунка порога; экран правила уезжал под статус-бар и навигационную полосу.

  • Исправлено на приборах: у липеркима вернулся угол педалей — он читается из телеметрии и настройкой колеса никогда не был; строка мин/макс срезалась на мелкой сетке; шапка менеджера метрик лезла под часы; подписи называли один датчик именем другого — температура мосфетов звалась «Контроллером», а крен «Углом педалей»; показатель без порогов рисовался приглушённым, хотя приглушать нечего; ось детального графика уходила под ноль; спидометр в закреплённой полосе ниже высоты L теперь честно говорит, что ему нужна высота L, а не подменяется молча; переключатель «Держать в закреплённой полосе» убран с экрана настройки тайла — состав полосы правится на её собственном экране; частота пакетов в шапке больше не замирает на старом значении, когда поток замолк.

iOS · build 48

  • У плитки значение и единица встали на одну базовую линию. Чем сильнее ужималось крупное число, тем ниже уезжала единица — на большом нуле это было видно невооружённым глазом.

  • Появились метрики ячеек: минимальная, максимальная, средняя и разбег — те же четыре, что на Android. Если BMS не отвечает, они честно стоят в разделе «нет данных».

  • У зарядных устройств появились собственные показатели: мощность зарядки, температура зарядного, залитые ампер-часы и ватт-часы, а у СКАТа ещё и целевое напряжение. Раньше зарядка заполняла колёсные поля. У HW Smart Charger подписи полей исправлены и сверены с приложением производителя, а раскладка кадра подтверждена на живом зарядном; ток и залитое у него пока видели только нулями — обе записи сняты с закрытым выходом.

  • Под шкалой печатаются мин и макс за поездку, а у показателей, которые за поездку только падают, риска отмечает просадку, а не вершину — так же, как на Android.

  • Объединение поездок вернулось в список: при переходе на новые экраны истории оно потерялось.

  • Переключатель «Держать в закреплённой полосе» убран с экрана настройки тайла — состав полосы правится на её собственном экране.

  • После падения в меню главного экрана появляется «Отправить отчёт о падении»: имя ошибки, её причина и стек вызовов. Того, что доходит до разработчика через TestFlight, обычно не хватает, чтобы понять причину, а этого файла хватает. Пункт виден, только если падение действительно было; личных данных и маршрутов в отчёте нет.

Приложение на iPhone получило тот же новый вид и ту же логику экранов, что Android получил накануне: главный экран стал гаражом с карточкой колеса, приборы перерисованы от плитки до шапки, над сеткой появилась закреплённая полоса, родственные показатели складываются в одну плитку, у каждого показателя свой экран, а история поездок разошлась на четыре экрана. Прибор теперь открывается нажатием, и уход с него больше не разрывает связь. Android в этот раз не менялся.

iOS · build 45

  • Главный экран стал гаражом. Своих колёс может быть несколько, каждое стоит в списке со своим состоянием, а наверху — карточка того, к которому приложение сейчас пойдёт. Пока связь поднимается, под именем бежит полоска стадий: скан, нашёл, связь, поток. Когда пошла телеметрия, карточка врастает в числа — заряд, напряжение, пробег появляются в ней сами. Чужие устройства уехали вниз, кнопок «Искать» и «Стоп» больше нет: поиск идёт всё время, пока экран открыт.

  • Прибор открывается нажатием на карточку, а не подменяет экран сам. Раньше приложение перебрасывало на приборы в момент подключения, и карточку никто не успевал увидеть. Теперь экран меняется только тогда, когда вы этого попросили — в том числе после автоподключения.

  • «Назад» с приборов больше не разрывает связь. Возврат ведёт на карточку колеса, колесо остаётся подключённым, и можно спокойно заглянуть в поездки или в гараж. Отключиться — это теперь отдельный пункт в меню с тремя точками, намеренное действие.

  • Приборы перерисованы целиком. У плитки один порядок элементов и ложе постоянной высоты, насыщенность цвета показывает, насколько показатель подошёл к пределу, а на шкале стоят засечками ваши пороги из включённых алертов. Максимум за поездку отмечен маленьким треугольником под шкалой — так же, как на Android. Шапка собрана заново: имя колеса с точкой живой связи и частотой пакетов, пилюля заряда с заливкой по уровню и меню.

  • Над сеткой можно закрепить полосу: ведущий показатель крупно, рядом до трёх боковых со своим запасом до порога. Высота переключается прямо на полосе, состав — в её настройке, и он запоминается отдельно для каждого колеса.

  • Родственные показатели складываются в одну плитку. Три температуры, токи, ячейки — всё это делит одну плитку строками, графиками или колонками, а общая единица измерения выносится в её шапку. Сколько строк поместится, плитка считает сама по своему размеру.

  • У каждого показателя появился свой экран: значение сейчас, минимум, среднее и максимум, запас до ближайшего порога и график с курсором. Ниже список порогов, каждый ведёт в свой алерт. Кнопка «Тайл» открывает настройку самой плитки — размер, вид, цвет и состав. Если плитка составная, наверху стоит переключатель: график любого показателя из неё.

  • Оформление настраивается: свой акцент, свой фон приложения и свой фон плиток из десяти проверенных образцов. Редактор акцента с экрана «Поделиться» убран — настройка одна и правится в одном месте.

  • История поездок разошлась на четыре экрана вместо одного. Список группирует поездки по дням с итогом за месяц, поиском и силуэтом маршрута у каждой записи. Дальше — экран одной поездки с итогами, треком на карте, окрашенным скоростью, и профилями; экран всех записанных показателей со спарклайнами, где галочкой отмечают те, что пойдут на график; экран графиков — дорожками со своими шкалами или наложением на одну ось, с общим курсором и окном просмотра внизу.

  • Исправлено: после перезапуска приложение могло больше не подключиться к колесу и молча ждать вечно — теперь попытка связи имеет срок, а поиск начинается сразу, как только готово радио. Если колесо не ответило, приложение так и говорит, а не показывает «подключаюсь» без конца.

  • Исправлено: показатель, отмеченный на график, не появлялся на нём до перезахода в поездку; алерт, включённый на экране показателя, не появлялся на плитке, а выключенный в менеджере оставался включённым на экране показателя; составная плитка вылезала за свою клетку в сетке; выбранный фон плиток не применялся; карта поездки рисовалась заново при каждом открытии.

Приложение на Android получило новый вид и новую логику экранов: главный экран стал гаражом, где своих колёс может быть несколько, приборы перерисованы от плитки до шапки, над сеткой появилась закреплённая полоса, родственные показатели складываются в одну плитку, у каждого показателя теперь свой экран с порогами, а история поездок разошлась на четыре экрана вместо одного. iPhone в этот раз не менялся.

Android · vc48

  • Главный экран стал гаражом. Раньше приложение помнило одно колесо, последнее, — теперь их может быть сколько угодно: каждое стоит в списке «Мои колёса» со своим зарядом, напряжением и пробегом, а подключается то из них, которое сейчас в эфире. Долгое нажатие даёт колесу понятное имя или убирает его из гаража; заводское имя при этом остаётся при поездках, настройках и алертах. Демонстрационный режим никуда не делся: на первом запуске он на виду, дальше живёт в меню.

  • Приборы перерисованы целиком. У плитки теперь один порядок элементов и ложе прибора постоянной высоты, поэтому соседние плитки не пляшут друг относительно друга. Насыщенность цвета показывает, насколько показатель подошёл к своему пределу, пробитый порог красит рамку плитки, а на шкалах и дуге стоят засечками ваши собственные пороги из включённых алертов и отдельной риской — пик за поездку. Шапка собрана заново: имя колеса с точкой живой связи и измеренной частотой пакетов, пилюля заряда и три кнопки-иконки.

  • Над сеткой можно закрепить полосу. Она не уезжает при прокрутке: ведущий показатель крупным числом, спидометром или шкалой, рядом до трёх боковых со своим запасом до порога. Высота переключается прямо на полосе, состав — в меню → «Закреплённая полоса», и он запоминается отдельно для каждого колеса.

  • Родственные показатели складываются в одну плитку. Три температуры, токи батарей, ячейки — всё это делит одну плитку, общая единица измерения выносится в её шапку, а строки рисуются полосами, графиками или колонками. Сколько показателей поместится, плитка считает сама по своему размеру и виду, и в списке добавления остаются только те, что ещё влезают.

  • У каждого показателя появился свой экран: значение сейчас, минимум, среднее и максимум за поездку, запас до ближайшего порога и график с курсором. Ниже — список порогов, каждый ведёт в свой алерт, а «Добавить порог» открывает редактор нового алерта уже с этим показателем. Кнопка «Тайл» с того же экрана открывает настройку самой плитки: размер, вид и цвет, состав и закрепление в полосе. Режимы показаны миниатюрами, и режим, который не влезает в текущий размер, честно говорит, чего ему не хватает.

  • История поездок разошлась на четыре экрана вместо одного браузера. Список группирует поездки по дням с итогом за период и поиском, у каждой карточки силуэт маршрута и точка серьёзности — насколько близко в этой поездке подходили к вашим порогам. Дальше идут экран одной поездки с итогами, треком на карте, окрашенным выбранным показателем, и профилем высот; экран всех записанных показателей со спарклайнами; экран графиков — дорожками со своими шкалами или наложением на одну ось, с общим курсором и окном просмотра внизу.

  • Записи короче трёхсот метров больше не мешаются в списке: они собраны отдельной строкой и разворачиваются по нажатию.

  • Экраны снова показывают стрелку «назад» в шапке — системный жест по-прежнему работает так же.

  • LeaperKim и Lynx: боковой угол теперь живой, из показателей убраны значения, которые на самом деле были настройками колеса, а температура MOS находится в сгруппированных списках выбора.

  • Настройки колеса переехали из шапки в меню — в шапке остались добавление показателя, BMS и меню.

  • Исправлено: на свежей установке приложение больше не падало при первом подключении. Тип фонового сервиса теперь собирается из тех разрешений, которые вы действительно дали; без разрешения на геолокацию просто не пишется трек, а колесо подключается как обычно. Разбор кадров InMotion из сохранённой записи больше не портится повторным разэкранированием.

Поездку, распавшуюся в истории на куски, теперь можно склеить в одну, а пауза в записи больше не превращается в прямую линию — ни на графике, ни на карте, ни в наборе высоты. Добавлен Ninebot Z, у InMotion V11 стала полнее поддержка и появились настройки прямо из приложения, а на iOS исправлены подключения, после которых данные так и не приходили.

Android · vc45

  • В истории поездок появилось «Объединить»: выделите куски одной поездки, и телеметрия с треками перейдут в самую раннюю из них. Дистанция складывается, даже если счётчик колеса между кусками обнулился. Объединять можно только завершённые поездки одного колеса, идущие подряд; отменить нельзя.

  • Пауза в записи рвёт линию, а не тянет её через пустоту — на графиках, на треке карты, в карточке поездки и в профиле высот. Прямая между кусками не идёт ни в пройденное расстояние, ни в набор высоты.

  • У краёв графика теперь стоят числа: пик и минимум видимого участка, у каждого показателя своим цветом. На графике одного показателя вместо этого подписанная сетка по круглым значениям.

  • InMotion V11: поддержка колеса стала полнее. Настройки теперь меняются прямо из приложения — ограничение скорости, педали, свет, звук, ассисты разгона и торможения, блокировка и режимы; после записи колесо перечитывает блок, поэтому на экране видно принятое значение. Фара вынесена в быстрые действия одной кнопкой, температура мотора больше не показывается нулём (датчика на этом колесе нет), а настройки перестали пропадать с экрана в долгой сессии. Команды выведены из фирменного приложения и на живом колесе подтверждены не полностью, а часть из них способна снять тягу под ногами — меняйте их только на стоянке.

  • Ninebot Z (Z6/Z8/Z10): телеметрия, обе батареи с ячейками и настройки — ограничение скорости, Speed alarm 1–3 с порогами, фара, ДХО и габарит, подсветка и её цвета, чувствительность педалей, громкость динамика, блокировка. Протокол собран по описанию раскладки байтов и на живом колесе не проверялся ни в одной точке. PWM не сообщается колесом, а считается из скорости и напряжения, поэтому это лишь оценка нагрузки.

  • Зарядка SKAT / CAN-Control: экспериментальная поддержка.

iOS · build 42

  • В истории поездок появилось «Объединить»: выделите куски одной поездки, и телеметрия с треками перейдут в самую раннюю из них. Дистанция складывается, даже если счётчик колеса между кусками обнулился. Объединять можно только завершённые поездки одного колеса, идущие подряд; отменить нельзя.

  • Пауза в записи рвёт линию, а не тянет её через пустоту — на графиках, на треке карты, в карточке поездки и в профиле высот. Прямая между кусками не идёт ни в пройденное расстояние, ни в набор высоты.

  • У краёв графика теперь стоят числа: пик и минимум видимого участка, у каждого показателя своим цветом, до четырёх показателей сразу.

  • Исправлено: если колесо показывало несколько знакомых приложению характеристик, команды могли уйти не в ту. На V11 из-за этого вся сессия висела в ожидании телеметрии — теперь характеристика выбирается по приоритету.

  • Исправлено: при подключении к сохранённому колесу сервисы теперь перезапрашиваются заново. Раньше такая сессия могла остаться «подключённой», не прислав ни одного пакета.

  • Выгрузка дампа теперь получается всегда — вместе с отправленными командами и шагами подключения. Раньше молчащая сессия, которую и надо разбирать, не давала файла вовсе.

  • InMotion V11: поддержка колеса стала полнее. Настройки теперь меняются прямо из приложения — ограничение скорости, педали, свет, звук, ассисты разгона и торможения, блокировка и режимы; после записи колесо перечитывает блок, поэтому на экране видно принятое значение. Фара вынесена в быстрые действия одной кнопкой, а температура мотора больше не показывается нулём — датчика на этом колесе нет. Команды выведены из фирменного приложения и на живом колесе подтверждены не полностью, а часть из них способна снять тягу под ногами — меняйте их только на стоянке.

  • Ninebot Z (Z6/Z8/Z10): телеметрия, обе батареи с ячейками и настройки — ограничение скорости, Speed alarm 1–3 с порогами, фара, ДХО и габарит, подсветка и её цвета, чувствительность педалей, громкость динамика, блокировка. Протокол собран по описанию раскладки байтов и на живом колесе не проверялся ни в одной точке. PWM не сообщается колесом, а считается из скорости и напряжения, поэтому это лишь оценка нагрузки.

  • Зарядка SKAT / CAN-Control: экспериментальная поддержка, только показания.

Поездку теперь можно выгрузить в формате WheelLog, InMotion P6 отвечает на чтение настроек, а телеметрия InMotion и LeaperKim стала надёжнее.

Android · vc44

  • В истории поездок появился «Экспорт Wheellog» — выгрузка поездки в формате WheelLog. Работает и для поездок без записанного GPS-трека.

  • InMotion P6 теперь отвечает на чтение настроек: 22 поля с названиями, единицами и значениями подтверждены на реальном колесе и сверены с официальным приложением.

  • Часть настроек P6 теперь можно менять прямо из приложения. Команды собраны по протоколу, но ещё ни разу не записывались в реальное колесо — проверяйте результат на месте.

  • Быстрые команды света, автосвета и выключения теперь распознают InMotion P6, а напряжение зарядки P6 показывается в правильном масштабе.

  • Добавлено предварительное чтение телеметрии и настроек InMotion V11. Реальных записей с V11 пока нет, поэтому данные считаются неподтверждёнными, а настройки доступны только для просмотра.

  • Настройки колеса разбиты на понятные разделы: управление, скорость, свет, звук, батарея, защита и система. У расшифрованных блоков больше нет строк сырых байтов.

  • У LeaperKim Patton больше не скачет процент батареи и не появляются токи в сотни ампер: приложение перестало принимать контрольную сумму за телеметрию и использует подтверждённую конфигурацию 30S.

  • Экспериментальная поддержка HW Smart Charger: исправлены канал записи и формат команд, добавлен запрос пароля с безопасным хранением для каждого устройства. Приём телеметрии на реальной зарядке пока не подтверждён.

  • На дашборде появилась явная команда отключения, а история поездок при повороте экрана сохраняет открытую поездку, выбранные графики, масштаб и режим выделения.

  • Интерфейс аккуратнее ведёт себя на компактных экранах и при крупном системном шрифте. На экране поиска устройств видны версия и номер сборки.

  • Встроенные примеры оповещений на новой или сброшенной установке теперь выключены, пока райдер не включит их сам.

  • Диагностический дамп выгружается даже с молчащего устройства: в него попадают и учитываются исходящие команды.

iOS · build 34

  • В истории поездок появился «Экспорт Wheellog» — выгрузка поездки в формате WheelLog. Работает и для поездок без записанного GPS-трека.

  • Исправлено чтение настроек InMotion: P6 наконец отвечает и показывает 22 поля, подтверждённые на реальном колесе и сверенные с официальным приложением.

  • Телеметрия InMotion больше не замирает на пустом экране, если колесо не ответило на первый запрос или ответ потерялся: приложение само возобновляет опрос.

  • На дашборде P6 заполнились плитки напряжения и тока зарядки, а сам масштаб напряжения зарядки исправлен.

  • Настройки колеса разбиты на те же разделы, что и на Android: управление, скорость, свет, звук, батарея, защита и система.

  • Добавлено предварительное чтение телеметрии и настроек InMotion V11. Реальных записей с V11 пока нет, поэтому данные считаются неподтверждёнными, а настройки доступны только для просмотра.

  • У LeaperKim Patton больше не скачет процент батареи и не появляются токи в сотни ампер: приложение перестало принимать контрольную сумму за телеметрию и использует подтверждённую конфигурацию 30S.

  • Экспериментальная поддержка HW Smart Charger: команды больше не уходят в никуда, добавлен запрос пароля с безопасным хранением для каждого устройства. Приём телеметрии на реальной зарядке пока не подтверждён.

  • На экране поиска устройств видны версия и номер сборки.

  • Встроенные примеры оповещений на новой или сброшенной установке теперь выключены, пока райдер не включит их сам.

Новые возможности часов и диагностики, дополнительные настройки колёс и исправления подключений и звука.

Android · vc43

  • Добавлена экспериментальная поддержка HW Smart Charger: отдельная панель показывает напряжение и ток зарядки, состояние зарядки, мощность и температуру. Определение устройства и BLE-протокол пока не проверены на реальной зарядке.

  • В настройках колёс LeaperKim и NOSFET появился отдельный Speed Alarm — собственный звуковой порог колеса, не связанный со скоростью tiltback. Команда восстановлена по прошивке и пока проверена только лабораторно, без записи на реальное колесо.

  • В диагностике LeaperKim появился быстрый режим: он одновременно читает 54 поля сопотока с частотой 500 Гц, показывает потерю пакетов при перегрузке BLE-канала и надёжнее переключается в нужный режим. Для выхода требуется перезапуск колеса.

  • PWM-тревога и пользовательские алерты теперь корректно звучат поверх музыки. Новая настройка позволяет приглушать музыку на всё время тревоги без скачков громкости между сигналами.

  • Улучшено чтение настроек InMotion P6 сразу после подключения: запросы выполняются последовательно, поэтому кратковременный ответ колеса реже теряется.

iOS · build 33

  • Добавлено приложение-компаньон для Apple Watch: крупный настраиваемый показатель, две дополнительные карточки с мини-графиками, управление фарой и вибрация при достижении порога PWM. Телеметрия поступает с iPhone; часы не подключаются к колесу напрямую.

  • Добавлена экспериментальная поддержка HW Smart Charger: отдельная панель показывает напряжение и ток зарядки, состояние зарядки, мощность и температуру. Определение устройства и BLE-протокол пока не проверены на реальной зарядке.

  • В настройках колёс LeaperKim и NOSFET появился отдельный Speed Alarm, не связанный со скоростью tiltback. Команда восстановлена по прошивке и пока проверена только лабораторно, без записи на реальное колесо.

  • После ручного отключения приложение больше не подключается к колесу снова при переходе в активное состояние или изменении состояния Bluetooth. Повторное автоподключение включается только после явного подключения.

  • Звуки алертов восстанавливаются после возврата из другого приложения, системного прерывания звука или перезапуска медиасервисов iOS.