diff --git a/docs/assets/img/product_pics/atom_base/atomStepMotor/atom_stepmotor.webp b/docs/assets/img/product_pics/atom_base/atomStepMotor/atom_stepmotor.webp
new file mode 100644
index 00000000..e4042b11
Binary files /dev/null and b/docs/assets/img/product_pics/atom_base/atomStepMotor/atom_stepmotor.webp differ
diff --git a/docs/assets/img/product_pics/base/m5go_base_04.webp b/docs/assets/img/product_pics/base/m5go_base_04.webp
old mode 100755
new mode 100644
index aab08ab1..306e5946
Binary files a/docs/assets/img/product_pics/base/m5go_base_04.webp and b/docs/assets/img/product_pics/base/m5go_base_04.webp differ
diff --git a/docs/assets/img/product_pics/hat/adc_hat/adc_hat_01.webp b/docs/assets/img/product_pics/hat/adc_hat/adc_hat_01.webp
index 0d189bd7..357ac16c 100644
Binary files a/docs/assets/img/product_pics/hat/adc_hat/adc_hat_01.webp and b/docs/assets/img/product_pics/hat/adc_hat/adc_hat_01.webp differ
diff --git a/docs/assets/img/product_pics/hat/dac_hat/dac_hat_01.webp b/docs/assets/img/product_pics/hat/dac_hat/dac_hat_01.webp
index 51a9550d..b645ab53 100644
Binary files a/docs/assets/img/product_pics/hat/dac_hat/dac_hat_01.webp and b/docs/assets/img/product_pics/hat/dac_hat/dac_hat_01.webp differ
diff --git a/docs/assets/img/product_pics/hat/finger_hat/finger_hat_01.webp b/docs/assets/img/product_pics/hat/finger_hat/finger_hat_01.webp
index b0f25ee2..94b763f5 100644
Binary files a/docs/assets/img/product_pics/hat/finger_hat/finger_hat_01.webp and b/docs/assets/img/product_pics/hat/finger_hat/finger_hat_01.webp differ
diff --git a/docs/assets/img/product_pics/hat/joystick_hat/joystick_hat_01.webp b/docs/assets/img/product_pics/hat/joystick_hat/joystick_hat_01.webp
index 1881533e..97ac5674 100644
Binary files a/docs/assets/img/product_pics/hat/joystick_hat/joystick_hat_01.webp and b/docs/assets/img/product_pics/hat/joystick_hat/joystick_hat_01.webp differ
diff --git a/docs/assets/img/product_pics/hat/ncir_hat/hat_ncir_01.webp b/docs/assets/img/product_pics/hat/ncir_hat/hat_ncir_01.webp
index e2edf989..c3d49cfc 100644
Binary files a/docs/assets/img/product_pics/hat/ncir_hat/hat_ncir_01.webp and b/docs/assets/img/product_pics/hat/ncir_hat/hat_ncir_01.webp differ
diff --git a/docs/assets/img/product_pics/hat/proto_hat/hat_proto_01.webp b/docs/assets/img/product_pics/hat/proto_hat/hat_proto_01.webp
index 1b899aaf..29f1b6c4 100644
Binary files a/docs/assets/img/product_pics/hat/proto_hat/hat_proto_01.webp and b/docs/assets/img/product_pics/hat/proto_hat/hat_proto_01.webp differ
diff --git a/docs/assets/img/product_pics/hat/rs485_hat/rs485_hat_01.webp b/docs/assets/img/product_pics/hat/rs485_hat/rs485_hat_01.webp
index efe50f4f..9ec30889 100644
Binary files a/docs/assets/img/product_pics/hat/rs485_hat/rs485_hat_01.webp and b/docs/assets/img/product_pics/hat/rs485_hat/rs485_hat_01.webp differ
diff --git a/docs/assets/img/product_pics/hat/tof_hat/tof_hat_01.webp b/docs/assets/img/product_pics/hat/tof_hat/tof_hat_01.webp
index c60e5115..7e5de24b 100644
Binary files a/docs/assets/img/product_pics/hat/tof_hat/tof_hat_01.webp and b/docs/assets/img/product_pics/hat/tof_hat/tof_hat_01.webp differ
diff --git a/docs/assets/img/product_pics/module/com_lorawan/com.lorawan.webp b/docs/assets/img/product_pics/module/com_lorawan/com.lorawan.webp
new file mode 100644
index 00000000..ec869b9e
Binary files /dev/null and b/docs/assets/img/product_pics/module/com_lorawan/com.lorawan.webp differ
diff --git a/docs/assets/img/product_pics/module/com_lorawan/com.lorawan_sch.webp b/docs/assets/img/product_pics/module/com_lorawan/com.lorawan_sch.webp
new file mode 100644
index 00000000..4d43928a
Binary files /dev/null and b/docs/assets/img/product_pics/module/com_lorawan/com.lorawan_sch.webp differ
diff --git a/docs/assets/img/product_pics/module/faces_cal/face_cal.webp b/docs/assets/img/product_pics/module/faces_cal/face_cal.webp
new file mode 100644
index 00000000..72d5538d
Binary files /dev/null and b/docs/assets/img/product_pics/module/faces_cal/face_cal.webp differ
diff --git a/docs/assets/img/product_pics/module/faces_gamepad/face_gamepad.webp b/docs/assets/img/product_pics/module/faces_gamepad/face_gamepad.webp
new file mode 100644
index 00000000..04c2a095
Binary files /dev/null and b/docs/assets/img/product_pics/module/faces_gamepad/face_gamepad.webp differ
diff --git a/docs/assets/img/product_pics/module/faces_keyboard/face_keyboard.webp b/docs/assets/img/product_pics/module/faces_keyboard/face_keyboard.webp
new file mode 100644
index 00000000..829e9743
Binary files /dev/null and b/docs/assets/img/product_pics/module/faces_keyboard/face_keyboard.webp differ
diff --git a/docs/en/app/bala2.md b/docs/en/app/bala2.md
index ae34038a..ee267a71 100644
--- a/docs/en/app/bala2.md
+++ b/docs/en/app/bala2.md
@@ -7,7 +7,7 @@
## Description
**BALA2** is short for 'Balance', like its namesake, it's the second generation product. **BALA2** is a Self Balancing Robot consist of a M5Stack Gray and two wheels(DC motors).The base uses STM32F030C8T6 as the main control, two-way encoding motor drive, built-in 1200mAh battery.This application product comes with preloaded software, a self-balance robot application.
-This Self Balancing Robot is a Two-wheeled Robot that balances vertically using a closed-loop algorithm. You can control it to walk freely through programming, or you can combine WiFi and Bluetooth to develop remote control functions. This Robot is controllable by a Smartphone device or a Transmitter. The BALA2 base contains a wealth of interfaces. In addition to the conventional PortB and PortC, it also supports 8-channel servos, of which 4 channels can be directly connected, and the remaining 4 channels need to be connected from the inside of the base. Even if you have never been in contact with the balance car program, you can quickly complete the programming and control it through UIFlow. Self Balancing robot uses data from the Accelerometer and Gyroscope to correct its orientation and position.The 2 DC driver module communicates with M5Stack Gray through I2C bus. It's default I2C address is **0x56**.
+This Self Balancing Robot is a Two-wheeled Robot that balances vertically using a closed-loop algorithm. You can control it to walk freely through programming, or you can combine WiFi and Bluetooth to develop remote control functions. This Robot is controllable by a Smartphone device or a Transmitter. The BALA2 base contains a wealth of interfaces. In addition to the conventional PortB and PortC, it also supports 8-channel servos, of which 4 channels can be directly connected, and the remaining 4 channels need to be connected from the inside of the base. Even if you have never been in contact with the balance car program, you can quickly complete the programming and control it through UIFlow. Self Balancing robot uses data from the Accelerometer and Gyroscope to correct its orientation and position.The 2 DC driver module communicates with M5Stack Gray through I2C bus.
## Product Features
@@ -127,7 +127,7 @@ NOTE: Calibration required for first use!Press and hold the right C key to sta
## PARAMETER
-Model | M5Stack FIRE
+Model | M5Stack Gray
---|---
ESP32 | 240MHz dual core, 600 DMIPS, 520KB SRAM, Wi-Fi, dual mode Bluetooth
Flash | 16MB Flash + 4MB PSRAM
@@ -136,9 +136,7 @@ Interface | TypeC x 1, CONNEXT(I2C+I/0+UART), Pogo Pin x 1
LCD | 2 inch, 320x240 Colorful TFT LCD, ILI9341
Speaker | 1W-0928
Microphone | MEMS Analog BSE3729 Microphone
-LED | SK6812 3535 RGB LED x 10
-MEMS | BMM150+(MPU6886/SH200Q)
-Battery | 550mAh @ 3.7V, inside
+MEMS | BMM150+MPU6886
Op.Temp. | 32°F to 104°F ( 0°C to 40°C )
Size | 54 x 54 x 21 mm
C.A.S.E | Plastic ( PC )
diff --git a/docs/en/atom/atomic.md b/docs/en/atom/atomic.md
index 4b3b071a..0bb769c0 100644
--- a/docs/en/atom/atomic.md
+++ b/docs/en/atom/atomic.md
@@ -58,7 +58,7 @@
diff --git a/docs/en/atom/atomic_step_motor.md b/docs/en/atom/atomic_step_motor.md
index dcf0dc77..7fe7326a 100644
--- a/docs/en/atom/atomic_step_motor.md
+++ b/docs/en/atom/atomic_step_motor.md
@@ -1,39 +1,32 @@
-# ATOMIC STEP MOTOR
+# ATOM STEPMOTOR Kit
-SKU:K042
+SKU:K047
-
+
## Description
-**ATOM SWITCH** is a bi-directional control programable switch for the M5ATOM. It can be connected to bi-directional AC circuits for simultaneous on-off control. The on-board relay can support up to 250V / 10A AC(Instantaneous current 16A). Built in step-down module can provide 5V / 1A DC power supply for ATOM. In order to ensure safe use, its DC circuit has overheating and short circuit protection functions. In order to facilitate the use of users in industrial scenarios, an SP485EE level-conversion IC is built in. There are also a set of RS485 interfaces provided for the user to connect RS485 equipment.RS485 has the ability to supply power to ATOM, the support voltage is 9-24V. In addition, a set of HY2.0 interfaces is also provided for connecting I2C peripheral equipment or general I/O equipment. With the Bluetooth and WiFi functions of M5ATOM, you can easily setup a remote control switch. If you have multiple M5ATOM HUB SWITCH modules, you can set them up in parallel through the RS485 interface.
+**ATOM STEPMOTOR** is a stepper motor driver module suitable for Atom Lite only, with built-in DRV8825 driver chip, which can be used to drive a stepper motor. By adjusting the variable resistance, it can provide a maximum driving current of 1.2A. The chip has its own over-current protection function. A DIP switch on board can adjust the step number flexibly. Built in DC-DC,the external power supply can supply power to ATOM,drive motor needs an external power supply(9-18V).
## Product Features
-- Compatible ATOM Matrix/ATOM Lite
-- Built-in AC-DC circuit
-- 2-way relay
-- Built-in RS485 level-conversion, supporting Modbus
-- HY2.0 port extend
-- Short circuit protection
-- Remote control via Bluetooth, WiFi and RS485
+- Adapt to Atom Lite only
+- Built in DC-DC
+- Up to 1/32 micro-stepper
+- Maximum 1.2A drive current
+- Working status indicator
## Include
-- 1x ATOM SWITCH
- 1x ATOM Lite
-- 4x Magnet
-- 1x Magnet double-side tape
-- 1x DIN Rail
-- 1x 3.96*4P plug
-- 3x 3.96*3P plug
-- 1x M4 Hex Key
-- 2x M4*10mm Hexagon countersunk screw
-- 1x M2*20mm Hexagon socket cup head machine screw
+- 1x Atom Step Motor
+- 1x Type-C Cable(20cm)
+- 1x M2*8 Screw
+- 1x Hex key
## Applications
-- Intelligent switch
+- Stepper motor controller
## Specification
@@ -43,36 +36,36 @@
Press the key to control the switch. The status of breathing light indicates the relay serial number and switch status. When the red light or green light is on, press the key to switch the status
+
@@ -108,30 +101,50 @@
## Related Link
- **Datasheet**
- - [SP485EE](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/hat/SP485EEN_en.pdf)
+ - [DRV8825](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/module/DRV8825_en.pdf)
### Pin Map
-
ATOM
22
19
33
23
25
21
-
ATOM HUB SWITCH
Relay1
Relay2
RX
TX
SDA
SCL
+
ATOM Pin
G25
G21
G22
G19
G23
+
ATOMIC StepMotor
FLT
RST
EN
STP
DIR
+
+
+### Micro-stepping Setting
+
+
+
DIP Switch
1
2
3
+
Full-step
Low
Low
Low
+
Half-step
High
LoW
LoW
+
1/4 step
Low
High
Low
+
1/8 step
High
High
Low
+
1/16 step
Low
Low
High
+
1/32 step
Hight
Low
High
+
1/32 step
Low
High
High
+
1/32 step
High
High
High
+
+
+### Decay mode
+
+
+
DIP Switch
4
+
Slow Decay
Low
+
Fast Decay
High
## Schematic
-
+
## Example
-- Arduino Example [Click Here](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/AtomBase/AtomHubSwitch/AtomHubSwitch)
+- [Click here to get Arduino example](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/AtomBase/Atomic_StepMotor/Atomic_StepMotor)
-- UIFlow Example [Click Here](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/AtomBase/AtomHubSwitch/UIFlow)
-
-
+- [Clicke here to get UIFlow example](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/AtomBase/Atomic_StepMotor/UIFlow)
\ No newline at end of file
diff --git a/docs/en/module/faces_calculator.md b/docs/en/module/faces_calculator.md
new file mode 100644
index 00000000..33906b78
--- /dev/null
+++ b/docs/en/module/faces_calculator.md
@@ -0,0 +1,123 @@
+# Calculator {docsify-ignore-all}
+
+SKU:A003
+
+
+
+## Description
+
+**Calculator** is a full-featured calculator panel adapted to FACE_BOTTOM, which can be used for mathematical calculations or custom key functions. The panel adopts a 4*5 button layout design, which covers the basic function buttons required for mathematical calculations. You can also remap them to custom function buttons by modifying the firmware. The panel integrates **MEGA328** processor and communicates via I2C The protocol (0x08) works in slave mode.
+
+## Product Features
+
+- I2C communication(0X08)
+- Numeric keyboard input
+- Development Platform [UIFlow](http://flow.m5stack.com), [MicroPython](http://micropython.org/), [Arduino](http://www.arduino.cc)
+
+## Include
+
+- 1x Calculator panel
+
+## Applications
+
+- Data Entry
+- Calculator
+- Human-computer interaction
+
+## Specification
+
+
+
+
Resources
+
Parameter
+
+
+
Communication
+
I2C(0X08)
+
+
+
Button
+
20 button
+
+
+
Net weight
+
20g
+
+
+
Gross weight
+
40g
+
+
+
Product Size
+
58.2mm x 54.2mm x 10.4mm
+
+
+
Package Size
+
95mm x 65mm x 25mm
+
+
+
Case Material
+
Plastic ( PC )
+
+
+
+
+## EasyLoader
+
+>EasyLoader is a concise and fast program writer, which has a built-in case program related to the product. It can be burned to the main control by simple steps to perform a series of function verification. Please install the corresponding driver according to the device type. M5Core host [Please click here to view the CP210X driver installation tutorial](en/arduino/arduino_development), M5StickC/V/T/ATOM series can be used without driver)
+
+
This case will run the FACES keyboard input test program by default. Restart the selected program list to switch between different panel test items.
+
+
+
+
+## PinMap
+
+**Mega328 ISP** Download interface pin definition
+
+
+
+## Related Link
+
+- [Ateml328P firmware](https://github.com/m5stack/FACES-Firmware/blob/master/Calculator.ino)
+
+## Schematic
+
+### Calculator
+
+
+
+## Example
+
+### ArduinoIDE
+
+- Click [Here](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Module/CALCULATOR)to get Arduino example
+
+
\ No newline at end of file
diff --git a/docs/en/module/faces_gameboy.md b/docs/en/module/faces_gameboy.md
new file mode 100644
index 00000000..1e993da9
--- /dev/null
+++ b/docs/en/module/faces_gameboy.md
@@ -0,0 +1,132 @@
+# GAMEPAD {docsify-ignore-all}
+
+SKU:A004
+
+
+
+## Description
+
+**GAMEPAD** is a gamepad panel adapted to FACE_BOTTOM. It contains commonly used up/down/left/right, A/B buttons and start/pause, 8 buttons, adapted to the controller layout of classic game consoles such as FC and GAMEBOY. You can burn the game simulator firmware to load the game freely, or write the game by yourself. The panel integrates **MEGA328** processor, working in slave mode through I2C communication protocol (0x08).
+
+## Product Features
+
+- I2C communication(0X08)
+- Adapt to FACE_Bottom
+- Development Platform [UIFlow](http://flow.m5stack.com), [MicroPython](http://micropython.org/), [Arduino](http://www.arduino.cc)
+
+## Include
+
+- 1x GAMEPAD panel
+
+## Applications
+
+- Gamepad
+- Human-computer interaction
+
+## Specification
+
+
+
+
Resources
+
Parameter
+
+
+
Communication
+
I2C(0X08)
+
+
+
Button
+
Up/Down/Left/Right/A/B/Start/Pause
+
+
+
Net weight
+
18g
+
+
+
Gross weight
+
38g
+
+
+
Product Size
+
58.2mm x 54.2mm x 10.4mm
+
+
+
Package Size
+
95mm x 65mm x 25mm
+
+
+
Case Material
+
Plastic ( PC )
+
+
+
+
+## EasyLoader
+
+>EasyLoader is a concise and fast program writer, which has a built-in case program related to the product. It can be burned to the main control by simple steps to perform a series of function verification. Please install the corresponding driver according to the device type. M5Core host [Please click here to view the CP210X driver installation tutorial](en/arduino/arduino_development), M5StickC/V/T/ATOM series can be used without driver)
+
+
This case will run the FACES keyboard input test program by default. Restart the selected program list to switch between different panel test items.
+
+
+
+
+## PinMap
+
+**Mega328 ISP** Download interface pin definition
+
+
+
+
+## Related Link
+
+- [Ateml328P firmware](https://github.com/m5stack/FACES-Firmware/blob/master/GameBoy.ino)
+
+## Schematic
+
+### GAMEBOY
+
+
+
+## Example
+
+### ArduinoIDE
+
+- Click [here to download](https://github.com/m5stack/M5Stack/tree/master/examples/Face/Snake_Gameboy) Arduino example.
+
+### GamePad
+
+If you want to use M5Core to play some classic games, then using GameBoy panel and M5Core will be the perfect solution. All you need to do is upload the game simulator program to M5Core and connect to the GameBoy panel. The connection diagram is as follows:
+
+ESPTool burning game tutorial:https://docs.m5stack.com/#/zh_CN/quick_start/faces/gameboy_burn_a_nes_game
+
+Click here to burn the sample game with one click
+
+
+
\ No newline at end of file
diff --git a/docs/en/module/faces_keyboard.md b/docs/en/module/faces_keyboard.md
new file mode 100644
index 00000000..f8a84d4d
--- /dev/null
+++ b/docs/en/module/faces_keyboard.md
@@ -0,0 +1,128 @@
+# QWERTY {docsify-ignore-all}
+
+SKU:A005
+
+
+
+## Description
+
+**QWERTY** is a full-featured keyboard panel adapted to FACE_BOTTOM. There are 35 keys in total, and each key can be multiplexed by combination keys to output different characters. The internal integration **MEGA328** processor, works in slave through I2C communication protocol (0x08) In computer mode, the "sym" and "Fn" function keys are used to switch between upper and lower gears, and the "aA" function key is used to switch between upper and lower case. Click the corresponding function key and the indicator light is always on to activate single-character input. Double-click the indicator light to flash. Activate continuous input and click Resume again.
+
+## Product Features
+
+- I2C communication(0X08)
+- Multi-function button multiplexing
+- Input status indicator
+- Development Platform [UIFlow](http://flow.m5stack.com), [MicroPython](http://micropython.org/), [Arduino](http://www.arduino.cc)
+
+## Include
+
+- 1x QWERTY panel
+
+## Applications
+
+- Data Entry
+- Human-computer interaction
+
+## Specification
+
+
+
+
Resources
+
Parameter
+
+
+
Communication
+
I2C(0X08)
+
+
+
Button
+
QWERTY full-featured keyboard
+
+
+
Input status indicator
+
Blue LED *2
+
+
+
Net weight
+
21g
+
+
+
Gross weight
+
41g
+
+
+
Product Size
+
58.2mm x 54.2mm x 10.4mm
+
+
+
Package Size
+
95mm x 65mm x 25mm
+
+
+
Case Material
+
Plastic ( PC )
+
+
+
+
+## EasyLoader
+
+>EasyLoader is a concise and fast program writer, which has a built-in case program related to the product. It can be burned to the main control by simple steps to perform a series of function verification. Please install the corresponding driver according to the device type. M5Core host [Please click here to view the CP210X driver installation tutorial](en/arduino/arduino_development), M5StickC/V/T/ATOM series can be used without driver)
+
+
+
+
+
+?> Note: After the installation of MacOS users, please put the application in the Application folder, as shown in the figure below.
+
+>
+
+
+## Firmware burning
+
+>1.Double-click to open the Burner burning tool, select the corresponding device type in the left menu, select the firmware version you need, and click the download button to download.
+
+
+
+>2.Then connect the M5 device to the computer through the Type-C cable, select the corresponding COM port, the baud rate can use the default configuration in M5Burner, in addition, you can also fill in the WIFI that the device will be connected to during the firmware burning stage information. After configuration, click "Burn" to start burning.
+
+
+
+>3.When the burning log prompts `Burn Successfully`, it means that the firmware has been burned.
+
+
+
+?> When first burning or the firmware program runs abnormally, you can click "Erase" to erase the flash memory. In the subsequent firmware update, there is no need to erase again, otherwise the saved Wi-Fi information will be deleted and the API Key will be refreshed.
+
+
+## Configure WIFI
+
+> UIFlow provides both offline and web version of the programmer. When using the web version, we need to configure a WiFi connection for the device. The following describes two ways to configure WiFi connection for the device (Burn configuration and AP hotspot configuration).
+
+### Burn configuration WiFi(recommend)
+
+?> UIFlow-1.5.4 and versions above can write WiFi information directly through M5Burner.
+
+
+
+### AP hotspot configuration WiFi
+
+> 1. Press and hold the power button on the left to turn on the machine. If WiFi is not configured, the system will automatically enter the network configuration mode when it is turned on for the first time. Suppose you want to re-enter the network configuration mode after running other programs, you can refer to the operation below. After the UIFlow Logo appears at startup, quickly click the Home button (center M5 button) to enter the configuration page. Press the button on the right side of the fuselage to switch the option to Setting, and press the Home button to confirm. Press the right button to switch the option to WiFi Setting, press the Home button to confirm, and start the configuration.
+
+
+
+> 2. After successfully connecting to the hotspot with your mobile phone, open the mobile phone browser to scan the QR code on the screen or directly access __192.168.4.1__, enter the page to fill in your personal WIFI information, and click Configure to record your WiFi information. The device will restart automatically after successfully configuring and enter programming mode.
+
+?> Note: Special characters such as "space" are not allowed in the configured WiFi information.
+
+
+
+
+## Network Programming Mode and API KEY
+
+#### Enter network programming mode
+
+?> Network programming mode is a docking mode between M5 device and UIFlow web programming platform. The screen will show the current network connection status of the device. When the indicator is green, it means that you can receive program push at any time. Under default situation, after the first successful WiFi network configuration, the device will automatically restart and enter the network programming mode. If you do not know how to re-enter the programming mode after running other applications, you can refer to the following operations.
+
+> restarting, press button A in the main menu interface to select the programming mode and wait till the right indicator of the network indicator to turn green in the programming mode page. Access UIFlow programming page by visiting [flow.m5stack.com](http://flow.m5stack.com/) on a computer browser.
+
+
+
+#### API KEY Pairing
+
+> API KEY is the communication credential for M5 devices when using UIFlow web programming. By configuring the corresponding API KEY on the UIFlow side, the program can be pushed for the specific device. The user needs to visit [flow.m5stack.com](http://flow.m5stack.com/) in the computer web browser to enter the UIFlow programming page. Click the setting button in the menu bar at the upper right corner of the page, enter the API Key on the corresponding device, select the hardware used, click OK to save and wait till it prompts successfully connecting.
+
+
+
+## HTTP
+
+> Complete the above steps, then you can start programming with UIFlow. For example:Access Baidu via HTTP
+
+
+
+## BLE UART
+
+#### Function Description
+
+>Establish Bluetooth connection and enable Bluetooth passthrough service.
+
+>
+
+* __Init ble uart name__
+Initialize settings, configure Bluetooth device name.
+
+* __BLE UART Writre__
+Send data using BLE UART.
+
+* __BLE UART remain cache__
+Check the number of bytes of BLE UART data.
+
+* __BLE UART read all__
+Read all data in BLE UART cache.
+
+* __BLE UART read characters__
+Read n data in BLE UART cache.
+
+#### Instructions
+
+>Establish Bluetooth passthrough connection and send on / off control LED.
+
+>
+
+
+## UIFlow Desktop IDE
+
+> UIFlow Desktop IDE is an offline version of UIFlow programmer which does not require network connection, and can provide you with responsive program push experience. Please click the corresponding version of **UIFlow-Desktop-IDE** to download according to your operating system .
+
+
+
+
+#### USB programming mode
+
+> Unzip the downloaded UIFlow Desktop IDE archive and double-click to run the application.
+
+
+
+?> After the app starts, it will automatically detect whether your computer has a USB driver (CP210X), click Install, and follow the prompts to finish installation.
+
+
+
+> After the driver installation is complete, it will automatically enter the UIFlow Desktop IDE and automatically pop up the configuration box. At this time, connect the M5 device to the computer through the Tpye-C data cable.
+
+
+
+!> Using UIFlow Desktop IDE requires M5 device with UIFlow firmware and enter ** USB programming mode **.
+
+> Click the power button on the left side of the device to restart, after entering the menu, quickly click the right button to select **USB mode**.
+
+
+
+> Select the corresponding port, and the programming device, click OK to connect.
+
+
+
+
+## Related Links
+
+* [UIFlow Block introduction](zh_CN/uiflow/uiflow_home_page)
+
+
+
diff --git a/docs/en/uiflow/FACES.md b/docs/en/uiflow/FACES.md
index ad30b9d8..65d90464 100644
--- a/docs/en/uiflow/FACES.md
+++ b/docs/en/uiflow/FACES.md
@@ -41,7 +41,7 @@ Press the button to return true
> The screen displays the entered number
->
+>
## Encoder
@@ -71,7 +71,7 @@ Return True when the encoder knob is pressed
> The screen displays the encoder value and press the knob to return to zero.
->
+>
## FINGER
@@ -110,7 +110,7 @@ Read unknown fingerprint information execution program
>Read the fingerprint information, the light turns green if it matches. Otherwise the light turns red.
->
+>
## GameBoy
@@ -131,7 +131,7 @@ Return button status, check once
>If the up button is pressed, light turns green. If the down button is pressed, light turns red.
->
+>
@@ -165,7 +165,7 @@ Set the color of the LED in specified place
> The screen displays the joystick data
->
+>
## KeyBoard
@@ -195,7 +195,7 @@ Return true if the button is pressed
> The screen displays the input number
->
+>
## RFID
@@ -222,4 +222,4 @@ Return RFID card UID
> Screen displays RFID card data
->
\ No newline at end of file
+>
\ No newline at end of file
diff --git a/docs/en/uiflow/Modules.md b/docs/en/uiflow/Modules.md
index 99eec869..b7a3b2c3 100644
--- a/docs/en/uiflow/Modules.md
+++ b/docs/en/uiflow/Modules.md
@@ -55,7 +55,7 @@ Read the specified angle obstacle distance
> The car goes forward at 3 speeds for 5 seconds.
->
+>
## STEPMOTOR
@@ -89,7 +89,7 @@ Unlock motor
> Motor is running alternately in reverse
->
+>
## SERVO
@@ -110,7 +110,7 @@ Set the servo pulse time
> Control the 0-5 steering gear to rotate 90 degrees
->
+>
## Bala Motor
@@ -141,7 +141,7 @@ Read encoder value
> Press button A and it will move forward 500 pulses at a speed of 255
->
+>
## Bala
@@ -174,7 +174,7 @@ Auto balance
>Bala will turn 45 degree in advancing every 500 pulses
->
+>
## LEGO+
@@ -201,7 +201,7 @@ Read encoder data
>Set the motor to stop after running for 5 seconds
->
+>
## PM2.5
@@ -224,7 +224,7 @@ Return the amount of particulate matter in the specified diameter
> The screen shows the amount of PM2.5 particles
->
+>
# BaseX
@@ -271,7 +271,7 @@ Set the number of servo pulses
> Set the motor to 1000 at a speed of 50
->
+>
## PLUS
@@ -294,7 +294,7 @@ Clear encoder
> Show encoder status
->
+>
## GoPlus
@@ -317,7 +317,7 @@ read encoder button
> display encoder status
->
+>
## GPS
diff --git a/docs/en/uiflow/Units.md b/docs/en/uiflow/Units.md
index 9f64f31d..454e9ad5 100644
--- a/docs/en/uiflow/Units.md
+++ b/docs/en/uiflow/Units.md
@@ -58,7 +58,7 @@ Get humidity
>Display air pressure, temperature, humidity on the screen
->
+>
## PIR
@@ -73,7 +73,7 @@ Get humidity
>Check if someone is close, someone is near the red light
->
+>
## RGB LED
@@ -109,7 +109,7 @@ Set the pattern on HEX and customize the color
> Draw a pattern use LED
->
+>
## Joystick
@@ -139,7 +139,7 @@ Return Y-axis reverse data
> Control the color of the RGB LEDs by the joystick direction
->
+>
## MAKEY
@@ -159,7 +159,7 @@ Return all value
> Touch different pins to get different values to display different colors
->
+>
## SERVO
@@ -179,7 +179,7 @@ Set pulse time
>Control the steering gear to rotate 90 degrees
->
+>
## WEIGHT
@@ -202,7 +202,7 @@ Show rawdata
>Read the weight display to the screen, press the A key to return to zero
->
+>
## TRACE
@@ -225,7 +225,7 @@ Set limit value
> The sensor receives white light from the reflected light and does not receive no light.
->
+>
## BUTTON
@@ -246,7 +246,7 @@ Check if the button is pressed, only once during execution
> Press the button to flash the light once
->
+>
## Dual-BUTTON
@@ -267,7 +267,7 @@ Check if the red button is pressed, only one time during execution
> Red button presses red light, blue button presses light
->
+>
## RGB
@@ -294,7 +294,7 @@ Set brightness of LED
> Set the color of the light
->
+>
## RELAY
@@ -315,7 +315,7 @@ Control relay disconnect
> Press the A button to close the relay and press the B button to turn the relay off.
->
+>
## ADC
@@ -333,7 +333,7 @@ Read voltage
> Display AD value
->
+>
## DAC
@@ -354,7 +354,7 @@ Output voltage 0-4096, and confirm whether to save to EEPROM
> The output voltage
->
+>
## NCIR
@@ -372,7 +372,7 @@ Reading temperature
> Screen display temperature
->
+>
## IR
@@ -396,7 +396,7 @@ Stop sending
> Receive infrared signal to light red light
->
+>
## EXT.IO
@@ -429,7 +429,7 @@ Read all pin states
> Clear all pin states, set 2 pin high
->
+>
## ANGLE
@@ -447,7 +447,7 @@ Return potentiometer value
> Control the brightness of RGB LEDs
->
+>
## LIGHT
@@ -467,7 +467,7 @@ Return numeric value
> As the switch control LED lights up
->
+>
## EARTH
@@ -488,7 +488,7 @@ Return numeric value
> LED alarm when the soil is dry
->
+>
## ToF
@@ -506,7 +506,7 @@ Return distance mm
> Display distance
->
+>
## COLOR
@@ -533,7 +533,7 @@ Return blue value
> Detecting color display RGB lights of corresponding colors
->
+>
## RFID
@@ -560,7 +560,7 @@ Returns the UID of the RFID card
> Identify RFID card information
->
+>
## FINGER
@@ -599,7 +599,7 @@ Unknown id and permission to perform the following operations
> Record fingerprint and identify it, recognize successful green light
->
+>
## CardKB
@@ -623,7 +623,7 @@ Detect button, press to return true
> Screen displays input characters
->
+>
## Pb.HUB
@@ -659,7 +659,7 @@ Set the specified pin RGB brightness
> Control 10 RGB lights via Pb.HUB
->
+>
## Pa.HUB
@@ -683,7 +683,7 @@ Set port I2C
> Scan the I2C device through Pa.HUB control, A key to open the expansion, B key to close the expansion
->
+>
## THERMAL
@@ -719,7 +719,7 @@ Update the temperature inside the XY matrix and display the center temperature
> The screen displays the highest temperature minimum temperature and image center temperature
->
+>
## GPS
diff --git a/docs/en/uiflow/advanced.md b/docs/en/uiflow/advanced.md
index eddaea03..c56b4128 100644
--- a/docs/en/uiflow/advanced.md
+++ b/docs/en/uiflow/advanced.md
@@ -274,7 +274,7 @@ Connect with ssid and password.
>Establish a wifi connection with ssid and password.
->
+>
## P2P
@@ -289,7 +289,7 @@ Establish a point-to-point connection,Read the Message from other M5Stacks
>Establish a point-to-point connection to the remote host and send a message from other M5Stacks.
->
+>
## Easy IO
@@ -320,7 +320,7 @@ Map values to a range proportionally
>Get the temperature value of the sensor to map the temperature to 0-100.
->
+>
## PIN
@@ -352,7 +352,7 @@ Set the value of pin
>Set pin 5 pull-up output high level
->
+>
@@ -385,7 +385,7 @@ Re-enable PWM function
>Use the zero timer to set the PWM0 pin 25 frequency 500 duty cycle 50
->
+>
@@ -414,7 +414,7 @@ read ADC
>Sampling at 36 pins using the adc0 channel, reading the value
->
+>
## DAC
@@ -447,7 +447,7 @@ set frequency
>Output waveform on 25-pin using dac0 channel
->
+>
@@ -490,7 +490,7 @@ Write raw string data(E.g **b"\xff\xab"**) to the serial port
>Read serial data and send data to serial port
->
+>
@@ -537,7 +537,7 @@ Scanning I2C devices
>Read data from I2C
->
+>
>
@@ -558,7 +558,7 @@ Extract a data from a list
>Write data to I2C
->
+>
>Read date from I2C
@@ -577,7 +577,7 @@ Extract a data from a list
>import Library
->
+>
## SDCard
@@ -628,7 +628,7 @@ File rename
>Create a test folder, create a file named TEST.text, write helloM5Stack, and read M5Stack
->
+>
## Http
@@ -652,7 +652,7 @@ Return request data
>Send a GET request to Baidu, return data and print
->
+>
## EEPROM
diff --git a/docs/en/uiflow/hardware.md b/docs/en/uiflow/hardware.md
index d3a1e011..6fe6bf4f 100644
--- a/docs/en/uiflow/hardware.md
+++ b/docs/en/uiflow/hardware.md
@@ -35,7 +35,7 @@ Set the brightness of the LED bar
>The LED bar could be used as a meter for the input level of the microphone or to visualise the intensity of a sensor
->
+>
## Speaker
@@ -105,7 +105,7 @@ Get the Angular velocity from z axis
>Use labels to show IMU data or data can also be used to do computing or logic judging.
->
+>
## POWER (M5Stack)
@@ -134,7 +134,7 @@ Return battery level
>If it’s charging,RGB turns RED. Otherwise it will be BLACK
->
+>
## POWER (M5StickC)
@@ -183,4 +183,4 @@ Set screen voltage
>Display the battery voltage and charging current, and shut down after full charge
->
\ No newline at end of file
+>
\ No newline at end of file
diff --git a/docs/en/uiflow/logic.md b/docs/en/uiflow/logic.md
index c59b9546..1687689d 100644
--- a/docs/en/uiflow/logic.md
+++ b/docs/en/uiflow/logic.md
@@ -36,7 +36,7 @@ Values of true or false (A.K.A "Boolean") can be used in the if condition to det
>The if condition is highly necessary for any program of reasonable complexity, it allows the program to go in multiple directions based on events input by the user or some other predefined variable
->
+>
## Logic
@@ -51,7 +51,7 @@ Values of true or false (A.K.A "Boolean") can be used in the if condition to det
>Use the data to establish a relationship and connect to the if block as a judgment condition. For example, when the gyroscope X coordinate is greater than 90, the RGB bar is lit.
->
+>
## logic operation
@@ -74,7 +74,7 @@ Invert the logical result of an expression, that is, notTrue=False, notFalse=Tru
>Add the relationship that needs to be logically added to both sides, modify the operation type
->
+>
## Repeat
@@ -96,7 +96,7 @@ Determine whether the condition is true or not, and when inception, infinite loo
>Add repaet to the program, set the number of loops (loop conditions), add the program that needs to loop
->
+>
## iteration
@@ -119,7 +119,7 @@ You can choose to jump out of the entire loop, or jump out of this loop, and exe
>Add an iterative block to the program, set the iteration parameters, and the do program that runs after each iteration. Example: Iterate the brightness of the RGB bar from 0 to 100.
->
+>
## Functions
@@ -133,10 +133,10 @@ You can choose to jump out of the entire loop, or jump out of this loop, and exe
>Select functions from the blocks menu and drag it to the coding area. Enter a new name for your function in the text box provided on the block.
->
+>
#### Using a function
>When we add a function to the coding area a new block will appear in the function blocks menu. We can add this block to other parts of our code and it will represent whatever code is put inside the main function block.
->
+>
diff --git a/docs/en/unit/hub.md b/docs/en/unit/hub.md
index e0c212fb..3fdd84a4 100644
--- a/docs/en/unit/hub.md
+++ b/docs/en/unit/hub.md
@@ -6,7 +6,7 @@
## Description
-**HUB** is one of the six Units in M5GO, allowed buy separately. This Units is used for GROVE port expanding.
+**HUB** is one of the six Units in M5GO, allowed buy separately. This Units is used for GROVE port expanding.For example, sensors with different IIC addresses or output levels to 3 devices at the same time.
Notice: **HUB** is just a hardware expander, if you are looking for hardware and software(standard protocol) expander like I2C, Single-bus, please check **PaHUB** or **PbHUB**. If you connectted two I2C slave devices onto **HUB** that share the same adress, you will have problem getting I2C data from both.
## Product Features
diff --git a/docs/image/Advanced module/ADC_user.gif b/docs/image/Advanced module/ADC_user.gif
deleted file mode 100644
index 47ffee57..00000000
Binary files a/docs/image/Advanced module/ADC_user.gif and /dev/null differ
diff --git a/docs/image/Advanced module/ADC_user.webp b/docs/image/Advanced module/ADC_user.webp
new file mode 100644
index 00000000..2601f299
Binary files /dev/null and b/docs/image/Advanced module/ADC_user.webp differ
diff --git a/docs/image/Advanced module/DAC_user.gif b/docs/image/Advanced module/DAC_user.gif
deleted file mode 100644
index 71312e5e..00000000
Binary files a/docs/image/Advanced module/DAC_user.gif and /dev/null differ
diff --git a/docs/image/Advanced module/DAC_user.webp b/docs/image/Advanced module/DAC_user.webp
new file mode 100644
index 00000000..311edf2c
Binary files /dev/null and b/docs/image/Advanced module/DAC_user.webp differ
diff --git a/docs/image/Advanced module/EasyIO_user.gif b/docs/image/Advanced module/EasyIO_user.gif
deleted file mode 100644
index b66ff9e5..00000000
Binary files a/docs/image/Advanced module/EasyIO_user.gif and /dev/null differ
diff --git a/docs/image/Advanced module/EasyIO_user.webp b/docs/image/Advanced module/EasyIO_user.webp
new file mode 100644
index 00000000..6d732396
Binary files /dev/null and b/docs/image/Advanced module/EasyIO_user.webp differ
diff --git a/docs/image/Advanced module/Execute_user.gif b/docs/image/Advanced module/Execute_user.gif
deleted file mode 100644
index 717015f5..00000000
Binary files a/docs/image/Advanced module/Execute_user.gif and /dev/null differ
diff --git a/docs/image/Advanced module/Execute_user.webp b/docs/image/Advanced module/Execute_user.webp
new file mode 100644
index 00000000..17e6709e
Binary files /dev/null and b/docs/image/Advanced module/Execute_user.webp differ
diff --git a/docs/image/Advanced module/Http_user.gif b/docs/image/Advanced module/Http_user.gif
deleted file mode 100644
index dbc415fb..00000000
Binary files a/docs/image/Advanced module/Http_user.gif and /dev/null differ
diff --git a/docs/image/Advanced module/Http_user.webp b/docs/image/Advanced module/Http_user.webp
new file mode 100644
index 00000000..a1bc7ce3
Binary files /dev/null and b/docs/image/Advanced module/Http_user.webp differ
diff --git a/docs/image/Advanced module/I2C_Write.webp b/docs/image/Advanced module/I2C_Write.webp
new file mode 100644
index 00000000..f3425181
Binary files /dev/null and b/docs/image/Advanced module/I2C_Write.webp differ
diff --git a/docs/image/Advanced module/I2C_example.jpg b/docs/image/Advanced module/I2C_example.jpg
deleted file mode 100644
index d1392d53..00000000
Binary files a/docs/image/Advanced module/I2C_example.jpg and /dev/null differ
diff --git a/docs/image/Advanced module/I2C_example.webp b/docs/image/Advanced module/I2C_example.webp
new file mode 100644
index 00000000..272fcdf4
Binary files /dev/null and b/docs/image/Advanced module/I2C_example.webp differ
diff --git a/docs/image/Advanced module/I2C_user.gif b/docs/image/Advanced module/I2C_user.gif
deleted file mode 100644
index dd26f4c6..00000000
Binary files a/docs/image/Advanced module/I2C_user.gif and /dev/null differ
diff --git a/docs/image/Advanced module/I2C_user.webp b/docs/image/Advanced module/I2C_user.webp
new file mode 100644
index 00000000..239a09a1
Binary files /dev/null and b/docs/image/Advanced module/I2C_user.webp differ
diff --git a/docs/image/Advanced module/PIN_user.gif b/docs/image/Advanced module/PIN_user.gif
deleted file mode 100644
index e4788df5..00000000
Binary files a/docs/image/Advanced module/PIN_user.gif and /dev/null differ
diff --git a/docs/image/Advanced module/PIN_user.webp b/docs/image/Advanced module/PIN_user.webp
new file mode 100644
index 00000000..c541d44d
Binary files /dev/null and b/docs/image/Advanced module/PIN_user.webp differ
diff --git a/docs/image/Advanced module/PWM_user.gif b/docs/image/Advanced module/PWM_user.gif
deleted file mode 100644
index 02a00313..00000000
Binary files a/docs/image/Advanced module/PWM_user.gif and /dev/null differ
diff --git a/docs/image/Advanced module/PWM_user.webp b/docs/image/Advanced module/PWM_user.webp
new file mode 100644
index 00000000..e0e22742
Binary files /dev/null and b/docs/image/Advanced module/PWM_user.webp differ
diff --git a/docs/image/Advanced module/SDCard_user.gif b/docs/image/Advanced module/SDCard_user.gif
deleted file mode 100644
index c94537c7..00000000
Binary files a/docs/image/Advanced module/SDCard_user.gif and /dev/null differ
diff --git a/docs/image/Advanced module/SDCard_user.webp b/docs/image/Advanced module/SDCard_user.webp
new file mode 100644
index 00000000..66d20392
Binary files /dev/null and b/docs/image/Advanced module/SDCard_user.webp differ
diff --git a/docs/image/Advanced module/UART_user.gif b/docs/image/Advanced module/UART_user.gif
deleted file mode 100644
index 6a2c827b..00000000
Binary files a/docs/image/Advanced module/UART_user.gif and /dev/null differ
diff --git a/docs/image/Advanced module/UART_user.webp b/docs/image/Advanced module/UART_user.webp
new file mode 100644
index 00000000..980d2054
Binary files /dev/null and b/docs/image/Advanced module/UART_user.webp differ
diff --git a/docs/image/FACES/Calculator_user.gif b/docs/image/FACES/Calculator_user.gif
deleted file mode 100644
index e96fb93d..00000000
Binary files a/docs/image/FACES/Calculator_user.gif and /dev/null differ
diff --git a/docs/image/FACES/Calculator_user.webp b/docs/image/FACES/Calculator_user.webp
new file mode 100644
index 00000000..00b57861
Binary files /dev/null and b/docs/image/FACES/Calculator_user.webp differ
diff --git a/docs/image/FACES/Encoder_user.gif b/docs/image/FACES/Encoder_user.gif
deleted file mode 100644
index 161af352..00000000
Binary files a/docs/image/FACES/Encoder_user.gif and /dev/null differ
diff --git a/docs/image/FACES/Encoder_user.webp b/docs/image/FACES/Encoder_user.webp
new file mode 100644
index 00000000..4b8bc60d
Binary files /dev/null and b/docs/image/FACES/Encoder_user.webp differ
diff --git a/docs/image/FACES/FINGER_user.gif b/docs/image/FACES/FINGER_user.gif
deleted file mode 100644
index 19f97111..00000000
Binary files a/docs/image/FACES/FINGER_user.gif and /dev/null differ
diff --git a/docs/image/FACES/FINGER_user.webp b/docs/image/FACES/FINGER_user.webp
new file mode 100644
index 00000000..313d70c4
Binary files /dev/null and b/docs/image/FACES/FINGER_user.webp differ
diff --git a/docs/image/FACES/GameBoy_user.gif b/docs/image/FACES/GameBoy_user.gif
deleted file mode 100644
index f41bab13..00000000
Binary files a/docs/image/FACES/GameBoy_user.gif and /dev/null differ
diff --git a/docs/image/FACES/GameBoy_user.webp b/docs/image/FACES/GameBoy_user.webp
new file mode 100644
index 00000000..dc9d5baa
Binary files /dev/null and b/docs/image/FACES/GameBoy_user.webp differ
diff --git a/docs/image/FACES/Joystick_user.gif b/docs/image/FACES/Joystick_user.gif
deleted file mode 100644
index 3aa0f1d8..00000000
Binary files a/docs/image/FACES/Joystick_user.gif and /dev/null differ
diff --git a/docs/image/FACES/Joystick_user.webp b/docs/image/FACES/Joystick_user.webp
new file mode 100644
index 00000000..c64f47d8
Binary files /dev/null and b/docs/image/FACES/Joystick_user.webp differ
diff --git a/docs/image/FACES/KeyBoard_user.gif b/docs/image/FACES/KeyBoard_user.gif
deleted file mode 100644
index 9e4781fb..00000000
Binary files a/docs/image/FACES/KeyBoard_user.gif and /dev/null differ
diff --git a/docs/image/FACES/KeyBoard_user.webp b/docs/image/FACES/KeyBoard_user.webp
new file mode 100644
index 00000000..8cba7980
Binary files /dev/null and b/docs/image/FACES/KeyBoard_user.webp differ
diff --git a/docs/image/FACES/RFID_user.gif b/docs/image/FACES/RFID_user.gif
deleted file mode 100644
index f2120d05..00000000
Binary files a/docs/image/FACES/RFID_user.gif and /dev/null differ
diff --git a/docs/image/FACES/RFID_user.webp b/docs/image/FACES/RFID_user.webp
new file mode 100644
index 00000000..da2f1536
Binary files /dev/null and b/docs/image/FACES/RFID_user.webp differ
diff --git a/docs/image/Functions/Functions_user1.gif b/docs/image/Functions/Functions_user1.gif
deleted file mode 100644
index 529392f1..00000000
Binary files a/docs/image/Functions/Functions_user1.gif and /dev/null differ
diff --git a/docs/image/Functions/Functions_user1.webp b/docs/image/Functions/Functions_user1.webp
new file mode 100644
index 00000000..bc43bd79
Binary files /dev/null and b/docs/image/Functions/Functions_user1.webp differ
diff --git a/docs/image/Functions/Functions_user2.gif b/docs/image/Functions/Functions_user2.gif
deleted file mode 100644
index 78e80182..00000000
Binary files a/docs/image/Functions/Functions_user2.gif and /dev/null differ
diff --git a/docs/image/Functions/Functions_user2.webp b/docs/image/Functions/Functions_user2.webp
new file mode 100644
index 00000000..4417960a
Binary files /dev/null and b/docs/image/Functions/Functions_user2.webp differ
diff --git a/docs/image/Hardwares/IMU_user.gif b/docs/image/Hardwares/IMU_user.gif
deleted file mode 100644
index 104767c0..00000000
Binary files a/docs/image/Hardwares/IMU_user.gif and /dev/null differ
diff --git a/docs/image/Hardwares/IMU_user.webp b/docs/image/Hardwares/IMU_user.webp
new file mode 100644
index 00000000..86cb1254
Binary files /dev/null and b/docs/image/Hardwares/IMU_user.webp differ
diff --git a/docs/image/Hardwares/PowerAXP_user.gif b/docs/image/Hardwares/PowerAXP_user.gif
deleted file mode 100644
index c2d39867..00000000
Binary files a/docs/image/Hardwares/PowerAXP_user.gif and /dev/null differ
diff --git a/docs/image/Hardwares/PowerAXP_user.webp b/docs/image/Hardwares/PowerAXP_user.webp
new file mode 100644
index 00000000..007bb4c4
Binary files /dev/null and b/docs/image/Hardwares/PowerAXP_user.webp differ
diff --git a/docs/image/Hardwares/Power_user.gif b/docs/image/Hardwares/Power_user.gif
deleted file mode 100644
index f554976e..00000000
Binary files a/docs/image/Hardwares/Power_user.gif and /dev/null differ
diff --git a/docs/image/Hardwares/Power_user.webp b/docs/image/Hardwares/Power_user.webp
new file mode 100644
index 00000000..f30a3ca1
Binary files /dev/null and b/docs/image/Hardwares/Power_user.webp differ
diff --git a/docs/image/Hardwares/RGB_user.gif b/docs/image/Hardwares/RGB_user.gif
deleted file mode 100644
index a3d4909b..00000000
Binary files a/docs/image/Hardwares/RGB_user.gif and /dev/null differ
diff --git a/docs/image/Hardwares/RGB_user.webp b/docs/image/Hardwares/RGB_user.webp
new file mode 100644
index 00000000..7b2cdf6a
Binary files /dev/null and b/docs/image/Hardwares/RGB_user.webp differ
diff --git a/docs/image/Logic/IF_user.gif b/docs/image/Logic/IF_user.gif
deleted file mode 100644
index d41a5c33..00000000
Binary files a/docs/image/Logic/IF_user.gif and /dev/null differ
diff --git a/docs/image/Logic/IF_user.webp b/docs/image/Logic/IF_user.webp
new file mode 100644
index 00000000..47ff1455
Binary files /dev/null and b/docs/image/Logic/IF_user.webp differ
diff --git a/docs/image/Logic/LogicA_user.gif b/docs/image/Logic/LogicA_user.gif
deleted file mode 100644
index 037b48c4..00000000
Binary files a/docs/image/Logic/LogicA_user.gif and /dev/null differ
diff --git a/docs/image/Logic/LogicA_user.webp b/docs/image/Logic/LogicA_user.webp
new file mode 100644
index 00000000..9400d554
Binary files /dev/null and b/docs/image/Logic/LogicA_user.webp differ
diff --git a/docs/image/Logic/LogicB_user.gif b/docs/image/Logic/LogicB_user.gif
deleted file mode 100644
index 321f78f5..00000000
Binary files a/docs/image/Logic/LogicB_user.gif and /dev/null differ
diff --git a/docs/image/Logic/LogicB_user.webp b/docs/image/Logic/LogicB_user.webp
new file mode 100644
index 00000000..22bf7940
Binary files /dev/null and b/docs/image/Logic/LogicB_user.webp differ
diff --git a/docs/image/Loops/Range_user.gif b/docs/image/Loops/Range_user.gif
deleted file mode 100644
index 1e6622de..00000000
Binary files a/docs/image/Loops/Range_user.gif and /dev/null differ
diff --git a/docs/image/Loops/Range_user.webp b/docs/image/Loops/Range_user.webp
new file mode 100644
index 00000000..253deaf2
Binary files /dev/null and b/docs/image/Loops/Range_user.webp differ
diff --git a/docs/image/Loops/Repeat_user.gif b/docs/image/Loops/Repeat_user.gif
deleted file mode 100644
index bb326a4a..00000000
Binary files a/docs/image/Loops/Repeat_user.gif and /dev/null differ
diff --git a/docs/image/Loops/Repeat_user.webp b/docs/image/Loops/Repeat_user.webp
new file mode 100644
index 00000000..4c729016
Binary files /dev/null and b/docs/image/Loops/Repeat_user.webp differ
diff --git a/docs/image/Modules/BALA_user.gif b/docs/image/Modules/BALA_user.gif
deleted file mode 100644
index 746e791f..00000000
Binary files a/docs/image/Modules/BALA_user.gif and /dev/null differ
diff --git a/docs/image/Modules/BALA_user.webp b/docs/image/Modules/BALA_user.webp
new file mode 100644
index 00000000..f52abadb
Binary files /dev/null and b/docs/image/Modules/BALA_user.webp differ
diff --git a/docs/image/Modules/Bala Motor.webp b/docs/image/Modules/Bala Motor.webp
index df0e8794..e0098e7c 100644
Binary files a/docs/image/Modules/Bala Motor.webp and b/docs/image/Modules/Bala Motor.webp differ
diff --git a/docs/image/Modules/Bala Motor_user.gif b/docs/image/Modules/Bala Motor_user.gif
deleted file mode 100644
index af90a9e2..00000000
Binary files a/docs/image/Modules/Bala Motor_user.gif and /dev/null differ
diff --git a/docs/image/Modules/Bala Motor_user.webp b/docs/image/Modules/Bala Motor_user.webp
new file mode 100644
index 00000000..4856c42c
Binary files /dev/null and b/docs/image/Modules/Bala Motor_user.webp differ
diff --git a/docs/image/Modules/BaseX_user.gif b/docs/image/Modules/BaseX_user.gif
deleted file mode 100644
index 7b04c3c0..00000000
Binary files a/docs/image/Modules/BaseX_user.gif and /dev/null differ
diff --git a/docs/image/Modules/BaseX_user.webp b/docs/image/Modules/BaseX_user.webp
new file mode 100644
index 00000000..4d38fde1
Binary files /dev/null and b/docs/image/Modules/BaseX_user.webp differ
diff --git a/docs/image/Modules/GoPlus_user.gif b/docs/image/Modules/GoPlus_user.gif
deleted file mode 100644
index f9982e9a..00000000
Binary files a/docs/image/Modules/GoPlus_user.gif and /dev/null differ
diff --git a/docs/image/Modules/GoPlus_user.webp b/docs/image/Modules/GoPlus_user.webp
new file mode 100644
index 00000000..ca4039c3
Binary files /dev/null and b/docs/image/Modules/GoPlus_user.webp differ
diff --git a/docs/image/Modules/LEGO+_user.gif b/docs/image/Modules/LEGO+_user.gif
deleted file mode 100644
index 511c872b..00000000
Binary files a/docs/image/Modules/LEGO+_user.gif and /dev/null differ
diff --git a/docs/image/Modules/LEGO+_user.webp b/docs/image/Modules/LEGO+_user.webp
new file mode 100644
index 00000000..c911f6ea
Binary files /dev/null and b/docs/image/Modules/LEGO+_user.webp differ
diff --git a/docs/image/Modules/LidarBOT_user.gif b/docs/image/Modules/LidarBOT_user.gif
deleted file mode 100644
index caa8ebbb..00000000
Binary files a/docs/image/Modules/LidarBOT_user.gif and /dev/null differ
diff --git a/docs/image/Modules/LidarBOT_user.webp b/docs/image/Modules/LidarBOT_user.webp
new file mode 100644
index 00000000..bdf87013
Binary files /dev/null and b/docs/image/Modules/LidarBOT_user.webp differ
diff --git a/docs/image/Modules/PLUS_user.gif b/docs/image/Modules/PLUS_user.gif
deleted file mode 100644
index 5bb63727..00000000
Binary files a/docs/image/Modules/PLUS_user.gif and /dev/null differ
diff --git a/docs/image/Modules/PLUS_user.webp b/docs/image/Modules/PLUS_user.webp
new file mode 100644
index 00000000..4d26cb7d
Binary files /dev/null and b/docs/image/Modules/PLUS_user.webp differ
diff --git a/docs/image/Modules/PM2.5_user.gif b/docs/image/Modules/PM2.5_user.gif
deleted file mode 100644
index 8d52f4d4..00000000
Binary files a/docs/image/Modules/PM2.5_user.gif and /dev/null differ
diff --git a/docs/image/Modules/PM2.5_user.webp b/docs/image/Modules/PM2.5_user.webp
new file mode 100644
index 00000000..63eff42d
Binary files /dev/null and b/docs/image/Modules/PM2.5_user.webp differ
diff --git a/docs/image/Modules/SERVO_user.gif b/docs/image/Modules/SERVO_user.gif
deleted file mode 100644
index b5c4013e..00000000
Binary files a/docs/image/Modules/SERVO_user.gif and /dev/null differ
diff --git a/docs/image/Modules/SERVO_user.webp b/docs/image/Modules/SERVO_user.webp
new file mode 100644
index 00000000..ae0ebdc5
Binary files /dev/null and b/docs/image/Modules/SERVO_user.webp differ
diff --git a/docs/image/Modules/STEPMOTOR_user.gif b/docs/image/Modules/STEPMOTOR_user.gif
deleted file mode 100644
index c1a86649..00000000
Binary files a/docs/image/Modules/STEPMOTOR_user.gif and /dev/null differ
diff --git a/docs/image/Modules/STEPMOTOR_user.webp b/docs/image/Modules/STEPMOTOR_user.webp
new file mode 100644
index 00000000..eff47bb3
Binary files /dev/null and b/docs/image/Modules/STEPMOTOR_user.webp differ
diff --git a/docs/image/Network/P2PSend_user.gif b/docs/image/Network/P2PSend_user.gif
deleted file mode 100644
index 88d02add..00000000
Binary files a/docs/image/Network/P2PSend_user.gif and /dev/null differ
diff --git a/docs/image/Network/P2PSend_user.webp b/docs/image/Network/P2PSend_user.webp
new file mode 100644
index 00000000..5e0096cb
Binary files /dev/null and b/docs/image/Network/P2PSend_user.webp differ
diff --git a/docs/image/Network/wifi_user.gif b/docs/image/Network/wifi_user.gif
deleted file mode 100644
index 9f404933..00000000
Binary files a/docs/image/Network/wifi_user.gif and /dev/null differ
diff --git a/docs/image/Network/wifi_user.webp b/docs/image/Network/wifi_user.webp
new file mode 100644
index 00000000..51e5f80f
Binary files /dev/null and b/docs/image/Network/wifi_user.webp differ
diff --git a/docs/image/Operation/Block_connect.gif b/docs/image/Operation/Block_connect.gif
deleted file mode 100644
index 732846e4..00000000
Binary files a/docs/image/Operation/Block_connect.gif and /dev/null differ
diff --git a/docs/image/Operation/Block_connect.webp b/docs/image/Operation/Block_connect.webp
new file mode 100644
index 00000000..29fa5316
Binary files /dev/null and b/docs/image/Operation/Block_connect.webp differ
diff --git a/docs/image/Operation/JSON_dump_user.gif b/docs/image/Operation/JSON_dump_user.gif
deleted file mode 100644
index 22f66cef..00000000
Binary files a/docs/image/Operation/JSON_dump_user.gif and /dev/null differ
diff --git a/docs/image/Operation/JSON_dump_user.webp b/docs/image/Operation/JSON_dump_user.webp
new file mode 100644
index 00000000..b3f63d66
Binary files /dev/null and b/docs/image/Operation/JSON_dump_user.webp differ
diff --git a/docs/image/Operation/List_user.gif b/docs/image/Operation/List_user.gif
deleted file mode 100644
index 56bfba2f..00000000
Binary files a/docs/image/Operation/List_user.gif and /dev/null differ
diff --git a/docs/image/Operation/List_user.webp b/docs/image/Operation/List_user.webp
new file mode 100644
index 00000000..c9261e0c
Binary files /dev/null and b/docs/image/Operation/List_user.webp differ
diff --git a/docs/image/Operation/Math_user.gif b/docs/image/Operation/Math_user.gif
deleted file mode 100644
index 7e00c228..00000000
Binary files a/docs/image/Operation/Math_user.gif and /dev/null differ
diff --git a/docs/image/Operation/Math_user.webp b/docs/image/Operation/Math_user.webp
new file mode 100644
index 00000000..c6466f68
Binary files /dev/null and b/docs/image/Operation/Math_user.webp differ
diff --git a/docs/image/Operation/Random_user.gif b/docs/image/Operation/Random_user.gif
deleted file mode 100644
index ccb51030..00000000
Binary files a/docs/image/Operation/Random_user.gif and /dev/null differ
diff --git a/docs/image/Operation/Random_user.webp b/docs/image/Operation/Random_user.webp
new file mode 100644
index 00000000..c1899940
Binary files /dev/null and b/docs/image/Operation/Random_user.webp differ
diff --git a/docs/image/Operation/TEXT_lower_user.gif b/docs/image/Operation/TEXT_lower_user.gif
deleted file mode 100644
index ffc092a3..00000000
Binary files a/docs/image/Operation/TEXT_lower_user.gif and /dev/null differ
diff --git a/docs/image/Operation/TEXT_lower_user.webp b/docs/image/Operation/TEXT_lower_user.webp
new file mode 100644
index 00000000..8e060d94
Binary files /dev/null and b/docs/image/Operation/TEXT_lower_user.webp differ
diff --git a/docs/image/Operation/Text_user.gif b/docs/image/Operation/Text_user.gif
deleted file mode 100644
index db0f6292..00000000
Binary files a/docs/image/Operation/Text_user.gif and /dev/null differ
diff --git a/docs/image/Operation/Text_user.webp b/docs/image/Operation/Text_user.webp
new file mode 100644
index 00000000..a999ec36
Binary files /dev/null and b/docs/image/Operation/Text_user.webp differ
diff --git a/docs/image/Operation/Thumbs.db b/docs/image/Operation/Thumbs.db
new file mode 100644
index 00000000..6935c307
Binary files /dev/null and b/docs/image/Operation/Thumbs.db differ
diff --git a/docs/image/Operation/Variables_user1.gif b/docs/image/Operation/Variables_user1.gif
deleted file mode 100644
index 934aa89b..00000000
Binary files a/docs/image/Operation/Variables_user1.gif and /dev/null differ
diff --git a/docs/image/Operation/Variables_user1.webp b/docs/image/Operation/Variables_user1.webp
new file mode 100644
index 00000000..6b3e4845
Binary files /dev/null and b/docs/image/Operation/Variables_user1.webp differ
diff --git a/docs/image/Operation/Variables_user2.gif b/docs/image/Operation/Variables_user2.gif
deleted file mode 100644
index 3346d31f..00000000
Binary files a/docs/image/Operation/Variables_user2.gif and /dev/null differ
diff --git a/docs/image/Operation/Variables_user2.webp b/docs/image/Operation/Variables_user2.webp
new file mode 100644
index 00000000..f8c4b88c
Binary files /dev/null and b/docs/image/Operation/Variables_user2.webp differ
diff --git a/docs/image/Operation/map_creat_user.gif b/docs/image/Operation/map_creat_user.gif
deleted file mode 100644
index 22f66cef..00000000
Binary files a/docs/image/Operation/map_creat_user.gif and /dev/null differ
diff --git a/docs/image/Operation/map_creat_user.webp b/docs/image/Operation/map_creat_user.webp
new file mode 100644
index 00000000..b3f63d66
Binary files /dev/null and b/docs/image/Operation/map_creat_user.webp differ
diff --git a/docs/image/Program_structure/Block_connect.gif b/docs/image/Program_structure/Block_connect.gif
deleted file mode 100644
index 773f4524..00000000
Binary files a/docs/image/Program_structure/Block_connect.gif and /dev/null differ
diff --git a/docs/image/Program_structure/Block_connect.webp b/docs/image/Program_structure/Block_connect.webp
new file mode 100644
index 00000000..32855681
Binary files /dev/null and b/docs/image/Program_structure/Block_connect.webp differ
diff --git a/docs/image/Program_structure/Button_connect.gif b/docs/image/Program_structure/Button_connect.gif
deleted file mode 100644
index 28a09f40..00000000
Binary files a/docs/image/Program_structure/Button_connect.gif and /dev/null differ
diff --git a/docs/image/Program_structure/Button_connect.webp b/docs/image/Program_structure/Button_connect.webp
new file mode 100644
index 00000000..4a1e502f
Binary files /dev/null and b/docs/image/Program_structure/Button_connect.webp differ
diff --git a/docs/image/Program_structure/Timer_user.gif b/docs/image/Program_structure/Timer_user.gif
deleted file mode 100644
index 5f42a777..00000000
Binary files a/docs/image/Program_structure/Timer_user.gif and /dev/null differ
diff --git a/docs/image/Program_structure/Timer_user.webp b/docs/image/Program_structure/Timer_user.webp
new file mode 100644
index 00000000..58f7ccec
Binary files /dev/null and b/docs/image/Program_structure/Timer_user.webp differ
diff --git a/docs/image/Program_structure/Wait_user.gif b/docs/image/Program_structure/Wait_user.gif
deleted file mode 100644
index 1ca16c62..00000000
Binary files a/docs/image/Program_structure/Wait_user.gif and /dev/null differ
diff --git a/docs/image/Program_structure/Wait_user.webp b/docs/image/Program_structure/Wait_user.webp
new file mode 100644
index 00000000..0ba11931
Binary files /dev/null and b/docs/image/Program_structure/Wait_user.webp differ
diff --git a/docs/image/Units/ADC_user.gif b/docs/image/Units/ADC_user.gif
deleted file mode 100644
index 4fc62b35..00000000
Binary files a/docs/image/Units/ADC_user.gif and /dev/null differ
diff --git a/docs/image/Units/ADC_user.webp b/docs/image/Units/ADC_user.webp
new file mode 100644
index 00000000..429f2cf2
Binary files /dev/null and b/docs/image/Units/ADC_user.webp differ
diff --git a/docs/image/Units/ANGLE_user.gif b/docs/image/Units/ANGLE_user.gif
deleted file mode 100644
index 61be21fe..00000000
Binary files a/docs/image/Units/ANGLE_user.gif and /dev/null differ
diff --git a/docs/image/Units/ANGLE_user.webp b/docs/image/Units/ANGLE_user.webp
new file mode 100644
index 00000000..fca95f1b
Binary files /dev/null and b/docs/image/Units/ANGLE_user.webp differ
diff --git a/docs/image/Units/BUTTON_user.gif b/docs/image/Units/BUTTON_user.gif
deleted file mode 100644
index f359aec2..00000000
Binary files a/docs/image/Units/BUTTON_user.gif and /dev/null differ
diff --git a/docs/image/Units/BUTTON_user.webp b/docs/image/Units/BUTTON_user.webp
new file mode 100644
index 00000000..84d08790
Binary files /dev/null and b/docs/image/Units/BUTTON_user.webp differ
diff --git a/docs/image/Units/COLOR_user.gif b/docs/image/Units/COLOR_user.gif
deleted file mode 100644
index d7f92c1a..00000000
Binary files a/docs/image/Units/COLOR_user.gif and /dev/null differ
diff --git a/docs/image/Units/COLOR_user.webp b/docs/image/Units/COLOR_user.webp
new file mode 100644
index 00000000..461ec717
Binary files /dev/null and b/docs/image/Units/COLOR_user.webp differ
diff --git a/docs/image/Units/CardKB_user.gif b/docs/image/Units/CardKB_user.gif
deleted file mode 100644
index ee5f4534..00000000
Binary files a/docs/image/Units/CardKB_user.gif and /dev/null differ
diff --git a/docs/image/Units/CardKB_user.webp b/docs/image/Units/CardKB_user.webp
new file mode 100644
index 00000000..85050d48
Binary files /dev/null and b/docs/image/Units/CardKB_user.webp differ
diff --git a/docs/image/Units/DAC_user.gif b/docs/image/Units/DAC_user.gif
deleted file mode 100644
index c1f9aebe..00000000
Binary files a/docs/image/Units/DAC_user.gif and /dev/null differ
diff --git a/docs/image/Units/DAC_user.webp b/docs/image/Units/DAC_user.webp
new file mode 100644
index 00000000..3defc552
Binary files /dev/null and b/docs/image/Units/DAC_user.webp differ
diff --git a/docs/image/Units/Dual-BUTTON_user.gif b/docs/image/Units/Dual-BUTTON_user.gif
deleted file mode 100644
index ef964a24..00000000
Binary files a/docs/image/Units/Dual-BUTTON_user.gif and /dev/null differ
diff --git a/docs/image/Units/Dual-BUTTON_user.webp b/docs/image/Units/Dual-BUTTON_user.webp
new file mode 100644
index 00000000..631c9466
Binary files /dev/null and b/docs/image/Units/Dual-BUTTON_user.webp differ
diff --git a/docs/image/Units/EARTH_user.gif b/docs/image/Units/EARTH_user.gif
deleted file mode 100644
index 1db92021..00000000
Binary files a/docs/image/Units/EARTH_user.gif and /dev/null differ
diff --git a/docs/image/Units/EARTH_user.webp b/docs/image/Units/EARTH_user.webp
new file mode 100644
index 00000000..af432f19
Binary files /dev/null and b/docs/image/Units/EARTH_user.webp differ
diff --git a/docs/image/Units/ENV_user.gif b/docs/image/Units/ENV_user.gif
deleted file mode 100644
index e4473cf6..00000000
Binary files a/docs/image/Units/ENV_user.gif and /dev/null differ
diff --git a/docs/image/Units/ENV_user.webp b/docs/image/Units/ENV_user.webp
new file mode 100644
index 00000000..15f8762e
Binary files /dev/null and b/docs/image/Units/ENV_user.webp differ
diff --git a/docs/image/Units/EXT.IO_user.gif b/docs/image/Units/EXT.IO_user.gif
deleted file mode 100644
index a8f63758..00000000
Binary files a/docs/image/Units/EXT.IO_user.gif and /dev/null differ
diff --git a/docs/image/Units/EXT.IO_user.webp b/docs/image/Units/EXT.IO_user.webp
new file mode 100644
index 00000000..ea75ccfa
Binary files /dev/null and b/docs/image/Units/EXT.IO_user.webp differ
diff --git a/docs/image/Units/FINGER_user.gif b/docs/image/Units/FINGER_user.gif
deleted file mode 100644
index ec75711e..00000000
Binary files a/docs/image/Units/FINGER_user.gif and /dev/null differ
diff --git a/docs/image/Units/FINGER_user.webp b/docs/image/Units/FINGER_user.webp
new file mode 100644
index 00000000..a2215710
Binary files /dev/null and b/docs/image/Units/FINGER_user.webp differ
diff --git a/docs/image/Units/IR_user.gif b/docs/image/Units/IR_user.gif
deleted file mode 100644
index 773c435f..00000000
Binary files a/docs/image/Units/IR_user.gif and /dev/null differ
diff --git a/docs/image/Units/IR_user.webp b/docs/image/Units/IR_user.webp
new file mode 100644
index 00000000..10d61827
Binary files /dev/null and b/docs/image/Units/IR_user.webp differ
diff --git a/docs/image/Units/LIGHT_user.gif b/docs/image/Units/LIGHT_user.gif
deleted file mode 100644
index 36044141..00000000
Binary files a/docs/image/Units/LIGHT_user.gif and /dev/null differ
diff --git a/docs/image/Units/LIGHT_user.webp b/docs/image/Units/LIGHT_user.webp
new file mode 100644
index 00000000..96c9d432
Binary files /dev/null and b/docs/image/Units/LIGHT_user.webp differ
diff --git a/docs/image/Units/MAKEY_user.gif b/docs/image/Units/MAKEY_user.gif
deleted file mode 100644
index c0b4e190..00000000
Binary files a/docs/image/Units/MAKEY_user.gif and /dev/null differ
diff --git a/docs/image/Units/MAKEY_user.webp b/docs/image/Units/MAKEY_user.webp
new file mode 100644
index 00000000..ddff4c25
Binary files /dev/null and b/docs/image/Units/MAKEY_user.webp differ
diff --git a/docs/image/Units/NCIR_user.gif b/docs/image/Units/NCIR_user.gif
deleted file mode 100644
index 4149fb51..00000000
Binary files a/docs/image/Units/NCIR_user.gif and /dev/null differ
diff --git a/docs/image/Units/NCIR_user.webp b/docs/image/Units/NCIR_user.webp
new file mode 100644
index 00000000..d073610b
Binary files /dev/null and b/docs/image/Units/NCIR_user.webp differ
diff --git a/docs/image/Units/PIR_user.gif b/docs/image/Units/PIR_user.gif
deleted file mode 100644
index 2c633816..00000000
Binary files a/docs/image/Units/PIR_user.gif and /dev/null differ
diff --git a/docs/image/Units/PIR_user.webp b/docs/image/Units/PIR_user.webp
new file mode 100644
index 00000000..f7010d45
Binary files /dev/null and b/docs/image/Units/PIR_user.webp differ
diff --git a/docs/image/Units/Pa.HUB_user.gif b/docs/image/Units/Pa.HUB_user.gif
deleted file mode 100644
index a51c2184..00000000
Binary files a/docs/image/Units/Pa.HUB_user.gif and /dev/null differ
diff --git a/docs/image/Units/Pa.HUB_user.webp b/docs/image/Units/Pa.HUB_user.webp
new file mode 100644
index 00000000..7a43097d
Binary files /dev/null and b/docs/image/Units/Pa.HUB_user.webp differ
diff --git a/docs/image/Units/Pb.HUB_user.gif b/docs/image/Units/Pb.HUB_user.gif
deleted file mode 100644
index 8482b6a1..00000000
Binary files a/docs/image/Units/Pb.HUB_user.gif and /dev/null differ
diff --git a/docs/image/Units/Pb.HUB_user.webp b/docs/image/Units/Pb.HUB_user.webp
new file mode 100644
index 00000000..3671c1c7
Binary files /dev/null and b/docs/image/Units/Pb.HUB_user.webp differ
diff --git a/docs/image/Units/RELAY_user.gif b/docs/image/Units/RELAY_user.gif
deleted file mode 100644
index 122165ac..00000000
Binary files a/docs/image/Units/RELAY_user.gif and /dev/null differ
diff --git a/docs/image/Units/RELAY_user.webp b/docs/image/Units/RELAY_user.webp
new file mode 100644
index 00000000..bab4e619
Binary files /dev/null and b/docs/image/Units/RELAY_user.webp differ
diff --git a/docs/image/Units/RFID_user.gif b/docs/image/Units/RFID_user.gif
deleted file mode 100644
index c14b0fff..00000000
Binary files a/docs/image/Units/RFID_user.gif and /dev/null differ
diff --git a/docs/image/Units/RFID_user.jpg b/docs/image/Units/RFID_user.jpg
new file mode 100644
index 00000000..398cbed7
Binary files /dev/null and b/docs/image/Units/RFID_user.jpg differ
diff --git a/docs/image/Units/RGB LED_user.gif b/docs/image/Units/RGB LED_user.gif
deleted file mode 100644
index c9329460..00000000
Binary files a/docs/image/Units/RGB LED_user.gif and /dev/null differ
diff --git a/docs/image/Units/RGB LED_user.webp b/docs/image/Units/RGB LED_user.webp
new file mode 100644
index 00000000..194751c5
Binary files /dev/null and b/docs/image/Units/RGB LED_user.webp differ
diff --git a/docs/image/Units/RGB_user.gif b/docs/image/Units/RGB_user.gif
deleted file mode 100644
index 870c16b1..00000000
Binary files a/docs/image/Units/RGB_user.gif and /dev/null differ
diff --git a/docs/image/Units/RGB_user.webp b/docs/image/Units/RGB_user.webp
new file mode 100644
index 00000000..96b46bef
Binary files /dev/null and b/docs/image/Units/RGB_user.webp differ
diff --git a/docs/image/Units/SERVO_user.gif b/docs/image/Units/SERVO_user.gif
deleted file mode 100644
index 8b989763..00000000
Binary files a/docs/image/Units/SERVO_user.gif and /dev/null differ
diff --git a/docs/image/Units/SERVO_user.webp b/docs/image/Units/SERVO_user.webp
new file mode 100644
index 00000000..580cf855
Binary files /dev/null and b/docs/image/Units/SERVO_user.webp differ
diff --git a/docs/image/Units/THERMAL_user.gif b/docs/image/Units/THERMAL_user.gif
deleted file mode 100644
index 0fc3e907..00000000
Binary files a/docs/image/Units/THERMAL_user.gif and /dev/null differ
diff --git a/docs/image/Units/THERMAL_user.webp b/docs/image/Units/THERMAL_user.webp
new file mode 100644
index 00000000..cbf39ec9
Binary files /dev/null and b/docs/image/Units/THERMAL_user.webp differ
diff --git a/docs/image/Units/TRACE_user.gif b/docs/image/Units/TRACE_user.gif
deleted file mode 100644
index bd2cff35..00000000
Binary files a/docs/image/Units/TRACE_user.gif and /dev/null differ
diff --git a/docs/image/Units/TRACE_user.webp b/docs/image/Units/TRACE_user.webp
new file mode 100644
index 00000000..c4d67bb3
Binary files /dev/null and b/docs/image/Units/TRACE_user.webp differ
diff --git a/docs/image/Units/Thumbs.db b/docs/image/Units/Thumbs.db
new file mode 100644
index 00000000..479f6009
Binary files /dev/null and b/docs/image/Units/Thumbs.db differ
diff --git a/docs/image/Units/ToF_user.gif b/docs/image/Units/ToF_user.gif
deleted file mode 100644
index c2a9696e..00000000
Binary files a/docs/image/Units/ToF_user.gif and /dev/null differ
diff --git a/docs/image/Units/ToF_user.webp b/docs/image/Units/ToF_user.webp
new file mode 100644
index 00000000..9babf07f
Binary files /dev/null and b/docs/image/Units/ToF_user.webp differ
diff --git a/docs/image/Units/WEIGHT_user.gif b/docs/image/Units/WEIGHT_user.gif
deleted file mode 100644
index 2895eda5..00000000
Binary files a/docs/image/Units/WEIGHT_user.gif and /dev/null differ
diff --git a/docs/image/Units/WEIGHT_user.webp b/docs/image/Units/WEIGHT_user.webp
new file mode 100644
index 00000000..57f30af7
Binary files /dev/null and b/docs/image/Units/WEIGHT_user.webp differ
diff --git a/docs/image/Units/joystick_user.gif b/docs/image/Units/joystick_user.gif
deleted file mode 100644
index fa7830c0..00000000
Binary files a/docs/image/Units/joystick_user.gif and /dev/null differ
diff --git a/docs/image/Units/joystick_user.webp b/docs/image/Units/joystick_user.webp
new file mode 100644
index 00000000..7cf7e37b
Binary files /dev/null and b/docs/image/Units/joystick_user.webp differ
diff --git a/docs/image/base/Thumbs.db b/docs/image/base/Thumbs.db
new file mode 100644
index 00000000..ab6da66d
Binary files /dev/null and b/docs/image/base/Thumbs.db differ
diff --git a/docs/index.md b/docs/index.md
index a6b3b7a3..adef03e0 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -38,6 +38,7 @@
{a:"/#/en/atom/atomhub_switch", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/atom_base/atomswitch.webp", p:"ATOM SWITCH Kit", sku:"K042" ,kw:"ATOM SWITCH RS485"},
{a:"/#/en/atom/atomfly", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/atom_base/atomfly.webp", p:"ATOM FLY Kit", sku:"K040" ,kw:"ATOM FLY"},
{a:"/#/en/atom/atom_mate", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/atom_base/atom_mate.webp", p:"ATOM MATE", sku:"A086" ,kw:"ATOM MATE HAT MOUNT PIN"},
+ {a:"/#/en/atom/atomic_step_motor", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/atom_base/atom_stepmotor.webp", p:"ATOM STEPMOTOR Kit", sku:"K047" ,kw:"ATOM STEP MOTOR"},
]
const module_list = [
@@ -52,7 +53,8 @@
{a:"/#/en/module/gsm", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/gsm_01.webp", p:"GSM", sku:"M026" ,kw:"2G"},
{a:"/#/en/module/nb-iot", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/nb_iot_01.webp", p:"NB-IoT", sku:"M028" ,kw:"M5311LV"},
{a:"/#/en/module/nb-iot_plus", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/nb_iot_plus.webp", p:"NB-IoT Plus", sku:"M030" ,kw:"M5311GB"},
- {a:"/#/en/module/comx_gsm", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/comx_gsm.webp", p:"COM.X GSM", sku:"M031-D" ,kw:"SIM800C"},
+ {a:"/#/en/module/comx_gsm", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/comx_gsm.webp", p:"COM.GSM", sku:"M031-D" ,kw:"SIM800C"},
+ {a:"/#/en/module/comx_lorawan", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/comx_lorawan.webp", p:"COM.LoRaWAN", sku:"M031-C" ,kw:"LoRaWAN"},
//Expansion Modules
{a:"/#/en/module/battery", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/module_battery_01.webp", p:"BATTERY", sku:"M002" ,kw:"POWER SUPPLY LIPO"},
{a:"/#/en/module/proto", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/module_proto_01.webp", p:"PROTO", sku:"M001" ,kw:"PROTOTYPE"},
@@ -73,6 +75,9 @@
{a:"/#/en/module/faces_rfid", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/faces_rfid_01.webp", p:"RFID", sku:"A067" ,kw:"FACES RC552"},
{a:"/#/en/module/faces", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/face_01.webp", p:"FACES BOTTOM", sku:"A009" ,kw:"FACES BAT BOTTOM"},
{a:"/#/en/module/facesII", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/faceii_01.webp", p:"FACES II BOTTOM", sku:"A075" ,kw:"FACES LED BAT BOTTOM"},
+ {a:"/#/en/module/faces_keyboard", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/face_keyboard.webp", p:"QWERTY", sku:"A005" ,kw:"FACES KEYBOARD QWERTY"},
+ {a:"/#/en/module/faces_calculator", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/face_cal.webp", p:"CALCULATOR", sku:"A003" ,kw:"FACES CALCULATOR"},
+ {a:"/#/en/module/faces_gameboy", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/face_gamepad.webp", p:"GAMEPAD", sku:"A004" ,kw:"FACES GAMEPAD"},
];
const base_list = [
diff --git a/docs/zh_CN/README.md b/docs/zh_CN/README.md
index b197bfd8..c8f5d916 100644
--- a/docs/zh_CN/README.md
+++ b/docs/zh_CN/README.md
@@ -39,6 +39,7 @@
{a:"/#/zh_CN/atom/atomhub_switch", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/atom_base/atomswitch.webp", p:"ATOM SWITCH Kit", sku:"K042" ,kw:"ATOM RS485 SWITCH"},
{a:"/#/zh_CN/atom/atomfly", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/atom_base/atomfly.webp", p:"ATOM FLY Kit", sku:"K040" ,kw:"ATOM FLY"},
{a:"/#/zh_CN/atom/atom_mate", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/atom_base/atom_mate.webp", p:"ATOM MATE", sku:"A086" ,kw:"ATOM MATE HAT MOUNT PIN"},
+ {a:"/#/zh_CN/atom/atomic_setp_motor", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/atom_base/atom_stepmotor.webp", p:"ATOM STEPMOTOR Kit", sku:"K047" ,kw:"ATOM STEP MOTOR"},
]
const module_list = [
@@ -53,7 +54,8 @@
{a:"/#/zh_CN/module/gsm", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/gsm_01.webp", p:"GSM", sku:"M026" ,kw:"2G"},
{a:"/#/zh_CN/module/nb-iot", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/nb_iot_01.webp", p:"NB-IoT", sku:"M028" ,kw:"M5311LV"},
{a:"/#/zh_CN/module/nb-iot_plus", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/nb_iot_plus.webp", p:"NB-IoT Plus", sku:"M030" ,kw:"M5311GB"},
- {a:"/#/zh_CN/module/comx_gsm", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/comx_gsm.webp", p:"COM.X GSM", sku:"M031-D" ,kw:"SIM800C"},
+ {a:"/#/zh_CN/module/comx_gsm", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/comx_gsm.webp", p:"COM.GSM", sku:"M031-D" ,kw:"SIM800C"},
+ {a:"/#/zh_CN/module/comx_lorawan", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/comx_lorawan.webp", p:"COM.LoRaWAN", sku:"M031-C" ,kw:"LoRaWAN"},
//Expansion Modules
{a:"/#/zh_CN/module/battery", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/module_battery_01.webp", p:"BATTERY", sku:"M002" ,kw:"POWER SUPPLY LIPO"},
{a:"/#/zh_CN/module/proto", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/module_proto_01.webp", p:"PROTO", sku:"M001" ,kw:"PROTOTYPE"},
@@ -74,6 +76,9 @@
{a:"/#/zh_CN/module/faces_rfid", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/faces_rfid_01.webp", p:"RFID", sku:"A067" ,kw:"FACES RC552"},
{a:"/#/zh_CN/module/faces", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/face_01.webp", p:"FACES", sku:"A009" ,kw:"FACES BAT BOTTOM"},
{a:"/#/zh_CN/module/facesII", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/faceii_01.webp", p:"FACES II", sku:"A075" ,kw:"FACES LED BAT BOTTOM"},
+ {a:"/#/zh_CN/module/faces_keyboard", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/face_keyboard.webp", p:"QWERTY", sku:"A005" ,kw:"FACES QWERTY KEYBOARD"},
+ {a:"/#/zh_CN/module/faces_calculator", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/face_cal.webp", p:"CALCULATOR", sku:"A003" ,kw:"FACES CALCULATOR"},
+ {a:"/#/zh_CN/module/faces_gameboy", img:"https://m5stack.oss-cn-shenzhen.aliyuncs.com/image/m5-docs_homepage/module/face_gamepad.webp", p:"GAMEPAD", sku:"A004" ,kw:"FACES GAMEPAD"},
];
const base_list = [
diff --git a/docs/zh_CN/app/bala2.md b/docs/zh_CN/app/bala2.md
index f5dccbd3..d758988f 100644
--- a/docs/zh_CN/app/bala2.md
+++ b/docs/zh_CN/app/bala2.md
@@ -6,7 +6,7 @@
## 描述
-**BALA2** 是一款平衡车应用.该产品是由 M5Stack Gray 与 BALA2电机底座组合而成的一款自平衡机器人,底座采用STM32F030C8T6作为主控,两路编码电机驱动,内置1200mAh电池,其"BALA"名称的由来出自"Balance"一词的缩写,目前为第二代产品。BALA2底座包含了丰富的接口,除了常规的PortB、PortC外还支持8路舵机,其中4路接口可直接连接,其余4路需从底座内部引出。您可以通过编程控制它自由行走,也可以结合WiFi和蓝牙开发遥控功能。即使您从来没有接触过平衡车程序,您也可以通过UIFlow快速完成编程对它进行控制。
+**BALA2** 是一款平衡车应用.该产品是由[M5Stack Gray](/zh_CN/core/gray) 与 BALA2电机底座组合而成的一款自平衡机器人,底座采用STM32F030C8T6作为主控,由两路N20编码减速电机提供动力,内置1200mAh电池,其"BALA"名称的由来出自"Balance"一词的缩写,目前为第二代产品。BALA2底座包含了丰富的接口,除了常规的PortB、PortC外还支持8路舵机,其中4路接口可直接连接,其余4路需从底座内部引出。您可以通过编程控制它自由行走,也可以结合WiFi和蓝牙开发遥控功能。即使您从来没有接触过平衡车程序,您也可以通过UIFlow快速完成编程对它进行控制。
默认预装平衡车应用程序,在运行时使用PID闭环算法保持垂直平衡,利用加速度计与陀螺仪姿态数据来校正其方向和位置。
@@ -125,7 +125,7 @@