diff --git a/_static/establish_serial_port/esp32-devkitc-in-device-manager.png b/_static/establish_serial_port/esp32-devkitc-in-device-manager.png new file mode 100644 index 00000000..640fc8e3 Binary files /dev/null and b/_static/establish_serial_port/esp32-devkitc-in-device-manager.png differ diff --git a/_static/establish_serial_port/esp32-wrover-kit-in-device-manager.png b/_static/establish_serial_port/esp32-wrover-kit-in-device-manager.png new file mode 100644 index 00000000..e953e135 Binary files /dev/null and b/_static/establish_serial_port/esp32-wrover-kit-in-device-manager.png differ diff --git a/_static/establish_serial_port/putty-settings-linux.png b/_static/establish_serial_port/putty-settings-linux.png new file mode 100644 index 00000000..7b04f922 Binary files /dev/null and b/_static/establish_serial_port/putty-settings-linux.png differ diff --git a/_static/establish_serial_port/putty-settings-windows.png b/_static/establish_serial_port/putty-settings-windows.png new file mode 100644 index 00000000..d08d6ab1 Binary files /dev/null and b/_static/establish_serial_port/putty-settings-windows.png differ diff --git a/_static/pics/m5stack-forum.jpg b/_static/pics/m5stack-forum.jpg index 9d7f84c1..b2baf3f3 100644 Binary files a/_static/pics/m5stack-forum.jpg and b/_static/pics/m5stack-forum.jpg differ diff --git a/en/api-reference/peripherals/timer.rst b/en/api-reference/peripherals/timer.rst index e69de29b..61e12c33 100644 --- a/en/api-reference/peripherals/timer.rst +++ b/en/api-reference/peripherals/timer.rst @@ -0,0 +1,113 @@ +Timer API +********** + +----------------------------- + +Description +------------ + +The ESP32 chip contains two hardware timer groups. Each group has two general-purpose hardware timers. They are all 64-bit generic timers based on 16-bit prescalers and 64-bit auto-reload-capable up / down counters. + +*Note: Due to MicroPython callback latency, some callbacks may not be executed if the timer period is less than 15 ms. +The number of events and executed callbacks can be checked using tm.events() method.* + +----------------------------- + +Function +--------- + +machine.Timer(timer_no) +>>>>>>>>>>>>>>>>>>>>>>>> + +| **Description:**    +| Create the Timer instance object + +| **Parament:** +| **timer_no:** the timer number to be used for the timer + +| **Example:** +.. code:: python + + import machine + + p1 = machine.Pin(27) + +init(period, mode, callback, dbgpin) +>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + +| **Description:**    +| initialize paraments of the timer + +| **Parament:** +| **period:** Timer period(Default: 10 ms) +| *Note: Timer period in ms, only used for PERIODIC and ONE_SHOT timers* +| **mode:** Timer mode of operation(Default: PERIODIC) +| **callback:** The Python callback function to be executed on timer event(Default: None) +| **dbgpin:** GPIO pin to be used as debug output(Default: -1 (not used)) +| *Note: If used, the gpio level will toggle on each timer event* + +| **Return:** +| None + +| **Example:** +.. code:: python + + from machine import SPI, Pin + + spi = SPI( + spihost=SPI.HSPI, + baudrate=2600000 + sck=Pin(18), + mosi=Pin(23), + miso=Pin(19), + cs=Pin(4) + ) + + spi.write(buf) #NOHEAP + + +value() +>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + +| **Description:**    + +| **Return:** +| Returns the current timer counter value in **µs** if timer mode is CHRONO or in **ms** for other modes + +| **Example:** +.. code:: python + + import machine + + p1 = machine.Pin(27) + p1.init(p1.OUT) + p1.value(1) + + +--------------------- + +Usage +------ + +.. code:: python + + import machine + + tcounter = 0 + + p1 = machine.Pin(27) + p1.init(p1.OUT) + p1.value(1) + + def tcb(timer): + global tcounter + if tcounter & 1: + p1.value(0) + else: + p1.value(1) + tcounter += 1 + if (tcounter % 10000) == 0: + print("[tcb] timer: {} counter: {}".format(timer.timernum(), tcounter)) + + t1 = machine.Timer(2) + t1.init(period=20, mode=t1.PERIODIC, callback=tcb) \ No newline at end of file diff --git a/en/api-reference/peripherals/uart.rst b/en/api-reference/peripherals/uart.rst index e69de29b..72e522dc 100644 --- a/en/api-reference/peripherals/uart.rst +++ b/en/api-reference/peripherals/uart.rst @@ -0,0 +1,108 @@ +UART API +********* + +----------------------------- + +Description +------------ + +An Universal Asynchronous Receiver/Transmitter (UART) is a component known to handle the timing requirements for a variety of widely-adapted protocols (RS232, RS485, RS422, …). +An UART provides a widely adopted and cheap method to realize full-duplex data exchange among different devices. +There are three UART controllers available on the ESP32 chip. They are compatible with UART-enabled devices from various manufacturers. All UART controllers integrated in the ESP32 feature an identical set of registers for ease of programming and flexibility. In this documentation, these controllers are referred to as UART0, UART1, and UART2. + + +----------------------------- + +Function +--------- + +machine.UART(uart_num, tx=pin, rx=pin [,args]) +>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + +| **Description:**    +| Create the uart instance object + +| **Parament:** +| **uart_num:** The hardware SPI host. machine-SPI.HSPI (1) or machine.SPI.VSPI (2) can be used. Default: 1 +| **tx:** the gpio used for tx +| **rx:** the gpio used for rx + + +| **Example:** +.. code:: python + + from machine import UART + + uart2 = UART(2, tx=17, rx=16) + uart2.init(115200, bits=8, parity=None, stop=1) + +write(buf [, len [, off]]) +>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + +| **Description:**    +| Write bytes from buffer object ḃuf to UART + +| **Parament:** +| **buf:** data buffer to be write +| **len:** writes `ŀen` bytes +| **off:** starts writting from `off` position in `buf` + +| **Example:** +.. code:: python + + from machine import UART + + uart2 = UART(2, tx=17, rx=16) + uart2.init(115200, bits=8, parity=None, stop=1) + uart2.write('abc') # write the 3 characters + +read() +>>>>>>> + +| **Description:**    +| read all available characters + +| **Example:** +.. code:: python + + from machine import UART + + uart2 = UART(2, tx=17, rx=16) + uart2.init(115200, bits=8, parity=None, stop=1) + uart2.read() # read all available characters + +readline([max_len]) +>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + +| **Description:**    +| Reads all bytes from the receive buffer up to the line end character **\n** + +| **Parament:** +| **max_len:** maximum length to be read + +| **Example:** +.. code:: python + + from machine import UART + + uart2 = UART(2, tx=17, rx=16) + uart2.init(115200, bits=8, parity=None, stop=1) + uart2.readline() # read a line + + +--------------------- + +Usage +------ + +.. code:: python + + from machine import UART + + uart2 = UART(2, tx=17, rx=16) + uart2.init(115200, bits=8, parity=None, stop=1) + uart2.read(10) # read 10 characters, returns a bytes object + uart2.read() # read all available characters + uart2.readline() # read a line + uart2.readinto(buf) # read and store into the given buffer + uart2.write('abc') # write the 3 characters \ No newline at end of file diff --git a/en/basic-cases/esp32cam/index.rst b/en/basic-cases/esp32cam/index.rst index 1710730f..267ef0c2 100644 --- a/en/basic-cases/esp32cam/index.rst +++ b/en/basic-cases/esp32cam/index.rst @@ -1,2 +1,4 @@ ESP32CAM Cases -**************** \ No newline at end of file +**************** + +*Coming soon! Please wait!* diff --git a/en/basic-cases/index.rst b/en/basic-cases/index.rst index 0384dcae..9eb45922 100644 --- a/en/basic-cases/index.rst +++ b/en/basic-cases/index.rst @@ -9,6 +9,7 @@ Basic Cases M5GO ESP32CAM +*Coming soon! Please wait!* diff --git a/en/basic-cases/m5go/index.rst b/en/basic-cases/m5go/index.rst index cccf705d..960e7669 100644 --- a/en/basic-cases/m5go/index.rst +++ b/en/basic-cases/m5go/index.rst @@ -1,2 +1,4 @@ M5GO Cases -**************** \ No newline at end of file +**************** + +*Coming soon! Please wait!* diff --git a/en/basic-cases/m5stack-core/index.rst b/en/basic-cases/m5stack-core/index.rst index 76313205..3624cc6f 100644 --- a/en/basic-cases/m5stack-core/index.rst +++ b/en/basic-cases/m5stack-core/index.rst @@ -1,2 +1,5 @@ M5Stack Core Cases -******************* \ No newline at end of file +******************* + + +*Coming soon! Please wait!* diff --git a/en/basic-cases/m5stack-core/m5stack_core_cases.md b/en/basic-cases/m5stack-core/m5stack_core_cases.md new file mode 100644 index 00000000..4923e2df --- /dev/null +++ b/en/basic-cases/m5stack-core/m5stack_core_cases.md @@ -0,0 +1,9 @@ +### M5Stack Game + +#### 1. M5Stack-nesemu + +This is a quick and dirty port of Nofrendo, a Nintendo Entertainment System emulator. It lacks sound, but can emulate a NES at close to full speed, albeit with some framedrop due to the way the display is driven. + +https://github.com/m5stack/M5Stack-nesemu + + diff --git a/en/get-started/establish-serial-connection.rst b/en/get-started/establish-serial-connection.rst index 2192fd0b..3b849b37 100644 --- a/en/get-started/establish-serial-connection.rst +++ b/en/get-started/establish-serial-connection.rst @@ -1,19 +1,19 @@ -Establish Serial Connection with ESP32 -====================================== +Establish Serial Connection with M5Stack Board based on ESP32 +============================================================== -This section provides guidance how to establish serial connection between ESP32 and PC. +This section provides guidance how to establish serial connection between your board and PC. -Connect ESP32 to PC --------------------- +Connect your board to PC +------------------------- -Connect the ESP32 board to the PC using the USB cable. If device driver does not install automatically, identify USB to serial converter chip on your ESP32 board (or external converter dongle), search for drivers in internet and install them. +Connect the your board board to the PC using the USB cable. If device driver does not install automatically, identify USB to serial converter chip on your your board board (or external converter dongle), search for drivers in internet and install them. -Below are the links to drivers for ESP32 boards produced by Espressif: +Below are the links to drivers for your board boards produced by Espressif: -* ESP32-PICO-KIT and ESP32-DevKitC - `CP210x USB to UART Bridge VCP Drivers `_ +* your board-PICO-KIT and your board-DevKitC - `CP210x USB to UART Bridge VCP Drivers `_ -* ESP32-WROVER-KIT and ESP32 Demo Board - `FTDI Virtual COM Port Drivers `_ +* your board-WROVER-KIT and your board Demo Board - `FTDI Virtual COM Port Drivers `_ Above drivers are primarily for reference. They should already be bundled with the operating system and installed automatically once one of listed boards is connected to the PC. @@ -21,18 +21,18 @@ Above drivers are primarily for reference. They should already be bundled with t Check port on Windows --------------------- -Check the list of identified COM ports in the Windows Device Manager. Disconnect ESP32 and connect it back, to verify which port disappears from the list and then shows back again. +Check the list of identified COM ports in the Windows Device Manager. Disconnect your board and connect it back, to verify which port disappears from the list and then shows back again. -Figures below show serial port for ESP32 DevKitC and ESP32 WROVER KIT +Figures below show serial port for your board DevKitC and your board WROVER KIT -.. figure:: ../../_static/esp32-devkitc-in-device-manager.png +.. figure:: ../../_static/establish_serial_port/your board-devkitc-in-device-manager.png :align: center - :alt: USB to UART bridge of ESP32-DevKitC in Windows Device Manager + :alt: USB to UART bridge of your board-DevKitC in Windows Device Manager :figclass: align-center - USB to UART bridge of ESP32-DevKitC in Windows Device Manager + USB to UART bridge of your board-DevKitC in Windows Device Manager -.. figure:: ../../_static/esp32-wrover-kit-in-device-manager.png +.. figure:: ../../_static/establish_serial_port/your board-wrover-kit-in-device-manager.png :align: center :alt: Two USB Serial Ports of ESP-WROVER-KIT in Windows Device Manager :figclass: align-center @@ -43,7 +43,7 @@ Figures below show serial port for ESP32 DevKitC and ESP32 WROVER KIT Check port on Linux and MacOS ----------------------------- -To check the device name for the serial port of your ESP32 board (or external converter dongle), run this command two times, first with the board / dongle unplugged, then with plugged in. The port which appears the second time is the one you need: +To check the device name for the serial port of your your board board (or external converter dongle), run this command two times, first with the board / dongle unplugged, then with plugged in. The port which appears the second time is the one you need: Linux :: @@ -73,14 +73,14 @@ Now verify that the serial connection is operational. You can do this using a se Run terminal, set identified serial port, baud rate = 115200, data bits = 8, stop bits = 1, and parity = N. Below are example screen shots of setting the port and such transmission parameters (in short described as 115200-8-1-N) on Windows and Linux. Remember to select exactly the same serial port you have identified in steps above. -.. figure:: ../../_static/putty-settings-windows.png +.. figure:: ../../_static/establish_serial_port/putty-settings-windows.png :align: center :alt: Setting Serial Communication in PuTTY on Windows :figclass: align-center Setting Serial Communication in PuTTY on Windows -.. figure:: ../../_static/putty-settings-linux.png +.. figure:: ../../_static/establish_serial_port/putty-settings-linux.png :align: center :alt: Setting Serial Communication in PuTTY on Linux :figclass: align-center @@ -88,7 +88,7 @@ Run terminal, set identified serial port, baud rate = 115200, data bits = 8, sto Setting Serial Communication in PuTTY on Linux -Then open serial port in terminal and check, if you see any log printed out by ESP32. The log contents will depend on application loaded to ESP32. An example log by ESP32 is shown below. +Then open serial port in terminal and check, if you see any log printed out by your board. The log contents will depend on application loaded to your board. An example log by your board is shown below. .. highlight:: none @@ -113,20 +113,22 @@ Then open serial port in terminal and check, if you see any log printed out by E ... -If you see some legible log, it means serial connection is working and you are ready to proceed with installation and finally upload of application to ESP32. +If you see some legible log, it means serial connection is working and you are ready to proceed with installation and finally upload of application to your board. .. note:: - For some serial port wiring configurations, the serial RTS & DTR pins need to be disabled in the terminal program before the ESP32 will boot and produce serial output. This depends on the hardware itself, most development boards (including all Espressif boards) *do not* have this issue. The issue is present if RTS & DTR are wired directly to the EN & GPIO0 pins. See the `esptool documentation`_ for more details. + For some serial port wiring configurations, the serial RTS & DTR pins need to be disabled in the terminal program before the your board will boot and produce serial output. This depends on the hardware itself, most development boards (including all Espressif boards) *do not* have this issue. The issue is present if RTS & DTR are wired directly to the EN & GPIO0 pins. See the `esptool documentation`_ for more details. .. note:: - Close serial terminal after verification that communication is working. In next step we are going to use another application to upload ESP32. This application will not be able to access serial port while it is open in terminal. + Close serial terminal after verification that communication is working. In next step we are going to use another application to upload your board. This application will not be able to access serial port while it is open in terminal. -If you got here from section :ref:`get-started-connect` when installing s/w for ESP32 development, then go back to section :ref:`get-started-configure`. +If you got here from section :ref:`get-started-connect` when installing s/w for your board development, then go back to section :ref:`get-started-configure`. -.. _esptool documentation: https://github.com/espressif/esptool/wiki/ESP32-Boot-Mode-Selection#automatic-bootloader +.. _esptool documentation: https://github.com/espressif/esptool/wiki/your board-Boot-Mode-Selection#automatic-bootloader +*Note: This article based on `Establish Serial Connection with ESP32 `_ supported by Espressif Inc.* + diff --git a/en/get-started/get-started-ESP32CAM.md b/en/get-started/get-started-ESP32CAM.md index 42fa6632..69b61095 100644 --- a/en/get-started/get-started-ESP32CAM.md +++ b/en/get-started/get-started-ESP32CAM.md @@ -6,17 +6,17 @@ It is really really out of the box. Your ESP32CAM will immediately run without a 1. plug usb cable into ESP32CAM and open the serial terminal on your computer. -![image](screenshots/ESP32CAM_Terminal.png) +![image](../../_static/screenshots/ESP32CAM_Terminal.png) 2. Then waitting a few seconds, you connect to a AP named "`M5CAM`" with your computer(or mobile phone). -![image](screenshots/ESP32CAM_M5CAM.png) +![image](../../_static/screenshots/ESP32CAM_M5CAM.png) 3. And you open the browser on the computer(or mobile phone), enter a URL `http://192.168.4.1`. At the moment, your can see the real-time transmission of video by ESP32CAM on the browser. -![image](screenshots/ESP32CAM_Browser.png) +![image](../../_static/screenshots/ESP32CAM_Browser.png) Now, A WebCam you achieved successfully ! diff --git a/en/m5stack-faq/M5Stack-Core/m5stack_core.md b/en/m5stack-faq/M5Stack-Core/m5stack_core.md new file mode 100644 index 00000000..f6d75ddf --- /dev/null +++ b/en/m5stack-faq/M5Stack-Core/m5stack_core.md @@ -0,0 +1,4 @@ +#### Q1. How use RGB LED on M5 FIRE? + + +*Thank you for being interested in our products and services, Please contact us by [tech support email](tech@m5stack.com) or [forum](forum.m5stack.com) if you need any assistance.* \ No newline at end of file diff --git a/en/m5stack-faq/index.rst b/en/m5stack-faq/index.rst index 88bac740..55cb465e 100644 --- a/en/m5stack-faq/index.rst +++ b/en/m5stack-faq/index.rst @@ -6,4 +6,6 @@ M5Stack-FAQ :maxdepth: 2 m5stack-core - m5stack-module \ No newline at end of file + m5stack-module + + `Thank you for being interested in our products and services, Please contact us by `tech support email `_ or `forum `_ if you need any assistance.` \ No newline at end of file diff --git a/en/m5stack-faq/m5stack-core/m5stack_core.md b/en/m5stack-faq/m5stack-core/m5stack_core.md new file mode 100644 index 00000000..f6d75ddf --- /dev/null +++ b/en/m5stack-faq/m5stack-core/m5stack_core.md @@ -0,0 +1,4 @@ +#### Q1. How use RGB LED on M5 FIRE? + + +*Thank you for being interested in our products and services, Please contact us by [tech support email](tech@m5stack.com) or [forum](forum.m5stack.com) if you need any assistance.* \ No newline at end of file diff --git a/en/m5stack-faq/others_faq.md b/en/m5stack-faq/others_faq.md new file mode 100644 index 00000000..57736404 --- /dev/null +++ b/en/m5stack-faq/others_faq.md @@ -0,0 +1,8 @@ +#### Q1. How to set up PlatformIO for M5Stack development? + +A: https://github.com/m5stack/M5Stack-platformio + +#### Q2. Cannot boot M5Cloud firmware on M5Stack FIRE on Windows PC using flash download tool? + +*Thank you for being interested in our products and services, Please contact us by [tech support email](tech@m5stack.com) or [forum](forum.m5stack.com) if you need any assistance.* + diff --git a/en/product-documents/index.rst b/en/product-documents/index.rst index 4bab498e..00dca011 100644 --- a/en/product-documents/index.rst +++ b/en/product-documents/index.rst @@ -2,20 +2,6 @@ Product Documents ****************** -STEAM Kit -~~~~~~~~~~~~~~~~~~~ -.. toctree:: - :maxdepth: 1 - - M5Stack M5GO - M5GO Unit ENV - M5GO Unit HUB - M5GO Unit IR - M5GO Unit PIR - M5GO Unit POT - M5GO Unit RGB - - M5Stack Core ~~~~~~~~~~~~~~~~~~~ .. toctree:: @@ -42,7 +28,19 @@ Modules M5Stack PROTO Module M5Stack PROTO Kit +STEAM Kit +~~~~~~~~~~~~~~~~~~~ +.. toctree:: + :maxdepth: 1 + M5Stack M5GO + M5GO Unit ENV + M5GO Unit HUB + M5GO Unit IR + M5GO Unit PIR + M5GO Unit POT + M5GO Unit RGB + Tools ~~~~~~~~~~~~~~~~~~~ .. toctree:: diff --git a/en/product-documents/m5stack-core/m5stack_basic.rst b/en/product-documents/m5stack-core/m5stack_basic.rst index bc90a1f2..305dacde 100644 --- a/en/product-documents/m5stack-core/m5stack_basic.rst +++ b/en/product-documents/m5stack-core/m5stack_basic.rst @@ -62,8 +62,16 @@ DOCUMENTS --------- - `Schematic `__ -- `Example `__ -- `Datasheet `__ - (ESP32) -- `GitHub `__ +- Example + + + `Arduino Example `__ + +- Datasheet + + + `ESP32 `__ + +- GitHub + + + `Arduino GitHub `__ + diff --git a/en/product-documents/m5stack-core/m5stack_faces.rst b/en/product-documents/m5stack-core/m5stack_faces.rst index b3e2159e..6aca0fd1 100644 --- a/en/product-documents/m5stack-core/m5stack_faces.rst +++ b/en/product-documents/m5stack-core/m5stack_faces.rst @@ -82,11 +82,18 @@ DOCUMENTS --------- - `Schematic `__ -- `Example `__ -- `Datasheet `__ - (ESP32) -- `Datasheet `__ - (MPU9250) +- Example + + + `MicroPython Example `__ + +- Datasheet + + + `ESP32 `__ + + + `MPU9250 `__ + - `M5Stack-nesemu `__ - `GitHub `__ + + diff --git a/en/product-documents/m5stack-core/m5stack_fire.rst b/en/product-documents/m5stack-core/m5stack_fire.rst index b8cd31ae..03a84ddb 100644 --- a/en/product-documents/m5stack-core/m5stack_fire.rst +++ b/en/product-documents/m5stack-core/m5stack_fire.rst @@ -72,12 +72,32 @@ DOCUMENTS --------- - `Schematic `__ -- `Example `__ -- `Datasheet `__ - (ESP32) -- `Datasheet `__ - (MPU6050) -- `Datasheet `__ - (MAG3110) -- `GitHub `__ + +- Example + + + `Arduino Example `__ + + + `MicroPython Example `__ + +- Datasheet + + + `ESP32 `__ + + + `MPU6050 `__ + + + `MAG3110 `__ + +- GitHub + + + `Arduino GitHub `__ + + + `MicroPython GitHub `__ + + + + + + + + diff --git a/en/product-documents/m5stack-core/m5stack_gray.rst b/en/product-documents/m5stack-core/m5stack_gray.rst index b08e28cd..c960de15 100644 --- a/en/product-documents/m5stack-core/m5stack_gray.rst +++ b/en/product-documents/m5stack-core/m5stack_gray.rst @@ -65,10 +65,25 @@ DOCUMENTS --------- - `Schematic `__ -- `Example `__ -- `Datasheet `__ - (ESP32) -- `Datasheet `__ - (MPU9250) -- `GitHub `__ + +- Example + + + `Arduino Example `__ + + + `MicroPython Example `__ + +- Datasheet + + + `ESP32 `__ + + + `MPU9250 `__ + + +- GitHub + + + `Arduino GitHub `__ + + + `MicroPython GitHub `__ + + diff --git a/en/product-documents/m5stack-core/m5stack_panda.rst b/en/product-documents/m5stack-core/m5stack_panda.rst index c4e03ef5..c39cca19 100644 --- a/en/product-documents/m5stack-core/m5stack_panda.rst +++ b/en/product-documents/m5stack-core/m5stack_panda.rst @@ -62,8 +62,22 @@ DOCUMENTS --------- - `Schematic `__ -- `Example `__ -- `Datasheet `__ - (ESP32) -- `GitHub `__ +- Example + + + `Arduino Example `__ + + + `MicroPython Example `__ + +- Datasheet + + + `ESP32 `__ + + + `MPU9250 `__ + + +- GitHub + + + `Arduino GitHub `__ + + + `MicroPython GitHub `__ diff --git a/en/product-documents/m5stack-core/m5stack_plc.rst b/en/product-documents/m5stack-core/m5stack_plc.rst index db1dd5f8..ea715464 100644 --- a/en/product-documents/m5stack-core/m5stack_plc.rst +++ b/en/product-documents/m5stack-core/m5stack_plc.rst @@ -44,5 +44,8 @@ DOCUMENTS --------- - `WebSite `__ -- `GitHub `__ + +- GitHub + + + `Arduino GitHub `__ diff --git a/en/product-documents/modules/esp32cam.rst b/en/product-documents/modules/esp32cam.rst index 970f372c..25578354 100644 --- a/en/product-documents/modules/esp32cam.rst +++ b/en/product-documents/modules/esp32cam.rst @@ -65,11 +65,18 @@ DOCUMENTS --------- - `Schematic `__ -- `Example `__ -- `Datasheet `__ - (ESP32) -- `Datasheet `__ - (OV2640) -- `GitHub `__ -- `HowToWork `__ +- Example + + + `Arduino Example `__ + +- Datasheet + + + `ESP32 `__ + + + `OV2640 `__ + +- GitHub + + + `Arduino GitHub `__ + diff --git a/en/product-documents/modules/m5stack_gps_module.rst b/en/product-documents/modules/m5stack_gps_module.rst index c7540a97..2c22380c 100644 --- a/en/product-documents/modules/m5stack_gps_module.rst +++ b/en/product-documents/modules/m5stack_gps_module.rst @@ -37,7 +37,12 @@ DOCUMENTS --------- - `WebSite `__ -- `Example `__ +- Example + + + `Arduino Example `__ + - `GPS Info `__ (GPS) -- `GitHub `__ +- GitHub + + + `Arduino GitHub `__