IoT IoT
Whizz e-bike — IoT-модуль и прошивка Whizz e-bike — IoT Module & Firmware
Реверс схемотехники и PCB IoT-модуля e-bike (восстановление документации по плате). На базе этого — разработка собственной прошивки на FreeRTOS и собственного IoT-модуля с нуля: MQTT/TLS, трёхуровневое OTA, управление контроллером, чтение BMS, GPS/LBS. Reverse engineering of e-bike IoT module PCB and schematic (documentation recovery from board). Based on that — custom firmware on FreeRTOS and custom IoT module from scratch: MQTT/TLS, three-level OTA, controller management, BMS readout, GPS/LBS.
CFreeRTOSEmbedded FWMQTT/TLSFOTAGPS/LBSModBusPCB DesignAltiumN32G45xQuectel EG800
Ключевые метрики
164 B
пакет телеметрии · 94 метрики telemetry packet · 94 metrics
13
типов команд устройству device command types
2
режима OTA: авто из прошивки и force-update с сервера OTA modes: auto from firmware and server force-update
2
режима восстановления: бекап и загрузка в бутлоадере recovery modes: backup and bootloader download
Возможности системы
Реверс схемотехники Schematic Reverse Engineering
- IoT-модуль с серийной партии байков — ноль документации IoT module from production batch of bikes — zero documentation
- Снятие схемотехники по физической плате Schematic recovery from physical board
- Воссоздание полного проекта в Altium Designer Full project recreation in Altium Designer
- Изучение протоколов взаимодействия с контроллером мотора и BMS Communication protocol analysis with motor controller and BMS
Собственный IoT-модуль Custom IoT Module
- Прошивка для существующих байков — под реверс-инженерный N32G45x Firmware for existing bikes — targeting the reverse-engineered N32G45x module
- Кастомный IoT-модуль для новых байков — собственная схемотехника и трассировка PCB Custom IoT module for new bikes — own schematic and PCB design
- FreeRTOS: многозадачность, приоритеты, событийно-ориентированная архитектура FreeRTOS: multitasking, priorities, event-driven architecture
- Центральный IoT FSM-оркестратор, FSM модема, арбитр доступа к шине Central IoT FSM orchestrator, modem FSM, bus access arbiter
- Кастомный W_Driver — аналог HAL для MCU N32G45x Custom W_Driver — HAL analogue for N32G45x MCU
Телеметрия и команды Telemetry and Commands
- Один пакет 164 байта: контроллер, батарея, GPS, акселерометр, сеть Single 164-byte packet: controller, battery, GPS, accelerometer, network
- Расчёт энергии батареи Q=I×T; резерв от контроллера при недоступности BMS Battery energy calculation Q=I×T; controller fallback when BMS unavailable
- Защита мотора: динамический лимит мощности по ModBus (порог задаётся с сервера) Motor protection: dynamic power limit via ModBus (threshold configured from server)
- 13 команд: Lock/Unlock, Speed/Power/Throttle Limit, Buzzer, Reboot, Config, OTA force-update 13 commands: Lock/Unlock, Speed/Power/Throttle Limit, Buzzer, Reboot, Config, OTA force-update
- Адаптивный период отправки телеметрии — зависит от режима устройства Adaptive telemetry send period — depends on device mode
FOTA и надёжность FOTA and Reliability
- Штатное OTA: HTTP-загрузка чанками, верификация CRC32 + SHA256 Normal OTA: HTTP chunked download, CRC32 + SHA256 verification
- Хранение прошивки и резервной копии на файловой системе модема Firmware and backup storage on modem filesystem
- L1 Recovery: откат из резервной копии без сети (~20–40 с) L1 Recovery: rollback from backup without network (~20–40 s)
- L2 Recovery: загрузка прошивки из Bootloader при многократных сбоях L2 Recovery: firmware download from Bootloader on repeated failures
Режимы и LBS Modes and LBS
- Режимы: NORMAL, LOWPOWER, PARKED, LOCKED — телеметрия и сон Modes: NORMAL, LOWPOWER, PARKED, LOCKED — telemetry and sleep
- GPS — основная геолокация GPS — primary geolocation
- LBS — вышки сотовой связи + Wi-Fi AP, всегда дополняет GPS; сервер уточняет координаты LBS — cell towers + Wi-Fi APs, always supplements GPS; server refines coordinates
- Алармы движения при припаркованном/заблокированном байке (акселерометр + GPS) Motion alarms on parked/locked bike (accelerometer + GPS)
- Пробуждение по RTC и прерыванию акселерометра Wake by RTC and accelerometer interrupt
Контроллер мотора Motor Controller
- Взаимодействие по ModBus RTU — чтение состояния и отправка команд ModBus RTU communication — state readout and command delivery
- Управление: блокировка/разблокировка, лимит скорости, лимит мощности, лимит газа Control: lock/unlock, speed limit, power limit, throttle limit
- Чтение: скорость, состояние блокировки, потребляемая мощность Readout: speed, lock state, power consumption
- Защита мотора: динамическое снижение лимита мощности при перегрузке (порог с сервера) Motor protection: dynamic power limit reduction on overload (threshold from server)
- Резервный источник данных о токе при недоступности BMS Fallback current data source when BMS is unavailable
BMS батареи Battery BMS
- Чтение данных по ModBus RTU: напряжение, SOC, ток, напряжения ячеек, температура ModBus RTU readout: voltage, SOC, current, cell voltages, temperature
- Расчёт энергии батареи Q=I×T в единицах 0.1 А·ч Battery energy calculation Q=I×T in 0.1 Ah units
- Резерв: при недоступности BMS — данные о токе берутся от контроллера Fallback: when BMS unavailable — current data sourced from motor controller
- Ограничение минимального напряжения батареи — задаётся с сервера Battery minimum voltage limit — configured from server
Связь и безопасность Connectivity and Security
- MQTT v3.1.1 / TLS через AT-команды модема Quectel EG800 MQTT v3.1.1 / TLS via Quectel EG800 modem AT commands
- Экономия ~50 KB Flash и ~15 KB RAM относительно стандартных библиотек ~50 KB Flash and ~15 KB RAM saved vs standard libraries
- Бинарная телеметрия, команды в Base64, автореконнект, очередь Binary telemetry, Base64 commands, auto-reconnect, command queue
- Идентификация по IMEI, TLS-шифрование, Sequence ID в командах IMEI identification, TLS encryption, Sequence ID in commands
Описание
Реверс схемотехники
IoT-модуль, установленный на серийной партии байков, — без единого документа. Схема снята по физической плате, полный проект воссоздан в Altium Designer. Изучены протоколы взаимодействия модуля с контроллером мотора и BMS — основа для разработки собственной прошивки.
Собственный IoT-модуль
На основе изученной платформы разработан IoT-модуль с нуля: схемотехника, трассировка PCB на китайских МК N32G45x и APM32, кастомная прошивка.
Прошивка
FreeRTOS с событийно-ориентированной архитектурой: центральный IoT FSM-оркестратор, отдельный FSM для модема, арбитр доступа к шине. MQTT v3.1.1 / TLS через AT-команды модема Quectel EG800 — экономия ~50 KB Flash и ~15 KB RAM относительно стандартных библиотек. Бинарная телеметрия, команды в Base64 для обхода ограничений AT-парсера.
Телеметрия и команды
Один пакет 164 байта: контроллер, батарея (напряжение, SOC, ток, энергия, ячейки), GPS, акселерометр, качество сети. Расчёт энергии батареи Q=I×T с резервом от контроллера при недоступности BMS. Защита мотора от перегрузки — динамический лимит мощности по ModBus, порог задаётся с сервера. 13 типов команд с кодами результата.
FOTA и надёжность
Трёхуровневое OTA: штатная загрузка по HTTP с верификацией CRC32 + SHA256, L1 Recovery — откат из резервной копии на файловой системе модема (без сети, ~20–40 с), L2 Recovery — загрузка прошивки из Bootloader при многократных сбоях.
Режимы и геолокация
NORMAL, LOWPOWER, PARKED, LOCKED — адаптивный период телеметрии и режим сна зависят от текущего режима устройства. GPS — основная геолокация; LBS (вышки + Wi-Fi AP) всегда передаётся параллельно, сервер уточняет координаты на основе обоих источников. Алармы движения: толчок (акселерометр) и GPS-скорость при припаркованном или заблокированном байке.
Schematic Reverse Engineering
IoT module installed on a production batch of bikes — zero documentation. Schematic traced from the physical board, full project recreated in Altium Designer. Communication protocols with motor controller and BMS studied — foundation for custom firmware development.
Custom IoT Module
Based on the reverse-engineered platform, an IoT module was built from scratch: schematics, PCB layout on Chinese MCUs N32G45x and APM32, custom firmware.
Firmware
FreeRTOS with event-driven architecture: central IoT FSM orchestrator, dedicated modem FSM, bus access arbiter. MQTT v3.1.1 / TLS via Quectel EG800 modem AT commands — saves ~50 KB Flash and ~15 KB RAM vs standard libraries. Binary telemetry publish; commands as Base64 to work around AT parser NULL-byte limits.
Telemetry and Commands
Single 164-byte packet: controller, battery (voltage, SOC, current, energy, cells), GPS, accelerometer, network quality. Battery energy calculation Q=I×T with controller fallback when BMS unavailable. Motor overload protection — dynamic power limit via ModBus, threshold configured from server. 13 command types with result codes.
FOTA and Reliability
Three-level OTA: normal HTTP download with CRC32 + SHA256 verification; L1 Recovery — rollback from backup on modem filesystem (no network, ~20–40 s); L2 Recovery — firmware download from Bootloader on repeated failures.
Modes and Geolocation
NORMAL, LOWPOWER, PARKED, LOCKED — adaptive telemetry period and sleep behaviour depend on current device mode. GPS is the primary geolocation source; LBS (cell towers + Wi-Fi APs) is always sent in parallel, and the server refines coordinates using both sources. Motion alarms: accelerometer bump and GPS speed on parked or locked bike.