PowerBank / Вендинг PowerBank / Vending
PowerNow NAS — Прошивки зарядной станции PowerNow NAS — Charging Station Firmware
Реверс схемотехники и протоколов двух типов плат — разработаны прошивки для материнской платы и плат ячеек: FreeRTOS, Modbus, JSON-RPC 2.0, FOTA, умная зарядка. PCB and protocol reverse engineering for two board types — firmware developed for motherboard and cell boards: FreeRTOS, Modbus, JSON-RPC 2.0, FOTA, smart charging.
Reverse EngineeringFreeRTOSModbus RTUJSON-RPC 2.0Quectel EC20FOTASTM32I2CIR Protocol
Ключевые метрики
3 PCB
реверс схемотехники: материнская плата, платы ячеек, NAS-4 (IoT + ячейки) PCB RE: motherboard, cell boards, NAS-4 (IoT + cells combined)
I2C+IR
реверс протоколов powerbank powerbank protocol reverse engineering
12
команд плате ячеек через Modbus cell board commands via Modbus
14
JSON-RPC 2.0 методов управления станцией JSON-RPC 2.0 station control methods
Возможности системы
Реверс схемотехники и протоколов PCB & Protocol Reverse Engineering
- Восстановление схемотехники материнской платы без документации Motherboard schematic recovery without documentation
- Восстановление схемотехники плат блоков ячеек (4 ячейки на плату) Cell board schematic recovery (4 cells per board)
- NAS-4 — компактная плата: IoT-модуль + блок ячеек в одном устройстве NAS-4 — compact board combining IoT module and cell block in one unit
- Реверс I2C-протокола powerbank: регистры телеметрии и команды I2C powerbank protocol RE: telemetry registers and commands
- Реверс IR-протокола: резервный канал чтения и управления powerbank IR protocol RE: fallback channel for powerbank read and control
- После перехода на собственную прошивку снизилось число выездов инженеров Switching to custom firmware reduced field service engineer callouts
Прошивка плат ячеек Cell Board Firmware
- STM32F030R8 (Cortex-M0), FreeRTOS — отдельная прошивка на каждую плату STM32F030R8 (Cortex-M0), FreeRTOS — separate firmware per board
- Modbus RTU slave — приём команд от материнской платы Modbus RTU slave — receives commands from motherboard
- I2C к powerbank: SOC %, ток (мА), температура (°C), циклы, ID, заряд I2C to powerbank: SOC %, current (mA), temperature (°C), cycles, ID, charge
- IR-протокол — резервный канал при отсутствии I2C IR protocol — fallback channel when I2C unavailable
- Управление соленоидами (блокировка/извлечение), зарядом, LED Solenoid control (lock/eject), charge management, LED indicators
- FOTA платы ячеек — запись прошивки чанками по Modbus Cell board FOTA — firmware written in chunks via Modbus
Телеметрия powerbank Powerbank Telemetry
- ID powerbank — 10 байт, уникальный идентификатор Powerbank ID — 10 bytes, unique identifier
- SOC — уровень заряда в % SOC — charge level in %
- Ток заряда — мА, флаг «идёт заряд» Charging current — mA, «charging» flag
- Температура — °C Temperature — °C
- Число циклов заряда Charge cycle count
- Накопленный заряд и энергия текущего сеанса Accumulated charge and current session energy
- Статус: нет powerbank / OK / ошибка IR / ошибка I2C Status: no powerbank / OK / IR error / I2C error
Прошивка материнской платы Motherboard Firmware
- Modbus RTU мастер — опрос плат ячеек, команды управления Modbus RTU master — cell board polling and command dispatch
- 12 команд плате ячеек: заряд, активация, извлечение, подсветка, FOTA 12 cell board commands: charge, activate, eject, lighting, FOTA
- Quectel EC20 (4G) — TCP-сокет к серверу, JSON-RPC 2.0 Quectel EC20 (4G) — TCP socket to server, JSON-RPC 2.0
- 14 RPC-методов: аренда, статус, конфигурация, перезагрузка, FOTA 14 RPC methods: rent, status, config, restart, FOTA
- Push-уведомления: вставка powerbank и результат FOTA — без опроса Push notifications: powerbank insert and FOTA result — no polling
- До 5 SIM-профилей и 2 серверов — переключение без перепрошивки Up to 5 SIM profiles and 2 servers — switched without reflash
Умная зарядка и надёжность Smart Charging & Reliability
- ChargerTask — приоритетный выбор ячеек для зарядки ChargerTask — priority-based cell selection for charging
- Аппаратный лимит тока: ячейки заряжаются поочерёдно по приоритету Hardware current limit: cells charged in priority order
- RestoreTask — авто-извлечение powerbank при просроченной аренде RestoreTask — auto-eject on expired rental
- IWDG watchdog на материнской плате и платах ячеек IWDG watchdog on both motherboard and cell boards
- FOTA для обоих типов плат — без физического доступа к станции FOTA for both board types — no physical station access required
Описание
**Реверс схемотехники**
Зарядная станция шеринга powerbank поступила без какой-либо документации. Полностью восстановлена схемотехника трёх типов PCB: материнской платы (управление, связь с сервером), плат блоков ячеек (прямое взаимодействие с powerbank) и NAS-4 — компактной платы, совмещающей IoT-модуль и блок ячеек в одном устройстве. На основе восстановленных схем разработаны прошивки с нуля.
**Реверс протоколов**
Восстановлены протоколы взаимодействия с powerbank: I2C с конкретными адресами регистров и IR-протокол как резервный канал. Установлены полный набор параметров телеметрии и команды управления powerbank.
**Прошивка материнской платы**
FreeRTOS с восемью независимыми задачами: Modbus-мастер над платами ячеек, клиент сервера, FOTA, умная зарядка, обработка вставок и логирование. Одна кодовая база покрывает две модели: NAS-8 (8 слотов) и NAS-16 (16 слотов). Связь с облаком — TCP-сокет через 4G (Quectel EC20), протокол — JSON-RPC 2.0.
**Прошивка плат ячеек**
Отдельная прошивка для STM32F030R8 (Cortex-M0) на каждой плате ячеек. Modbus RTU slave — принимает команды от материнской платы. Читает телеметрию powerbank по I2C (уровень, ток, температура, число циклов, ID, накопленный заряд) с IR как резервом. Управляет соленоидами, зарядом и индикацией по каждой ячейке. FOTA платы ячеек — по Modbus через запись чанков прошивки.
**Телеметрия powerbank**
Каждый слот отдаёт полный набор параметров: ID (10 байт), уровень заряда (SOC, %), ток заряда (мА), температуру (°C), число циклов, накопленный заряд, статус и флаг активации. Данные читаются по I2C или IR и передаются по Modbus на материнскую плату, затем — на сервер.
**Умная зарядка и надёжность**
Материнская плата координирует зарядку: приоритеты по ячейкам, аппаратный лимит тока на плату. RestoreTask автоматически извлекает powerbank при просроченной аренде. До 5 SIM-профилей и 2 серверов (основной + резерв) — обновляются через RPC без перепрошивки. После перехода на собственную прошивку станция стала предсказуемой — снизилось число выездов сервисных инженеров.
**PCB Reverse Engineering**
The sharing station arrived with zero documentation. Schematics fully recovered for three PCB types: motherboard (management, server connectivity), cell boards (direct powerbank interaction), and NAS-4 — a compact board combining IoT module and cell block in a single unit. Custom firmware developed from scratch based on recovered schematics.
**Protocol Reverse Engineering**
Powerbank communication protocols recovered: I2C with specific register addresses and IR protocol as fallback channel. Full telemetry parameter set and powerbank control commands established.
**Motherboard Firmware**
FreeRTOS with eight independent tasks: Modbus master over cell boards, server client, FOTA, smart charger, insertion handler, and logger. Single codebase covers two models: NAS-8 (8 slots) and NAS-16 (16 slots). Cloud connectivity — TCP socket over 4G (Quectel EC20), protocol — JSON-RPC 2.0.
**Cell Board Firmware**
Separate firmware for STM32F030R8 (Cortex-M0) on each cell board. Modbus RTU slave — receives commands from motherboard. Reads powerbank telemetry over I2C (level, current, temperature, cycles, ID, accumulated charge) with IR as fallback. Controls solenoids, charging, and LED indicators per cell. Cell board FOTA — via Modbus firmware chunk write.
**Powerbank Telemetry**
Each slot reports a full parameter set: ID (10 bytes), charge level (SOC, %), charging current (mA), temperature (°C), cycle count, accumulated charge, status, and activation flag. Data read over I2C or IR, forwarded via Modbus to motherboard, then to server.
**Smart Charging & Reliability**
Motherboard coordinates charging: per-cell priorities, hardware current limit per board. RestoreTask auto-ejects powerbank on expired rental. Up to 5 SIM profiles and 2 servers (primary + fallback) — updated via RPC without reflashing. Switching to custom firmware made station behavior predictable — reduced field service engineer callouts.