Способы уменьшить показания одометра на электросамокате

Как скрутить пробег на электросамокате

Как скрутить пробег на электросамокате

Электросамокаты оснащены одометрами, которые фиксируют пробег с точностью до километра. Производители используют разные алгоритмы подсчета: одни учитывают только вращение колеса, другие – время работы мотора или напряжение батареи. Например, модели Xiaomi M365 и Ninebot Max G30 рассчитывают пробег по оборотам колеса, умноженным на его окружность (обычно 120–130 см). Это означает, что даже небольшое вмешательство в датчик или прошивку может снизить показания на 10–30%.

Самый распространенный метод – физическое отключение датчика Холла. Датчик, расположенный на мотор-колесе, передает сигналы о вращении контроллеру. Если временно разомкнуть его контакты (например, с помощью переключателя или резистора на 1–2 кОм), одометр перестанет считать пробег. Однако этот способ работает не на всех моделях: в Kugoo G-Booster контроллер может перейти в аварийный режим, ограничив мощность мотора до 60%.

Программное вмешательство требует доступа к прошивке контроллера. Для самокатов на базе STM32 или GD32 используют программы вроде ST-Link Utility или Keil uVision. В памяти контроллера хранится переменная пробега (обычно в формате uint32_t), которую можно обнулить или уменьшить. Например, в прошивке Ninebot ESx адрес этой переменной – 0x0800C000. После изменения данных требуется пересчет контрольной суммы, иначе контроллер заблокирует самокат.

Альтернативный способ – имитация меньшего диаметра колеса. В настройках некоторых самокатов (например, Dualtron) можно вручную указать размер колеса. Если вместо реальных 10 дюймов выставить 8, одометр будет занижать пробег на 20%. Однако этот метод не работает на моделях с жестко заданными параметрами, таких как Segway Ninebot F25, где диаметр колеса прописан в прошивке.

Для продвинутых пользователей подходит замена микросхемы памяти. В самокатах с отдельным EEPROM (например, 24C02 или 93C46) можно выпаять чип, считать данные программатором (CH341A), отредактировать значение пробега и записать обратно. Этот метод дает 100% контроль над показаниями, но требует навыков пайки и работы с электронными компонентами.

Как отключить датчик одометра через настройки контроллера

Как отключить датчик одометра через настройки контроллера

Доступ к настройкам контроллера осуществляется через специализированное ПО, совместимое с чипсетом вашего самоката. Для большинства моделей (например, Xiaomi M365, Ninebot ESx, Kugoo G-Booster) потребуется программатор ST-Link и утилиты типа ST Visual Programmer или Ninebot IAP. Подключите контроллер к ПК через UART-интерфейс (распиновка: TX-RX-GND, напряжение 3.3В), затем в программе откройте прошивку контроллера. Найдите параметр, отвечающий за одометр – обычно это ODO_ENABLE (адрес в памяти зависит от модели: для STM32F103 – 0x0800XXXX, для GD32 – 0x0800XXXX). Установите значение 0x00 вместо 0x01 и запишите изменения во флеш-память.

Альтернативный метод – редактирование конфигурационного файла через Bluetooth-приложения:

  • Для самокатов на базе контроллеров Votol EM-150/200 используйте Votol Tool – в разделе System Settings отключите опцию Odometer.
  • В Ninebot-Flasher (для моделей ES/D) найдите параметр odo_enable в JSON-конфиге и замените true на false.
  • Для контроллеров Kelly KBS-X потребуется Kelly Programmer – в меню Basic Settings снимите галочку с Wheel Speed Sensor.

После сохранения настроек перезагрузите контроллер. Учтите: некоторые прошивки (особенно кастомные) могут автоматически восстанавливать заводские параметры при обнаружении изменений – в этом случае потребуется полная перепрошивка с удалением секции одометра из кода.

Использование программаторов для сброса пробега на дисплее

Использование программаторов для сброса пробега на дисплее

Программаторы – специализированные устройства для прямого взаимодействия с микроконтроллерами дисплеев электросамокатов. Наиболее распространённые модели: ST-Link V2 (для STM32), J-Link (SEGGER) и CH341A (универсальный). Для работы требуется подключение к разъёму JTAG/SWD на плате контроллера или непосредственно к флеш-памяти дисплея. Типичный процесс включает чтение дампа памяти, редактирование данных о пробеге в HEX-редакторе (например, HxD) и обратную запись модифицированного файла. Важно учитывать, что многие дисплеи используют контрольные суммы – их пересчёт обязателен для корректной работы после сброса.

Таблица совместимости популярных программаторов с дисплеями электросамокатов:

Модель дисплея Тип микроконтроллера Рекомендуемый программатор Особенности прошивки
Ninebot E-series (Dash) STM32F103 ST-Link V2 Требует снятия защиты RDP (Read Protection)
Xiaomi M365 (оригинал) GD32F103 J-Link или CH341A Работает через SWD, контрольная сумма в адресе 0x08007C00
Kugoo G-Booster Nuvoton N76E003 CH341A + адаптер Данные хранятся во внешней SPI-флеш (Winbond 25Q32)

