-- **Q2: How to turn off the speaker function of M5Core?**
-
-
-
-
- Add the following statement to function Setup( ){ }
-
- ```arduino
- dacWrite(M5STACKFIRE_SPEAKER_PIN, 0);
- ```
-
+
+
Q2: What is the difference between LoRa and LoRaWAN modules?
+
+
+
+ LoRa module: Ra-02 module, serial communication protocol: SPI, support frequency range 410-525Hz.
+
+ LoRaWAN module: RHF76-052 module, built-in LoRaWAN protocol stack, serial communication, sending AT command control module, support communication with full-duplex LoRaWAN gateway, support dual-band 433-470MHz and 868-915MHz.
+
+
+
-- **Q3: Some modules cannot be downloaded after stacking with M5Core, such as USB module and M5Core stacking.**
-
-
-
-
- Probably after the stack, the pins GPIO0 and M5Core on the M5-Bus bus are not very well connected.
-
- In this case, when downloading the program, GPIO0 should always remain low, but because the contact is not good, GPIO0 can not remain low all the time, so the download fails.
-
- Solution: Manually let GPIO0 connect to GND during the download process to ensure that it is pulled low enough。
-
-
-
-
-- **Q4: After the [M5GO bottom](en/base/m5go_bottom) is stacked with the M5Core, the M5Core cannot be turned on, but the base battery in this M5GO bottom is fully charged.**
-
-
-
-
- It may be that after the stacking, the BATTERY of the lower left corner of the M5-Bus bus on the base is not well connected to the M5Core. This is
- caused by the deviation of the welding position during production. After **the bus pin welding position is slightly biased**, it is easy to see that the BATTERY pin is not in good contact with the M5Core.
-
- Solution: Re-soldering the M5-Bus bus header, the pin header must be strictly aligned with the pad position.
-
-
-
-
-- **Q5: Some computers are connected to the main control, but still can't use Arduino IDE、 ESPFlashDownloadTool or M5Burner to burn the program. For example, the following figure using Arduino IDE.**
-
-
-
-
-
-
-
- Solution: you need to connect the capacitor between RST pin and GND pin in your Core (Capacitance value is more than 0.1 uF) or connect GPIO 0 with GND when downloading your firmware so that GPIO 0 keeps low level for an enough time as the third following picture shows.
-
-
-
-
-
-
-
-
-
-
-- **Q6: What special GPIO pins do you need to pay attention to in ESP32?**
-
-
-
-
- The ESP32 has 34 GPIO pins, of which GPIO 34-39 is only used as an input and cannot be used as an output. Others can be used as both an input and an output pin.
-
-
-
-
-- **Q7: Why does the Stick with MPU9250 burn the factory firmware and press button A, the result shows "No", which means "No 9250"?**
-
-
-
-
- Restart this Stick and then it can display correctly. Because the code to read the MPU9250 is placed in the setup() function which only was executed once when booting. So reboot and let the Stick detect MPU9250 again.
-
-
-
-
-- **Q8: After getting the FACES Kit or downloading the factory program of the FACES Kit, the following error is displayed on the screen. What happened?**
-
-
-
-
-
-
-
-
-
-- **Q9: I can't power on my M5stickC**
-
-
-
-
-
-
-The following operations can restore the device to normal: 1. Short the BAT to GND. 2. Insert the USB cable. 3. After the screen is lit, stop shorting and USB continues to charge the device.
-
-
-
-
-
-- **Q10: M5stickC does not recognize the port (COM)**
-
-
-
-
- M5StickC only supports WIN10 & Linux & MAC free drive, the rest of the operating system requires users to install the driver.
-
- Installation steps: 1. Click the link below to download the driver installation package. 2. Connect the device and open the Computer Device Manager port option. 3. Right click on the unrecognized device and perform a manual update.
-
- Driver download Link
-
-
-
-- **Q11: M5StickC Burning UIFlow Complete but screen has no display**
-
-
-
-
- M5StickC does not automatically reset after the firmware is refreshed by default. You need to manually press the left power button.
-
-
-
-
-- **Q12: UIFlow display has been uploaded or downloaded successfully, the program changed**
-
-
-
-
- The connection between the network and the server may be unstable. It is recommended to restart the M5Stack, refresh the hardware connection status and do it again.
-
-
-
-
-- **Q13: What is the difference between M5StickC and M5StickC+**
-
-
-
-
- M5StickC and M5StickC+ are identical in hardware configuration, but M5StickC+ adds several HATs, which is more cost-effective than purchasing separately.
-
-
-
-- **Q14: M5StickV can not mount TF card**
-
-
-
-
- First, make sure that the format of the TF card is FAT32 and no partition. Some large-capacity SD cards are usually formatted as NTFS, you need to confirm. The following tests are performed on the compatibility of the TF card.
-
- TF card list
-
-
-
-
-- **Q15: Send a zip to V-Training but the received e-mail does not contain a model file**
-
-
-
-
- Carefully check the contents of the email. The training error will be indicated in the email. Only the specified two folders are allowed in the zip. The minimum number of photos and the classification are given. If there is a hidden file, the training will fail.
-
- V-Training tutorial
-
-
-
-
-- **Q16: The serial port is used in the Arduino program, but when running, it is found that the screen is not lit or constantly restarted**
-
-
-
-
- M5.begin()At the time of initialization, the serial port baud rate is 115200 by default. Repeated definition will cause the program to be abnormal. If there is external serial port hardware, connect the hardware and then run.
-
-
- First check your program carefully, confirm that there is no problem, then use M5Burner to erase, check whether it can be successfully cleared, and then burn FactoryTest.ino use arduino to check whether it can be burned. If it can be successfully operated, there is no problem. if MD5 file error occurs repeatedly, the probability that FLASH has been damaged.
-
-
-
-
-- **Q18: How to improve the battery of M5Stack and M5StickC**
-
-
-
-
- First, optimize the program to reduce the number of unnecessary detections; secondly, by calling the sleep function, it is reasonable to sleep and wake up; in addition, the official battery base can be added.
-
-
-
-
-- **Q19: Is M5Stack Can connect 5G frequency band Wi-Fi**
-
-
-
-
- ESP32 chip does not support WiFi in 5G band, only 2.4G can be connected.
-
-
-
-
-- **Q20: What is the difference between UIFlow's Micropython and the official Micropython**
-
-
-
-
- UIFlow is based on the secondary package of the official Micropython, integrates a large number of M5 libraries, UIFlow is easier to understand and easy to use, and most of them are compatible with the official Micropython API.
-
-
-
-
-- **Q21: Some examples of Arduino are inconsistent with GitHub**
-
-
-
-
- The examples in Arduino are used for the factory basic function test, the upgrade is slower, GitHub upgrade is faster, the code is more perfect, it is recommended to download directly from GitHub.
-
-
-
-
-- **Q22: Wether BASIC can use UIFlow and M5GO accessorie**
-
-
-
-
- UIFlow is available, but some features are not available in the hardware part of UIFlow. M5GO accessories are compatible.
-
-
-
-
-- **Q23: Does it can display Chinese**
-
-
-
-
- Support GB2312 code in Arduino , refer to hzk16 example . Micropython environment not supported yet, due to limited by execution speed and UTF-8 file size.
-
-
-
-
-- **Q24: M5Stack BASIC has been in normal use and suddenly cannot be turned on even if USB is connected**
-
-
-
-
- Remove the BASIC base and try again. It is most likely caused by poor contact between the base and the M-BUS.
-
-
-
-
-- **Q25: About M5StickV tutorials**
-
-
-
-
- M5StickV uses K210 chip compatible with Maixpy development environment, you can refer to Maixpy's official documentation.
-
-
-
-
-- **Q26: Some APIs are not found in the docs**
-
-
-
-
- The reference API provided is the functions of the M5 hardware package. The application libraries such as WIFI, HTTP, etc.There are not included in the scope of provision. For reference, other ESP32 and Arduino libraries are used.
-
-
-
-
-
-- **Q27: The button is used in the Arduino program, but it will not work after pressing it once**
-
-
-
-
- Using buttons and speakers requires adding M5.update() after execution to respond.
-
-
-
-
-- **Q28: I want to use the official sensor accessories, but also want to connect my own sensor, how to stack**
-
-
-
-
- It is recommended to use the base of PLUS module + CORE.
-
-
-
-
-- **Q29: After M5Camera writing the program, it was found that the screen was reversed**
-
-
-
-- **Q30: How to mount multiple sensors with the same I2C address**
-
-
-
-
- Use Pa.HUB can connect 6 I2C devices.
-
-
-
-
-
-- **Q31: What is the difference between LoRa and LoRaWAN modules?**
-
-
-
-
-
-```
-LoRa module: Ra-02 module, serial communication protocol: SPI, support frequency range 410-525Hz.
-
-LoRaWAN module: RHF76-052 module, built-in LoRaWAN protocol stack, serial communication, sending AT command control module, support communication with full-duplex LoRaWAN gateway, support dual-band 433-470MHz and 868-915MHz.
-
-```
-
+
+
Q3: The M5 camera transmits images to the mobile phone via WIFI. How far can the transmission be?
+
+
+
+ After testing, the M5Camera can be used indoors for about 20 meters.
+
+
+
-## UNIT Question
-
-- **Q1: What is the difference between the various cameras of M5Stack?**
-
-
-
-
- The main difference between these cameras is that some pins (OV2640-SIOD, OV2640-VSYNC, GROVE interface), lens type, and whether or not there is PSRAM. For specific differences, please visithere
-
-
-
+
+
Q4: Can I connect Wi-Fi in the 5G band?
+
+
+
+ The ESP32 chip does not support WiFi in the 5G band and can only connect to 2.4G.
+
+
+
-- **Q2: The camera transmits images to the mobile phone via WIFI, how far can it be transmitted?**
-
-
-
- After testing, using M5Camera indoors can transmit about 20 meters.
-
+
+
Common product programming issues
-- **Q3: BettleC connected to the phone remote will sometimes fail to respond**
-
-
-
-
- Most of them are caused by low battery power. If the battery is low, the signal quality will be seriously attenuated.
-
+
+
Q1: How to eliminate the speaker noise of M5Core?
+
+
+ Execute the following statement in the Setup() of the Arduino program
+
+
+ dacWrite(M5STACKFIRE_SPEAKER_PIN, 0);
+
+
+
+
+
+
+
+
Q2: The button is used in the programmed program, but it will not work after pressing it once.
+
+
+ Using buttons and speakers requires M5.update() to be re-responsive after execution.
+
+
+ M5.update();
+
+
+
+
+
+
+
+
Q3: What is the difference between UIFlow's Micropython and the official mainline Micropython?
+
+
+ UIFlow is based on the secondary package of the mainline Micropython, integrating a large number of M5Stack official libraries, UIFlow is easier to understand and easy to use, and most of them are compatible with the mainline API.
+
+
+
+
+
+
Q4: Does the M5Stack device support Chinese display?
+
+
+ Support for GB2312 code display in Arduino environment, refer to the hzk16 example in Display, which is limited by the execution speed and UTF-8 file size in Micropython environment.
+
+
+
+
+
+
+
Q5: How to get more APIs
+
+
+ The reference API provided by M5 official is limited to the function of M5 hardware package. Software application libraries such as WIFI, HTTP, etc. are not included in the scope of supply. Please refer to other ESP32 and Arduino libraries, which are common in use.
+
+
+
+
+
+
+
Common product after-sales problems
+
+
+
+
Q1: M5stickC does not recognize the port (COM)
+
+
+
+ M5StickC only supports WIN10&Linux&MAC drive-free, and other operating systems require users to install drivers themselves.。
+
+ Installation steps: 1. Click the link below to download the driver installation package. 2. Connect the device and open the Computer Device Manager port option. 3. Right click on the unrecognized device and perform a manual update.
+
+
+ Driver download connection
+
+
+
+
+
+
+
+
Q2: Some modules cannot be downloaded after stacking with M5Core, such as USB module and M5Core stacking
+
+
+ It may be that after stacking, the pins GPIO0 on the M5-Bus bus are not well connected to the M5Core. In this case, when downloading the program, GPIO0 should always remain low, but because the contact is not good, GPIO0 can not remain low all the time, so the download fails.
+ Solution: Manually connect GPIO0 to GND during the download process to ensure that it is pulled low enough.
+
+
+
+
+
+
+
+
+
Q2: After the M5GO base is stacked with the M5Core, the M5Core cannot be turned on, and the base battery is fully charged.
+
+
+ It may be that after stacking, the BATTERY pin on the lower left corner of the M5-Bus bus on the base is not well contacted with the M5Core, which is caused by the misalignment of the soldering position during production. After the bus pin welding position is slightly biased, it is prone to poor contact between the BATTERY pin and the M5Core. Solution: Re-solder the M5-Bus bus header, the pin header must be strictly aligned with the pad position.
+
+
+
+
+
+
+
Q3: Some computers are connected to the main control, but still can't use Arduino IDE, ESPFlashDownloadTool or M5Burner to burn the program.
+
+
Causes and solutions: It may be because the supply current of these serial ports is not large enough. It is necessary to connect the capacitor between the RST pin and the GND pin in the main control (the capacitance value is larger than 0.1uF), or download When programming, connect GPIO 0 to GND so that GPIO 0 can continue low enough.
+
+
+
+
+
+
+
+
+
+
Q4: What special GPIO pins do you need to pay attention to in ESP32?
+
+
+ The ESP32 has 34 GPIO pins, of which GPIO 34-39 is only used as an input and cannot be used as an output. Others can be used as both an input and an output pin.
+
+
+
+
+
+
+
Q5: Why does the Stick with MPU9250 burn the factory firmware and press button A, the result shows "No", which means "No 9250"
+
+
+ Restart this Stick and it will be displayed. Because the code to read the MPU9250 is placed in the setup() function of the factory program, the boot is only executed once, so restart and let the Stick detect the MPU9250 again.
+
+
+
+
+
+
+
Q6: M5stickC can't boot
+
+
+ The following operations can restore the device to normal: 1. Short the BAT to GND. 2. Insert the USB cable. 3. After the screen is lit, stop shorting and USB continues to charge the device.
+
+
+
+
+
+
Q7: M5StickV can't load SD card
+
+
+ First, make sure that the format of the SD card is FAT32. There is no partition. Some large-capacity SD cards are usually formatted as NTFS. The following tests are performed on the compatibility of the SD card.
+
+ SD card compatibility list
+
+
+
+
+
+
+
Q8: Send a photo to V-Training but the received message does not contain a model file
+
+
+ Carefully check the contents of the email. The training error will be indicated in the email. Only the specified two folders are allowed in the sent photos. The minimum number of photos and the classification are required. If there is a hidden file, the training will fail.
+
+ V-Training detailed tutorial
+
+
+
+
+
+
+
Q9: MD5 file error occurred while burning program
+
+
+ First check your program carefully, confirm that there is no problem, then use M5Burner to erase, check whether it can be successfully cleared, and then burn FactoryTest to check whether it can be burned. If it can be successfully operated, there is no problem, if MD5 file error occurs repeatedly. Then the probability of FLASH has been damaged.
+
+
+
+
+
+
+
+
Q10: M5Stack BASIC has been in normal use and suddenly cannot be turned on even if USB is connected.
+
+
+ Remove the BASIC base and try to start it up. It is most likely caused by poor contact between the base and the M-BUS.
+
+
+
+
+
+
+
+
Q11: BeetleC connected to the phone remote control sometimes fails to respond
+
+
+ Most of them are caused by low battery power. If the battery is low, the signal quality will be seriously degraded.
+
+
+
+
+
+
+
+
Q12: Screen display with image ripple interference when using HAT-Thermal
+
+
+
+ The old 100nF capacitor can't give enough decoupling for MLX90640, add a 10uF(106) capacitor to resolve it
+
+ Solution: Parallel capacitor in the position shown (10uF 10V 0603)
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/en/uiflow/blockly_custom.md b/docs/en/uiflow/blockly_custom.md
new file mode 100644
index 00000000..a6d6ef86
--- /dev/null
+++ b/docs/en/uiflow/blockly_custom.md
@@ -0,0 +1,65 @@
+# UIFlow Block Custom{docsify-ignore-all}
+
+
+1. [Create block](#Create-block)
+
+2. [Code-Parameter](#Code-Parameter)
+
+3. [Save and Changes](#Save-and-Changes)
+
+4. [Using program block](#Using-program-block)
+
+
+## Create block
+
+
+Create a custom block by clicking on the `Custom` option > `Create` in the block list.
+
+
+
+To create a new block, we need to provide:
+
+`1: group name`: the name of the group in which the custom block is placed
+
+`2: Block color`: Appearance color of the block
+
+`3: Block label`: Only letters, numbers, underscores are allowed
+
+`4: Block type`: Define the type of the block as `Value` (value), or `Execute` (execute)
+
+`5: Number of blocks`: Ability to add multiple blocks at the same time and save them to a `.m5b` file at the same time
+
+
+
+
+## Code-Parameter
+
+
+Click the `Add` option under `Parameter`, add a program property, enter the name displayed in the block, and select the property type. Enter the code contained in the custom block in the `Block Code` option box.
+
+[Click here to visit Github for more program API](https://github.com/m5stack/UIFlow-Code/wiki)
+
+
+
+When the attribute type of a custom block has constant or variable input, we can get these values in the code and perform further processing and operations.
+
+Example: Select the attribute type as `String` (string input). In this case, if we want to get the string input when using, just use `${Parameter name}` in the code. It is `${show_word}`. It should be noted that when there is a space in the block name, use ${} to get the space that needs to be replaced with the `_` underscore.
+
+
+
+## Save and Changes
+
+After editing the program, click `Download` to save.
+
+Click on `Open .m5b` to open the saved custom program for modification.
+
+
+
+
+## Using program block
+
+Open a custom block by clicking on the`Custom`option > `Open` ,in the block list.
+
+
+
+
\ No newline at end of file
diff --git a/docs/en/uiflow/uiflow_home_page.md b/docs/en/uiflow/uiflow_home_page.md
index 33eb52b8..fc5d204a 100644
--- a/docs/en/uiflow/uiflow_home_page.md
+++ b/docs/en/uiflow/uiflow_home_page.md
@@ -68,6 +68,17 @@
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
index 0d833e4b..e7aed1c7 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -59,7 +59,7 @@