diff --git a/docs/assets/img/product_pics/module/faces_finger/faces_finger_04.jpg b/docs/assets/img/product_pics/module/faces_finger/faces_finger_04.jpg
new file mode 100644
index 00000000..eecb266b
Binary files /dev/null and b/docs/assets/img/product_pics/module/faces_finger/faces_finger_04.jpg differ
diff --git a/docs/assets/img/product_pics/module/faces_finger/faces_finger_05.jpg b/docs/assets/img/product_pics/module/faces_finger/faces_finger_05.jpg
new file mode 100644
index 00000000..86cac12c
Binary files /dev/null and b/docs/assets/img/product_pics/module/faces_finger/faces_finger_05.jpg differ
diff --git a/docs/assets/img/product_pics/module/faces_rfid/faces_rfid_04.jpg b/docs/assets/img/product_pics/module/faces_rfid/faces_rfid_04.jpg
new file mode 100644
index 00000000..bf3f677a
Binary files /dev/null and b/docs/assets/img/product_pics/module/faces_rfid/faces_rfid_04.jpg differ
diff --git a/docs/assets/img/product_pics/unit/acc/acc_04.jpg b/docs/assets/img/product_pics/unit/acc/acc_04.jpg
new file mode 100644
index 00000000..3dbac4e9
Binary files /dev/null and b/docs/assets/img/product_pics/unit/acc/acc_04.jpg differ
diff --git a/docs/assets/img/product_pics/unit/dc_motor/dc_motor_04.jpg b/docs/assets/img/product_pics/unit/dc_motor/dc_motor_04.jpg
new file mode 100644
index 00000000..7322f74b
Binary files /dev/null and b/docs/assets/img/product_pics/unit/dc_motor/dc_motor_04.jpg differ
diff --git a/docs/assets/img/product_pics/unit/op180/op180_04.jpg b/docs/assets/img/product_pics/unit/op180/op180_04.jpg
new file mode 100644
index 00000000..e0e03239
Binary files /dev/null and b/docs/assets/img/product_pics/unit/op180/op180_04.jpg differ
diff --git a/docs/assets/img/product_pics/unit/op90/op90_04.jpg b/docs/assets/img/product_pics/unit/op90/op90_04.jpg
new file mode 100644
index 00000000..e0e03239
Binary files /dev/null and b/docs/assets/img/product_pics/unit/op90/op90_04.jpg differ
diff --git a/docs/en/faq.md b/docs/en/faq.md
index ceba6228..3f4e8360 100644
--- a/docs/en/faq.md
+++ b/docs/en/faq.md
@@ -24,7 +24,7 @@
- Add the following statement to functioin Setup( ){ }
+ Add the following statement to function Setup( ){ }
```arduino
dacWrite(M5STACKFIRE_SPEAKER_PIN, 0);
diff --git a/docs/en/module/faces_finger.md b/docs/en/module/faces_finger.md
new file mode 100644
index 00000000..ca9d5ba7
--- /dev/null
+++ b/docs/en/module/faces_finger.md
@@ -0,0 +1,74 @@
+# Module FACES FINFER {docsify-ignore-all}
+
+
+
+***
+
+:memo:**[Description](#Description)** :electric_plug:**[Schematic](#Schematic)** 🛒**[Purchase](https://www.aliexpress.com/store/product/M5Stack-New-Arrival-GOPLUS-Module-with-MEGA328P-IR-Transmitter-and-Receiver-suit-for-ESP32-Kit/3226069_33010785963.html?spm=2114.12010615.8148356.1.a8747842Ll7Apb)** :octocat:**[Code](#Code)**
+
+
+## Description
+
+**FACE-FINGER** is another FACES kit compatible panel, with the fingerprinter recognition module on it. Same as FINGER units, FACE-FINGER integrated the FPC1020A capacitive fingerprint recognition module and Fingerprint recognition algorithm chip.
+
+It can identify fingerprint information entrance, fingerprint deletion, fingerprint search, feature extraction for multiple people and so on. The unit also can be set fingerprint recognition comparison level and different security level. With FACES panel, you can have an upgrade level of Fingerprint management machine with a more complete and enclosed pattern.
+
+
+
+
+Communication Protocol: UART.
+
+## Product Features
+
+- FACES bottom compatible
+- Interface Serial: UART2 (16/17)
+- FPC1020A
+ - Size sensing array: 192*192 Pixel
+ - Pixel resolution: 256 grayscale levels (8 Bit)
+ - The supply voltage VDD: typical 1.8 V
+ - TX Supply voltage Internal generated: <3.3 V
+ - Supply current image: Typical ~5 mA
+ - Supply current sleep mode: Typical when detecting finger 10 µA
+ - Supply current deep sleep: Typical <10 µA
+ - Clock frequency: Serial SPI communication <12 MHz
+ - Operating temperature: - 40 … + 85 °C
+ - Storage temperature : - 40 … + 85 °C
+ - Resolution: 508 DPI
+
+## Include
+
+- 1x M5Stack GoPlus Module
+
+## Schematic
+
+
+
+
+### PinMap
+
+
+
M5Core
U2RXD(16)
U2TXD(17)
5V
GND
+
FINGER Unit
TXD
RXD
5V
GND
+
+
+
+## Document
+-
+- Protocol **[FINGER series communication protocol](https://github.com/m5stack/M5-Schematic/blob/master/Units/finger/biovo_fingerprint_Protocol_en.DOC)**
+
+- Datasheet **[FPC1020](http://www.shenzhen2u.com/doc/Module/Fingerprint/710-FPC1020_PB3_Product-Specification.pdf)**
+
+
+## Code
+
+- Driver firmware - **[GoPlus](https://github.com/m5stack/GoPlus/tree/master/src)**
+
+- Test Code - **[GoPlus](https://github.com/m5stack/GoPlus/tree/master/test)**
+
+## Application
+- Time card punching machine
+- Security
+
+## Video
+
+- **[Demo Video](https://www.youtube.com/channel/UCozgFVglWYQXbvTmGyS739w)**
diff --git a/docs/en/module/faces_rfid.md b/docs/en/module/faces_rfid.md
new file mode 100644
index 00000000..90db31a4
--- /dev/null
+++ b/docs/en/module/faces_rfid.md
@@ -0,0 +1,69 @@
+# Module FACES RFID {docsify-ignore-all}
+
+
+
+***
+
+:memo:**[Description](#Description)** :electric_plug:**[Schematic](#Schematic)** 🛒**[Purchase](https://www.aliexpress.com/store/product/M5Stack-New-Arrival-GOPLUS-Module-with-MEGA328P-IR-Transmitter-and-Receiver-suit-for-ESP32-Kit/3226069_33010785963.html?spm=2114.12010615.8148356.1.a8747842Ll7Apb)** :octocat:**[Code](#Code)**
+
+
+## Description
+
+**FACE-RFID** is another FACES kit compatible panel, with the Radio frequency identification on it. Same as RFID units, it is MFRC522-based. The MFRC522 operates in the 13.56MHz frequency band and uses the modulation and demodulation principle to interact with the proximity RF card.
+
+This unit can realize the function of the card reading and writing device, to identify and record multiple card information, to encode and authority an RF card. With FACES panel, you can have an upgrade level of RFID device with a more complete and enclosed pattern.
+
+
+
+
+
+Communication Protocol: I2C.
+
+## Product Features
+- FACES bottom compatible
+- Interface Serial: UART2 (16/17)
+- MFRC522:
+ - Operating frequency: 13.56 MHz
+ - I2C data rate: Fast mode: up to 400 Kbit/s; High-speed mode: up to 3400 Kbit/s
+ - RC522 Transceiver Buffer: 64 bytes
+ - Supported protocol: ISO14443A, MIFARE, and NTAG
+ - Operate temperature: -20℃-85℃
+ - How long data be saved for > 10 years
+ - Reading and writing distance: < 8 cm
+ - Program Platform: Arduino, UIFlow(Blockly, Python)
+ - Two Lego installation holes
+
+## Include
+
+- 1x M5Stack GoPlus Module
+
+## Schematic
+
+
+
+### PinMap
+
+
+
M5Core
SCL(22)
SDA(21)
5V
GND
+
FACES RFID
SCL
SDA
5V
GND
+
+
+
+## Document
+
+- Datasheet **[MFRC522](**http://www.shenzhen2u.com/doc/Module/Fingerprint/710-FPC1020_PB3_Product-Specification.pdf**)**
+
+
+## Code
+
+- Driver firmware - **[GoPlus](https://github.com/m5stack/GoPlus/tree/master/src)**
+
+- Test Code - **[GoPlus](https://github.com/m5stack/GoPlus/tree/master/test)**
+
+## Application
+- ReaderÂ-Tag
+- Security
+
+## Video
+
+- **[Demo Video](https://www.youtube.com/channel/UCozgFVglWYQXbvTmGyS739w)**
diff --git a/docs/en/unit/acc.md b/docs/en/unit/acc.md
new file mode 100644
index 00000000..82c17e0a
--- /dev/null
+++ b/docs/en/unit/acc.md
@@ -0,0 +1,113 @@
+# Unit ACC {docsify-ignore-all}
+
+
+
+***
+
+:memo:**[Description](#Description)** :octocat:**[Example](#Example)** :electric_plug:**[Schematic](#Schematic)** 🛒**[Purchase](https://www.aliexpress.com/store/product/M5Stack-Official-ADC-Unit-16-Bit-I2C-GROVE-ADS1100-Module-0V-to-12V-analog-to-digital/3226069_32946953374.html?spm=a2g1x.12024536.productList_5885013.pic_7)**
+
+## Description
+
+**ACC** is a motion sensor Unit. Integrated with ADXL 345, ACC is able to obtain 3- axis of Acceleration. ADXL 345 is a small, thin, ultralow power, 3-axis accelerometer with high resolution (13-bit) measurement at up to ±16 g. Digital output data is formatted as 16-bit twos complement and is accessible through either an SPI (3- or 4-wire) or I2C digital interface. In this Unit, we used I2C series interface.
+
+
+*What is an accelerometer?*
+An accelerometer is an electromechanical device that will measure acceleration forces. These forces may be static, like the constant force of gravity pulling at your feet, or they could be dynamic - caused by moving or vibrating the accelerometer.
+
+*What are accelerometers useful for?*
+By measuring the amount of static acceleration due to gravity, you can find out the angle the device is tilted at with respect to the earth. By sensing the amount of dynamic acceleration, you can analyze the way the device is moving. At first, measuring tilt and acceleration doesn't seem all that exciting. However, engineers have come up with many ways to make really useful products with them.
+
+
+
+### Product Features
+
+- feature:
+- Tiny
+- ultralow power
+- 3-axis accelerometer
+
+## Include
+
+- 1x ADC unit
+- 1x GROVE Cable
+- 1x HT3.96 Male Socket(2 pins)
+
+## Application
+
+- Building and structural monitoring
+- Navigation
+- Orientation sensing
+
+
+
+## Dcumentation
+
+- Datasheet - **[ADS1100](http://pdf1.alldatasheet.com/datasheet-pdf/view/619024/TI1/ADS1100.html)**
+- M5Stack Community - **[Forum](http://forum.m5stack.com/)**
+
+## Schematic
+
+
+### PinMap
+
+
+
M5Core ( GROVE A )
GPIO22
GPIO21
5V
GND
+
ACC Unit
SCL
SDA
5V
GND
+
+
+## EasyLoader
+
+
+
+
+
+>1.EasyLoader is a simple and fast program burner, and each product page has a product-related case program for EasyLoader.
+
+>2.After downloading the software, double-click to run the application, connect the M5 device to the computer via the data cable, select the port parameters, and click **"Burn"** to start burning.
+
+!>3.The CP210X (USB driver) needs to be installed before the EasyLoader is burned. [Click here to view the driver installation tutorial](en/related_documents/establish_serial_connection)
+
+## Example
+
+### 1. Arduino IDE
+
+*The below code is incomplete(just for usage). If you want the complete code, please click [here](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/ADC/Arduino/ADC_ADS1100).*
+
+```arduino
+#include
+#include
+#include "ADS1100.h"
+
+#define ADS1100_DEFAULT_ADDRESS 0x48
+
+// declaration
+byte error;
+int8_t address;
+
+//new a object
+ADS1100 ads;
+
+// initialization
+M5.begin(true, false, false);
+ads.getAddr_ADS1100(ADS1100_DEFAULT_ADDRESS);// 0x48, 1001 000 (ADDR = GND)
+ads.setGain(GAIN_ONE); // 1x gain(default)
+ads.setMode(MODE_CONTIN); // Continuous conversion mode (default)
+ads.setRate(RATE_8); // 8SPS (default)
+ads.setOSMode(OSMODE_SINGLE); // Set to start a single-conversion
+ads.begin();
+
+// read data
+address = ads.ads_i2cAddress;
+Wire.beginTransmission(address);
+Wire.endTransmission();
+ads.Measure_Differential();
+```
+
+### 2. UIFlow
+
+*If you want the complete code, please click [here](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/ADC/UIFlow).*
+
+
+
+
+
diff --git a/docs/en/unit/dc_motor.md b/docs/en/unit/dc_motor.md
new file mode 100644
index 00000000..4f9c0f00
--- /dev/null
+++ b/docs/en/unit/dc_motor.md
@@ -0,0 +1,93 @@
+# Unit DC MOTOR {docsify-ignore-all}
+
+
+
+***
+
+:memo:**[Description](#Description)** :octocat:**[Example](#Example)** :electric_plug:**[Schematic](#Schematic)** 🛒**[Purchase](https://www.aliexpress.com/store/product/M5Stack-Official-ADC-Unit-16-Bit-I2C-GROVE-ADS1100-Module-0V-to-12V-analog-to-digital/3226069_32946953374.html?spm=a2g1x.12024536.productList_5885013.pic_7)**
+
+## Description
+
+This N20 motor is has a 5V supply voltage and comes complete with a built-in metal gearbox. The output shaft has a rotational speed of 60 RPM (no load), and a load RPM of 48. These are also the same motors we use in our BALA robot car and have a nice high build quality feel to them. Specifications can be seen below.
+
+
+
+### Product Features
+
+- single-direction rotation
+
+## Include
+
+- 1x ADC unit
+- 1x GROVE Cable
+- 1x HT3.96 Male Socket(2 pins)
+
+## Application
+
+- Automation
+- Vibration motor
+
+
+
+## Dcumentation
+
+
+## Schematic
+
+
+
+## EasyLoader
+
+
+
+
+
+>1.EasyLoader is a simple and fast program burner, and each product page has a product-related case program for EasyLoader.
+
+>2.After downloading the software, double-click to run the application, connect the M5 device to the computer via the data cable, select the port parameters, and click **"Burn"** to start burning.
+
+!>3.The CP210X (USB driver) needs to be installed before the EasyLoader is burned. [Click here to view the driver installation tutorial](en/related_documents/establish_serial_connection)
+
+## Example
+
+### 1. Arduino IDE
+
+*The below code is incomplete(just for usage). If you want the complete code, please click [here](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/ADC/Arduino/ADC_ADS1100).*
+
+```arduino
+#include
+#include
+#include "ADS1100.h"
+
+#define ADS1100_DEFAULT_ADDRESS 0x48
+
+// declaration
+byte error;
+int8_t address;
+
+//new a object
+ADS1100 ads;
+
+// initialization
+M5.begin(true, false, false);
+ads.getAddr_ADS1100(ADS1100_DEFAULT_ADDRESS);// 0x48, 1001 000 (ADDR = GND)
+ads.setGain(GAIN_ONE); // 1x gain(default)
+ads.setMode(MODE_CONTIN); // Continuous conversion mode (default)
+ads.setRate(RATE_8); // 8SPS (default)
+ads.setOSMode(OSMODE_SINGLE); // Set to start a single-conversion
+ads.begin();
+
+// read data
+address = ads.ads_i2cAddress;
+Wire.beginTransmission(address);
+Wire.endTransmission();
+ads.Measure_Differential();
+```
+
+### 2. UIFlow
+
+*If you want the complete code, please click [here](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/ADC/UIFlow).*
+
+
+
+
diff --git a/docs/en/unit/finger.md b/docs/en/unit/finger.md
index 3d8aa4ba..3d001d29 100644
--- a/docs/en/unit/finger.md
+++ b/docs/en/unit/finger.md
@@ -8,7 +8,7 @@
## Description
-**FINGER** Unit is a fingerprint sensor. This all-in-one fingerprint sensor makes fingerprint adding,verification,mananging super simple.
+**FINGER** Unit is a fingerprint sensor with FPC1020A inside. This all-in-one fingerprint sensor makes fingerprint adding,verification,mananging super simple.
Uart protocol, Compact size and ultra-low power consumption makes it very attractive to use around M5Stack series product. it performs fast fingerprint matching with highest security level and optimal user convenience. You can program to set the fingerprint recognition comparison level and different security level . if you ever consider secure your project with biometrics,don't forget to include this M5unit **FINGER**.
@@ -50,6 +50,10 @@ UART settings:
- **[FINGER communication protocol](https://github.com/m5stack/M5-Schematic/blob/master/Units/finger/biovo_fingerprint_Protocol_en.DOC)**
+- **[FPC1020 Datasheet](http://www.shenzhen2u.com/doc/Module/Fingerprint/710-FPC1020_PB3_Product-Specification.pdf)**
+
+
+
## Example
### 1. Arduino IDE
diff --git a/docs/en/unit/op180.md b/docs/en/unit/op180.md
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/en/unit/op90.md b/docs/en/unit/op90.md
new file mode 100644
index 00000000..44921333
--- /dev/null
+++ b/docs/en/unit/op90.md
@@ -0,0 +1,95 @@
+# Unit OP 90 {docsify-ignore-all}
+
+
+
+***
+
+:memo:**[Description](#Description)** :octocat:**[Example](#Example)** :electric_plug:**[Schematic](#Schematic)** 🛒**[Purchase](https://www.aliexpress.com/store/product/M5Stack-Official-ADC-Unit-16-Bit-I2C-GROVE-ADS1100-Module-0V-to-12V-analog-to-digital/3226069_32946953374.html?spm=a2g1x.12024536.productList_5885013.pic_7)**
+
+## Description
+
+OP.90 and OP.180 are two limit switches with different orientation placement.
+
+They are used for controlling machinery as part of a control system, as a safety interlock, or to count objects passing a point.A limit switch is an electromechanical device that consists of an actuator mechanically linked to a set of contacts. When an object comes into contact with the actuator, the device operates the contacts to make or break an electrical connection
+
+The actuator of this Unit is consist of a pair of IR part, emitter side and receiver side. The IR emitter will keep sending IR wave while the receiver will keep detecting the IR wave. The IR is directly emitted from one side to another side, so if there's no object in between, the receiver side would get the IR signal. This is how it detecting a break an electrical connection.
+
+
+
+### Product Features
+
+- Horizontal/vertical
+- IR limit switch
+
+## Include
+
+- 1x ADC unit
+- 1x GROVE Cable
+- 1x HT3.96 Male Socket(2 pins)
+
+## Application
+
+- Door switch
+- machinery control
+
+
+## Dcumentation
+
+
+## Schematic
+
+
+
+## EasyLoader
+
+
+
+
+
+>1.EasyLoader is a simple and fast program burner, and each product page has a product-related case program for EasyLoader.
+
+>2.After downloading the software, double-click to run the application, connect the M5 device to the computer via the data cable, select the port parameters, and click **"Burn"** to start burning.
+
+!>3.The CP210X (USB driver) needs to be installed before the EasyLoader is burned. [Click here to view the driver installation tutorial](en/related_documents/establish_serial_connection)
+
+## Example
+
+### 1. Arduino IDE
+
+*The below code is incomplete(just for usage). If you want the complete code, please click [here](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/ADC/Arduino/ADC_ADS1100).*
+
+```arduino
+#include
+#include
+#include "ADS1100.h"
+
+#define ADS1100_DEFAULT_ADDRESS 0x48
+
+// declaration
+byte error;
+int8_t address;
+
+//new a object
+ADS1100 ads;
+
+// initialization
+M5.begin(true, false, false);
+ads.getAddr_ADS1100(ADS1100_DEFAULT_ADDRESS);// 0x48, 1001 000 (ADDR = GND)
+ads.setGain(GAIN_ONE); // 1x gain(default)
+ads.setMode(MODE_CONTIN); // Continuous conversion mode (default)
+ads.setRate(RATE_8); // 8SPS (default)
+ads.setOSMode(OSMODE_SINGLE); // Set to start a single-conversion
+ads.begin();
+
+// read data
+address = ads.ads_i2cAddress;
+Wire.beginTransmission(address);
+Wire.endTransmission();
+ads.Measure_Differential();
+```
+
+### 2. UIFlow
+
+*If you want the complete code, please click [here](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/ADC/UIFlow).*
+
+
\ No newline at end of file