diff --git a/docs/en/base/m5go_bottom.md b/docs/en/base/m5go_bottom.md
index a58b6860..c94f6cea 100644
--- a/docs/en/base/m5go_bottom.md
+++ b/docs/en/base/m5go_bottom.md
@@ -8,7 +8,7 @@
## Description
-**M5GO BOTTOM** is apparently the bottom part of M5GO which is a upgrade of basic bottoms, with a larger battery(500mAh), LOGO-compatilble holes, MICPHONE, LED Bar , two more CONNEXT PORT,and more.
+**M5GO BOTTOM** is apparently the bottom part of M5GO which is a upgrade of basic bottoms, with a larger battery(500mAh), LOGO-compatilble holes, Analog Micphone, LED Bar , two more CONNEXT PORT,and more.
**M5GO BOTTOM** is the same Bottom of [M5GO Lite](https://docs.m5stack.com/#/en/core/m5go_lite), [M5GO IoT Kit](https://docs.m5stack.com/#/en/core/m5go) and [M5Fire](https://docs.m5stack.com/#/en/core/fire).
@@ -29,7 +29,7 @@
| :----------: |:------------: |
| LED Pin | GPIO15 |
-**MIC**
+**Analog MIC**
| MIC Pin | ESP32 Chip |
| :----------: |:------------: |
@@ -62,7 +62,7 @@
## Related Link
-- **[M5GO IOT Starter Kit Purchase](https://www.aliexpress.com/store/product/M5Stack-Official-Stock-Offer-M5GO-IoT-Starter-Kit-ESP32-for-Arduino-MicroPython-Programming-Development-IR-MIC/3226069_32881911596.html?spm=2114.12010615.8148356.2.52385ab04i7vIu)**
+- **[M5GO IoT Starter Kit Purchase](https://www.aliexpress.com/store/product/M5Stack-Official-Stock-Offer-M5GO-IoT-Starter-Kit-ESP32-for-Arduino-MicroPython-Programming-Development-IR-MIC/3226069_32881911596.html?spm=2114.12010615.8148356.2.52385ab04i7vIu)**
## Schematic
diff --git a/docs/en/base/m5go_charger.md b/docs/en/base/m5go_charger.md
index 7f9faef6..03962086 100644
--- a/docs/en/base/m5go_charger.md
+++ b/docs/en/base/m5go_charger.md
@@ -8,7 +8,7 @@
## Description
-**M5GO CHARGER** is a charger base for [M5GO Lite](https://docs.m5stack.com/#/en/core/m5go_lite) kit and [M5GO IOT Kit](https://docs.m5stack.com/#/en/core/m5go_lite) and [FIRE](https://docs.m5stack.com/#/en/core/m5go_lite).
+**M5GO CHARGER** is a charger base for [M5GO Lite](https://docs.m5stack.com/#/en/core/m5go_lite) kit and [M5GO IoT Kit](https://docs.m5stack.com/#/en/core/m5go_lite) and [FIRE](https://docs.m5stack.com/#/en/core/m5go_lite).
diff --git a/docs/en/base/plc_base.md b/docs/en/base/plc_base.md
index 04705ad6..925578c2 100644
--- a/docs/en/base/plc_base.md
+++ b/docs/en/base/plc_base.md
@@ -3,19 +3,17 @@

***
-:memo:**[Description](#Description)** ** 🛒**[Purchase](https://m5stack.com/collections/m5-base/products/plc-proto-industrial-board-module)** :clapper:**[Related Video](#Related-Video)**
+:memo:**[Description](#Description)** ** 🛒**[Purchase](https://m5stack.com/collections/m5-base/products/plc-proto-industrial-board-module)** :clapper:**[Related Video](#Related-Video)**[]**
## Description
**PLC M12** is a Base specifically design for industrial application. DC Power in 9-24V.
Does this PLC remind you of the 'PLC' in industrial controll short for 'Programmable Logic Controller'. This PLC base is not the typical 'PLC' used in programmable controller, but its does able to implement the most common controller in industrial field. Based on the current M5 development system, you can add as many Realys as you want, you can enable the TTL-RS485 communication, you can layout your customized circult on the protoboard. you also can make it an LoRa node by stacking a LoRa module etc. This base gives you an unlimited number of combinations, it is powerful, flexible, and covered with an industrial-grade case. If you happen to work in an industrial field, We especially recommend this PLC base to you which will surely give you the best and the fastest way to resolve your requirement.
-**The current sensor (ACS712TELC-05B)** is also integrated on **the RS485 adapter board** for current monitoring.
-
If you need to add RS485 interface, soldering the RS485 board onto the mian board pin correspondingly.
-*The serial port pins on the RS485 board will be connected to the GPIO16 and GPIO17 of the LAN backplane.*
+*The serial port pins on the RS485 board will be connected to the GPIO16 and GPIO17 of the PLC backplane.*
## Feature
diff --git a/docs/en/uiflow/Units.md b/docs/en/uiflow/Units.md
index e69de29b..cff4f081 100644
--- a/docs/en/uiflow/Units.md
+++ b/docs/en/uiflow/Units.md
@@ -0,0 +1,675 @@
+# ENV
+__________________________
+
+#### Feature Introduction
+
+> One-Wire interface sensor for ambient temperature, humidity, and air pressure
+
+>
+
+>* __Get Pressure__
+Get pressure in hundredpar
+
+>* __Get Temperature__
+Get the temperature, display two decimal
+
+>* __Get Humidity__
+Get humidity
+
+
+#### Usage
+
+>Display air pressure, temperature, humidity on the screen
+
+>
+
+
+# PIR
+__________________________
+
+#### Feature Introduction
+
+> I/O type sensor for detecting infrared signals from humans or animals
+
+>
+
+#### Usage
+
+>Check if someone is close, someone is near the red light
+
+>
+
+# RGB LED
+__________________________
+
+#### Feature Introduction
+
+> Control a certain number of colored LEDs
+
+>
+
+>* __Set index RGB color__
+Set the color of the specified number of lights
+
+>* __Set from to RGB color__
+Set the color of the light within the specified range
+
+>* __Set from to R G B__
+Set the color of the light in the specified range to a custom color
+
+>* __Set all RGB color__
+Set the color of all RGB lights
+
+>* __Set brightness__
+Set the brightness of the RGB
+
+>* __Set neopixel hexagon matrix in__
+Set the pattern on HEX and specify the color
+
+>* __et neopixel hexagon matrix in red green blue__
+Set the pattern on HEX and customize the color
+
+
+#### Usage
+
+> Draw a pattern use LED
+
+>
+
+
+# joystick
+__________________________
+
+#### Feature Introduction
+
+> The joystick is actually a potentiometer that can be automatically reset, sliding different displacements to output different voltage signals.
+
+>
+
+>* __Get X__
+Return data on the X axis
+
+>* __Get Y__
+Return data for the Y axis
+
+>* __Get is pressed__
+Return the value of the button
+
+>* __Get Reverse X__
+Return X-axis reverse data
+
+>* __Get Reverse Y__
+Return Y-axis reverse data
+
+#### Usage
+
+> Control the color of the RGB LEDs by the joystick direction
+
+>
+
+# MAKEY
+__________________________
+
+#### Feature Introduction
+
+> Simple touch application that emits different tones and lights by touching different pins
+
+>
+
+>* __Get value__
+Return pin value
+
+>* __Get all value__
+Return all value
+
+#### Usage
+
+> Touch different pins to get different values to display different colors
+
+>
+
+# SERVO
+________________________
+
+#### Feature Introduction
+
+> The servo is a common driving device whose rotation angle depends on pulse control
+
+>
+
+>* __rotate to degree__
+Set the rotation angle
+
+>* __write us__
+Set pulse time
+
+#### Usage
+
+>Control the steering gear to rotate 90 degrees
+
+>
+
+# WEIGHT
+________________________
+
+#### Feature Introduction
+
+> HX711 is a high-precision AD conversion chip designed for electronic scales, which is converted into the corresponding weight by reading the voltage value.
+
+>
+
+>* __return to zero__
+Reference to initial value as zero
+
+>* __Get weight__
+Return weight
+
+>* __Get raw data__
+Show rawdata
+
+#### Usage
+
+>Read the weight display to the screen, press the A key to return to zero
+
+>
+
+# TRACE
+________________________
+
+#### Feature Introduction
+
+> TRACE is a commonly used sensor for auto-car toy. It is used to determine whether there are black lines by receiving reflected light.
+
+>
+
+>* __Get analog value__
+Return analog value
+
+>* __Get digital value__
+Return analog digital value
+
+>* __set limit should value__
+Set limit value
+
+#### Usage
+
+> The sensor receives white light from the reflected light and does not receive no light.
+
+>
+
+
+# BUTTON
+________________________
+
+#### Feature Introduction
+
+> Detect different states of the button and perform corresponding operations
+
+>
+
+>* __Button wasPressed__
+Press the button to execute the set function
+
+>* __obtain button wasPressed__
+Check if the button is pressed, only once during execution
+
+#### Usage
+
+> Press the button to flash the light once
+
+>
+
+
+# Dual-BUTTON
+________________________
+
+#### Feature Introduction
+
+> Detect different states of the button and perform corresponding operations
+
+>
+
+>* __Dual_Button Red wasPressed__
+Red button press to execute the set function
+
+>* __obtain dual button Red wasPressed__
+Check if the red button is pressed, only one time during execution
+
+#### Usage
+
+> Red button presses red light, blue button presses light
+
+>
+
+
+# RGB
+________________________
+
+#### Feature Introduction
+
+> Three indicator led
+
+>
+
+>* __Set index RGB color__
+Specify the color of a serial number light
+
+>* __Set form to RGB color__
+Set the color of multiple RGB LEDs
+
+>* __Set all RGB color__
+Set all of RGB color
+
+>* __Set brightness__
+Set brightness of LED
+
+#### Usage
+
+> Set the color of the light
+
+>
+
+
+# REALY
+________________________
+
+#### Feature Introduction
+
+> By controlling the opening and closing of the relay to achieve the purpose of weak current control of strong electricity
+
+>
+
+>* __set COM connect ON__
+Control relay closure
+
+>* __set COM connect OFF__
+Control relay disconnect
+
+#### Usage
+
+> Press the A button to close the relay and press the B button to turn the relay off.
+
+>
+
+
+# ADC
+________________________
+
+#### Feature Introduction
+
+> Read AD values directly
+
+>
+
+>* __read voltage__
+Read voltage
+
+#### Usage
+
+> Display AD value
+
+>
+
+
+# DAC
+________________________
+
+#### Feature Introduction
+
+> Perform DA conversion and output voltage, up to 3.7V
+
+>
+
+>* __output voltage save__
+Output voltage 0-3.3, and confirm whether to save to EEPROM
+
+>* __output voltage with raw data save__
+Output voltage 0-4096, and confirm whether to save to EEPROM
+
+#### Usage
+
+> The output voltage
+
+>
+
+
+# NCIR
+________________________
+
+#### Feature Introduction
+
+> Non-contact temperature measurement, direct reading data
+
+>
+
+>* __ncir read__
+Reading temperature
+
+#### Usage
+
+> Screen display temperature
+
+>
+
+
+# IR
+________________________
+
+#### Feature Introduction
+
+> Launch or accept infrared remote control signals
+
+>
+
+>* __state__
+Received infrared signal returned 1
+
+>* __set on__
+Send infrared signal
+
+>* __set off__
+Stop sending
+
+#### Usage
+
+> Receive infrared signal to light red light
+
+>
+
+
+# EXT.IO
+________________________
+
+#### Feature Introduction
+
+> Expand IO interface through I2C, read and write level operation.
+
+>
+
+>* __set mode__
+All pins are set to input or output mode
+
+>* __set pin mode__
+Set input or output separately
+
+>* __digitWrite Port__
+Control pin status, 1 bit per pin
+
+>* __digitWrite Pin__
+Individual control of pin status
+
+>* __digitRead Pin__
+Read the specified pin status
+
+>* __digitRead Port__
+Read all pin states
+
+#### Usage
+
+> Clear all pin states, set 2 pin high
+
+>
+
+
+# ANGLE
+________________________
+
+#### Feature Introduction
+
+> Read the output value of the knob potentiometer
+
+>
+
+>* __Get value__
+Return potentiometer value
+
+#### Usage
+
+> Control the brightness of RGB LEDs
+
+>
+
+# LIGHT
+________________________
+
+#### Feature Introduction
+
+> Return light measurement
+
+>
+
+>* __Get Analog value__
+Return analog value
+
+>* __Get Digital value__
+Return numeric value
+
+#### Usage
+
+> As the switch control LED lights up
+
+>
+
+
+# EARTH
+________________________
+
+#### Feature Introduction
+
+> Measuring soil moisture
+
+>
+
+>* __Get Analog value__
+Return analog value
+
+>* __Get Digital value__
+Return numeric value
+
+#### Usage
+
+> LED alarm when the soil is dry
+
+>
+
+
+# ToF
+________________________
+
+#### Feature Introduction
+
+> Measuring distance up to 2 meters
+
+>
+
+>* __Get distance__
+Return distance mm
+
+#### Usage
+
+> Display distance
+
+>
+
+
+# COLOR
+________________________
+
+#### Feature Introduction
+
+> Identify colors and return RGB values
+
+>
+
+>* __Get rawData__
+Return original data
+
+>* __Get red__
+Return red value
+
+>* __Get green__
+Return green value
+
+>* __Get blue__
+Return blue value
+
+#### Usage
+
+> Detecting color display RGB lights of corresponding colors
+
+>
+
+
+# RFID
+________________________
+
+#### Feature Introduction
+
+> Identify RFID chip information
+
+>
+
+>* __read string from addr__
+Read data from address
+
+>* __write to addr__
+Write data to address
+
+>* __card near__
+RFID card close to return 1
+
+>* __card uid__
+Returns the UID of the RFID card
+
+#### Usage
+
+> Identify RFID card information
+
+>
+
+
+# FINGER
+________________________
+
+#### Feature Introduction
+
+> Identify fingerprint information
+
+>
+
+>* __get state__
+Read sensor status
+
+>* __get access__
+Return access
+
+>* __get id__
+Return ID
+
+>* __removeAll__
+Remove all fingerprint information
+
+>* __remove id__
+Remove fingerprint ID
+
+>* __add user id access__
+Add ID and access rights
+
+>* __read user with id access__
+The id and permission match do the following
+
+>* __getUnknown__
+Unknown id and permission to perform the following operations
+
+#### Usage
+
+> Record fingerprint and identify it, recognize successful green light
+
+>
+
+
+# CardKB
+________________________
+
+#### Feature Introduction
+
+> Enter information via the keyboard
+
+>
+
+>* __Get key__
+Return ASIIC value
+
+>* __Get string__
+Return character
+
+>* __Get pressed__
+Detect button, press to return true
+
+#### Usage
+
+> Screen displays input characters
+
+>
+
+
+# Pb.HUB
+________________________
+
+#### Feature Introduction
+
+> Extended IO interface
+
+>
+
+>* __pos digitalRead__
+Read pin digital value
+
+>* __pos digitalWrite value__
+Write a digital value to the pin
+
+>* __analogRead__
+Read analog value
+
+>* __Set pos RGB number to__
+Set the number of specified pins RGB
+
+>* __Set pos num RGB pos color__
+Set the color of the specified serial number RGB
+
+>* __Set pos num RGB begin count color__
+Set the RGB color within the specified range
+
+>* __Set pos RGB brightness__
+Set the specified pin RGB brightness
+
+#### Usage
+
+> Control 10 RGB lights via Pb.HUB
+
+>
+
+
+# Pa.HUB
+________________________
+
+#### Feature Introduction
+
+> Extended I2C interface
+
+>
+
+>* __set pos state__
+Set the specified port I2C
+
+>* __set pos open__
+Set port to open I2C
+
+>* __set port value__
+Set port I2C
+
+#### Usage
+
+> Scan the I2C device through Pa.HUB control, A key to open the expansion, B key to close the expansion
+
+>
\ No newline at end of file
diff --git a/docs/en/uiflow/introduction.md b/docs/en/uiflow/introduction.md
index 9e204da6..995b7b5a 100644
--- a/docs/en/uiflow/introduction.md
+++ b/docs/en/uiflow/introduction.md
@@ -159,7 +159,7 @@ The button can be triggered by the program, and more functions can be realized w
>* __obtain Button__
The button can be triggered by the program only once, if you keep pressing it, it won’t happen unless released.
-#### Instructions
+#### Usage
>Put the program that needs to be run after pressing the button, put it in the Button Block, and modify the corresponding button position.
@@ -183,7 +183,7 @@ Get current system run time.
-#### Instructions
+#### Usage
>Add the Wait Block to the program that needs to be delayed and set the time. When the program executes to it, it will play a delay.
diff --git a/docs/en/uiflow/logic.md b/docs/en/uiflow/logic.md
index 05279868..e7c79068 100644
--- a/docs/en/uiflow/logic.md
+++ b/docs/en/uiflow/logic.md
@@ -58,7 +58,7 @@ When the left and right logical relations __have a__, the result of the logical
>* __not__
Invert the logical result of an expression, that is, notTrue=False, notFalse=True
-#### Instructions
+#### Usage
>Add the relationship that needs to be logically added to both sides, modify the operation type
@@ -81,7 +81,7 @@ Set the number of cycles
>* __repeat while__
Determine whether the condition is true or not, and when inception, infinite loop
-#### Instructions
+#### Usage
>Add repaet to the program, set the number of loops (loop conditions), add the program that needs to loop
@@ -105,7 +105,7 @@ Increased from __a__ to __b__ , the number of each increment is __c__ , and the
>* __break out of loop__
You can choose to jump out of the entire loop, or jump out of this loop, and execute when you execute the block.
-#### Instructions
+#### Usage
>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.
diff --git a/docs/image/Units/ADC.png b/docs/image/Units/ADC.png
new file mode 100644
index 00000000..ef182296
Binary files /dev/null and b/docs/image/Units/ADC.png differ
diff --git a/docs/image/Units/ADC_user.gif b/docs/image/Units/ADC_user.gif
new file mode 100644
index 00000000..4fc62b35
Binary files /dev/null and b/docs/image/Units/ADC_user.gif differ
diff --git a/docs/image/Units/ANGLE.png b/docs/image/Units/ANGLE.png
new file mode 100644
index 00000000..b40f5d68
Binary files /dev/null and b/docs/image/Units/ANGLE.png differ
diff --git a/docs/image/Units/ANGLE_user.gif b/docs/image/Units/ANGLE_user.gif
new file mode 100644
index 00000000..61be21fe
Binary files /dev/null and b/docs/image/Units/ANGLE_user.gif differ
diff --git a/docs/image/Units/BALA_user.png b/docs/image/Units/BALA_user.png
new file mode 100644
index 00000000..2b678094
Binary files /dev/null and b/docs/image/Units/BALA_user.png differ
diff --git a/docs/image/Units/BUTTON.png b/docs/image/Units/BUTTON.png
new file mode 100644
index 00000000..34640371
Binary files /dev/null and b/docs/image/Units/BUTTON.png differ
diff --git a/docs/image/Units/BUTTON_user.gif b/docs/image/Units/BUTTON_user.gif
new file mode 100644
index 00000000..f359aec2
Binary files /dev/null and b/docs/image/Units/BUTTON_user.gif differ
diff --git a/docs/image/Units/Bala Motor.png b/docs/image/Units/Bala Motor.png
new file mode 100644
index 00000000..cbedd36b
Binary files /dev/null and b/docs/image/Units/Bala Motor.png differ
diff --git a/docs/image/Units/COLOR.png b/docs/image/Units/COLOR.png
new file mode 100644
index 00000000..e753b72f
Binary files /dev/null and b/docs/image/Units/COLOR.png differ
diff --git a/docs/image/Units/COLOR_user.gif b/docs/image/Units/COLOR_user.gif
new file mode 100644
index 00000000..d7f92c1a
Binary files /dev/null and b/docs/image/Units/COLOR_user.gif differ
diff --git a/docs/image/Units/CardKB.png b/docs/image/Units/CardKB.png
new file mode 100644
index 00000000..6c021119
Binary files /dev/null and b/docs/image/Units/CardKB.png differ
diff --git a/docs/image/Units/CardKB_user.gif b/docs/image/Units/CardKB_user.gif
new file mode 100644
index 00000000..ee5f4534
Binary files /dev/null and b/docs/image/Units/CardKB_user.gif differ
diff --git a/docs/image/Units/DAC.png b/docs/image/Units/DAC.png
new file mode 100644
index 00000000..789b78c1
Binary files /dev/null and b/docs/image/Units/DAC.png differ
diff --git a/docs/image/Units/DAC_user.gif b/docs/image/Units/DAC_user.gif
new file mode 100644
index 00000000..c1f9aebe
Binary files /dev/null and b/docs/image/Units/DAC_user.gif differ
diff --git a/docs/image/Units/Dual-BUTTON.png b/docs/image/Units/Dual-BUTTON.png
new file mode 100644
index 00000000..1938565f
Binary files /dev/null and b/docs/image/Units/Dual-BUTTON.png differ
diff --git a/docs/image/Units/Dual-BUTTON_user.gif b/docs/image/Units/Dual-BUTTON_user.gif
new file mode 100644
index 00000000..ef964a24
Binary files /dev/null and b/docs/image/Units/Dual-BUTTON_user.gif differ
diff --git a/docs/image/Units/EARTH.png b/docs/image/Units/EARTH.png
new file mode 100644
index 00000000..1d438ca0
Binary files /dev/null and b/docs/image/Units/EARTH.png differ
diff --git a/docs/image/Units/EARTH_user.gif b/docs/image/Units/EARTH_user.gif
new file mode 100644
index 00000000..1db92021
Binary files /dev/null and b/docs/image/Units/EARTH_user.gif differ
diff --git a/docs/image/Units/ENV.png b/docs/image/Units/ENV.png
new file mode 100644
index 00000000..96a966a6
Binary files /dev/null and b/docs/image/Units/ENV.png differ
diff --git a/docs/image/Units/ENV_user.gif b/docs/image/Units/ENV_user.gif
new file mode 100644
index 00000000..e4473cf6
Binary files /dev/null and b/docs/image/Units/ENV_user.gif differ
diff --git a/docs/image/Units/EXT.IO.png b/docs/image/Units/EXT.IO.png
new file mode 100644
index 00000000..2bee0ef7
Binary files /dev/null and b/docs/image/Units/EXT.IO.png differ
diff --git a/docs/image/Units/EXT.IO_user.gif b/docs/image/Units/EXT.IO_user.gif
new file mode 100644
index 00000000..a8f63758
Binary files /dev/null and b/docs/image/Units/EXT.IO_user.gif differ
diff --git a/docs/image/Units/FINGER.png b/docs/image/Units/FINGER.png
new file mode 100644
index 00000000..053b2e02
Binary files /dev/null and b/docs/image/Units/FINGER.png differ
diff --git a/docs/image/Units/FINGER_user.gif b/docs/image/Units/FINGER_user.gif
new file mode 100644
index 00000000..ec75711e
Binary files /dev/null and b/docs/image/Units/FINGER_user.gif differ
diff --git a/docs/image/Units/IR.png b/docs/image/Units/IR.png
new file mode 100644
index 00000000..362df528
Binary files /dev/null and b/docs/image/Units/IR.png differ
diff --git a/docs/image/Units/IR_user.gif b/docs/image/Units/IR_user.gif
new file mode 100644
index 00000000..773c435f
Binary files /dev/null and b/docs/image/Units/IR_user.gif differ
diff --git a/docs/image/Units/LEGO+.png b/docs/image/Units/LEGO+.png
new file mode 100644
index 00000000..f9ad8a5e
Binary files /dev/null and b/docs/image/Units/LEGO+.png differ
diff --git a/docs/image/Units/LIGHT.png b/docs/image/Units/LIGHT.png
new file mode 100644
index 00000000..d794738f
Binary files /dev/null and b/docs/image/Units/LIGHT.png differ
diff --git a/docs/image/Units/LIGHT_user.gif b/docs/image/Units/LIGHT_user.gif
new file mode 100644
index 00000000..36044141
Binary files /dev/null and b/docs/image/Units/LIGHT_user.gif differ
diff --git a/docs/image/Units/LidarBOT.png b/docs/image/Units/LidarBOT.png
new file mode 100644
index 00000000..42c3091c
Binary files /dev/null and b/docs/image/Units/LidarBOT.png differ
diff --git a/docs/image/Units/MAKEY.png b/docs/image/Units/MAKEY.png
new file mode 100644
index 00000000..85b89ff3
Binary files /dev/null and b/docs/image/Units/MAKEY.png differ
diff --git a/docs/image/Units/MAKEY_user.gif b/docs/image/Units/MAKEY_user.gif
new file mode 100644
index 00000000..c0b4e190
Binary files /dev/null and b/docs/image/Units/MAKEY_user.gif differ
diff --git a/docs/image/Units/NCIR.png b/docs/image/Units/NCIR.png
new file mode 100644
index 00000000..33c3c2dd
Binary files /dev/null and b/docs/image/Units/NCIR.png differ
diff --git a/docs/image/Units/NCIR_user.gif b/docs/image/Units/NCIR_user.gif
new file mode 100644
index 00000000..4149fb51
Binary files /dev/null and b/docs/image/Units/NCIR_user.gif differ
diff --git a/docs/image/Units/PIR.png b/docs/image/Units/PIR.png
new file mode 100644
index 00000000..7e265d6a
Binary files /dev/null and b/docs/image/Units/PIR.png differ
diff --git a/docs/image/Units/PIR_user.gif b/docs/image/Units/PIR_user.gif
new file mode 100644
index 00000000..2c633816
Binary files /dev/null and b/docs/image/Units/PIR_user.gif differ
diff --git a/docs/image/Units/PM2.5.png b/docs/image/Units/PM2.5.png
new file mode 100644
index 00000000..5f5fd6d7
Binary files /dev/null and b/docs/image/Units/PM2.5.png differ
diff --git a/docs/image/Units/Pa.HUB.png b/docs/image/Units/Pa.HUB.png
new file mode 100644
index 00000000..77b4bbed
Binary files /dev/null and b/docs/image/Units/Pa.HUB.png differ
diff --git a/docs/image/Units/Pa.HUB_user.gif b/docs/image/Units/Pa.HUB_user.gif
new file mode 100644
index 00000000..a51c2184
Binary files /dev/null and b/docs/image/Units/Pa.HUB_user.gif differ
diff --git a/docs/image/Units/Pb.HUB.png b/docs/image/Units/Pb.HUB.png
new file mode 100644
index 00000000..7243d238
Binary files /dev/null and b/docs/image/Units/Pb.HUB.png differ
diff --git a/docs/image/Units/Pb.HUB_user.gif b/docs/image/Units/Pb.HUB_user.gif
new file mode 100644
index 00000000..8482b6a1
Binary files /dev/null and b/docs/image/Units/Pb.HUB_user.gif differ
diff --git a/docs/image/Units/RELAY.png b/docs/image/Units/RELAY.png
new file mode 100644
index 00000000..481603f8
Binary files /dev/null and b/docs/image/Units/RELAY.png differ
diff --git a/docs/image/Units/RELAY_user.gif b/docs/image/Units/RELAY_user.gif
new file mode 100644
index 00000000..122165ac
Binary files /dev/null and b/docs/image/Units/RELAY_user.gif differ
diff --git a/docs/image/Units/RFID.png b/docs/image/Units/RFID.png
new file mode 100644
index 00000000..ec1ac68d
Binary files /dev/null and b/docs/image/Units/RFID.png differ
diff --git a/docs/image/Units/RFID_user.gif b/docs/image/Units/RFID_user.gif
new file mode 100644
index 00000000..c14b0fff
Binary files /dev/null and b/docs/image/Units/RFID_user.gif differ
diff --git a/docs/image/Units/RGB LED.png b/docs/image/Units/RGB LED.png
new file mode 100644
index 00000000..bad60594
Binary files /dev/null and b/docs/image/Units/RGB LED.png differ
diff --git a/docs/image/Units/RGB LED_user.gif b/docs/image/Units/RGB LED_user.gif
new file mode 100644
index 00000000..c9329460
Binary files /dev/null and b/docs/image/Units/RGB LED_user.gif differ
diff --git a/docs/image/Units/RGB.png b/docs/image/Units/RGB.png
new file mode 100644
index 00000000..ad1ffd0a
Binary files /dev/null and b/docs/image/Units/RGB.png differ
diff --git a/docs/image/Units/RGB_user.gif b/docs/image/Units/RGB_user.gif
new file mode 100644
index 00000000..870c16b1
Binary files /dev/null and b/docs/image/Units/RGB_user.gif differ
diff --git a/docs/image/Units/SERVO.png b/docs/image/Units/SERVO.png
new file mode 100644
index 00000000..9355203c
Binary files /dev/null and b/docs/image/Units/SERVO.png differ
diff --git a/docs/image/Units/SERVO_user.gif b/docs/image/Units/SERVO_user.gif
new file mode 100644
index 00000000..8b989763
Binary files /dev/null and b/docs/image/Units/SERVO_user.gif differ
diff --git a/docs/image/Units/TRACE.png b/docs/image/Units/TRACE.png
new file mode 100644
index 00000000..d41611b6
Binary files /dev/null and b/docs/image/Units/TRACE.png differ
diff --git a/docs/image/Units/TRACE_user.gif b/docs/image/Units/TRACE_user.gif
new file mode 100644
index 00000000..bd2cff35
Binary files /dev/null and b/docs/image/Units/TRACE_user.gif differ
diff --git a/docs/image/Units/ToF.png b/docs/image/Units/ToF.png
new file mode 100644
index 00000000..4c52eb8b
Binary files /dev/null and b/docs/image/Units/ToF.png differ
diff --git a/docs/image/Units/ToF_user.gif b/docs/image/Units/ToF_user.gif
new file mode 100644
index 00000000..c2a9696e
Binary files /dev/null and b/docs/image/Units/ToF_user.gif differ
diff --git a/docs/image/Units/WEIGHT.png b/docs/image/Units/WEIGHT.png
new file mode 100644
index 00000000..3d9daaad
Binary files /dev/null and b/docs/image/Units/WEIGHT.png differ
diff --git a/docs/image/Units/WEIGHT_user.gif b/docs/image/Units/WEIGHT_user.gif
new file mode 100644
index 00000000..2895eda5
Binary files /dev/null and b/docs/image/Units/WEIGHT_user.gif differ
diff --git a/docs/image/Units/joystick.png b/docs/image/Units/joystick.png
new file mode 100644
index 00000000..464753fb
Binary files /dev/null and b/docs/image/Units/joystick.png differ
diff --git a/docs/image/Units/joystick_user.gif b/docs/image/Units/joystick_user.gif
new file mode 100644
index 00000000..fa7830c0
Binary files /dev/null and b/docs/image/Units/joystick_user.gif differ
diff --git a/docs/zh_CN/module/stepmotor.md b/docs/zh_CN/module/stepmotor.md
index 161e2815..0c59bbaa 100644
--- a/docs/zh_CN/module/stepmotor.md
+++ b/docs/zh_CN/module/stepmotor.md
@@ -104,40 +104,6 @@ while (Serial.available() > 0) {
}
```
-```adrduino
-/*
- If Button A was pressed,
- stepmotor will rotate back and forth at a time
-*/
-
-#include
-#include
-
-#define STEPMOTOR_I2C_ADDR 0x70
-
-// initialization
-M5.begin();
-Wire.begin();
-
-// Controlling Protocol:
-// G XYZ F
-SendCommand(STEPMOTOR_I2C_ADDR, "G1 X20Y20Z20 F500");
-SendCommand(STEPMOTOR_I2C_ADDR, "G1 X0Y0Z0 F400");
-
-// Get Data from Module.
-Wire.requestFrom(STEPMOTOR_I2C_ADDR, 1);
-if (Wire.available() > 0) {
- int u = Wire.read();
- if (u != 0) Serial.write(u);
-}
-
-// Send Data to Module.
-while (Serial.available() > 0) {
- int inByte = Serial.read();
- SendByte(STEPMOTOR_I2C_ADDR, inByte);
-}
-```
-
### 2. UIFlow
想要探索最简单的 Step motor 编程驱动方式吗?快试试Blockly编程平台[UIFlow](flow.m5stack.com).
diff --git a/docs/zh_CN/uiflow/FACES.md b/docs/zh_CN/uiflow/FACES.md
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/zh_CN/uiflow/Modules.md b/docs/zh_CN/uiflow/Modules.md
new file mode 100644
index 00000000..ee769953
--- /dev/null
+++ b/docs/zh_CN/uiflow/Modules.md
@@ -0,0 +1,173 @@
+# LidarBOT
+__________________________
+
+#### 功能说明
+
+> 雷达扫描导航小车,控制行走及灯光、显示地图
+
+>
+
+>* __Lidarbot set with neopixel__
+设置雷达车led颜色
+
+>* __Lidarbot set number with neopixel__
+单独设置led颜色
+
+>* __Lidarbot Seed(0±7)__
+设置行走方向和速度
+
+>* __Lidarbot set Motor Speed X(-7~7) Y(-7~7) Z(-7~7) A(-7~7)__
+设置X和Y方向电机速度和方向
+
+>* __Lidarbot set Servo angle__
+设置舵机角度
+
+>* __Lidarbot X axis speed(0±7)Y axis speed (0±7)__
+设置X和Y轴方向
+
+>* __Lidarbot Draw Map__
+绘制雷达地图
+
+>* __Lidarbot Get Distance__
+读取指定角度障碍距离
+
+#### 使用方法
+
+> 小车左右平移
+
+>
+
+
+# STEPMOTOR
+__________________________
+
+#### 功能说明
+
+> 步进电机控制
+
+>
+
+>* __Motor Address__
+Module的I2C地址
+
+>* __Motor X Y Z Speed__
+设置步进电机X轴Y轴Z轴转动步数和速度
+
+>* __Put g code__
+运行G代码
+
+>* __Set mode__
+设置电机运行模式,距离模式或相对值模式
+
+>* __lock motor__
+锁定电机
+
+>* __unlock motor__
+解锁电机
+
+
+#### 使用方法
+
+>电机正反转交替运行
+
+>
+
+
+# STEPMOTOR
+__________________________
+
+#### 功能说明
+
+> 步进电机控制
+
+>
+
+>* __Motor Address__
+Module的I2C地址
+
+>* __Motor X Y Z Speed__
+设置步进电机X轴Y轴Z轴转动步数和速度
+
+>* __Put g code__
+运行G代码
+
+>* __Set mode__
+设置电机运行模式,距离模式或相对值模式
+
+>* __lock motor__
+锁定电机
+
+>* __unlock motor__
+解锁电机
+
+
+#### 使用方法
+
+>电机正反转交替运行
+
+>
+
+
+# Bala Motor
+__________________________
+
+#### 功能说明
+
+> 控制Bala编码电机运行
+
+>
+
+>* __set rotate speed__
+设置电机转动方向和速度
+
+>* __Run Speed__
+设定以某个速度朝运行方向行走一定脉冲数
+
+>* __Go To Position MaxSpeed__
+以设定的速度运行500个脉冲
+
+>* __Stop__
+电机停止
+
+>* __Read encode__
+读取编码器数值
+
+
+#### 使用方法
+
+> A键按下以255的速度向前行走500脉冲
+
+>
+
+
+# LEGO+
+__________________________
+
+#### 功能说明
+
+> 控制lego编码电机运行
+
+>
+
+>* __Set rotate pwm__
+设置电机方向和转速
+
+>* __Stop__
+电机停止
+
+>* __Clear encode__
+编码器清零
+
+>* __Read encode__
+读出编码器数据
+
+
+#### 使用方法
+
+> 设定电机运行5秒钟停止
+
+>
+
+
+
+
diff --git a/docs/zh_CN/uiflow/Units.md b/docs/zh_CN/uiflow/Units.md
new file mode 100644
index 00000000..461a891d
--- /dev/null
+++ b/docs/zh_CN/uiflow/Units.md
@@ -0,0 +1,675 @@
+# ENV
+__________________________
+
+#### 功能说明
+
+>单总线接口传感器,获取周围的温度、湿度、气压
+
+>
+
+>* __Get Pressure__
+获取气压,单位为百帕(hpa)
+
+>* __Get Temperature__
+获取温度,显示小数点后两位
+
+>* __Get Humidity__
+获取湿度
+
+
+#### 使用方法
+
+>在屏幕上显示气压、温度、湿度
+
+>
+
+
+# PIR
+__________________________
+
+#### 功能说明
+
+>I/O类传感器,检测人体或动物发出的红外线信号
+
+>
+
+#### 使用方法
+
+>检查是否有人靠近,有人靠近亮红灯
+
+>
+
+# RGB LED
+__________________________
+
+#### 功能说明
+
+>控制一定数量的彩色LED发光
+
+>
+
+>* __Set index RGB color__
+设置指定序号的灯的颜色
+
+>* __Set from to RGB color__
+设置指定范围内灯的颜色
+
+>* __Set from to R G B__
+将指定范围内灯的颜色设置为自定义颜色
+
+>* __Set all RGB color__
+设置全部RGB灯的颜色
+
+>* __Set brightness__
+设置灯的亮度
+
+>* __Set neopixel hexagon matrix in__
+在HEX上设置图案并指定颜色
+
+>* __et neopixel hexagon matrix in red green blue__
+在HEX上设置图案并自定义颜色
+
+
+#### 使用方法
+
+> 绘制一个图案
+
+>
+
+
+# joystick
+__________________________
+
+#### 功能说明
+
+>摇杆其实是一个可以自动复位的电位器,滑动不同的位移输出不同的电压信号
+
+>
+
+>* __Get X__
+返回X轴的数据
+
+>* __Get Y__
+返回Y轴的数据
+
+>* __Get is pressed__
+返回按键的值
+
+>* __Get Reverse X__
+返回X轴反向数据
+
+>* __Get Reverse Y__
+返回Y轴反向数据
+
+#### 使用方法
+
+>通过摇杆方向控制RGB LED的颜色
+
+>
+
+# MAKEY
+__________________________
+
+#### 功能说明
+
+>简单的触摸应用,通过触摸不同的引脚,可以发出不同的音调和灯光
+
+>
+
+>* __Get value__
+返回引脚值
+
+>* __Get all value__
+返回所有引脚值
+
+#### 使用方法
+
+>触摸不同引脚得到不同的值显示不同颜色
+
+>
+
+# SERVO
+________________________
+
+#### 功能说明
+
+>舵机是一种常见的驱动装置,它的旋转角度依靠脉冲控制
+
+>
+
+>* __rotate to degree__
+设置旋转角度
+
+>* __write us__
+设置脉冲时间
+
+#### 使用方法
+
+>控制舵机旋转90度
+
+>
+
+# WEIGHT
+________________________
+
+#### 功能说明
+
+>HX711是一种为电子秤设计的高精度的AD转换芯片,通过读取电压值转化为相应的重量
+
+>
+
+>* __return to zero__
+归零
+
+>* __Get weight__
+返回重量
+
+>* __Get raw data__
+返回原始数据
+
+#### 使用方法
+
+>读取重量显示到屏幕,按下A键归零
+
+>
+
+# TRACE
+________________________
+
+#### 功能说明
+
+>TRACE是小车巡线的常用传感器,通过接收反射光判断是否有黑线
+
+>
+
+>* __Get analog value__
+返回模拟量
+
+>* __Get digital value__
+返回数字量
+
+>* __set limit should value__
+设置限定值
+
+#### 使用方法
+
+>传感器接受到反射光发白光,没有接受到不发光
+
+>
+
+
+# BUTTON
+________________________
+
+#### 功能说明
+
+>检测按键不同状态,执行相应操作
+
+>
+
+>* __Button wasPressed__
+按键按下执行设定的函数
+
+>* __obtain button wasPressed__
+检查按键是否按下,执行中只获取一次
+
+#### 使用方法
+
+> 按键按下闪一次灯
+
+>
+
+
+# Dual-BUTTON
+________________________
+
+#### 功能说明
+
+>检测按键不同状态,执行相应操作
+
+>
+
+>* __Dual_Button Red wasPressed__
+红色按键按下执行设定的函数
+
+>* __obtain dual button Red wasPressed__
+检查红色按键是否按下,执行中只获取一次
+
+#### 使用方法
+
+> 红色按键按下亮红灯,蓝色按键按下灭灯
+
+>
+
+
+# RGB
+________________________
+
+#### 功能说明
+
+>RGB三色led指示灯
+
+>
+
+>* __Set index RGB color__
+指定某个序号灯的颜色
+
+>* __Set form to RGB color__
+设置多个灯的颜色
+
+>* __Set all RGB color__
+设置所有RGB的颜色
+
+>* __Set brightness__
+设置RGB的亮度
+
+#### 使用方法
+
+> 设置灯的颜色
+
+>
+
+
+# REALY
+________________________
+
+#### 功能说明
+
+>通过控制继电器开合达到弱电控制强电的目的
+
+>
+
+>* __set COM connect ON__
+控制继电器闭合
+
+>* __set COM connect OFF__
+控制继电器断开
+
+#### 使用方法
+
+> 按下A按键继电器闭合,按下B按键继电器断开
+
+>
+
+
+# ADC
+________________________
+
+#### 功能说明
+
+>直接读取AD数值
+
+>
+
+>* __read voltage__
+读取电压
+
+#### 使用方法
+
+> 显示AD数值
+
+>
+
+
+# DAC
+________________________
+
+#### 功能说明
+
+>进行DA转换并输出电压,最大3.7V
+
+>
+
+>* __output voltage save__
+输出电压0-3.3,并确认是否保存到EEPROM
+
+>* __output voltage with raw data save__
+输出电压0-4096,并确认是否保存到EEPROM
+
+#### 使用方法
+
+> 输出电压
+
+>
+
+
+# NCIR
+________________________
+
+#### 功能说明
+
+>非接触式温度测量,直接读取数据
+
+>
+
+>* __ncir read__
+读取温度
+
+#### 使用方法
+
+> 屏幕显示温度
+
+>
+
+
+# IR
+________________________
+
+#### 功能说明
+
+>发射或者接受红外遥控信号
+
+>
+
+>* __state__
+接受到红外信号返回1
+
+>* __set on__
+发送红外信号
+
+>* __set off__
+停止发送
+
+#### 使用方法
+
+> 接收红外信号亮红灯
+
+>
+
+
+# EXT.IO
+________________________
+
+#### 功能说明
+
+>通过I2C拓展IO接口,读写电平操作
+
+>
+
+>* __set mode__
+全部引脚设置为输入或输出模式
+
+>* __set pin mode__
+单独设置输入或输出
+
+>* __digitWrite Port__
+控制引脚状态,每个引脚对应1位
+
+>* __digitWrite Pin__
+单独控制引脚状态
+
+>* __digitRead Pin__
+读取指定引脚状态
+
+>* __digitRead Port__
+读取全部引脚状态
+
+#### 使用方法
+
+> 清除所有引脚状态,设置2引脚高电平
+
+>
+
+
+# ANGLE
+________________________
+
+#### 功能说明
+
+>读取旋钮电位器的输出数值
+
+>
+
+>* __Get value__
+返回电位器数值
+
+#### 使用方法
+
+> 控制RGB LED的亮度
+
+>
+
+# LIGHT
+________________________
+
+#### 功能说明
+
+> 返回光线测量值
+
+>
+
+>* __Get Analog value__
+返回模拟值
+
+>* __Get Digital value__
+返回数字值
+
+#### 使用方法
+
+> 作为开关控制LED亮灭
+
+>
+
+
+# EARTH
+________________________
+
+#### 功能说明
+
+> 测量土壤湿度
+
+>
+
+>* __Get Analog value__
+返回模拟值
+
+>* __Get Digital value__
+返回数字值
+
+#### 使用方法
+
+> 土壤干燥时LED报警
+
+>
+
+
+# TOF
+________________________
+
+#### 功能说明
+
+> 测量距离最大量程2米
+
+>
+
+>* __Get distance__
+返回距离mm
+
+#### 使用方法
+
+> 显示距离
+
+>
+
+
+# COLOR
+________________________
+
+#### 功能说明
+
+> 识别颜色,返回RGB数值
+
+>
+
+>* __Get rawData__
+返回原始数据
+
+>* __Get red__
+返回红色值
+
+>* __Get green__
+返回绿色值
+
+>* __Get blue__
+返回蓝色值
+
+#### 使用方法
+
+> 检测颜色显示对应颜色的RGB灯
+
+>
+
+
+# RFID
+________________________
+
+#### 功能说明
+
+> 识别RFID芯片信息
+
+>
+
+>* __read string from addr__
+从地址读取数据
+
+>* __write to addr__
+向地址写入数据
+
+>* __card near__
+RFID卡片靠近返回1
+
+>* __card uid__
+返回RFID卡片的UID
+
+#### 使用方法
+
+> 识别RFID卡片信息
+
+>
+
+
+# FINGER
+________________________
+
+#### 功能说明
+
+> 识别指纹信息
+
+>
+
+>* __get state__
+读取传感器状态
+
+>* __get access__
+返回访问权限
+
+>* __get id__
+返回ID
+
+>* __removeAll__
+移除所有指纹信息
+
+>* __remove id__
+移出指纹ID
+
+>* __add user id access__
+添加ID和访问权限
+
+>* __read user with id access__
+id及权限匹配则执行以下操作
+
+>* __getUnknown__
+未知的id及权限执行以下操作
+
+#### 使用方法
+
+> 录制指纹并进行识别,识别成功亮绿灯
+
+>
+
+
+# CardKB
+________________________
+
+#### 功能说明
+
+> 通过键盘输入信息
+
+>
+
+>* __Get key__
+返回ASIIC数值
+
+>* __Get string__
+返回字符
+
+>* __Get pressed__
+检测按键,按下返回真
+
+#### 使用方法
+
+> 屏幕显示输入字符
+
+>
+
+
+# Pb.HUB
+________________________
+
+#### 功能说明
+
+> 扩展IO接口
+
+>
+
+>* __pos digitalRead__
+读取引脚数字值
+
+>* __pos digitalWrite value__
+向引脚写入数字值
+
+>* __analogRead__
+读取模拟值
+
+>* __Set pos RGB number to__
+设置引脚RGB灯珠数量
+
+>* __Set pos num RGB pos color__
+设置指定序号RGB灯珠的颜色
+
+>* __Set pos num RGB begin count color__
+设置指定范围内RGB灯珠颜色
+
+>* __Set pos RGB brightness__
+设置指定引脚RGB灯珠亮度
+
+#### 使用方法
+
+> 通过Pb.HUB控制10个RGB灯
+
+>
+
+
+# Pa.HUB
+________________________
+
+#### 功能说明
+
+> 扩展I2C接口
+
+>
+
+>* __set pos state__
+设置指定端口I2C
+
+>* __set pos open__
+设置端口开启I2C
+
+>* __set port value__
+设置端口I2C
+
+#### 使用方法
+
+> 通过Pa.HUB控制扫描I2C设备,A键开启扩展,B键关闭扩展
+
+>
\ No newline at end of file