Перед началом работы изучите схему подключения для конкретной модели дисплея – ошибки приводят к выходу из строя микроконтроллера. Для дисплеев на STM32 используйте утилиту STM32CubeProgrammer, для GD32 – GD32 ISP Tool. После сброса пробега проверьте работоспособность всех функций дисплея (отображение скорости, заряда батареи, режимов езды). В случае сбоев восстановите оригинальный дамп памяти из резервной копии.

Замена или модификация магнитного датчика колеса

Замена или модификация магнитного датчика колеса

Магнитный датчик (геркон или датчик Холла) – ключевой элемент системы подсчета пробега на большинстве электросамокатов. Его работа основана на фиксации прохождения магнита, закрепленного на колесе, при каждом обороте. Чтобы снизить показания одометра, можно применить один из методов:

  • Удаление или смещение магнита. Демонтируйте магнит с колеса или сдвиньте его ближе к оси, уменьшив количество срабатываний датчика на оборот. На моделях с цельнометаллическими дисками (например, Xiaomi M365) магнит часто крепится на спице – его можно заменить на более слабый или установить под углом, снижающим чувствительность.
  • Замена датчика на аналог с меньшей чувствительностью. Стандартные датчики Холла (например, A3144) реагируют на магнитное поле от 50 до 100 Гс. Замените его на модель с порогом срабатывания 150–200 Гс (например, US1881), чтобы магнит проходил мимо без регистрации. Учитывайте полярность при установке.
  • Экранирование датчика. Закройте датчик тонкой стальной пластиной (0,1–0,2 мм) или фольгой, оставив зазор для магнита. Метод эффективен на самокатах с низким расположением датчика (Ninebot ES2, Kugoo M4 Pro). Проверьте работоспособность тормозной системы после модификации – некоторые модели используют тот же датчик для ABS.

При модификации учитывайте прошивку контроллера. На самокатах с открытым ПО (например, Ninebot Max G30) можно отключить подсчет пробега через настройки BLE (приложение Ninebot-Flasher), но это оставит следы в логах. На закрытых системах (Xiaomi, Segway) единственный способ – физическое вмешательство в датчик. После замены или экранирования проведите тестовый заезд на ровной поверхности, сравнив реальный пробег (по GPS) с показаниями одометра. Разница в 15–30% считается приемлемой для большинства задач.

Перепрошивка прошивки контроллера для корректировки пробега

Перепрошивка прошивки контроллера для корректировки пробега

Процесс перепрошивки начинается с чтения текущего дампа памяти. Для STM32 используется команда st-flash read dump.bin 0x08000000 0x10000, где 0x08000000 – начальный адрес Flash-памяти, а 0x10000 – размер сектора. В дампе ищутся последовательности байтов, соответствующие пробегу: например, для самокатов Xiaomi M365 значение хранится по адресу 0x0800C000 в формате little-endian. Редактирование выполняется в HEX-редакторе (HxD, 010 Editor) с последующей записью изменённого дампа обратно в контроллер. Важно учитывать контрольные суммы – некоторые прошивки проверяют целостность данных, и их изменение без пересчёта приведёт к ошибке инициализации.

Для самокатов с зашифрованными прошивками (например, Ninebot ESx) потребуется декомпиляция оригинального ПО. Инструменты вроде Ghidra или IDA Pro позволяют анализировать алгоритмы хранения пробега, но процесс осложняется обфускацией кода и динамическим шифрованием. Альтернативный метод – использование готовых патчей, таких как «Ninebot BLE Hack» или «M365 Dashboard Editor», которые автоматически корректируют пробег через Bluetooth или UART. Однако такие решения часто привязаны к конкретным версиям прошивок, и их применение на неподдерживаемых моделях может вывести контроллер из строя.

После перепрошивки необходимо сбросить адаптивные параметры контроллера, иначе возможны несоответствия в работе системы. Для этого через диагностические команды (например, AT+RESET для Ninebot) выполняется полный сброс настроек. В некоторых случаях требуется повторная калибровка датчиков Холла или акселерометра, иначе самокат может терять мощность или некорректно отображать скорость. Рискованные операции, такие как изменение bootloader, могут привести к «окирпичиванию» устройства, поэтому перед вмешательством рекомендуется сохранить резервную копию оригинальной прошивки.

Физическое вмешательство в механизм подсчета оборотов колеса

Физическое вмешательство в механизм подсчета оборотов колеса

Большинство электросамокатов используют магнитные датчики Холла, установленные на вилке переднего или заднего колеса. Датчик фиксирует прохождение магнита, закрепленного на спице или ступице, и передает сигнал контроллеру. Для вмешательства потребуется демонтировать колесо, снять покрышку и камеру, чтобы получить доступ к магниту. На моделях Xiaomi M365 и Ninebot ES2 магнит часто расположен на внутренней стороне спицы, ближе к оси. Удаление или смещение магнита на 180 градусов относительно датчика полностью блокирует подсчет оборотов.

