zip3
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
zip3 [2022/10/24 23:39] – lothean | zip3 [2024/04/18 21:33] (current) – lothean | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== ScooterHacking Open-Source Firmware Package (ZIPv3) ====== | ====== ScooterHacking Open-Source Firmware Package (ZIPv3) ====== | ||
- | Since late 2021, Xiaomi started using GD32 chips on their DRV boards where STM32 chips were previously used. Ninebot soon followed by replacing the STM32 chips by AT32 chips. Some instances of STM32-based BMS boards replacing STM8 ones were also spotted in vehicles of the two aforementionned | + | Since late 2021, Xiaomi started using GD32 chips on their DRV boards where STM32 chips were previously used. Ninebot soon followed by replacing the STM32 chips with AT32 chips. Some instances of STM32-based BMS boards replacing STM8 ones were also spotted in vehicles of the two aforementioned |
[[: | [[: | ||
- | This new package format - nicknamed " | + | This new package format - nicknamed " |
- | This documentation covers the first released schema version of this format (v3.1). Any documentation to a more recent version will be linker | + | This documentation covers the first released schema version of this format (v3.1). Any documentation to a more recent version will be linked |
- | ===== \\ | + | ===== Content of a firmware package ===== |
- | Content of a firmware package ===== | + | |
- | All files must be placed | + | All files must be placed |
==== info.json ==== | ==== info.json ==== | ||
- | === Example file ===< | + | === Example file === |
+ | < | ||
{ | { | ||
" | " | ||
Line 36: | Line 37: | ||
} | } | ||
- | </ | + | </ |
- | Details === | + | |
- | The // | + | === Details === |
+ | |||
+ | The // | ||
For example, if the integer is 1, then you're using v3.1. | For example, if the integer is 1, then you're using v3.1. | ||
The // | The // | ||
- | //The displayName// | + | //The displayName// |
- | The //model// key contains the model this firmware was originally made for, as a string. For a list of in-use values, see the List of models section. | + | The //model// key contains the model this firmware was originally made for, as a string. For a list of in-use values, see the [[: |
- | The // | + | The // |
- | The //type// key is a string that contains the target internal device the firmware is made for. In-use values are currently **BLE**, **DRV**, and **BMS ** (case senstive). | + | The //type// key is a string that contains the target internal device the firmware is made for. In-use values are currently **BLE**, **DRV**, and **BMS ** (case-sensitive). |
- | The // | + | The // |
- | The // | + | The // |
The //md5// object contains the md5 checksums of the firmware file(s), each inside a string.\\ | The //md5// object contains the md5 checksums of the firmware file(s), each inside a string.\\ | ||
Line 68: | Line 70: | ||
Only to be included if the // | Only to be included if the // | ||
- | ==== params.txt | + | ==== params.txt ==== |
Optional. Text file containing a summary of patched parameters in the firmware. | Optional. Text file containing a summary of patched parameters in the firmware. | ||
Line 79: | Line 81: | ||
Ninebot Max: //max// \\ | Ninebot Max: //max// \\ | ||
+ | Ninebot G2: //g2// \\ | ||
+ | Ninebot G65: //g65// \\ | ||
Ninebot ESx: //esx// \\ | Ninebot ESx: //esx// \\ | ||
Ninebot E-series: //e// \\ | Ninebot E-series: //e// \\ | ||
Line 91: | Line 95: | ||
==== List of boards ==== | ==== List of boards ==== | ||
- | Board identifiers are case-sensitive and usually constructed the following way:\\ | + | Board identifiers are case-sensitive and usually constructed |
// | // | ||
- | The particularity can be the MCU, a distinguishable sign, the board revision or a combination of all/some of those.\\ | + | The particularity can be the MCU, a distinguishable sign, the board revision, or a combination of all/some of those.\\ |
- | Some exceptions can apply as some scooters share the same boards, or boards that are deemed compatible enough to be merged together. | + | Some exceptions can apply as some scooters share the same boards or boards that are deemed compatible enough to be merged together. |
=== List of currently known DRV boards === | === List of currently known DRV boards === | ||
Line 100: | Line 104: | ||
max_DRV_STM32F103CxT6\\ | max_DRV_STM32F103CxT6\\ | ||
max_DRV_AT32F415CxT7\\ | max_DRV_AT32F415CxT7\\ | ||
+ | g2_DRV_AT32F415CxT7\\ | ||
+ | g65_DRV_AT32F415CxT7\\ | ||
f_DRV_STM32F103CxT6\\ | f_DRV_STM32F103CxT6\\ | ||
f_DRV_AT32F415CxT7\\ | f_DRV_AT32F415CxT7\\ | ||
Line 114: | Line 120: | ||
nb_BLE_ROUND //(ESx & E-series BLE)// \\ | nb_BLE_ROUND //(ESx & E-series BLE)// \\ | ||
t15_BLE\\ | t15_BLE\\ | ||
+ | g2_BLE\\ | ||
+ | g65_BLE\\ | ||
mi_BLE_LEGACY //(4 dots dashboard, M365)// \\ | mi_BLE_LEGACY //(4 dots dashboard, M365)// \\ | ||
mi_BLE_NRF51822QFAA //(M365 Pro)// \\ | mi_BLE_NRF51822QFAA //(M365 Pro)// \\ | ||
Line 120: | Line 128: | ||
max_BMS_ST8\\ | max_BMS_ST8\\ | ||
+ | max_BMS_STM32\\ | ||
esx_e_BMS_ST8\\ | esx_e_BMS_ST8\\ | ||
- | mi_BMS_ST8 (All supported Xiaomi scooters) | + | mi_BMS_ST8 |
+ | ===== Using & contributing ===== | ||
+ | |||
+ | Code examples to create & use ZIPv3 firmware packages can be found on our GitHub, [[https:// | ||
+ | You can discuss the standard, propose new ideas, or ask any related questions in the ScooterHacking development group on Telegram, [[https:// | ||
zip3.txt · Last modified: 2024/04/18 21:33 by lothean