{
    "ok": true,
    "data": {
        "title": "EP-0146",
        "rev_id": 12998,
        "updated_at": "2023-04-18T07:20:20+00:00",
        "chunk_count": 32,
        "chunks": [
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "",
                "chunk_index": 0,
                "content": "# EP-0146",
                "char_count": 9,
                "token_estimate": 3
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "CM4 Router Board",
                "chunk_index": 1,
                "content": "<figure>\n<img src=\"Cm4_router_board4.jpg\" title=\"Cm4_router_board4.jpg\" width=\"320\" alt=\"Cm4_router_board4.jpg\" \/>\n<figcaption aria-hidden=\"true\">Cm4_router_board4.jpg<\/figcaption>\n<\/figure>\n\n-   Purchase URL \\[ <https:\/\/52pi.com\/products\/52pi-raspberry-pi-compute-module-4-cm4-router-board> \\]\n\nCM4 Router Board is an expansion board based on the Raspberry Pi Compute Module 4. It brings Raspberry Pi CM4 two full-speed gigabit network ports and offers better performance, lower CPU usage, and higher stability for a long time work compared with a USB network card.\n\nThe board still retains the characteristic GPIO pin header of Raspberry Pi, which makes it applicable for connecting other hat board such as Pi hats, sensors, and PoE hat board, and cooling fan, etc.\n\nThere is also a USB2.0 interface that can be connected to USB flash driver, USB keyboard, printers, WIFI modules,etc.\n\nBesides, there is an OLED(0.91 inch) screen will help you to customize your Router Board's information display style.",
                "char_count": 1005,
                "token_estimate": 252
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "CM4 Router Board",
                "chunk_index": 2,
                "content": "It provides OpenWRT open-source router system. After a simple setup, it can be used as a router. It is also compatible with Raspberry OS, Ubuntu Server and other Raspberry Pi systems, even you can make this router board a retrogame machine at home.\n\nThe standard HDMI interface can help you configure the device and display operating information conveniently.\n\nThe powerful performance of BCM2711 4 core 1.5GHz Cortex-A72 and the rich software support in the Raspberry Pi community make this board a solid foundation for building high-performance gateways, smart routers, and home IoT platforms. It can also be connected to peripherals and used as a mini-NAS, wireless network bridge, or mini server which can be controlled via terminal.\n\nIf you need multiple LAN network ports like common routers, it is recommended to use a gigabit switch to expand the network ports, which will not affect its Internet performance.\n\n5V DC Fan interface supports 5V cooling fan, it can alse support PWM protocol, that means you can control the speed of fan blades via PWM signal. The 52Pi CM4 Router Board can be used as a router or other applications.",
                "char_count": 1137,
                "token_estimate": 285
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "Features & Specifications",
                "chunk_index": 3,
                "content": "-   Compatible Module: Raspberry Pi Compute Module 4 series\n-   Support standard Raspberry Pi HAT interface\n-   Support POE HAT to supply power to the board\n-   Support POE HAT for external power supply\n-   Full-speed dual gigabit network interface\n-   Master-slave dual USB2.0 interface\n-   Micro SD card slot, used to support non-eMMC version of CM4\n-   Standard HDIM video output interface\n-   0.91 inch IIC OLED display\n-   5V DC fan interface(Support controlling via PWM signal)\n-   Ethernet: high-performance Gigabit ethernet controller RTL8111E chip, JXD 2111x G2406s chip as isolation transformer.\n    -   Port0: Compute Module 4 Built-In\n    -   Port1: PCI Express 1000BASE-T NIC\n-   GPIO: 40Pin GPIO compatible with Raspberry Pi\n-   Power Supply: USB-C(Type-C) 5V\/3A interface\n-   Operating Temperature: 0℃\\~80℃\n-   Dimension: 146 x 80mm",
                "char_count": 847,
                "token_estimate": 212
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "Gallery",
                "chunk_index": 4,
                "content": "-   Product Outlook",
                "char_count": 19,
                "token_estimate": 5
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "Gallery",
                "chunk_index": 5,
                "content": "|                                                                                                           |                                                                                                           |                                                                                                           |\n|-----------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|\n| <figure>\n <img src=\"Cm4_router_board1.jpg\" title=\"Cm4_router_board1.jpg\" width=\"320\" alt=\"Cm4_router_board1.jpg\" \/>\n <figcaption aria-hidden=\"true\">Cm4_router_board1.jpg<\/figcaption>\n <\/figure>                                                                                                  | <figure>\n                                                                                                             <img src=\"Cm4_router_board2.jpg\" title=\"Cm4_router_board2.jpg\" width=\"320\" alt=\"Cm4_router_board2.jpg\" \/>",
                "char_count": 1170,
                "token_estimate": 293
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "Gallery",
                "chunk_index": 6,
                "content": "<figcaption aria-hidden=\"true\">Cm4_router_board2.jpg<\/figcaption>\n                                                                                                             <\/figure>                                                                                                  | <figure>\n                                                                                                                                                                                                                         <img src=\"Cm4_router_board3.jpg\" title=\"Cm4_router_board3.jpg\" width=\"320\" alt=\"Cm4_router_board3.jpg\" \/>\n                                                                                                                                                                                                                         <figcaption aria-hidden=\"true\">Cm4_router_board3.jpg<\/figcaption>",
                "char_count": 898,
                "token_estimate": 225
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "Gallery",
                "chunk_index": 7,
                "content": "<\/figure>                                                                                                  |",
                "char_count": 108,
                "token_estimate": 27
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "Gallery",
                "chunk_index": 8,
                "content": "-   Circuit Topology Concept\n\n<img src=\"CM4routerboard.jpg\" title=\"CM4routerboard.jpg\" width=\"800\" alt=\"CM4routerboard.jpg\" \/>\n\\* Pin header Details <img src=\"Cm4routerboard.jpg\" title=\"Cm4routerboard.jpg\" width=\"800\" alt=\"Cm4routerboard.jpg\" \/> <img src=\"Cm4routerboard-2.jpg\" title=\"Cm4routerboard-2.jpg\" width=\"800\" alt=\"Cm4routerboard-2.jpg\" \/>\n\\* Product Mechanical Drawing: <img src=\"Cm4-router-board_mechanical_drawing.png\" title=\"Cm4-router-board_mechanical_drawing.png\" width=\"800\" alt=\"Cm4-router-board_mechanical_drawing.png\" \/>\n\nNOTE: The USB interface is disabled to save power by default on the CM4 . To enable it you need to add dtoverlay=dwc2,dr_mode=host to the config.txt file and reboot)",
                "char_count": 706,
                "token_estimate": 177
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "Description of Pin Header > <img src=\"ICON4.jpg\" title=\"ICON4.jpg\" width=\"20\" alt=\"ICON4.jpg\" \/> DC 5V Fan Pin Header",
                "chunk_index": 9,
                "content": "Those Pins can be handled by Raspberry Pi OS itself or by programming, please refer to \\`raspi-config\\` tool. <img src=\"Pinheader_4.jpg\" title=\"Pinheader_4.jpg\" width=\"500\" alt=\"Pinheader_4.jpg\" \/>\n{\\| class=\"wikitable\" \\|- ! Silk Mark !! Note \\|- \\| +5V \\|\\| Connect to Positive Pin of Fan \\|- \\| PWM \\|\\| Connect to Signal Pin of Fan \\|- \\| GND \\|\\| Connect to Negative Pin of Fan \\|}\n\n     Note: PWM Fan does not included in package! If you want to purchase please contact with 52Pi sales",
                "char_count": 491,
                "token_estimate": 123
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "Description of Pin Header > <img src=\"ICON6.jpg\" title=\"ICON6.jpg\" width=\"20\" alt=\"ICON6.jpg\" \/>eMMC version CM4 burning switch",
                "chunk_index": 10,
                "content": "<img src=\"Pinheader_6.jpg\" title=\"Pinheader_6.jpg\" width=\"500\" alt=\"Pinheader_6.jpg\" \/>\n\\*\\* nRPIBOOT - Bootloader 1. Connect a HDMI cable to see if the HDMI diagnostics screen appears.\n2. Short the nRPIBOOT pin to ground to force USB boot mode. The CM4 Router board has a jumper for nRPIBOOT This can be used to enable different boot modes (e.g. network) and enable UART logging.\na. See <https:\/\/www.raspberrypi.org\/documentation\/hardware\/computemodule\/cm-emmc-flashing.md>\n\\*\\* WL_nDisable This pin serves a number of functions:\n1. It can be used to monitor the enable\/disable state of wireless networking.\nA logic high means the wireless networking module is powered up.\n2. When driven or tied low it prevents the wireles network module from powering up.\nThis is useful to reduce power consumption or in applications where it is required to physically ensure the wireless networking is disabled.\nIf theinterface is enabled after being disabled, the wireless interface driver needs reinitalised.\n\nOn CM4 modules without wireless, this pin is reserved.\n\n-   -   BT_nDisable",
                "char_count": 1074,
                "token_estimate": 269
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "Description of Pin Header > <img src=\"ICON6.jpg\" title=\"ICON6.jpg\" width=\"20\" alt=\"ICON6.jpg\" \/>eMMC version CM4 burning switch",
                "chunk_index": 11,
                "content": "This pin serves a number of functions:\n1. It can be used to monitor the enable\/disable state of Bluetooth. A logic high means the Bluetooth module is powered up.\n2. When driven, or tied low, it prevents the Bluetooth module from powering up.\nThis is useful to reduce power consumption, or in applications where it is required to physically ensure the Bluetooth is disabled.\nIf the interface is enabled after being disabled, the Bluetooth interface driver needs reinitalised.\n\nOn CM4 modules without wireless, this pin is reserved.\n\n-   -   EEPROM_nWP\n\nIt is recommended that final products pull this pin low to prevent the end users changing the contents of the on board EEPROM.\nSee the Raspberry Pi 4, Model B documentation for instructions on the software settings required to support EEPROM Write protection. <https:\/\/www.raspberrypi.org\/documentation\/hardware\/raspberrypi\/booteeprom.md#:~:text=EEPROM%20write%20protect>",
                "char_count": 923,
                "token_estimate": 231
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "Description of Pin Header > <img src=\"ICON10.jpg\" title=\"ICON10.jpg\" width=\"20\" alt=\"ICON10.jpg\" \/> <img src=\"ICON15.jpg\" title=\"ICON15.jpg\" width=\"20\" alt=\"ICON15.jpg\" \/> PoE Port Adjust Pin",
                "chunk_index": 12,
                "content": "It have 4 jumper caps, caps position configures POE to connect to Port 0 or Port 1 <img src=\"Pinheader_10.jpg\" title=\"Pinheader_10.jpg\" width=\"500\" alt=\"Pinheader_10.jpg\" \/> <img src=\"Pinheader_15.jpg\" title=\"Pinheader_15.jpg\" width=\"500\" alt=\"Pinheader_15.jpg\" \/>",
                "char_count": 264,
                "token_estimate": 66
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "Description of Pin Header > <img src=\"ICON13.jpg\" title=\"ICON13.jpg\" width=\"20\" alt=\"ICON13.jpg\" \/> USB mode selection Pin",
                "chunk_index": 13,
                "content": "It is USB mode selection Pin, enabled by jumper caps, can change USB mode to Device mode and Host mode. Default mode is: USB 2.0 Host <img src=\"Pinheader_13.jpg\" title=\"Pinheader_13.jpg\" width=\"500\" alt=\"Pinheader_13.jpg\" \/>",
                "char_count": 224,
                "token_estimate": 56
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "Description of Pin Header > <img src=\"ICON14.jpg\" title=\"ICON14.jpg\" width=\"20\" alt=\"ICON14.jpg\" \/> CM4 Attach Position",
                "chunk_index": 14,
                "content": "Note: Please pay attention to the direction of the slot, wrong direction or wrong angle may damage your CM4 Module.\n\n<img src=\"Pinheader_14.jpg\" title=\"Pinheader_14.jpg\" width=\"320\" alt=\"Pinheader_14.jpg\" \/>",
                "char_count": 207,
                "token_estimate": 52
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "Description of Pin Header > <img src=\"ICON16.jpg\" title=\"ICON16.jpg\" width=\"20\" alt=\"ICON16.jpg\" \/>0.91 inch OLED display",
                "chunk_index": 15,
                "content": "<img src=\"Oled_routerboard16.jpg\" title=\"Oled_routerboard16.jpg\" width=\"500\" alt=\"Oled_routerboard16.jpg\" \/>\nIt communicate with Raspberry Pi CM4 via I2C protocol, it is based on SSD1306 chipset, 128x32 pixels resolution. It has been pre-installed on the CM4 router board and connect to CM4 on GPIO Pin number as following chart, and need to add \\`dtoverlay=i2c-gpio,i2c_gpio_sda=2,i2c_gpio_scl=3,i2c_gpio_delay_us=2,bus=1\\` to OpenWRT image's \/boot\/config.txt file which provides by 52Pi.\n\n| OLED 0.91 | CM4 Router Board          |\n|-----------|---------------------------|\n| VCC       | 3.3V                      |\n| GND       | GND                       |\n| SDA       | GPIO2 (BCM Naming System) |\n| SCL       | GPIO3 (BCM Naming System) |",
                "char_count": 742,
                "token_estimate": 186
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "Package Includes",
                "chunk_index": 16,
                "content": "-   1 x CM4 Router Board\n-   1 x Heatsink (Pre-installed)\n-   1 x 0.91 Inch OLED Display (Pre-installed)\n\n<img src=\"未标题-1.jpg\" title=\"未标题-1.jpg\" width=\"800\" alt=\"未标题-1.jpg\" \/>",
                "char_count": 175,
                "token_estimate": 55
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "CM4 Datasheet",
                "chunk_index": 17,
                "content": "-   CM4 Datasheet: <https:\/\/datasheets.raspberrypi.org\/cm4\/cm4-datasheet.pdf>",
                "char_count": 77,
                "token_estimate": 20
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "How to use > Requirements",
                "chunk_index": 18,
                "content": "-   1 x Any model of Compute Module 4\n-   1 x 5V@3A USB-C power supply\n-   1 x USB-C cable\n-   1 x MicroSD card (If you use the eMMC model, you don't need a microSD card, but you need to prepare a USB-C cable for editing and burning eMMC)\n-   2 x Cat-6 Ethernet Cable",
                "char_count": 267,
                "token_estimate": 67
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "How to use > How to connect network device",
                "chunk_index": 19,
                "content": "-   Release the screws of pre-installed heatsink.\n-   Paste thermal pad to CM4 Module on top of CPU and Memory chip.\n-   Install Compute Module 4 to CM4 Router Board insert the microSD or TF card (eMMC version does not require an SD card)\n-   Fix the heatsink to CM4 router board.\n-   Connect the network cable to your network device and power on the router board.\n\n<img src=\"CM4_router_board_network_top.jpg\" title=\"CM4_router_board_network_top.jpg\" width=\"800\" alt=\"CM4_router_board_network_top.jpg\" \/>\n\\*\\* Port 0 - to LAN network device such as switch.\n\n-   -   Port 1 - to WAN network device as outgoing port.(also you can define it in routerOS such as OpenWRT)",
                "char_count": 666,
                "token_estimate": 167
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "How to use > Operating System",
                "chunk_index": 20,
                "content": "The CM4 router board is compatible with most systems that support Raspberry Pi 4, but most Linux distributions do not optimize the network device scenarios. So OpenWRT and Raspberry Pi OS are recommended.",
                "char_count": 204,
                "token_estimate": 51
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "How to use > For Raspberry Pi OS",
                "chunk_index": 21,
                "content": "-   If you are using Raspberry Pi OS.\n\n1\\. Enable USB2.0 Port: After flash the latest image file to TF card and then modify \/boot\/config.txt file and add following line to the file.\n\n    dtoverlay=dwc2,dr_mode=host\n\nSave it and reboot Raspberry Pi. 2. Enable OLED onboard: 2.1 Enable I2C function, Open a terminal and typing:\n\n    sudo raspi-config\n\nNavigate to \\`Interface Options\\` -\\> \\`I2C\\` -\\> \\`Enable\\` -\\> \\`YES\\`. 2.2 Download libaraies from github:\n\n-   Open a terminal and Download demo code from: \\[ <https:\/\/github.com\/adafruit\/Adafruit_Python_SSD1306> \\]\n\n<!-- -->\n\n    sudo python -m pip install --upgrade pip setuptools wheel\n    git clone https:\/\/github.com\/adafruit\/Adafruit_Python_SSD1306.git\n    cd Adafruit_Python_SSD1306\n    sudo python setup.py install\n    pip install Adafruit-BBIO\n\n-   Run example Demo:\n\n<!-- -->\n\n    cd examples\/\n    python stats.py",
                "char_count": 877,
                "token_estimate": 220
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "How to use > Download Firmware",
                "chunk_index": 22,
                "content": "-   52Pi Version: Based on the latest development version of OpenWRT, which already includes the web interface and language pack, it is recommended to get started.\n    -   52Pi Official OpenWRT firmware \\[ <https:\/\/github.com\/geeekpi\/cm4routerboard> \\]",
                "char_count": 252,
                "token_estimate": 63
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "How to use > OpenWRT Referrence Documentations",
                "chunk_index": 23,
                "content": "-   OpenWRT official snapshot version\n\nThe official snapshot is the smallest system, using serial terminal control, you need to manually install the Web console, driver, etc. it is recommended for experienced users.\n\n-   -   OpenWRT official website: \\[ <https:\/\/openwrt.org\/> \\]\n    -   OpenWRT Develop Guide: \\[ <https:\/\/openwrt.org\/docs\/guide-developer\/source-code\/start> \\]\n    -   OpenWRT User Guide: \\[ <https:\/\/openwrt.org\/docs\/guide-user\/start> \\]\n    -   OpenWRT forum: \\[ <https:\/\/openwrt.org\/contact#forum> \\]\n    -   OpenWRT on Raspberry Pi CM4: \\[ <https:\/\/openwrt.org\/toh\/hwdata\/raspberry_pi_foundation\/raspberry_pi_foundation_raspberry_pi_cm4> \\]\n    -   OpenWRT Raspberry Pi Foundation: \\[ <https:\/\/openwrt.org\/toh\/raspberry_pi_foundation\/raspberry_pi> \\]\n    -   OpenWRT Use BuildSystem: \\[ <https:\/\/openwrt.org\/docs\/guide-developer\/build-system\/use-buildsystem> \\]\n    -   OpenWRT Build-System: \\[ <https:\/\/openwrt.org\/docs\/guide-developer\/build-system\/install-buildsystem> \\]",
                "char_count": 994,
                "token_estimate": 249
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "How to use > SD Card Installation",
                "chunk_index": 24,
                "content": "Suitable for Compute Module 4 Lite without eMMC version.\n\n-   1\\. Requirements\n    -   Card Reader\n    -   Etcher\n    -   7-Zip Compressed File Manager\n    -   OS image file\n\nFlash the image file to MicroSD card by using etcher imaging tool.",
                "char_count": 241,
                "token_estimate": 61
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "How to use > Build OpenWRT Customized Firmware",
                "chunk_index": 25,
                "content": "You can build your own firmware by building OpenWRT from source.\n\n-   1.Prepare Compile Environment\n    -   Flash the latest version of Raspberry Pi OS to TF card(32GB recommended).\n    -   Modify \/boot\/config.txt file and adding the following parameter to enable the USB port function:\n\n<!-- -->\n\ndtoverlay=dwc2,dr_mode=host\n\n-   -   Insert the TF card into card slot on CM4 Router Board.\n    -   Connect the power supply(5V\/3A) on USB-C port.\n    -   After booting up the system, please connect to internet and typing following command in a terminal:\n\n<!-- -->\n\nsudo apt-get update\n    sudo apt-get -y upgrade\n\n-   -   Install dependencies packages:\n\n<!-- -->\n\nsudo apt-get -y install build-essential asciidoc binutils bzip2 libncurses5-dev flex git-core p7zip p7zip-full\n\nsudo apt-get -y install libssl-dev libelf-dev autoconf automake libtool device-tree-compiler gettext libi2c-dev\n\nsudo apt-get -y install libz-dev texinfo\n\n-   -   After installing, please reboot your Raspberry Pi CM4 by typing:\n\n<!-- -->\n\nsudo sync && sudo reboot\n\n-   -   Create a folder and download OpenWRT source code by using git tool:\n\n<!-- -->",
                "char_count": 1125,
                "token_estimate": 282
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "How to use > Build OpenWRT Customized Firmware",
                "chunk_index": 26,
                "content": "mkdir openwrt && cd openwrt\n    git clone --depth=1 https:\/\/github.com\/openwrt\/openwrt\n    cd openwrt\/\n    .\/scripts\/feeds update -a\n    .\/scripts\/feeds install -a\n\n-   -   Download \\`luci-app-oled\\` libraries.\n\n<!-- -->\n\ncd ~\/openwrt\/openwrt\/package\/feeds\/luci\/\n    git clone https:\/\/github.com\/NateLol\/luci-app-oled.git\n    cd ~\/openwrt\/openwrt\/\n    .\/scripts\/feeds update -a\n    .\/scripts\/feeds install -a\n\n-   -   Download RTL8168 driver source code and put it into openwrt\/package\/ folder\n\nURL: \\[ <https:\/\/www.realtek.com\/en\/component\/zoo\/category\/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software> \\] Download it and unzip it to openwrt\/package\/ folder <img src=\"Rtl8168drv.png\" title=\"Rtl8168drv.png\" width=\"800\" alt=\"Rtl8168drv.png\" \/>\n\n-   -   Configure the compile options by typing:\n\n<!-- -->\n\nmake menuconfig",
                "char_count": 852,
                "token_estimate": 213
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "How to use > Build OpenWRT Customized Firmware",
                "chunk_index": 27,
                "content": "And then select \"Target System\" and \"Target Profile\" as following picture: <img src=\"Openwrt-make-manuconfig-target.png\" title=\"Openwrt-make-manuconfig-target.png\" width=\"800\" alt=\"Openwrt-make-manuconfig-target.png\" \/> <img src=\"Openwrt-make-manuconfig-target2.png\" title=\"Openwrt-make-manuconfig-target2.png\" width=\"800\" alt=\"Openwrt-make-manuconfig-target2.png\" \/>\nNavigate to \\`kernel modules\\` and select \\`kmod-i2c-xxx\\` as following picutres: <img src=\"Kernel_modules.png\" title=\"Kernel_modules.png\" width=\"800\" alt=\"Kernel_modules.png\" \/> <img src=\"I2csupport.png\" title=\"I2csupport.png\" width=\"800\" alt=\"I2csupport.png\" \/> <img src=\"I2c_selection.png\" title=\"I2c_selection.png\" width=\"800\" alt=\"I2c_selection.png\" \/>\nAnd then navigate to \\`USB Support\\` to add usb2 and usb3 support. <img src=\"Usb_dwc2-3_usbnet_usb-hid.png\" title=\"Usb_dwc2-3_usbnet_usb-hid.png\" width=\"800\" alt=\"Usb_dwc2-3_usbnet_usb-hid.png\" \/> <img src=\"Usb-2-3-kmod.png\" title=\"Usb-2-3-kmod.png\" width=\"800\" alt=\"Usb-2-3-kmod.png\" \/>\nAnd then select \\`coreutils\\` in \\`Utilites\\` menu. <img src=\"Utilities-coreutils.png\" title=\"Utilities-coreutils.png\" width=\"800\" alt=\"Utilities-coreutils.png\" \/> <img src=\"Coreutils.",
                "char_count": 1198,
                "token_estimate": 300
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "How to use > Build OpenWRT Customized Firmware",
                "chunk_index": 28,
                "content": "png\" title=\"Coreutils.png\" width=\"800\" alt=\"Coreutils.png\" \/>\nand enable \\`libi2c\\` in \\`libraries\\` menu. <img src=\"Libraries.png\" title=\"Libraries.png\" width=\"800\" alt=\"Libraries.png\" \/> <img src=\"Libi2c.png\" title=\"Libi2c.png\" width=\"800\" alt=\"Libi2c.png\" \/>\nNext step is to enable LuCI \\`Collections\\` and \\`applications\\`. <img src=\"Luci.png\" title=\"Luci.png\" width=\"800\" alt=\"Luci.png\" \/> <img src=\"Collections.png\" title=\"Collections.png\" width=\"800\" alt=\"Collections.png\" \/> <img src=\"Luci_luci_ssl_openssl.png\" title=\"Luci_luci_ssl_openssl.png\" width=\"800\" alt=\"Luci_luci_ssl_openssl.png\" \/>\nNavigate to \\`Applications\\` -\\> \\`luci-app-oled\\` and check it: <img src=\"Luci-app-oled.png\" title=\"Luci-app-oled.png\" width=\"800\" alt=\"Luci-app-oled.png\" \/>\nSave the configuration to \\`.config\\` file <img src=\"Save_cofig.png\" title=\"Save_cofig.png\" width=\"800\" alt=\"Save_cofig.png\" \/>\n\\* Compile it with following command:",
                "char_count": 925,
                "token_estimate": 232
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "How to use > Build OpenWRT Customized Firmware",
                "chunk_index": 29,
                "content": "make V=s -j1\n\nIt may take a while, grap a cup of coffee.\n\n-   Firmware will be generated on location:\n\n<!-- -->\n\n~\/openwrt\/openwrt\/bin\/targets\/bcm27xx\/\n\n-   -   Factory image file: openwrt-bcm27xx-bcm2711-rpi-4-ext4-factory.img.gz or openwrt-bcm27xx-bcm2711-rpi-4-squashfs-factory.img.gz\n    -   Sysupgrade image file: openwrt-bcm27xx-bcm2711-rpi-4-ext4-sysupgrade.img.gz or openwrt-bcm27xx-bcm2711-rpi-4-squashfs-sysupgrade.img.gz\n\n-   Flash the facotory image file to TF card via using \\`etcher\\` tool and insert the TF card to CM4_router_board, connect the 5V power supply.\n\n-   After booting, please connect your PC or just using Raspberry Pi to the ethernet cable on CM4 Router Board in \\`port0\\` or \\`port1\\`, and then open a browser, and typing administration address:\n\n<!-- -->\n\n192.168.1.1\n\n-   -   Account: root\n    -   Password is not set. please change the password once you login.",
                "char_count": 893,
                "token_estimate": 224
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "How to use > Enable I2C device in Customized OpenWRT",
                "chunk_index": 30,
                "content": "-   Modify \\`\/boot\/config.txt\\` file and add this line:\n\n<!-- -->\n\n    dtoverlay=i2c-gpio,i2c_gpio_sda=2,i2c_gpio_scl=3,i2c_gpio_delay_us=2,bus=1\n\nSave it and reboot Raspberry Pi CM4 Router Board.\n\\* Change the Permission of \\`\/etc\/init.d\/oled\\` file:\n\n    chmod 755 \/etc\/init.d\/oled\n    \/etc\/init.d\/oled restart\n\n    reboot\n\n-   After reboot, try to test if it can detect the oled's address \\`0x3C\\`\n\n<img src=\"Oledaddressdetect.png\" title=\"Oledaddressdetect.png\" width=\"800\" alt=\"Oledaddressdetect.png\" \/>\n\\* Login to LuCI interface via browser and enable it, and then you can find the OLED in \\`service\\` tab, you can configure it as the notifications. <img src=\"Luciinterface_oled.png\" title=\"Luciinterface_oled.png\" width=\"800\" alt=\"Luciinterface_oled.png\" \/>\n\\* Check the checkbox on \\`enable\\` and click \\`save it and apply\\`.",
                "char_count": 833,
                "token_estimate": 209
            },
            {
                "title": "EP-0146",
                "rev_id": 12998,
                "heading_path": "DIY Case",
                "chunk_index": 31,
                "content": "-   Thanks to Dirk Feyerabend for his contribution to this project, it is a very cool case.\n-   OpenLaserCase for 52pi CM4 Router Board: \\[ <https:\/\/www.thingiverse.com\/thing:5449554> \\]\n\n<img src=\"Cm4routercase.png\" title=\"Cm4routercase.png\" width=\"800\" alt=\"Cm4routercase.png\" \/>",
                "char_count": 281,
                "token_estimate": 71
            }
        ]
    }
}