Альтернативный метод – экранирование магнита. Для этого используют тонкую стальную пластину (0,3–0,5 мм), закрепленную между магнитом и датчиком. Пластина должна перекрывать не менее 70% площади магнита, чтобы ослабить магнитное поле до уровня, при котором датчик перестает срабатывать. На самокатах с дисковыми тормозами (например, Kugoo G2) пластину можно закрепить на суппорте, не снимая колесо. Эффективность метода зависит от чувствительности датчика – на некоторых моделях потребуется увеличить толщину экрана до 1 мм.

Замена штатного магнита на более слабый – еще один способ снизить точность подсчета. Магниты из неодима N35–N42 заменяют на ферритовые или алюминиево-никелевые аналоги с индукцией менее 100 мТл. Датчики Холла большинства самокатов срабатывают при индукции от 50 мТл, поэтому ослабленный магнит может пропускать до 30% оборотов. Важно учитывать полярность: неправильная установка приведет к обратному эффекту – датчик начнет фиксировать ложные срабатывания.

На самокатах с механическим одометром (редко, но встречается на бюджетных моделях) вмешательство проще. Одометр подключается к тросику, вращаемому шестерней на оси колеса. Достаточно укоротить тросик на 10–15 мм или установить шестерню с меньшим количеством зубьев (например, 12 вместо 16). Это снизит передаточное число и уменьшит показания на 20–25%. Метод не работает на самокатах с электронным одометром, так как сигнал поступает напрямую с датчика.

Для временного отключения подсчета можно использовать неодимовый магнит, приложенный к датчику Холла. Магнит создает постоянное поле, блокирующее срабатывание датчика. Метод эффективен на расстоянии до 5 мм от датчика, но требует точного позиционирования – смещение на 2–3 мм восстановит работу. На самокатах с герметичными датчиками (например, Segway Ninebot Max) магнит крепят на внешней стороне вилки с помощью двустороннего скотча. Недостаток – магнит может притягивать металлическую пыль, что приведет к засорению механизма.

После любого физического вмешательства необходимо проверить работу тормозной системы. Смещение магнита или установка экрана может повлиять на работу датчика ABS или рекуперативного торможения. На моделях с гидравлическими тормозами (например, Dualtron Thunder) рекомендуется протестировать торможение на скорости 20 км/ч – при некорректной работе датчика тормозной путь увеличивается на 15–20%. Если вмешательство затронуло проводку, проверьте целостность изоляции мультиметром – короткое замыкание выведет из строя контроллер.

Подключение внешних устройств для имитации меньшего пробега

Подключение внешних устройств для имитации меньшего пробега

На рынке доступны специализированные эмуляторы сигналов одометра, работающие через OBD-II или CAN-шину. Модели типа OBDLink MX+ или Veepeak OBDCheck позволяют перехватывать и модифицировать данные о пробеге, отправляемые контроллером самоката. Для этого требуется:

  • Подключение устройства к диагностическому разъёму (обычно расположен под декой или в рулевой колонке).
  • Использование ПО вроде FORScan или XTOOL для перехвата пакетов данных с идентификаторами 0x18F (скорость) и 0x220 (пробег).
  • Замена значений в реальном времени с помощью скриптов на Python (библиотека python-can) или готовых прошивок для эмуляторов.

Альтернативный метод – использование микроконтроллеров типа Arduino Nano или STM32 с CAN-трансивером (MCP2515). Схема подключения:

  1. Подпайка к CAN-шине самоката (пины CAN-H и CAN-L на плате контроллера).
  2. Загрузка прошивки, имитирующей сигналы датчика скорости (например, генерация импульсов с частотой 100 Гц вместо реальных 200 Гц).
  3. Калибровка через осциллограф для точного соответствия штатным параметрам.

Для самокатов с Bluetooth-модулями (например, Ninebot или Xiaomi) применяют эмуляторы BLE-сигналов. Устройства вроде ESP32 с библиотекой NimBLE могут подменять MAC-адрес контроллера и отправлять ложные данные о пробеге в приложение производителя. Ключевые шаги:

  • Перехват оригинального BLE-пакета с помощью nRF Connect (идентификатор сервиса 0xFFE0).
  • Модификация байтов, отвечающих за пробег (обычно смещение 0x0A-0x0D в пакете).
  • Отправка поддельного пакета с интервалом 1–2 секунды для стабильной подмены.

Риски метода: большинство производителей внедряют контрольные суммы в CAN-пакеты (например, CRC-8 у Ninebot). Обход требует реверс-инжиниринга протокола с помощью анализатора трафика (Wireshark + плагин CAN) или дампа прошивки контроллера (инструменты Ghidra, IDA Pro). При некорректной модификации данных самокат может перейти в аварийный режим или заблокировать мотор. Для минимизации рисков рекомендуется тестировать изменения на неиспользуемом контроллере.

Ссылка на основную публикацию