diff --git a/docs/assets/img/getting_started_pics/m5stick/UIFlow.png b/docs/assets/img/getting_started_pics/m5stick/UIFlow.png
new file mode 100644
index 00000000..2a9578e9
Binary files /dev/null and b/docs/assets/img/getting_started_pics/m5stick/UIFlow.png differ
diff --git a/docs/assets/img/getting_started_pics/m5stick/stick_01.png b/docs/assets/img/getting_started_pics/m5stick/stick_01.png
new file mode 100644
index 00000000..25130203
Binary files /dev/null and b/docs/assets/img/getting_started_pics/m5stick/stick_01.png differ
diff --git a/docs/assets/img/getting_started_pics/m5stick/stick_02.png b/docs/assets/img/getting_started_pics/m5stick/stick_02.png
new file mode 100644
index 00000000..bffb4761
Binary files /dev/null and b/docs/assets/img/getting_started_pics/m5stick/stick_02.png differ
diff --git a/docs/assets/img/getting_started_pics/m5stick/stick_03.png b/docs/assets/img/getting_started_pics/m5stick/stick_03.png
new file mode 100644
index 00000000..88e796cb
Binary files /dev/null and b/docs/assets/img/getting_started_pics/m5stick/stick_03.png differ
diff --git a/docs/assets/img/getting_started_pics/m5stick/stick_04.png b/docs/assets/img/getting_started_pics/m5stick/stick_04.png
new file mode 100644
index 00000000..92e4af86
Binary files /dev/null and b/docs/assets/img/getting_started_pics/m5stick/stick_04.png differ
diff --git a/docs/assets/img/getting_started_pics/m5stick/stick_05.png b/docs/assets/img/getting_started_pics/m5stick/stick_05.png
new file mode 100644
index 00000000..147b8b7d
Binary files /dev/null and b/docs/assets/img/getting_started_pics/m5stick/stick_05.png differ
diff --git a/docs/assets/img/getting_started_pics/m5stick/stick_06.png b/docs/assets/img/getting_started_pics/m5stick/stick_06.png
new file mode 100644
index 00000000..963b9fbe
Binary files /dev/null and b/docs/assets/img/getting_started_pics/m5stick/stick_06.png differ
diff --git a/docs/assets/img/getting_started_pics/m5stick/stick_07.png b/docs/assets/img/getting_started_pics/m5stick/stick_07.png
new file mode 100644
index 00000000..21d36b9f
Binary files /dev/null and b/docs/assets/img/getting_started_pics/m5stick/stick_07.png differ
diff --git a/docs/assets/img/product_pics/core/minicore/m5stick/example/example_core_m5stick_01.png b/docs/assets/img/product_pics/core/minicore/m5stick/example/example_core_m5stick_01.png
new file mode 100644
index 00000000..6309d0d4
Binary files /dev/null and b/docs/assets/img/product_pics/core/minicore/m5stick/example/example_core_m5stick_01.png differ
diff --git a/docs/assets/img/product_pics/core/minicore/m5stick/example/example_core_m5stick_02.png b/docs/assets/img/product_pics/core/minicore/m5stick/example/example_core_m5stick_02.png
index d57def01..ff0218da 100644
Binary files a/docs/assets/img/product_pics/core/minicore/m5stick/example/example_core_m5stick_02.png and b/docs/assets/img/product_pics/core/minicore/m5stick/example/example_core_m5stick_02.png differ
diff --git a/docs/assets/img/product_pics/core/minicore/m5stick/example/example_core_m5stick_03.png b/docs/assets/img/product_pics/core/minicore/m5stick/example/example_core_m5stick_03.png
index 55d74aaa..0e24caa1 100644
Binary files a/docs/assets/img/product_pics/core/minicore/m5stick/example/example_core_m5stick_03.png and b/docs/assets/img/product_pics/core/minicore/m5stick/example/example_core_m5stick_03.png differ
diff --git a/docs/assets/img/product_pics/core/minicore/m5stick/m5stick_sch.png b/docs/assets/img/product_pics/core/minicore/m5stick/m5stick_sch.png
new file mode 100644
index 00000000..d8809713
Binary files /dev/null and b/docs/assets/img/product_pics/core/minicore/m5stick/m5stick_sch.png differ
diff --git a/docs/assets/img/product_pics/module/module_encoder_03.png b/docs/assets/img/product_pics/module/module_encoder_03.png
new file mode 100644
index 00000000..a774e693
Binary files /dev/null and b/docs/assets/img/product_pics/module/module_encoder_03.png differ
diff --git a/docs/assets/img/product_pics/module/module_example/ENCODER/example_faces_encoder_01.png b/docs/assets/img/product_pics/module/module_example/ENCODER/example_faces_encoder_01.png
new file mode 100644
index 00000000..6e594f98
Binary files /dev/null and b/docs/assets/img/product_pics/module/module_example/ENCODER/example_faces_encoder_01.png differ
diff --git a/docs/assets/img/product_pics/unit/finger_sch.JPG b/docs/assets/img/product_pics/unit/finger_sch.JPG
new file mode 100644
index 00000000..f0c99787
Binary files /dev/null and b/docs/assets/img/product_pics/unit/finger_sch.JPG differ
diff --git a/docs/assets/img/product_pics/unit/unit_extio_01.png b/docs/assets/img/product_pics/unit/unit_extio_01.png
new file mode 100644
index 00000000..865b95a2
Binary files /dev/null and b/docs/assets/img/product_pics/unit/unit_extio_01.png differ
diff --git a/docs/assets/img/product_pics/unit/unit_extio_02.png b/docs/assets/img/product_pics/unit/unit_extio_02.png
new file mode 100644
index 00000000..affb1912
Binary files /dev/null and b/docs/assets/img/product_pics/unit/unit_extio_02.png differ
diff --git a/docs/assets/img/product_pics/unit/unit_extio_grove_a.png b/docs/assets/img/product_pics/unit/unit_extio_grove_a.png
new file mode 100644
index 00000000..b73e1530
Binary files /dev/null and b/docs/assets/img/product_pics/unit/unit_extio_grove_a.png differ
diff --git a/docs/assets/img/product_pics/unit/unit_finger_01.png b/docs/assets/img/product_pics/unit/unit_finger_01.png
new file mode 100644
index 00000000..fe568f3f
Binary files /dev/null and b/docs/assets/img/product_pics/unit/unit_finger_01.png differ
diff --git a/docs/assets/img/product_pics/unit/unit_finger_02.png b/docs/assets/img/product_pics/unit/unit_finger_02.png
new file mode 100644
index 00000000..f933bbec
Binary files /dev/null and b/docs/assets/img/product_pics/unit/unit_finger_02.png differ
diff --git a/docs/assets/img/product_pics/unit/unit_finger_grove_c.png b/docs/assets/img/product_pics/unit/unit_finger_grove_c.png
new file mode 100644
index 00000000..ca02b360
Binary files /dev/null and b/docs/assets/img/product_pics/unit/unit_finger_grove_c.png differ
diff --git a/docs/assets/img/product_pics/unit/unit_rs485_01.png b/docs/assets/img/product_pics/unit/unit_rs485_01.png
new file mode 100644
index 00000000..15461720
Binary files /dev/null and b/docs/assets/img/product_pics/unit/unit_rs485_01.png differ
diff --git a/docs/assets/img/product_pics/unit/unit_rs485_02.png b/docs/assets/img/product_pics/unit/unit_rs485_02.png
new file mode 100644
index 00000000..3b574f63
Binary files /dev/null and b/docs/assets/img/product_pics/unit/unit_rs485_02.png differ
diff --git a/docs/assets/img/product_pics/unit/unit_rs485_grove_c.png b/docs/assets/img/product_pics/unit/unit_rs485_grove_c.png
new file mode 100644
index 00000000..32610f81
Binary files /dev/null and b/docs/assets/img/product_pics/unit/unit_rs485_grove_c.png differ
diff --git a/docs/en/core/m5stick.md b/docs/en/core/m5stick.md
index 5d476e2a..82b476ad 100644
--- a/docs/en/core/m5stick.md
+++ b/docs/en/core/m5stick.md
@@ -4,7 +4,7 @@
* * *
-:memo:**[Description](#Description)** :bulb:**[Quick Start](en/quick_start/m5core/m5stick_get_started_arduino)** :octocat:**[Example](https://github.com/m5stack/M5Stack/tree/master/examples/Stick/FactoryTest)** :electric_plug:**[Schematic](#Schematic)** 🛒**[Purchase](https://www.aliexpress.com/store/product/M5Stack-Official-New-M5Stick-Mini-Development-Kit-ESP32-1-3-OLED-80mAh-Battery-Inside-Buzzer-IR/3226069_32947692973.html?spm=a2g1y.12024536.productList_5885011.subject_1)**
+:memo:**[Description](#Description)** :bulb:**[Quick Start](en/quick_start/m5core/m5stick_get_started_arduino)** :octocat:**[Example](https://github.com/m5stack/M5Stack/tree/master/examples/Stick/FactoryTest)** :electric_plug:**[Schematic](#Schematic)** 🛒**[Purchase](https://www.aliexpress.com/store/product/M5Stack-Official-New-M5Stick-Mini-Development-Kit-ESP32-1-3-OLED-80mAh-Battery-Inside-Buzzer-IR/3226069_32947692973.html?spm=a2g1y.12024536.productList_5885011.subject_1)** :clapper:**[Related Video](#Related-Video)**
## Description
@@ -49,8 +49,6 @@ There are two version of it. One M5Stick does not contain MPU9250, another versi
| SDA | GPIO22 |
| SCL | GPIO21 |
-
-
## Include
- 1x M5Stick including 80mAh-Battery
@@ -59,6 +57,18 @@ There are two version of it. One M5Stick does not contain MPU9250, another versi
**MPU9250 Version:**
- Some accessories: `WATCH BELT`, `WALL` and `BRICK`
+## Schematic
+
+
+
+If you want the complete schematic, please click [here](https://github.com/m5stack/M5-Schematic/tree/master/Core/m5stick).
+
## Related Link
- **Datasheet** - [ESP32](https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_cn.pdf) - [MPU9250](https://www.invensense.com/wp-content/uploads/2015/02/PS-MPU-9250A-01-v1.1.pdf)
+
+## Related Video
+
+- **m5stack instroduce**
+
+
diff --git a/docs/en/module/encoder.md b/docs/en/module/encoder.md
new file mode 100644
index 00000000..f57225e7
--- /dev/null
+++ b/docs/en/module/encoder.md
@@ -0,0 +1,124 @@
+# ENCODER
+
+
+
+***
+
+:memo:**[Description](#Description)** :octocat:**[Example](#Example)** :electric_plug:**[Schematic](#Schematic)** 🛒**[Purchase](https://pt.aliexpress.com/store/product/M5Stack-Encoder-Panel-for-M5Stack-FACES-ESP32-Pocket-Computer-with-12pcs-NeoPixel-LED-MEGA328-Inside-I2C/3226069_32960440900.html?spm=a2g1y.12024536.productList_5885013.subject_10)**
+
+## Description
+
+ENCODERis a rotary encoder module in the FACES series. it need to stack FACES base and M5Core to use. ENCODER can output the rotation angle, whether the knob presses and control the lighting effects of RGB lights.
+
+ENCODER communicates with M5Core through IIC(the address of IIC is 0x5E).
+
+
+
+## Feature
+
+- 12 RGB Led
+- IIC communication
+- Simple API for programming
+
+## Function
+
+**Control single RGB**
+
+```arduino
+/*
+ Parameter:
+ led_index: 0 ~ 11
+ r, g, b: 0 ~ 254
+*/
+void Led(int led_index, int r, int g, int b){
+ // IIC send data
+ Wire.beginTransmission(Faces_Encoder_I2C_ADDR);
+ Wire.write(led_index);
+ Wire.write(r);
+ Wire.write(g);
+ Wire.write(b);
+ Wire.endTransmission();
+}
+```
+
+**Read encoder increment**
+
+```arduino
+void get_encoder_increment(void){
+ int temp_encoder_increment;
+
+ // IIC read data
+ Wire.requestFrom(Faces_Encoder_I2C_ADDR, 3);
+ if(Wire.available()){
+ temp_encoder_increment = Wire.read();// get increment
+ button_state = Wire.read();// get button value
+ }
+ if(temp_encoder_increment > 127){//anti-clockwise
+ direction = 1;// flag for encoder direction
+ encoder_increment = 256 - temp_encoder_increment;
+ }
+ else{// clockwise
+ direction = 0;
+ encoder_increment = temp_encoder_increment;
+ }
+}
+```
+
+## Include
+
+- 1x ENCODER
+
+## Related Link
+
+- **[Offical Video](https://www.youtube.com/channel/UCozgFVglWYQXbvTmGyS739w)**
+
+- **[Forum](http://forum.m5stack.com/)**
+
+- **[The Firmware of inside MEGA328](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Module/ENCODER/firmware_328p/FacesEncoder328)**
+
+## Example
+
+### Arduino IDE
+
+*If you want the complete code `faces_encoder.ino`, please click [here](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Module/ENCODER/Arduino/faces_encoder).*
+
+```arduino
+/*
+* faces_encoder.ino
+*/
+#include
+
+#define Faces_Encoder_I2C_ADDR 0X5E
+
+// declaration
+int encoder_increment;//positive: clockwise nagtive: anti-clockwise
+uint16_t encoder_value=0;
+int button_state;
+uint8_t direction;//0: clockwise 1: anti-clockwise
+int temp_encoder_increment;
+
+// initialization
+M5.begin();
+Wire.begin();
+
+// get data from ENCONDER
+Wire.requestFrom(Faces_Encoder_I2C_ADDR, 3);
+if(Wire.available()){
+ temp_encoder_increment = Wire.read();// the first byte: increment
+ button_state = Wire.read();// the second byte: button value
+}
+
+// IIC send data, 4bytes
+Wire.beginTransmission(Faces_Encoder_I2C_ADDR);
+Wire.write(led_index);
+Wire.write(r);
+Wire.write(g);
+Wire.write(b);
+Wire.endTransmission();
+```
+
+
+
+
diff --git a/docs/en/unit/extio.md b/docs/en/unit/extio.md
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/en/unit/finger.md b/docs/en/unit/finger.md
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/en/unit/heart.md b/docs/en/unit/heart.md
index 874c97ce..fc6c332c 100644
--- a/docs/en/unit/heart.md
+++ b/docs/en/unit/heart.md
@@ -92,7 +92,7 @@ void loop()
## Schematic
-
+
### PinMap
diff --git a/docs/en/unit/rs485.md b/docs/en/unit/rs485.md
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/ja/core/m5stick.md b/docs/ja/core/m5stick.md
index c9e5c055..82fbe31d 100644
--- a/docs/ja/core/m5stick.md
+++ b/docs/ja/core/m5stick.md
@@ -71,6 +71,14 @@
- `WALL`
- `BRICK`
+## 回路図
+
+
+
+回路図リンク
+
+https://github.com/m5stack/M5-Schematic/tree/master/Core/m5stick
+
## 関連リンク
- **データシート** - [ESP32](https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_cn.pdf) - [MPU9250](https://www.invensense.com/wp-content/uploads/2015/02/PS-MPU-9250A-01-v1.1.pdf)
diff --git a/docs/zh_CN/core/m5stick.md b/docs/zh_CN/core/m5stick.md
index 2dd106a2..35127569 100644
--- a/docs/zh_CN/core/m5stick.md
+++ b/docs/zh_CN/core/m5stick.md
@@ -4,7 +4,7 @@
* * *
-:memo:**[描述](#描述)** :bulb:**[上手指南](zh_CN/quick_start/m5core/m5stick_get_started_arduino)** :octocat:**[例程](https://github.com/m5stack/M5Stack/tree/master/examples/Stick/FactoryTest)** :electric_plug:**[原理图](#原理图)** 🛒**[购买链接](https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-1172588106.11.257b425esTi92S&id=581055502939)** :clapper:**[相关视频](#相关视频)**
+:memo:**[描述](#描述)** :bulb:**[上手指南](zh_CN/quick_start/m5stick/m5stick_quick_start)** :octocat:**[例程](https://github.com/m5stack/M5Stack/tree/master/examples/Stick/FactoryTest)** :electric_plug:**[原理图](#原理图)** 🛒**[购买链接](https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-1172588106.11.257b425esTi92S&id=581055502939)** :clapper:**[相关视频](#相关视频)**
## 描述
@@ -59,6 +59,12 @@ M5Stick有两个版本,灰色外壳是无PSRAM的版本,白色外壳是有MP
**MPU9250 版本:**
- 一些配件: `WATCH BELT`, `WALL` and `BRICK`
+## 原理图
+
+
+
+完整原理图请点击[这里](https://github.com/m5stack/M5-Schematic/tree/master/Core/m5stick)。
+
## 相关链接
- **数据手册** - [ESP32](https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_cn.pdf) - [MPU9250](https://www.invensense.com/wp-content/uploads/2015/02/PS-MPU-9250A-01-v1.1.pdf)
diff --git a/docs/zh_CN/module/encoder.md b/docs/zh_CN/module/encoder.md
index 4bc12ce9..7cf5d217 100644
--- a/docs/zh_CN/module/encoder.md
+++ b/docs/zh_CN/module/encoder.md
@@ -4,39 +4,70 @@
***
-:memo:**[描述](#描述)** 🛒**[购买链接](https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-1172588106.11.12b9425efVP5Y2&id=583870225775)**
+:memo:**[描述](#描述)** **[例程](#例程)** 🛒**[购买链接](https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-1172588106.11.12b9425efVP5Y2&id=583870225775)**
## 描述
-ENCODER是一款FACES系列中的旋转编码器模块,需要堆叠了FACES底座和主控M5Core来使用。能输出旋转角度大小,旋钮是否按下这些信息。
+ENCODER是一款FACES系列中的旋转编码器模块,需要堆叠了FACES底座和主控M5Core来使用。能输出旋转角度大小,旋钮是否按下这些信息,以及控制RGB灯圈的灯光效果。
-IIC地址为0X5E
+ENCODER与M5Core之间通过IIC通信,IIC地址为0X5E。
+
+
## 特性
- 12颗RGB灯
-- 3.5 mm耳机插孔和麦克风(麦克风位置需要用户自行焊接O欧姆电阻来使能)
-- Parameter:
-- GSM/GPRS
-- 支持频宽:850/900/1800/1900MHz
+- IIC通信,编程接口简单
-## 管脚映射
+## 功能函数
-*SIM800与M5Core堆叠之后,它们之间通过UART2通信*
+**控制RGB灯圈**
-**SIM800**
+```arduino
+/*
+ Parameter:
+ led_index: 0 ~ 11
+ r, g, b: 0 ~ 254
+*/
+void Led(int led_index, int r, int g, int b){
+ // IIC send data
+ Wire.beginTransmission(Faces_Encoder_I2C_ADDR);
+ Wire.write(led_index);
+ Wire.write(r);
+ Wire.write(g);
+ Wire.write(b);
+ Wire.endTransmission();
+}
+```
-| SIM800 Pin | ESP32 Chip |
-| :----------: |:------------: |
-| TXD | U2RXD(GPIO16) |
-| RXD | U2TXD(GPIO17) |
-| RST | GPIO5 |
+**读取编码器增量**
+
+```arduino
+void get_encoder_increment(void){
+ int temp_encoder_increment;
+
+ // IIC read data
+ Wire.requestFrom(Faces_Encoder_I2C_ADDR, 3);
+ if(Wire.available()){
+ temp_encoder_increment = Wire.read();// get increment
+ button_state = Wire.read();// get button value
+ }
+ if(temp_encoder_increment > 127){//anti-clockwise
+ direction = 1;// flag for encoder direction
+ encoder_increment = 256 - temp_encoder_increment;
+ }
+ else{// clockwise
+ direction = 0;
+ encoder_increment = temp_encoder_increment;
+ }
+}
+```
## 包含
-- 1x SIM800L模块
+- 1x ENCODER模块
## 相关链接
@@ -44,27 +75,49 @@ IIC地址为0X5E
- **[官方论坛](http://forum.m5stack.com/)**
-
+- **[模块内MEGA328固件](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Module/ENCODER/firmware_328p/FacesEncoder328)**
-
+### Arduino IDE
-
+#define Faces_Encoder_I2C_ADDR 0X5E
+
+// declaration
+int encoder_increment;//positive: clockwise nagtive: anti-clockwise
+uint16_t encoder_value=0;
+int button_state;
+uint8_t direction;//0: clockwise 1: anti-clockwise
+int temp_encoder_increment;
+
+// initialization
+M5.begin();
+Wire.begin();
+
+// get data from ENCONDER
+Wire.requestFrom(Faces_Encoder_I2C_ADDR, 3);
+if(Wire.available()){
+ temp_encoder_increment = Wire.read();// the first byte: increment
+ button_state = Wire.read();// the second byte: button value
+}
+
+// IIC send data, 4bytes
+Wire.beginTransmission(Faces_Encoder_I2C_ADDR);
+Wire.write(led_index);
+Wire.write(r);
+Wire.write(g);
+Wire.write(b);
+Wire.endTransmission();
+```
+
+
\ No newline at end of file
diff --git a/docs/zh_CN/quick_start/m5core/m5stack_core_get_started_Arduino_Windows.md b/docs/zh_CN/quick_start/m5core/m5stack_core_get_started_Arduino_Windows.md
index 5f54c76d..ea3584a7 100644
--- a/docs/zh_CN/quick_start/m5core/m5stack_core_get_started_Arduino_Windows.md
+++ b/docs/zh_CN/quick_start/m5core/m5stack_core_get_started_Arduino_Windows.md
@@ -100,4 +100,4 @@ void loop() {
编译并上传这个程序,如果成功后,就会看到屏幕上显示"Hello World!" "M5Stack is running successfully!"啦!
-?> *如果你想升级Arduino-M5Stack库的话,请移步阅读这篇文档[如何升级Arduino-M5Stack库](/zh_CN/related_documents/upgrade_m5stack_lib).*
\ No newline at end of file
+?> *如果你想升级Arduino-M5Stack库的话,请移步阅读这篇文档[如何升级Arduino-M5Stack库](zh_CN/related_documents/upgrade_m5stack_lib).*
\ No newline at end of file
diff --git a/docs/zh_CN/quick_start/m5stick/m5stick_quick_start.md b/docs/zh_CN/quick_start/m5stick/m5stick_quick_start.md
new file mode 100644
index 00000000..09eb1f67
--- /dev/null
+++ b/docs/zh_CN/quick_start/m5stick/m5stick_quick_start.md
@@ -0,0 +1,15 @@
+# M5Stick上手指南
+
+## 选择你需要的编程语言
+
+*使用Arduino/C++编程的话,选择Arduino;使用Blockly/MicroPython,选择UiFlow(Blockly/MicroPython)*
+
+
|
+---|---
+[Arduino](en/quick_start/m5stick/m5stick_quick_start_with_arduino) | [UiFlow(Blockly/MicroPython)](en/quick_start/m5stick/m5stick_quick_start_with_uiflow)
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/zh_CN/quick_start/m5core/m5stick_get_started_arduino.md b/docs/zh_CN/quick_start/m5stick/m5stick_quick_start_with_arduino.md
similarity index 64%
rename from docs/zh_CN/quick_start/m5core/m5stick_get_started_arduino.md
rename to docs/zh_CN/quick_start/m5stick/m5stick_quick_start_with_arduino.md
index 8dbc7c91..039e369b 100644
--- a/docs/zh_CN/quick_start/m5core/m5stick_get_started_arduino.md
+++ b/docs/zh_CN/quick_start/m5stick/m5stick_quick_start_with_arduino.md
@@ -1,20 +1,18 @@
-# M5Stick 上手指南(Arduino)
-
-*M5Stick因为主控芯片同样为ESP32,所以环境搭建与[M5Core](zh_CN/quick_start/m5core/m5stack_core_quick_start)基本一样,用户可以参考M5Core的步骤进行,所以步骤二会跳转到M5Core的环境搭建。*
-
-## 1. 安装`U8g2`库
-
-如果你已经安装了`U8g2`库的话,直接跳到第二步往下执行。
-如果还没的话,打开Arduino IDE,并点击`Sketch`->`Include Library`->`Manage Libraries...`,搜索`U8g2`进行安装。
-
-
-
-
-
-## 2. Arduino-ESP32的开发设置
-
-请根据你PC的操作系统类型阅读对应的文档。以下会跳转到M5Core一样的环境搭建步骤中。
-
-
|
----|---
-[MacOS](/zh_CN/quick_start/m5core/m5stack_core_get_started_Arduino_MacOS) | [Windows](/zh_CN/quick_start/m5core/m5stack_core_get_started_Arduino_Windows)
+# M5Stick 上手指南(Arduino)
+
+## 1. 安装`U8g2`库
+
+如果你已经安装了`U8g2`库的话,直接跳到第二步往下执行。
+如果还没的话,打开Arduino IDE,并点击`Sketch`->`Include Library`->`Manage Libraries...`,搜索`U8g2`进行安装。
+
+
+
+
+
+## 2. Arduino-ESP32的开发设置
+
+请根据你PC的操作系统类型阅读对应的文档。M5Stick因为主控芯片同样为ESP32,所以环境搭建与[M5Core](zh_CN/quick_start/m5core/m5stack_core_quick_start)基本一样,以下会跳转到M5Core一样的环境搭建步骤中。
+
+
|
+---|---
+[MacOS](/zh_CN/quick_start/m5core/m5stack_core_get_started_Arduino_MacOS) | [Windows](/zh_CN/quick_start/m5core/m5stack_core_get_started_Arduino_Windows)
diff --git a/docs/zh_CN/quick_start/m5stick/m5stick_quick_start_with_uiflow.md b/docs/zh_CN/quick_start/m5stick/m5stick_quick_start_with_uiflow.md
new file mode 100644
index 00000000..9e613827
--- /dev/null
+++ b/docs/zh_CN/quick_start/m5stick/m5stick_quick_start_with_uiflow.md
@@ -0,0 +1,57 @@
+# M5Stick快速上手
+
+:octocat:**[例程](#例程)**
+
+
+
+## 更新固件
+
+>将stick更新到最新固件版本,以获得更棒的体验
+
+*如果需要更新或自行烧录固件的话,请点击[这里](zh_CN/related_documents/how_to_burn_firmware)*
+
+
+
+## 开关机操作
+
+>位于机身左侧下方的按键是电源键,单击为开机,运行时再次按下为复位,如需关机则需快速按下电源键两次
+
+>除了电源键以外,stick还提供了另一个A按键可供你编程使用
+
+
+
+## 配置WIFI
+
+>首次开机时,会默认进入配置页面,stick的屏幕上显示了**热点的名称(SSID)**,以及**网络配置的地址(192.168.4.1)**
+>这时候可以使用手机连接这个热点,待连接成功后,使用浏览器输入网络配置地址,进入WIFI配置页面,输入个人WIFI的信息,点击保存,等待连接成功
+
+
+
+## 配置API Key
+
+>配置WIFI成功后stick会自动进行重启,并进入编程模式,当屏幕显示“Done”,则表示已经成功连接上了网络,访问[flow.m5stack.com](http://flow.m5stack.com/)进入编程UIFlow编程页面
+
+>点击屏幕右上角的菜单中的设置按钮,填写stick屏幕上显示的**API Key**,点击保存,开始编程吧!
+
+
+
+## 操作补充
+
+>如果下载了程序,那么每次开机都会默认运行,如果想要重新运行或下载程序,那么需要在重启出现Logo时单击按键A,再次进入编程模式
+
+>如果想要配置新的WIFI,那么需要在重启出现Logo时,长按按键A一秒以上后松开,进入配置页面
+
+>如果错过了操作时间,可以单击复位按钮,重启再次操作
+
+
+## 关于编程
+
+>stick的屏幕**分辨率为64x128**,所以当你UIFlow中往屏幕添加图形的时候,需要将形状放置到一定范围之内才能显示,目前只支持显示矩形图案,以及标签
+
+>我们会尽快针对stick做出一系列兼容UIFlow的优化,敬请期待
+
+## 例程
+
+>点击下载[例程](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Core/M5Stick/UIFlow),并在UIFlow中打开例程,下载例程到stick中。效果:白色方块会在屏幕上来回滚动
+
+
\ No newline at end of file
diff --git a/docs/zh_CN/unit/extio.md b/docs/zh_CN/unit/extio.md
new file mode 100644
index 00000000..7a4291b9
--- /dev/null
+++ b/docs/zh_CN/unit/extio.md
@@ -0,0 +1 @@
+https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-1172588106.15.3b86425eaoE9zU&id=585289717492
\ No newline at end of file
diff --git a/docs/zh_CN/unit/finger.md b/docs/zh_CN/unit/finger.md
new file mode 100644
index 00000000..5195dc4e
--- /dev/null
+++ b/docs/zh_CN/unit/finger.md
@@ -0,0 +1,34 @@
+# FINGER - 指纹识别
+
+

+
+***
+
+:memo:**[描述](#描述)** :octocat:**[例程](#例程)** :electric_plug:**[原理图](#原理图)** 🛒**[购买链接](https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-1172588106.18.3b86425eaoE9zU&id=585289225333)**
+
+## 描述
+
+FINGER是一款集成FPC1220A的指纹识别Unit,连接M5Core,能实现多人的指纹信息录入、删除,实现身份识别。
+
+该unit与M5Core之间通过串口(UART)通信,
+
+串口参数:波特率(921600), 起始位(1位), 停止位(1位), 校验位(无)
+
+## 特性
+
+- 设置指纹识别比对等级
+
+## 原理图
+
+
+
+### 管脚映射
+
+
+| M5Core(GROVE接口C) | U2RXD | U2TXD | 5V | GND |
+ | FINGER指纹识别Unit | TXD | RXD | 5V | GND |
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/zh_CN/unit/heart.md b/docs/zh_CN/unit/heart.md
index 4b2b0d54..d917baab 100644
--- a/docs/zh_CN/unit/heart.md
+++ b/docs/zh_CN/unit/heart.md
@@ -86,7 +86,7 @@ void loop()
## 原理图
-
+
### 管脚映射
diff --git a/docs/zh_CN/unit/rfid.md b/docs/zh_CN/unit/rfid.md
index d76cd287..7a3335c4 100644
--- a/docs/zh_CN/unit/rfid.md
+++ b/docs/zh_CN/unit/rfid.md
@@ -1,7 +1,7 @@
# RFID - 射频识别
-

+

***
diff --git a/docs/zh_CN/unit/rs485.md b/docs/zh_CN/unit/rs485.md
new file mode 100644
index 00000000..1aa10159
--- /dev/null
+++ b/docs/zh_CN/unit/rs485.md
@@ -0,0 +1,3 @@
+
+
+https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-1172588106.12.3b86425eaoE9zU&id=585567251998
\ No newline at end of file