Open main menu

Wiki-Orange Pi β

Changes

Orange Pi Zero 3

7,026 bytes removed, 10:19, 19 July 2023
How to install Debian system
== Hardware Features of Orange Pi Zero 3 ==
{| class="wikitable" style="width:800px;text-align: center;"
|-
|colspan=2|<div style="text-align:center"><big>'''Introduction to hardware features'''</big></div>
|-
| Onboard storage
| TF micro SD card slot, 16MB SPI Flash
|-
| Ethernet
| WIFI+Bluetooth
|
* AW859A chip, support IEEE 802.11 a/b/g/n/ac, BT5.0
|-
| Video Output
|
* Micro HDMI 2.0a
* TV CVBS output, support PAL/NTSC (via 13pin expansion board)
|-
| Audio output
|
* Micro HDMI output
* 3.5mm audio port (via 13pin expansion board)
|-
|-
| USB 2.0 port
| 3 * USB 2.0 HOST (two of them are through 13pin expansion board)
|-
| 26pin connector
<big>'''Top view:'''</big>
[[File:media/image3zero3-img3-1.png|390x329px]]
<big>'''Bottom view:'''</big>
[[File:media/image4zero3-img4.png|494x292px]]
<span id="interface-details-of-orange-pi-zero-3"></span>
== Interface details of Orange Pi Zero 3 ==
[[File:media/image5zero3-img5.png|485x787px]]
[[File:media/image6zero3-img6.png|575x227px]]
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
== Prepare the required accessories ==
# TF Micro SD card, a high-speed SanDisk card of class 10 or above with a minimum capacity of 8GB
::[[File:media/image7zero3-img7.png|124x96px]]
::{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big>'''Using other brands of TF micro SD cards (non-SanDisk TF micro SD cards), as shown in the picture below (including but not limited to these cards), some friends have reported that there will be problems during the system startup process, such as the system is stuck halfway through startup, Or the reboot command cannot be used normally, and it was finally resolved after changing the SanDisk TF micro SD card. So if you use a non-SanDisk TF micro SD card and find that there is a problem with the system startup or use, please replace the SanDisk TF micro SD card and then test.'''</big>
<p>[[File:media/image8zero3-img8.png|103x85px180px]][[File:media/image9zero3-img9.png|112x85px195px]][[File:media/image10zero3-img10.png|114x85px198px]][[File:media/image11zero3-img11-1.png|86x109px190px]]</p>
<p style="text-align: center;">'''Current feedback is that there are some TF micro SD cards that have problems starting on Orange Pi Zero 3'''</p>
<big>'''In addition, the TF micro SD card that can be used normally on other types of development boards does not guarantee that it can be started normally on Orange Pi Zero 3, please pay special attention to this point.'''</big>
|}
<ol start="2" style="list-style-type: decimal;">
<li>TF micro SD card reader, used to read and write TF micro SD card</li>
[[File:media/image12zero3-img12.png|139x96px]]
</ol>
<ol start="3" style="list-style-type: decimal;">
<li>Micro HDMI to HDMI cable, used to connect the development board to an HDMI monitor or TV for display</li>
[[File:media/image13zero3-img13.png|215x222px]]
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
<big>'''Note, please do not use the relatively wide Micro HDMI adapter as shown in the figure below, because the distance between the Micro HDMI interface of the development board and the Type-C power interface is relatively small, it may cause that the two cannot be inserted into the development board at the same time. plate.'''</big>
[[File:media/image14zero3-img14.png|151x120pxcenter]]
|}
</ol>
<li>Power supply, if you have a 5V/2A or 5V/3A power head, you only need to prepare a USB-to-Type C interface data cable as shown in the picture on the left below, and you can also use a cable similar to the picture on the right below A 5V/2A or 5V/3A high-quality USB Typc C interface power adapter integrated with the power head.</li>
[[File:media/image15zero3-img15.png|217x223px]] [[File:media/image16zero3-img16.png|218x218px]]
</ol>
<ol start="5" style="list-style-type: decimal;">
<li>The physical object of the expansion board is as follows</li>
[[File:media/image17zero3-img17-1.png|252x154px]]
</ol>
<ol start="2" style="list-style-type: lower-alpha;">
<li>The way to insert the expansion board into the development board is as follows, remember not to insert it backwards</li>
[[File:media/image18zero3-img18.png|246x162px]]
</ol>
<ol start="3" style="list-style-type: lower-alpha;">
{| class="wikitable" style="width:800px;"
|-
| style="text-align: leftcenter;"| 1| style="text-align: leftcenter;"| Microphone (Mic)| style="text-align: leftcenter;"| '''<span style="color:#FF0000">No support, no support, no support! ! !</span><br />
<br />
'''The 13pin expansion board is a general-purpose expansion board, which is suitable for various development boards of Orange Pi, but the 13pin interface of Orange Pi Zero3 has no Mic function, so although there is a Mic on the 13pin expansion board, it is on the Orange Pi Zero 3. Unusable, the 13pin expansion board is mainly used to expand functions other than Mic on Orange Pi Zero 3.
|-
| style="text-align: leftcenter;"| 2| style="text-align: leftcenter;"| Analog audio and video output interface| style="text-align: leftcenter;"| Supported, it can be used to connect headphones to play music, or connect to TV through AV cable to output analog audio and video signals '''(Android system only).'''
|-
| style="text-align: leftcenter;"| 3| style="text-align: leftcenter;"| USB 2.0 Host x 2| style="text-align: leftcenter;"| Support, used to connect USB keyboard, mouse and USB storage device.
|-
| style="text-align: leftcenter;"| 4| style="text-align: leftcenter;"| Infrared receiving function| style="text-align: leftcenter;"| Support, Android system can be controlled by infrared remote control.
|}
</ol>
<li>The schematic diagram of the 13pin header of the Orange Pi Zero 3 development board is shown below</li>
[[File:media/image19zero3-img19.png|264x142px]]
</ol>
</li></ol>
<li><p>Infrared remote control, mainly used to control Android TV system</p></li>
[[File:media/image20zero3-img20.png|170x173px]]
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
<li><p>AV video cable, if you want to display video through the AV interface instead of the HDMI interface, then you need to connect the development board to the TV through the AV video cable</p></li>
[[File:media/image21zero3-img21.png|217x218px]]
</ol>
<ol start="10" style="list-style-type: decimal;">
<li>Heat sink, if you are worried that the temperature of the development board is too high, you can add a heat sink, and the heat sink can be pasted on the H618 chip</li>
[[File:media/image22zero3-img22.png|171x140px]] [[File:media/image23zero3-img23-1.png|151x147px]]
</ol>
<ol start="11" style="list-style-type: decimal;">
|}
[[File:media/image24zero3-img24-1.png|212x226px]]
</ol>
<ol start="12" style="list-style-type: decimal;">
<li><p>USB to TTL module and DuPont line, when using the serial port debugging function, need USB to TTL module and DuPont line to connect the development board and computer</p></li>
[[File:media/image25zero3-img25-1.png|176x118px]] [[File:media/image26zero3-img26.png|305x110px]]
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
{| class="wikitable" style="width:800px;"
|-
| style="text-align: leftcenter;"| 1| style="text-align: leftcenter;"| Ubuntu22.04 PC| style="text-align: leftcenter;"| Optional, used to compile Android and Linux source code
|-
| style="text-align: leftcenter;"| 2| style="text-align: leftcenter;"| Windows PC| style="text-align: leftcenter;"| For burning Android and Linux images
|}
</ol>
<span id="method-of-burning-linux-image-to-tf-card-based-on-windows-pc"></span>
== Method of burning Linux image to TF micro SD card based on Windows PC ==
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big>'''Note that the Linux image mentioned here specifically refers to the image of Linux distributions such as Debian or Ubuntu downloaded from the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Zero-3.html Orange Pi data download page].'''</big>
|}
=== How to use balenaEtcher to burn Linux image ===
# First prepare a TF micro SD card with a capacity of 8GB or more. The transmission speed of the TF micro SD card must be '''class 10 or above'''. It is recommended to use a TF micro SD card of SanDisk and other brands# Then use the card reader to insert the TF micro SD card into the computer# Download the Linux operating system image file compression package that you want to burn from the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Zero-3.html '''Orange Pi data download page'''], and then use the decompression software to decompress it. Among the decompressed files, the file ending with &quot;.img&quot; is the image file of the operating system. The size is generally more than 1GB
# Then download the burning software of Linux image——'''balenaEtcher,''' the download address is
<li>After entering the balenaEtcher download page, click the green download button to jump to the place where the software is downloaded</li>
[[File:media/image27zero3-img27.png|456x219px]]
</ol>
<ol start="6" style="list-style-type: decimal;">
<li>Then you can choose to download the Portable version of balenaEtcher software. The Portable version does not need to be installed, and you can use it by double-clicking to open it</li>
[[File:media/image28zero3-img28.png|468x173px]]
</ol>
<ol start="7" style="list-style-type: decimal;">
<li>If the downloaded version of balenaEtcher needs to be installed, please install it before using it. If you downloaded the Portable version of balenaEtcher, just double-click to open it. The opened balenaEtcher interface is shown in the figure below</li>
[[File:media/image29zero3-img29.png|335x211px]]
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
<big>'''When opening balenaEtcher, if the following error is prompted:'''</big>
[[File:media/image30zero3-img30.png|206x162pxcenter]]
<big>'''Please select balenaEtcher, right-click, and select Run as administrator.'''</big>
[[File:media/image31zero3-img31-1.png|114x37pxcenter]]
|}
</ol>
<ol style="list-style-type: lower-alpha;">
<li><p>First select the path of the Linux image file to be burned</p></li>
<li><p>Then select the drive letter of the TF micro SD card</p></li><li><p>Finally click Flash to start burning the Linux image to the TF micro SD card</p>[[File:media/image32zero3-img32.png|501x281px|03]]
</li></ol>
</li>
<li><p>The interface displayed in the process of burning the Linux image by balenaEtcher is shown in the figure below, and the progress bar displays purple, indicating that the Linux image is being burned into the TF micro SD card</p></li>
[[File:media/image33zero3-img33.png|506x317px]]
</ol>
<ol start="10" style="list-style-type: decimal;">
<li>After burning the Linux image, balenaEtcher will also verify the image burned to the TF micro SD card by default to ensure that there is no problem in the burning process. As shown in the figure below, a green progress bar indicates that the image has been burnt, and balenaEtcher is verifying the burnt image.</li>
[[File:media/image34zero3-img34.png|519x325px]]
</ol>
<ol start="11" style="list-style-type: decimal;">
<li>After successful burning, the display interface of balenaEtcher is as shown in the figure below. If the green indicator icon is displayed, it means that the image burning is successful. At this time, you can exit balenaEtcher, and then pull out the TF micro SD card and insert it into the TF micro SD card slot of the development board. .</li>
<div class="figure">
[[File:media/image35zero3-img35.png|523x324px|04]]
</div></ol>
<ol style="list-style-type: decimal;">
<li><p>First prepare a TF micro SD card with a capacity of 8GB or more. The transmission speed of the TF micro SD card must be '''class 10 or above'''. It is recommended to use a TF micro SD card of SanDisk and other brands</p></li><li><p>Then use the card reader to insert the TF micro SD card into the computer</p></li><li><p>Then format the TF micro SD card</p>
<ol style="list-style-type: lower-alpha;">
<li>'''SD Card Formatter'''can be used to format the TF micro SD card. The download link is</li>
{| class="wikitable" style="width:800px;"
<ol start="2" style="list-style-type: lower-alpha;">
<li><p>After downloading, unzip and install directly, and then open the software</p></li>
<li><p>If only a TF micro SD card is inserted into the computer, the drive letter of the TF micro SD card will be displayed in the &quot; '''Select card''' &quot; column. If multiple USB storage devices are inserted into the computer, you can select the corresponding drive letter of the TF micro SD card through the drop-down box</p></li>
<div class="figure">
[[File:media/image36zero3-img36.png|209x228px|选区_199]]
</div></ol>
<li>Then click &quot; '''Format''' &quot;, a warning box will pop up before formatting, and formatting will start after selecting &quot;Yes (Y)&quot;</li>
[[File:media/image37zero3-img37.png|304x147px]]
</ol>
<ol start="5" style="list-style-type: lower-alpha;">
<li>After formatting the TF micro SD card, the message shown in the figure below will pop up, click OK</li>
[[File:media/image38zero3-img38.png|186x149px]]
</ol>
</li></ol>
<ol start="4" style="list-style-type: decimal;">
<li><p>Download the Linux operating system image file compression package that you want to burn from the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Zero-3.html '''Orange Pi data download page'''], and then use the decompression software to decompress it. Among the decompressed files, the file ending with &quot;.img&quot; is the image file of the operating system. The size is generally more than 1GB</p></li><li><p>Use Win32Diskimager to burn the Linux image to the TF micro SD card</p>
<ol style="list-style-type: lower-alpha;">
<li>The download page of Win32Diskimager is</li>
<ol style="list-style-type: none;">
<li><p>a) First select the path of the image file</p></li>
<li><p>b) Then confirm that the drive letter of the TF micro SD card is consistent with that displayed in the &quot;'''Device'''&quot; column</p></li>
<li><p>c) Finally click &quot;'''Write'''&quot; to start burning</p></li>
<div class="figure">
[[File:media/image39zero3-img39.png|297x206px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\a8fda8737c5b0b3b38fbb75ef68acfc.pnga8fda8737c5b0b3b38fbb75ef68acfc]]
</div></ol>
</li></ol>
<ol start="3" style="list-style-type: lower-alpha;">
<li>After the image writing is completed, click the &quot;'''Exit'''&quot; button to exit, and then you can pull out the TF micro SD card and insert it into the development board to start</li></ol>
</li></ol>
<span id="method-of-burning-linux-image-to-tf-card-based-on-ubuntu-pc"></span>
== Method of burning Linux image to TF micro SD card based on Ubuntu PC ==
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big>'''Note that the Linux image mentioned here specifically refers to the image of Linux distributions such as Debian or Ubuntu downloaded from the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Zero-3.html Orange Pi data download page], and the Ubuntu PC refers to the personal computer with the Ubuntu system installed.'''</big>
|}
# First prepare a TF micro SD card with a capacity of 8GB or more. The transmission speed of the TF micro SD card must be '''class 10 or above'''. It is recommended to use a TF micro SD card of SanDisk and other brands# Then use the card reader to insert the TF micro SD card into the computer
# Download the balenaEtcher software, the download address is
<li>After entering the balenaEtcher download page, click the green download button to jump to the place where the software is downloaded</li>
[[File:media/image27zero3-img27.png|489x235px]]
</ol>
<ol start="5" style="list-style-type: decimal;">
<li>Then choose to download the Linux version of the software</li>
[[File:media/image40zero3-img40.png|485x184px]]
</ol>
<ol start="6" style="list-style-type: decimal;">
<li>Download the image file compression package of the Linux operating system that you want to burn from the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Zero-3.html '''Orange Pi data download page'''], and then use the decompression software to decompress it. Among the decompressed files, the file ending with &quot;'''.img'''&quot; is the image file of the operating system. The size is generally above 1GB. The decompression command for the compressed package ending in 7z is as follows:</li>
{| class="wikitable" style="width:800px;"
</ol>
<ol start="7" style="list-style-type: decimal;">
<li>After decompressing the image, you can first use the '''sha256sum -c *.sha''' command to calculate whether the checksum is correct. If the prompt is successful, it means that the downloaded image is correct, and you can safely burn it to the TF micro SD card. '''If it prompts that the checksum does not match''', it means There there is a problem with the downloaded image, please try to download again</li>
{| class="wikitable" style="width:800px;"
<li>Then double-click '''balenaEtcher-1.14.3-x64.AppImage''' on the graphical interface of Ubuntu PC to open balenaEtcher (no installation required), and the interface after balenaEtcher is opened is displayed as shown in the figure below</li>
[[File:media/image41zero3-img41.png|423x251px]]
</ol>
<ol start="9" style="list-style-type: decimal;">
<ol style="list-style-type: lower-alpha;">
<li><p>First select the path of the Linux image file to be burned</p></li>
<li><p>Then select the drive letter of the TF micro SD card</p></li><li><p>Finally click Flash to start burning the Linux image to the TF micro SD card</p></li>
<div class="figure">
[[File:media/image32zero3-img32.png|501x281px|03]]
</div></ol>
</li></ol>
<ol start="10" style="list-style-type: decimal;">
<li>The interface displayed in the process of burning the Linux image by balenaEtcher is shown in the figure below, and the progress bar displays purple, indicating that the Linux image is being burned into the TF micro SD card</li>
[[File:media/image42zero3-img42.png|576x247px]]
</ol>
<ol start="11" style="list-style-type: decimal;">
<li>After burning the Linux image, balenaEtcher will also verify the image burned into the TF micro SD card by default to ensure that there is no problem in the burning process. As shown in the figure below, a green progress bar indicates that the image has been burnt, and balenaEtcher is verifying the burnt image</li>
[[File:media/image43zero3-img43.png|576x252px]]
</ol>
<ol start="12" style="list-style-type: decimal;">
<li>After successful burning, the display interface of balenaEtcher is as shown in the figure below. If a green indicator icon is displayed, it means that the image burning is successful. At this time, you can exit balenaEtcher, and then pull out the TF micro SD card and insert it into the TF micro SD card slot of the development board for use</li>
[[File:media/image44zero3-img44.png|576x340px]]
</ol>
<span id="how-to-burn-android-image-to-tf-card"></span>
== How to burn Android image to TF micro SD card ==
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big>'''The Android image of the development board can only be burned into the TF micro SD card under the Windows platform using the <span style="color:#FF0000">PhoenixCard</span> software, and the version of the PhoenixCard software must be <span style="color:#FF0000">PhonixCard-4.2.8</span>.'''
'''Please do not use software for burning Linux images, such as Win32Diskimager or balenaEtcher, to burn Android images.'''
'''In addition, the PhoenixCard software does not have versions for Linux and Mac platforms, so it is impossible to burn Android images to TF micro SD cards under Linux and Mac platforms.'''</big>
|}
# First, please make sure that the Windows system has installed '''Microsoft Visual C++ 2008 Redistrbutable - x86'''
::[[File:media/image45zero3-img45.png|449x293px]]
<ol start="2" style="list-style-type: decimal;">
<li>If not installed '''Microsoft Visual C++ 2008 Redistrbutable - x86''', Using PhoenixCard to format TF micro SD card or burn Android image will prompt the following error</li>
<div class="figure">
[[File:media/image46zero3-img46.png|522x395px|NUQB$Q%(){1CV6M6WK4N`5J]]
</div></ol>
<li>'''Microsoft Visual C++ 2008 Redistrbutable - x86''' the installation package can be downloaded from the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Zero-3.html '''official tool'''] of Orange Pi Zero 3, or you can go to the [https://www.microsoft.com/zh-cn/download/details.aspx?id=26368 '''official website of Microsoft'''] to download</li>
[[File:media/image47zero3-img47.png|242x52px]] [[File:media/image48zero3-img48.png|200x95px]]
</ol>
<ol start="4" style="list-style-type: decimal;">
<li><p>Then prepare a TF micro SD card with 8GB or larger capacity. The transmission speed of the TF micro SD card must be '''class 10 or above'''. It is recommended to use a TF micro SD card of SanDisk and other brands</p></li><li><p>Then use the card reader to insert the TF micro SD card into the computer</p></li>
<li><p>Download the Android image and PhoenixCard programming tool from the [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Zero-3.html '''Orange Pi data download page''']. '''<span style="color:#FF0000">Please ensure that the version of the PhonenixCrad tool is PhonixCard-4.2.8.</span>''' Please do not use the PhonixCard software version lower than 4.2.8 to burn the Android image. There may be problems with the Android image flashed by this version of the PhonixCard tool</p></li>
[[File:media/image49zero3-img49-1.png|575x169px]]
</ol>
<ol start="7" style="list-style-type: decimal;">
<li>Then use the decompression software to decompress the compressed package of the downloaded Android image'''PhonixCard4. Among the decompressed files, the file ending with &quot;2.img&quot; is the Android image file, and the size is more than 1GB8. If you donzip't know how to decompress the compressed package of the Android image, you can install a [https://yasuo.360.cn/ '''compression , this software'''] does not need to decompress be installed, just find PhoenixCard in the image.decompressed folder and open it</li>
[[File:media/image50zero3-img51.png|438x158px]]
</ol>
<ol start="8" style="list-style-type: decimal;">
<li>Then use decompression software to decompress After opening PhoenixCard, if the micro SD card is recognized normally, the drive letter and capacity of the micro SD card will be displayed in the middle list. '''PhonixCard4.2.8.zip<span style="color:#FF0000">Please make sure that the displayed drive letter is consistent with the drive letter of the micro SD card you want to burn</span>'''. If there is no display, this software does not need you can try to be installedunplug the micro SD card, just find or click the &quot;'''Refresh Drive Letter'''&quot; button in PhoenixCard in the decompressed folder and open it</li>
[[File:media/image51zero3-img52-1.png|576x113px]]
</ol>
<ol start="9" style="list-style-type: decimal;">
<li>After opening PhoenixCard, if the TF card is recognized normally, the drive letter and capacity of the TF card will be displayed in the middle list. '''<span style="color:#FF0000">Please make sure that the displayed drive letter is consistent with the drive letter of the TF card you want to burn</span>'''. If there is no display, you can try to unplug the TF card, or click the &quot;'''Refresh Drive Letter'''&quot; button in PhoenixCard</li> [[File:media/image52.png|575x137px]]</ol><ol start="10" style="list-style-type: decimal;"><li>After confirming the drive letter, format the TF micro SD card first, and click the &quot;'''Recover Card'''&quot; button in PhoenixCard (if the &quot;'''Recover Card'''&quot; button is gray and cannot be pressed, you can first click the &quot;'''Refresh Drive Letter'''&quot; button)</li>
<div class="figure">
[[File:media/image53.jpeg|575x316px|C:\Users\orangepi\Desktop\用户手册插图\Zero3\未标题zero3-1img53.jpg未标题-1png]]
</div>
|-
|
<big>'''If there is a problem with formatting, please try to unplug and insert the TF micro SD card and then test again. If the problem still exists after re-plugging and inserting the TF micro SD card, you can restart the Windows computer or try another computer.'''</big>
|}
</ol>
<ol start="1110" style="list-style-type: decimal;"><li><p>Then start to write the Android image into the TF micro SD card</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First select the path of the Android image in the &quot;'''Firmware'''&quot; column</p></li>
<li><p>Then click the &quot;'''burn card'''&quot; button to start burning</p></li>
[[File:media/image54zero3-img54-1.png|576x431px]]
</ol>
</li></ol>
<ol start="1211" style="list-style-type: decimal;"><li>After burning, the display of PhoenixCard is as shown in the figure below. At this time, click the &quot;'''Close'''&quot; button to exit PhoenixCard, and then you can pull out the TF micro SD card from the computer and insert it into the development board to start</li>
<div class="figure">
[[File:media/image55zero3-img55-1.jpeg|575x358px|1png]]
</div>
|-
|
<big>'''After burning the Android system, the TF micro SD card can only see a 128 MB partition in Windows, and the displayed partition is as shown in the figure below (some computers may pop up more than 20 disk partitions, but only the 128 MB partition can be opened. partition), please note that this is normal, please do not think that the TF micro SD card is burned out. The reason for this is that the Android system has a total of more than 20 partitions, but most of them cannot be recognized normally in the Windows system. At this point, please safely unplug the TF micro SD card and insert it into the development board to start it.'''</big>
[[File:media/image56zero3-img56.png|193x45pxcenter]]
<big>'''After the Android system starts, use the following command to see the twenty or so partitions in the TF micro SD card:'''</big>
[[File:media/image57zero3-img57.png|368x131pxcenter]]
<big>'''Use the df -h command to see that the 16GB TF micro SD card has about 11 GB of space available after burning the Android system (more than 20 partitions will not be mounted to the Android system, focus on these to the partition).'''</big>
[[File:media/image58zero3-img58.png|391x220pxcenter]]
|}
</ol>
There is a 16MB SPI Flash on the development board, and its location is shown in the figure below:
[[File:media/image59zero3-img59-1.png|285x185px]]
There is a tiny linux system programmed into SPI Flash by default, which is mainly used to prove that the development board can start normally. When you get the development board, you don't need to burn the system into the TF micro SD card, you only need to connect the Type-C power supply to the development board to start the micro linux system in the SPI Flash. The main functions of this system are:
<ol style="list-style-type: lower-alpha;">
<p>Due to the limited functions of the tiny linux system in SPI Flash, if you want to use all the functions of the development board normally, please burn the linux image or Android image to the TF micro SD card, and then use it.</p>
<span id="start-the-orange-pi-development-board"></span>
== Start the Orange Pi development board ==
# Insert the TF micro SD card with the burned image into the TF micro SD card slot of the Orange Pi development board
# The development board has a Micro HDMI interface, and the development board can be connected to a TV or HDMI display through a Micro HDMI to HDMI cable
# If you have purchased a 13pin expansion board, you can plug the 13pin expansion board into the 13pin interface of the development board
# Connect a high-quality power adapter with a 5V/2A (5V/3A is also available) USB Type C interface
::{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<div class="figure">
::[[File:media/image60zero3-img60-1.jpeg|552x110px|7png]]
</div>
<li>The corresponding relationship between GND, TX and RX pins of the debugging serial port of the development board is shown in the figure below</li>
[[File:media/image61zero3-img61-1.png|328x185px]]
</ol>
<ol start="3" style="list-style-type: decimal;">
<li><p>The schematic diagram of connecting the USB to TTL module to the computer and the Orange Pi development board is as follows</p></li>
[[File:media/image62zero3-img62.png|553x204px]]
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
<li>After executing the putty command, the following interface will pop up</li>
[[File:media/image63zero3-img63.png|332x290px]]
</ol>
<ol start="5" style="list-style-type: decimal;">
<div class="figure">
[[File:media/image64zero3-img64.jpeg|337x297px|9png]]
</div></ol>
<div class="figure">
[[File:media/image65zero3-img65-1.jpeg|398x352px|10png]]
</div></ol>
<div class="figure">
[[File:media/image66zero3-img66.jpeg|375x333px|11png]]
</div></ol>
<li>Then start the development board, and you can see the Log information output by the system from the opened serial port terminal</li>
[[File:media/image67zero3-img67.png|376x249px]]
</ol>
<span id="how-to-use-the-debugging-serial-port-on-windows-platform"></span>
<li>After entering the MobaXterm download page, click '''GET XOBATERM NOW!'''</li>
[[File:media/image68zero3-img68.png|382x233px]]
</ol>
<ol start="3" style="list-style-type: lower-alpha;">
<li>Then choose to download the Home version</li>
[[File:media/image69zero3-img69.png|353x231px]]
</ol>
<ol start="4" style="list-style-type: lower-alpha;">
<div class="figure">
[[File:media/image70zero3-img70.png|322x175px|选区_232]]
</div></ol>
<li>After downloading, use decompression software to decompress the downloaded compressed package, you can get the executable software of MobaXterm, and then double-click to open</li>
[[File:media/image71zero3-img71.png|576x83px]]
</ol>
<ol start="3" style="list-style-type: decimal;">
<div class="figure">
[[File:media/image72zero3-img72.jpeg|553x280px|12png]]
</div></ol>
<div class="figure">
[[File:media/image73zero3-img73.jpeg|628x318px|13png]]
</div></ol>
<div class="figure">
::[[File:media/image74zero3-img74.jpeg|223x160px|图片4png]]
</div>
<ol style="list-style-type: lower-alpha;">
<li><p>The USB A port of the power cord shown in the above figure needs to be plugged into the 5V/2A or 5V/3A power adapter connector ('''it is not recommended to plug into the USB port of the computer for power supply. If there are too many peripherals connected to the development board, use will be unstable''')</p></li>
<li><p>The red DuPont line wire needs to be plugged into the 5V pin of the 26pin or 13pin interface of the development board</p></li>
<li><p>The black Dupont wire needs to be inserted into the GND pin of the 26pin or 13pin interface</p></li>
<li><p>The positions of the 5V pin and GND pin of the 26pin and 13pin interfaces in the development board are shown in the figure below'''<span style="color:#FF0000">, remember not to reverse the connection.</span>'''</p></li>
[[File:media/image24zero3-img24-1.png|163x174px]]
</ol>
</li></ol>
# If you have purchased a 13pin expansion board for Orange Pi, insert the expansion board into the 13pin interface of the development board to expand 2 USB interfaces
::[[File:media/image18zero3-img18.png|246x162px]]
<ol start="2" style="list-style-type: decimal;">
<li><p>If there is no 13pin expansion board, you can use a 4pin 2.54mm DuPont to USB2.0 female cable to expand the USB interface. The specific method is as follows:</p>
<ol style="list-style-type: lower-alpha;">
<li>First, you need to prepare a 4pin 2.54mm Dupont to USB2.0 female cable (this cable can be bought on TaobaoAmazon, please search and buy by yourself), as shown in the figure below:</li>
[[File:media/image75zero3-img75-1.png|208x162px]] [[File:media/image76.jpeg|237x165px|C:\Users\orangepi\Desktop\用户手册插图\Zero3\未标题zero3-2img76.jpg未标题-2png]]
</ol>
<ol start="2" style="list-style-type: lower-alpha;">
<li>The schematic diagram of the 13pin interface is shown below</li>
[[File:media/image19zero3-img19.png|265x142px]] [[File:media/image77.jpeg|219x152px|C:\Users\orangepi\Desktop\用户手册插图\Zero3\未标题zero3-3img77.jpg未标题-3png]]
</ol>
<ol start="3" style="list-style-type: lower-alpha;">
<li>The wiring of USB2 is as follows</li>
[[File:media/image78zero3-img78.png|256x189px]]
</ol>
<ol start="4" style="list-style-type: lower-alpha;">
<li>The wiring of USB3 is as follows</li>
[[File:media/image79zero3-img79.png|255x195px]]
</ol>
<ol start="5" style="list-style-type: lower-alpha;">
<li>If you need to connect two USB devices to the 13pin interface at the same time, you will find that the 5V and GND pins on the 13pin interface are not enough. At this time, one of the USB devices can use the 5V and GND pins in the 26pin interface. The location is as shown in the figure below Shown:</li>
[[File:media/image24zero3-img24-1.png|243x260px]]
</ol>
</li></ol>
{| class="wikitable" style="width:800px;"
|-
| style="text-align: leftcenter;"| '''Linux image type'''| style="text-align: leftcenter;"| '''kernel version'''| style="text-align: leftcenter;"| '''server version'''| style="text-align: leftcenter;"| '''desktop version'''
|-
| style="text-align: leftcenter;"| '''Ubuntu 20.04 - Focal'''| style="text-align: leftcenter;"| '''Linux5.4'''| style="text-align: leftcenter;"| '''Support'''| style="text-align: leftcenter;"| '''Support'''
|-
| style="text-align: leftcenter;"| '''Ubuntu 22.04 - Focal'''| style="text-align: leftcenter;"| '''Linux5.4'''| style="text-align: leftcenter;"| '''Support'''| style="text-align: leftcenter;"| '''Support'''
|-
| style="text-align: leftcenter;"| '''Debian 11 - Bullseye'''| style="text-align: leftcenter;"| '''Linux5.4'''| style="text-align: leftcenter;"| '''Support'''| style="text-align: leftcenter;"| '''Support'''
|-
| style="text-align: leftcenter;"| '''Ubuntu 22.04 - Jammy'''| style="text-align: leftcenter;"| '''Linux6.1'''| style="text-align: leftcenter;"| '''Support'''| style="text-align: leftcenter;"| '''Support'''
|-
| style="text-align: leftcenter;"| '''Debian 11 - Bullseye'''| style="text-align: leftcenter;"| '''Linux6.1'''| style="text-align: leftcenter;"| '''Support'''| style="text-align: leftcenter;"| '''Support'''
|-
| style="text-align: leftcenter;"| '''Debian 12 - Bookworm'''| style="text-align: leftcenter;"| '''Linux6.1'''| style="text-align: leftcenter;"| '''Support'''| style="text-align: leftcenter;"| '''Support'''
|}
After entering the download page of the corresponding development board on [http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Zero-3.html '''the Orange Pi data download page'''], you can see the following download options. In the description below, the Ubuntu image and the Debian image are generally referred to as the Linux image.
[[File:media/image80zero3-img80.png|207x123px]]
The naming rules of Linux images are as follows:
{| class="wikitable" style="width:800px;"
|-
| style="text-align: leftcenter;"| '''Function'''| style="text-align: leftcenter;"| '''Linux5.4'''| style="text-align: leftcenter;"| '''Linux6.1'''
|-
| style="text-align: leftcenter;"| '''HDMI video'''| style="text-align: leftcenter;"| '''OK'''| style="text-align: leftcenter;"| '''OK'''
|-
| style="text-align: leftcenter;"| '''HDMI audio'''| style="text-align: leftcenter;"| '''OK'''| style="text-align: leftcenter;"| '''OK'''
|-
| style="text-align: leftcenter;"| '''USB2.0 x 3'''| style="text-align: leftcenter;"| '''OK'''| style="text-align: leftcenter;"| '''OK'''
|-
| style="text-align: leftcenter;"| '''TF micro SD card start'''| style="text-align: leftcenter;"| '''OK'''| style="text-align: leftcenter;"| '''OK'''
|-
| style="text-align: leftcenter;"| '''Gigabit Ethernet'''| style="text-align: leftcenter;"| '''OK'''| style="text-align: leftcenter;"| '''OK'''
|-
| style="text-align: leftcenter;"| '''Infrared receiver'''| style="text-align: leftcenter;"| '''OK'''| style="text-align: leftcenter;"| '''OK'''
|-
| style="text-align: leftcenter;"| '''WIFI'''| style="text-align: leftcenter;"| '''OK'''| style="text-align: leftcenter;"| '''OK'''
|-
| style="text-align: leftcenter;"| '''Bluetooth'''| style="text-align: leftcenter;"| '''OK'''| style="text-align: leftcenter;"| '''OK'''
|-
| style="text-align: leftcenter;"| '''headphone audio'''| style="text-align: leftcenter;"| '''OK'''| style="text-align: leftcenter;"| '''OK'''
|-
| style="text-align: leftcenter;"| '''usb camera'''| style="text-align: leftcenter;"| '''OK'''| style="text-align: leftcenter;"| '''OK'''
|-
| style="text-align: leftcenter;"| '''LED light'''| style="text-align: leftcenter;"| '''OK'''| style="text-align: leftcenter;"| '''OK'''
|-
| style="text-align: leftcenter;"| '''26pin GPIO'''| style="text-align: leftcenter;"| '''OK'''| style="text-align: leftcenter;"| '''OK'''
|-
| style="text-align: leftcenter;"| '''26pin I2C'''| style="text-align: leftcenter;"| '''OK'''| style="text-align: leftcenter;"| '''OK'''
|-
| style="text-align: leftcenter;"| '''26pin SPI1'''| style="text-align: leftcenter;"| '''OK'''| style="text-align: leftcenter;"| '''OK'''
|-
| style="text-align: leftcenter;"| '''26pin UART'''| style="text-align: leftcenter;"| '''OK'''| style="text-align: leftcenter;"| '''OK'''
|-
| style="text-align: leftcenter;"| '''PWM'''| style="text-align: leftcenter;"| '''OK'''| style="text-align: leftcenter;"| '''OK'''
|-
| style="text-align: leftcenter;"| '''Temperature Sensor'''| style="text-align: leftcenter;"| '''OK'''| style="text-align: leftcenter;"| '''OK'''
|-
| style="text-align: leftcenter;"| '''hardware watchdog'''| style="text-align: leftcenter;"| '''OK'''| style="text-align: leftcenter;"| '''OK'''
|-
| style="text-align: leftcenter;"| '''Mali GPU'''| style="text-align: leftcenter;"| '''<span style="color:#FF0000">NO</span>'''| style="text-align: leftcenter;"| '''<span style="color:#FF0000">NO</span>'''
|-
| style="text-align: leftcenter;"| '''Video codec'''| style="text-align: leftcenter;"| '''<span style="color:#FF0000">NO</span>'''| style="text-align: leftcenter;"| '''<span style="color:#FF0000">NO</span>'''
|-
| style="text-align: leftcenter;"| '''TV-OUT'''| style="text-align: leftcenter;"| '''<span style="color:#FF0000">NO</span>'''| style="text-align: leftcenter;"| '''<span style="color:#FF0000">NO</span>'''
|}
{| class="wikitable" style="width:800px;"
|-
| style="text-align: leftcenter;"| '''Account'''| style="text-align: leftcenter;"| '''password'''
|-
| style="text-align: leftcenter;"| '''root'''| style="text-align: leftcenter;"| '''orangepi'''
|-
| style="text-align: leftcenter;"| '''orangepi'''| style="text-align: leftcenter;"| '''orangepi'''
|}
# The Linux system automatically logs in to the terminal by default, and the default login user name is '''<span style="color:#FF0000">orangepi</span>'''
::[[File:media/image81zero3-img81.png|475x240px]]
<ol start="2" style="list-style-type: decimal;">
<div class="figure">
::[[File:media/image82zero3-img82.png|576x324px|1]]
</div>
</ol>
<ol start="3" style="list-style-type: decimal;">
<li>Then restart the system and a login dialog box will appear, at which point a [[Orange Pi Zero 3#Linux system default login account and password|'''Linux system default login account and password''' ]] is required to enter the system</li>
<div class="figure">
[[File:media/image83zero3-img83.png|569x320px|IMG_256]]
</div></ol>
<li>Then restart the system, and the root user will automatically log in to the desktop</li>
[[File:media/image84zero3-img84.png|294x123px]]
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
# There are two LED lights on the development board, one is green and the other is red. When the system starts, the default display of the LED lights is as follows:
::{| class="wikitable" style="width:800px;text-align: center;"
|-
|
| style="text-align: leftcenter;"| '''Green light'''| style="text-align: leftcenter;"| '''Red light'''
|-
| '''u-boot startup phase'''
| style="text-align: leftcenter;"| '''off'''| style="text-align: leftcenter;"| '''on'''
|-
| '''The kernel boots into the system'''
| style="text-align: leftcenter;"| '''闪烁flashing'''| style="text-align: leftcenter;"| '''off'''
|-
| '''GPIO interface'''
| style="text-align: leftcenter;"| '''PC13'''| style="text-align: leftcenter;"| '''PC12'''
|}
<big>'''The two LED lights on the development board are controlled by software.'''
'''When you get the development board, you may find that even if the TF micro SD card with the system programmed is not inserted into the development board, the two LED lights will be on after the development board is connected to the power supply. This is because the 16MB on the development board SPI Flash will burn a miniature linux system by default when leaving the factory. This system will light up the red light during the u-boot startup phase. After entering the kernel, it will turn off the red light and set the green light to flash.'''
'''If the linux system in the SPI Flash is cleared, then the two LED lights on the development board will not light up after the power is turned on without inserting the TF micro SD card with the system programmed'''</big>
|}
<ol start="2" style="list-style-type: decimal;">
<li>The method of setting the green light on and /off and flashing is as follows:</li>
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
</ol>
<ol start="3" style="list-style-type: decimal;">
<li>The method of setting the red light on and /off and flashing is as follows:</li>
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
<li>Then select '''System'''</li>
[[File:media/image85zero3-img85.png|398x194px]]
</ol>
<ol start="3" style="list-style-type: lower-alpha;">
<li>Then select '''Hardware'''</li>
[[File:media/image86zero3-img86.png|393x202px]]
</ol>
<ol start="4" style="list-style-type: lower-alpha;">
<li>Then use the arrow keys on the keyboard to navigate to the position shown in the figure below, and then use the space to select '''disable-leds'''</li>
[[File:media/image87zero3-img87.png|397x35px]]
</ol>
<ol start="5" style="list-style-type: lower-alpha;">
<li>Then selec '''&lt;Save&gt;'''</li>
[[File:media/image88zero3-img88.png|397x92px]]
</ol>
<ol start="6" style="list-style-type: lower-alpha;">
<li>Then select '''&lt;Back&gt;'''</li>
[[File:media/image89zero3-img89.png|395x91px]]
</ol>
<ol start="7" style="list-style-type: lower-alpha;">
<li>Then select '''&lt;Reboot&gt;''' to restart the system for the configuration to take effect</li>
[[File:media/image90zero3-img90.png|374x187px]]
</ol>
<ol start="8" style="list-style-type: lower-alpha;">
<span id="instructions-for-operating-the-rootfs-partition-capacity-of-the-linux-system-in-the-tf-card"></span>
== Instructions for operating the rootfs partition capacity of the linux system in the TF micro SD card ==
<span id="the-first-startup-will-automatically-expand-the-capacity-of-the-rootfs-partition-in-the-tf-card"></span>
=== The first startup will automatically expand the capacity of the rootfs partition in the TF micro SD card ===
<ol start="1" style="list-style-type: decimal;">
<li>After burning the Linux image of the development board into the TF micro SD card, you can check the capacity usage of the TF micro SD card on the '''<span style="color:#FF0000">Ubuntu computer</span>''', the steps are as follows:
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big>'''Note that this step does not affect the automatic expansion of the Linux system of the development board. Here I just want to explain how to check the capacity of the TF micro SD card after burning the Linux image on the TF micro SD card.'''</big>
|}
</ol>
<ol start="3" style="list-style-type: lower-alpha;">
<li>After opening gparted, you can select the TF micro SD card in the upper right corner, and then you can see the usage of the TF micro SD card capacity</li>
[[File:media/image91zero3-img91.png|575x210px]]
</ol>
<ol start="4" style="list-style-type: lower-alpha;">
<li>The figure above shows the situation of the TF micro SD card after burning the Linux desktop version system. It can be seen that although the total capacity of the TF micro SD card is 16GB (displayed as 14.84GiB in GParted), the rootfs partition (/dev/ sdc1) actually allocated only 4.05GiB, leaving 10.79GiB unallocated</li></ol>
</li></ol>
<!-- -->
<ol start="2" style="list-style-type: decimal;">
<li><p>Then you can insert the TF micro SD card that has burned the Linux system into the development board to start. When the TF micro SD card starts the Linux system for the first time, it will call the '''orangepi-resize-filesystem''' script automatically through the systemd service '''orangepi-resize-filesystem.service''' The expansion of the rootfs partition, '''<span style="color:#FF0000">so there is no need to manually expand the capacity</span>'''</p></li><li><p>After logging in to the system, you can use the '''df -h''' command to check the size of the rootfs. If it is consistent with the actual capacity of the TF micro SD card, it means that the automatic expansion is running correctly.</p>
{| class="wikitable" style="width:800px;"
</li></ol>
<ol start="4" style="list-style-type: decimal;">
<li>After starting the Linux system for the first time, we can also remove the TF micro SD card from the development board and reinsert it into the '''<span style="color:#FF0000">Ubuntu computer</span>''', and then use gparted to check the status of the TF micro SD card again, as shown in the figure below, the rootfs partition (/dev/ The capacity of sdc1) has been expanded to 14.69GiB</li>
[[File:media/image92zero3-img92.png|575x211px]]
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
<span id="the-method-of-prohibiting-automatic-expansion-of-the-capacity-of-the-rootfs-partition-in-the-tf-card"></span>
=== The method of prohibiting automatic expansion of the capacity of the rootfs partition in the TF micro SD card ===
# First burn the linux image of the development board to the TF micro SD card on the '''<span style="color:#FF0000">Ubuntu computer</span>''' (Windows not available), '''<span style="color:#FF0000">and then re-plug and insert the TF micro SD card</span>'''# Then the Ubuntu computer will automatically mount the partition of the TF micro SD card. If the automatic mounting is normal, use the ls command to see the following output
::{| class="wikitable" style="width:800px;"
test@test:~$ '''sudo -i'''
[sudo] password for test 的密码:
root@test:~'''<span style="color:#FF0000">#</span>'''
</ol>
<ol start="4" style="list-style-type: decimal;">
<li>Then enter the root directory of the linux system in the TF micro SD card and create a new file named '''.no_rootfs_resize'''</li>
{| class="wikitable" style="width:800px;"
</ol>
<ol start="5" style="list-style-type: decimal;">
<li><p>Then you can uninstall the TF micro SD card, and then pull out the TF micro SD card and insert it into the development board to start. When the linux system starts, when the file'''.no_rootfs_resize''' is detected in the '''/root''' directory, the rootfs will not be automatically expanded.</p></li><li><p>After entering the Linux system after prohibiting automatic expansion of rootfs, you can see that the total capacity of the rootfs partition is only 4GB (the image of the desktop version is tested here), which is much smaller than the actual capacity of the TF micro SD card, indicating that the automatic expansion of rootfs is prohibited.</p></li>
{| class="wikitable" style="width:800px;"
</ol>
<ol start="7" style="list-style-type: decimal;">
<li>If you need to re-expand the capacity of the rootfs partition in the TF micro SD card, just execute the following command, and then restart the Linux system of the development board.</li>
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|}
After restarting, enter the Linux system of the development board again, and you can see that the rootfs partition has been expanded to the actual capacity of the TF micro SD card
{| class="wikitable" style="width:800px;"
<span id="the-method-of-manually-expanding-the-capacity-of-the-rootfs-partition-in-the-tf-card"></span>
=== The method of manually expanding the capacity of the rootfs partition in the TF micro SD card ===
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big>'''If the total capacity of the TF micro SD card is large, such as 128GB, you do not want the rootfs partition of the Linux system to use all the capacity of the TF micro SD card, but only want to allocate a part of the capacity, such as 16GB, to the Linux system, and then the remaining capacity of the TF micro SD card can be used for other use. Then you can use the content introduced in this section to manually expand the capacity of the rootfs partition in TF.'''</big>
|}
# First burn the linux image of the development board to the TF micro SD card on the '''<span style="color:#FF0000">Ubuntu computer</span>''' (Windows not available), '''<span style="color:#FF0000">and then re-plug and insert the TF micro SD card</span>'''# Then the Ubuntu computer will automatically mount the partition of the TF micro SD card. If the automatic mounting is normal, use the ls command to see the following output
::{| class="wikitable" style="width:800px;"
test@test:~$ '''sudo -i'''
[sudo] password for test 的密码:
root@test:~'''<span style="color:#FF0000">#</span>'''
</ol>
<ol start="4" style="list-style-type: decimal;">
<li>Then enter the root directory of the linux system in the TF micro SD card and create a new file named '''.no_rootfs_resize'''</li>
{| class="wikitable" style="width:800px;"
</ol>
<ol start="7" style="list-style-type: decimal;">
<li>After opening gparted, you can select the TF micro SD card in the upper right corner, and then you can see the usage of the TF micro SD card capacity. The figure below shows the situation of the TF micro SD card after burning the Linux desktop version system. It can be seen that although the total capacity of the TF micro SD card is 16GB (displayed as 14.84GiB in GParted), the rootfs partition (/dev/sdc1) Only 4.05GiB were actually allocated, leaving 10.79GiB unallocated</li>
[[File:media/image91zero3-img91.png|575x210px]]
</ol>
<ol start="8" style="list-style-type: decimal;">
<li>Then select the rootfs partition (/dev/sdc1)</li>
[[File:media/image93zero3-img93.png|575x211px]]
</ol>
<ol start="9" style="list-style-type: decimal;">
<li>Click the right mouse button again to see the operation options shown in the figure below. If the TF micro SD card has been mounted, first you need to Umount the rootfs partition of the TF micro SD card</li>
[[File:media/image94zero3-img94.png|436x298px]]
</ol>
<ol start="10" style="list-style-type: decimal;">
<li>Then select the rootfs partition again, click the right mouse button, and select '''Resize/Move''' to start expanding the size of the rootfs partition</li>
[[File:media/image95zero3-img95.png|444x302px]]
</ol>
<ol start="11" style="list-style-type: decimal;">
<li>After the '''Resize/Move''' option is turned on, the following setting interface will pop up</li>
[[File:media/image96zero3-img96.png|315x193px]]
</ol>
<ol start="12" style="list-style-type: decimal;">
<li>Then you can directly drag the location shown in the figure below to set the size of the capacity, or you can set the size of the rootfs partition by setting the number in '''New siezesize(MiB)'''</li>
[[File:media/image97zero3-img97.png|320x191px]]
</ol>
<ol start="13" style="list-style-type: decimal;">
<li>After setting the capacity, click '''Resize/Move''' in the lower right corner</li>
[[File:media/image98zero3-img98.png|327x196px]]
</ol>
<ol start="14" style="list-style-type: decimal;">
<li>After confirming that it is correct, click the green button shown in the figure below '''<span style="color:green">√</span>'''</li>
[[File:media/image99zero3-img99.png|392x270px]]
</ol>
<ol start="15" style="list-style-type: decimal;">
<li>Then select'''Apply''', It it will officially start to expand the capacity of the rootfs partition</li>
[[File:media/image100zero3-img100.png|399x116px]]
</ol>
<ol start="16" style="list-style-type: decimal;">
<li>After the expansion is completed, click '''Close''' to close</li>
[[File:media/image101zero3-img101.png|399x172px]]
</ol>
<ol start="17" style="list-style-type: decimal;">
<li>Then you can pull out the TF micro SD card, insert it into the development board and start it up. After entering the Linux system of the development board, if you can see that the size of the rootfs partition is the same as the size set before, it means manual Expansion succeeded</li>
{| class="wikitable" style="width:800px;"
<span id="how-to-reduce-the-capacity-of-the-rootfs-partition-in-the-tf-card"></span>
=== How to reduce the capacity of the rootfs partition in the TF micro SD card ===
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big>'''After configuring the application program or other development environment in the Linux system of the TF micro SD card, if you want to back up the Linux system in the TF micro SD card, you can use the method in this section to reduce the size of the rootfs partition first, and then start the backup.'''</big>
|}
# First insert the TF micro SD card you want to operate in the '''<span style="color:#FF0000">Ubuntu computer</span>''' (Windows not available)
# Then install the gparted software on the Ubuntu computer
<ol start="3" style="list-style-type: decimal;">
<li>Then opengpartedopen gparted</li>
{| class="wikitable" style="width:800px;"
</ol>
<ol start="4" style="list-style-type: decimal;">
<li>After opening gparted, you can select the TF micro SD card in the upper right corner, and then you can see the usage of the TF micro SD card capacity</li>
[[File:media/image102zero3-img102.png|575x217px]]
</ol>
<ol start="5" style="list-style-type: decimal;">
<li>Then select the rootfs partition (/dev/sdc1)</li>
[[File:media/image103zero3-img103.png|575x217px]]
</ol>
<ol start="6" style="list-style-type: decimal;">
<li>Click the right mouse button again to see the operation options shown in the figure below. If the TF micro SD card has been mounted, first you need to Umount the rootfs partition of the TF micro SD card</li>
[[File:media/image104zero3-img104.png|400x274px]]
</ol>
<ol start="7" style="list-style-type: decimal;">
<li>Then select the rootfs partition again, click the right mouse button, and select '''Resize/Move''' to start setting the size of the rootfs partition</li>
[[File:media/image105zero3-img105.png|399x273px]]
</ol>
<ol start="8" style="list-style-type: decimal;">
<li>After the'''Resize/Move''' option is turned on, the following setting interface will pop up</li>
[[File:media/image106zero3-img106.png|315x188px]]
</ol>
<ol start="9" style="list-style-type: decimal;">
<li>Then you can directly drag the location shown in the figure below to set the size of the capacity, or you can set the size of the rootfs partition by setting the number in '''New siezesize(MiB)'''</li>
[[File:media/image97zero3-img97.png|318x190px]]
</ol>
<ol start="10" style="list-style-type: decimal;">
<li>After setting the capacity, click'''Resize/Move''' in the lower right corner</li>
[[File:media/image98zero3-img98.png|327x196px]]
</ol>
<ol start="11" style="list-style-type: decimal;">
<li>After confirming that it is correct, click the green button shown in the figure below '''<span style="color:green">√</span>'''</li>
[[File:media/image99zero3-img99.png|392x270px]]
</ol>
<ol start="12" style="list-style-type: decimal;">
<li>Then select '''Apply''', and the expansion of the rootfs partition will officially start</li>
[[File:media/image100zero3-img100.png|365x106px]]
</ol>
<ol start="13" style="list-style-type: decimal;">
<li>After the expansion is completed, click '''Close''' to close</li>
[[File:media/image101zero3-img101.png|379x164px]]
</ol>
<ol start="14" style="list-style-type: decimal;">
<li>Then you can pull out the TF micro SD card, insert it into the development board and start it up. After entering the Linux system of the development board, if you can use the '''df -h''' command to see that the size of the rootfs partition is the same as the size set before, it means that the size has been reduced. capacity success</li>
{| class="wikitable" style="width:800px;"
|-
|
<big><p>'''Please do not copy the following commands. For example, the network node name in debian12 is end0, and the following command needs to be changed to ping www.baidu.com -I end0, I is capital i,.'''</p></big>
|}
<li><p>First log in to the linux system, there are the following three ways</p>
<ol style="list-style-type: lower-alpha;">
<li>If the development board is connected with a network cable, [[Orange Pi Zero 3#SSH remote login development board under Ubuntu|'''you can remotely log in to the Linux system through sshSSH remote login development board under Ubuntu''']]</li></ol>
<!-- -->
<!-- -->
<ol start="2" style="list-style-type: decimal;">
<li>First use the '''nmcli dev wifi'''command to scan the surrounding WIFI hotspots
{| class="wikitable" style="width:800px;"
<div class="figure">
[[File:media/image107zero3-img107.png|575x250px|选区_011]]
</div>
<ol style="list-style-type: lower-alpha;">
<li><p>'''wifi_name''' Need to replace it with the name of the WIFI hotspot you want to connect to</p></li>
<li><p>'''wifi_passwd'''Need to change to the password of the WIFI hotspot you want to connect to</p></li>
{| class="wikitable" style="width:800px;"
</ol>
<ol start="4" style="list-style-type: decimal;">
<li>Use the '''ping''' command to test the connectivity of the wifi network, and the '''ping''' command can be interrupted through the shortcut key '''Ctrl+C'''</li>
{| class="wikitable" style="width:800px;"
<li><p>First log in to the linux system, there are the following three ways</p>
<ol style="list-style-type: lower-alpha;">
<li><p>If the development board is connected with a network cable''', [[Orange Pi Zero 3#SSH remote login development board under Ubuntu|'''you can remotely log in to the Linux system through sshSSH remote login development board under Ubuntu''']]'''</p></li>
<li><p>If the development board is connected to the debugging serial port, you can use the serial port terminal to log in to the linux system (please use MobaXterm for the serial port software, and the minicom cannot display the graphical interface)</p></li>
<li><p>If the development board is connected to the HDMI display, you can log in to the linux system through the HDMI display terminal</p></li></ol>
<li>Enter the nmtui command to open the interface as shown below</li>
[[File:media/image108zero3-img108.png|345x215px]]
</ol>
<ol start="4" style="list-style-type: decimal;">
<li>Select '''Activate a connect''' and press Enter</li>
[[File:media/image109zero3-img109.png|349x216px]]
</ol>
<ol start="5" style="list-style-type: decimal;">
<div class="figure">
[[File:media/image110zero3-img110.jpeg|426x270px|16png]]
</div></ol>
<div class="figure">
[[File:media/image111zero3-img111.jpeg|474x298px|17png]]
</div></ol>
<div class="figure">
[[File:media/image112zero3-img112.jpeg|480x308px|18png]]
</div></ol>
<div class="figure">
[[File:media/image113zero3-img113-2.jpeg|443x283px|19png]]
</div></ol>
# Click the network configuration icon in the upper right corner of the desktop (please do not connect the network cable when testing WIFI)
::[[File:media/image114zero3-img114.png|275x121px]]
<ol start="2" style="list-style-type: decimal;">
<li>Click '''More networks''' in the pop-up drop-down box to see all scanned WIFI hotspots, and then select the WIFI hotspot you want to connect to</li>
[[File:media/image115zero3-img115.png|576x353px]]
</ol>
<ol start="3" style="list-style-type: decimal;">
<li>Then enter the password of the WIFI hotspot, and then click '''Connect'''to start connecting to WIFI</li>
[[File:media/image116zero3-img116.png|288x147px]]
</ol>
<ol start="4" style="list-style-type: decimal;">
<li>After connecting to WIFI, you can open the browser to check whether you can access the Internet. The entrance of the browser is shown in the figure below</li>
[[File:media/image117zero3-img117.png|465x249px]]
</ol>
<ol start="5" style="list-style-type: decimal;">
<li>If you can open other web pages after opening the browser, it means that the WIFI connection is normal</li>
[[File:media/image118zero3-img118.png|576x222px]]
</ol>
<span id="the-method-of-creating-wifi-hotspot-through-create_ap"></span>
<li>Take out the mobile phone at this time, you can find the WIFI hotspot named '''orangepi''' created by the development board in the searched WIFI list, and then you can click '''orangepi''' to connect to the hotspot, the password is set above '''orangepi'''</li>
[[File:media/image119zero3-img119-1.png|230x183px]]
</ol>
<ol start="4" style="list-style-type: decimal;">
<li>After the connection is successful, the display is as shown in the figure below</li>
[[File:media/image120zero3-img120-1.png|233x111px]]
</ol>
<ol start="5" style="list-style-type: decimal;">
By default, the DHCP service of the development board will assign an IP address of '''192.168.12.0/24''' to the device connected to the hotspot. At this time, click on the connected WIFI hotspot '''orangepi''', and then you can see that the IP address of the mobile phone is '''192.168.12.X'''
[[File:media/image120zero3-img120-1.png|271x129px]]
[[File:media/image121zero3-img121-2.png|274x155px]]
</li></ol>
<ol start="6" style="list-style-type: decimal;">
At this time, after connecting to the hotspot through the mobile phone, click on the connected WIFI hotspot '''orangepi''', and then you can see that the IP address of the mobile phone is '''192.168.2.X'''.
[[File:media/image120zero3-img120-1.png|286x137px]]
[[File:media/image122zero3-img122-2.png|302x174px]]
</ol>
<ol start="7" style="list-style-type: decimal;">
At this time, the mobile phone cannot search for the WIFI hotspot. You need to manually specify the name of the WIFI hotspot and enter the password to connect to the WIFI hotspot.
[[File:media/image123zero3-img123-1.png|237x198px]]
</li></ol>
<span id="create_ap-method-to-create-wifi-hotspot-in-bridge-mode"></span>
<li>Take out the mobile phone at this time, and you can find the WIFI hotspot named orangepi created by the development board in the searched WIFI list, and then you can click '''orangepi''' to connect to the hotspot, and the password is the '''orangepi''' set above</li>
[[File:media/image119zero3-img119-1.png|265x211px]]
</ol>
<ol start="4" style="list-style-type: decimal;">
<li>After the connection is successful, the display is as shown in the figure below</li>
[[File:media/image120zero3-img120-1.png|273x130px]]
</ol>
<ol start="5" style="list-style-type: decimal;">
|}
The IP of the device connected to the WIFI hotspot is also assigned by the main router, so the mobile phone connected to the WIFI hotspot and the development board are in the same network segment. At this time, click on the connected WIFI hotspot orangepi, and then you can see the IP address of the mobile phone Also also '''192.168.1.X'''.
[[File:media/image120zero3-img120-1.png|284x136px]]
[[File:media/image124zero3-img124-1.png|282x159px]]
</ol>
<ol start="6" style="list-style-type: decimal;">
At this time, the mobile phone cannot search for the WIFI hotspot. You need to manually specify the name of the WIFI hotspot and enter the password to connect to the WIFI hotspot.
[[File:media/image123zero3-img123-1.png|228x191px]]
</li></ol>
<span id="how-to-set-static-ip-address"></span>
</li>
<li><p>Then select '''Edit a connection''' and press Enter</p>
<p>[[File:media/image125zero3-img125.png|227x247px]]</p></li>
<li><p>Then select the network interface that needs to set a static IP address, for example, to set the static IP address of the '''Ethernet''' interface, select '''Wired connection 1'''.</p>
<p>[[File:media/image126zero3-img126.png|310x149px]]</p></li>
<li><p>Then select '''Edit''' with the '''Tab''' key and press the Enter key</p>
<p>[[File:media/image127zero3-img127.png|316x144px]]</p></li>
<li><p>Then use the Tab key to move the cursor to the '''&lt;Automatic&gt;''' position shown in the figure below to configure IPv4</p>
<p>[[File:media/image128zero3-img128.png|575x240px]]</p></li>
<li><p>Then press Enter, select '''Manual''' through the up and down arrow keys, and press Enter to confirm</p>
<p>[[File:media/image129zero3-img129.png|576x237px]]</p></li>
<li><p>The display after selection is shown in the figure below</p>
<p>[[File:media/image130zero3-img130.png|575x240px]]</p></li>
<li><p>Then move the cursor to '''&lt;Show&gt;''' via the Tab key</p>
<p>[[File:media/image131zero3-img131.png|576x241px]]</p></li>
<li><p>Then press Enter, the following setting interface will pop up after entering</p>
<p>[[File:media/image132zero3-img132.png|575x450px]]</p></li>
<li><p>Then you can set the IP address (Addresses), gateway (Gateway) and DNS server address in the position shown in the figure below (there are many other setting options in it, please explore by yourself), '''<span style="color:#FF0000">please set according to your specific needs, The values set in the image below are just an example</span>'''</p>
<p>[[File:media/image133zero3-img133.png|576x233px]]</p></li>
<li><p>After setting, move the cursor to '''&lt;OK&gt;''' in the lower right corner, and press Enter to confirm</p>
<p>[[File:media/image134zero3-img134.png|576x116px]]</p></li>
<li><p>Then click '''&lt;Back&gt;''' to return to the previous selection interface</p>
<p>[[File:media/image135zero3-img135.png|330x325px]]</p></li>
<li><p>Then select '''Activate a connection''', then move the cursor to '''&lt;OK&gt;''', and finally click Enter</p>
<p>[[File:media/image136zero3-img136.png|331x248px]]</p></li>
<li><p>Then select the network interface that needs to be set, such as '''Wired connection 1''', then move the cursor to &lt;Deactivate&gt;, and press the Enter key to disable '''Wired connection 1'''</p>
<p>[[File:media/image137zero3-img137.png|576x224px]]</p></li>
<li><p>Then please do not move the cursor, and then press the Enter key to re-enable '''Wired connection 1''', so that the static IP address set earlier will take effect</p>
<p>[[File:media/image138zero3-img138.png|576x224px]]</p></li>
<li><p>Then you can exit nmtui through the '''&lt;Back&gt;''' and '''Quit''' buttons</p>
<p>[[File:media/image139zero3-img139.png|300x253px]] [[File:media/image140zero3-img140.png|227x252px]]</p></li>
<li><p>Then through '''ip a s eth0''', you can see that the IP address of the network port has changed to the static IP address set earlier</p>
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big><p>'''Note that in the following commands, I is capital i, Debian12 needs to change eth0 to end0.'''</p></big>
|}
{| class="wikitable" style="width:800px;"
<big>'''To use the method in this section, you first need to prepare a Linux system machine. For example, a computer or a virtual machine with Ubuntu system installed.'''
'''Why do you need a Linux system machine, because the root file system of the development board Linux system burned in the TF micro SD card is in ext4 format, and the Linux system machine can mount it normally, and then modify the configuration files in it.'''</big>
|}
<ol style="list-style-type: decimal;">
<li><p>First burn the Linux image of the development board you want to use into the TF micro SD card, and then use a card reader to insert the TF micro SD card that has burned the Linux image of the development board into a machine with a Linux system (such as a machine with an Ubuntu system installed computer, the following uses Ubuntu computer as an example to demonstrate)</p></li><li><p>When the TF micro SD card is inserted into the Ubuntu computer, the Ubuntu computer will generally automatically mount the partition of the Linux root file system in the TF micro SD card. You can know from the following command that '''/media/test/opi_root''' is the Linux root file in the TF micro SD card The path where the system is mounted</p>
{| class="wikitable" style="width:800px;"
|-
|}
</li>
<li><p>Then enter the '''/boot''' directory of the Linux system burned in the TF micro SD card</p>
{| class="wikitable" style="width:800px;"
|-
</li></ol>
</li>
<li><p>After modifying the orangepi_first_run.txt file, you can exit the /boot directory of the development board Linux system in the TF micro SD card, uninstall the TF micro SD card, and then insert the TF micro SD card into the development board to start</p></li>
<li><p>If you have not set a static IP address, you still need to check the IP address through the background of the router. If you have set a static IP address, you can ping the set static IP address on the computer. If you can ping, it means that the system has started normally, and The network has also been set correctly, and then you can use the set IP address ssh to remotely log in to the Linux system of the development board</p>
<ol start="3" style="list-style-type: decimal;">
<li><p>After successfully logging in to the system, the display is as shown in the figure below</p>
<p>[[File:media/image141zero3-img141.png|575x273px]]</p>
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
<div class="figure">
[[File:media/image142zero3-img142.jpeg|553x280px|14png]]
</div></li></ol>
<div class="figure">
[[File:media/image143zero3-img143.jpeg|553x151px|15png]]
</div></li>
<li><p>The display after successfully logging in to the system is shown in the figure below</p>
<p>[[File:media/image144zero3-img144.png|559x388px]]</p></li></ol>
<span id="hdmi-test"></span>
<ol style="list-style-type: decimal;">
<li><p>Use a Micro HDMI to HDMI cable to connect the Orange Pi development board and HDMI display</p>
<p>[[File:media/image13zero3-img13.png|167x172px]]</p></li>
<li><p>After starting the linux system, if the HDMI monitor has image output, it means that the HDMI interface is working normally</p>
|-
|
<big>'''Note that although many laptops have an HDMI interface, the HDMI interface of the notebook generally only has the output function, and does not have the function of HDMI inIN, that is to say, the HDMI output of other devices cannot be displayed on the notebook screen.'''
'''When you want to connect the HDMI of the development board to the HDMI port of the laptop, please make sure that your laptop supports the HDMI in IN function.'''</big>
|}
<ol style="list-style-type: lower-alpha;">
<li><p>HDMI to VGA converter</p>
<p>[[File:media/image145zero3-img145.png|155x104px]]</p></li>
<li><p>A VGA cable and a Micro HDMI male to HDMI female conversion cable</p>
<p>[[File:media/image146zero3-img146-1.png|148x133px300px]] [[File:media/image147zero3-img147.jpegpng|157x139px|IMG_6140(20220104-134930)300px]]</p></li>
<li><p>A monitor or TV that supports VGA interface</p></li></ol>
</li>
<li><p>HDMI to VGA display test as shown below</p>
<p>[[File:media/image148zero3-img148.png|574x336px]]</p>
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
{| class="wikitable" style="width:800px;"
|-
| style="text-align: leftcenter;"| '''Supported values for disp_mode'''| style="text-align: leftcenter;"| '''HDMI resolution'''| style="text-align: leftcenter;"| '''HDMI refresh rate'''
|-
| style="text-align: leftcenter;"| '''480i'''| style="text-align: leftcenter;"| '''720x480'''| style="text-align: leftcenter;"| '''60'''
|-
| style="text-align: leftcenter;"| '''576i'''| style="text-align: leftcenter;"| '''720x480'''| style="text-align: leftcenter;"| '''50'''
|-
| style="text-align: leftcenter;"| '''480p'''| style="text-align: leftcenter;"| '''720x480'''| style="text-align: leftcenter;"| '''60'''
|-
| style="text-align: leftcenter;"| '''576p'''| style="text-align: leftcenter;"| '''720x576'''| style="text-align: leftcenter;"| '''60'''
|-
| style="text-align: leftcenter;"| '''720p50'''| style="text-align: leftcenter;"| '''1280x720'''| style="text-align: leftcenter;"| '''50'''
|-
| style="text-align: leftcenter;"| '''720p60'''| style="text-align: leftcenter;"| '''1280x720'''| style="text-align: leftcenter;"| '''60'''
|-
| style="text-align: leftcenter;"| '''1080i50'''| style="text-align: leftcenter;"| '''1920x1080'''| style="text-align: leftcenter;"| '''50'''
|-
| style="text-align: leftcenter;"| '''1080i60'''| style="text-align: leftcenter;"| '''1920x1080'''| style="text-align: leftcenter;"| '''60'''
|-
| style="text-align: leftcenter;"| '''1080p24'''| style="text-align: leftcenter;"| '''1920x1080'''| style="text-align: leftcenter;"| '''24'''
|-
| style="text-align: leftcenter;"| '''1080p50'''| style="text-align: leftcenter;"| '''1920x1080'''| style="text-align: leftcenter;"| '''50'''
|-
| style="text-align: leftcenter;"| '''1080p60'''| style="text-align: leftcenter;"| '''1920x1080'''| style="text-align: leftcenter;"| '''60'''
|}
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
<p>orangepi@orangepi:~$ '''sudo cat /sys/class/disp/disp/attr/sys'''</p>
|}
<p>[[File:media/image149zero3-img149.png|575x84px]]</p></li></ol>
<span id="how-to-modify-the-framebuffer-width-and-height-of-linux5.4-system"></span>
{| class="wikitable" style="width:800px;"
|-
| style="text-align: leftcenter;"| '''HDMI resolution'''| style="text-align: leftcenter;"| '''fb0_width'''| style="text-align: leftcenter;"| '''fb0_height'''
|-
| style="text-align: leftcenter;"| '''480p'''| style="text-align: leftcenter;"| '''720'''| style="text-align: leftcenter;"| '''480'''
|-
| style="text-align: leftcenter;"| '''576p'''| style="text-align: leftcenter;"| '''720'''| style="text-align: leftcenter;"| '''576'''
|-
| style="text-align: leftcenter;"| '''720p'''| style="text-align: leftcenter;"| '''1280'''| style="text-align: leftcenter;"| '''720'''
|-
| style="text-align: leftcenter;"| '''1080p'''| style="text-align: leftcenter;"| '''1920'''| style="text-align: leftcenter;"| '''1080'''
|}
<ol style="list-style-type: decimal;">
<li><p>Click the Bluetooth icon in the upper right corner of the desktop</p>
<p>[[File:media/image150zero3-img150.png|314x122px]]</p></li>
<li><p>Then select the adapter</p>
<p>[[File:media/image151zero3-img151.png|318x140px]]</p></li>
<li><p>If there is a prompt on the following interface, please select '''Yes'''</p>
<p>[[File:media/image152zero3-img152.png|248x85px]]</p></li>
<li><p>Then set the '''Visibility Setting''' to '''Always visible''' in the Bluetooth adapter setting interface, and then close it</p>
<p>[[File:media/image153zero3-img153.png|196x183px]]</p></li>
<li><p>Then open the configuration interface of the Bluetooth device</p>
<p>[[File:media/image154zero3-img154.png|438x179px]]</p></li>
<li><p>Click '''Search''' to start scanning the surrounding Bluetooth devices</p>
<p>[[File:media/image155zero3-img155.png|311x210px]]</p></li>
<li><p>Then select the Bluetooth device you want to connect to, and then click the right button of the mouse to pop up the operation interface for this Bluetooth device, select '''Pair''' to start pairing, and the demonstration here is to pair with an Android phone</p>
<p>[[File:media/image156zero3-img156.png|311x242px]]</p></li>
<li><p>When pairing, a pairing confirmation box will pop up in the upper right corner of the desktop, just select '''Confirm''' to confirm, and the phone also needs to confirm at this time</p>
<p>[[File:media/image157zero3-img157.png|411x150px]]</p></li>
<li><p>After pairing with the mobile phone, you can select the paired Bluetooth device, then right click and select '''Send a File''' to start sending a picture to the mobile phone</p>
<p>[[File:media/image158zero3-img158.png|405x239px]]</p></li>
<li><p>The interface for sending pictures is as follows</p>
<p>[[File:media/image159zero3-img159.png|399x231px]]</p></li></ol>
<span id="how-to-use-the-server-image"></span>
</li>
<li><p>After the pairing is successful, the Bluetooth interface of the mobile phone will be displayed as follows</p>
<p>[[File:media/image160zero3-img160.png|189x167px]]</p></li>
<li><p>To connect a Bluetooth device, you need to install the '''pulseaudio-module-bluetooth''' package, and then start the '''pulseaudio''' service</p>
{| class="wikitable" style="width:800px;"
<div class="figure">
[[File:media/image161zero3-img161.jpeg|223x232px|Screenshot_20201205_142413png]]
</div></li></ol>
::{| class="wikitable" style="width:800px;"
|-
| style="text-align: leftcenter;"| serial number| style="text-align: leftcenter;"| model
|-
| style="text-align: leftcenter;"| 1| style="text-align: leftcenter;"| RTL8152B USB 100M network card
|-
| style="text-align: leftcenter;"| 2| style="text-align: leftcenter;"| RTL8153 USB Gigabit LAN
|}
<div class="figure">
[[File:media/image162zero3-img162.jpeg|575x278px|图片9png]]
</div></li></ol>
<div class="figure">
[[File:media/image163zero3-img163.jpeg|126x125px|IMG_256png]]
</div></li>
<ol style="list-style-type: decimal;">
<li><p>First open the file manager</p>
<p>[[File:media/image164zero3-img164.png|257x126px]]</p></li>
<li><p>Then find the following file (if there is no audio file in the system, you can upload an audio file to the system yourself)</p>
<div class="figure">
[[File:media/image165zero3-img165.jpeg|236x186px|图片10png]]
</div></li>
<li><p>Then select the audio.wav file, right click and select open with vlc to start playing</p>
<p>[[File:media/image166zero3-img166.png|241x195px]]</p></li>
<li><p>How to switch between different audio devices such as HDMI playback and headphone playback</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First open the volume control interface</p>
<p>[[File:media/image167zero3-img167.png|294x161px]]</p></li>
<li><p>When playing audio, the audio device options that the playback software can use will be displayed in '''Playback''', as shown in the figure below, where you can set which audio device to play to</p>
<div class="figure">
[[File:media/image168zero3-img168.png|576x324px|4]]
</div></li></ol>
<div class="figure">
[[File:media/image163zero3-img163.jpeg|164x163px|IMG_256png]]
</div></li>
<div class="figure">
[[File:media/image169zero3-img169.jpeg|140x131px|IMG_256png]]
</div></li>
== Temperature sensor ==
# <ol start="1" style="list-style-type: decimal;"><li>H618 has a total of 4 temperature sensors, the command to view the temperature is as follows:
::{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big>'''The displayed temperature value needs to be divided by 1000, the unit is Celsius.'''</big>
|}
</li>
<ol style="list-style-type: lower-alpha;">
<li>sensor0: CPU temperature sensor, the first command is used to view the type of temperature sensor, and the second command is used to view the value of the temperature sensor</li>
|}
</li></ol>
</ol>
<!-- -->
<ol start="2" style="list-style-type: decimal;">
<div class="figure">
[[File:media/image170.jpeg|245x133px|C:\Users\orangepi\Desktop\用户手册插图\Zero3\未标题zero3-3img170.jpg未标题-3png]]
</div></li>
<li><p>The schematic diagram of the 13pin interface of the development board is as follows</p>
<p>[[File:media/image19zero3-img19.png|359x193px]]</p></li>
<li><p>The function description of the 13 pin expansion board interface pins of the development board is as follows</p>
<ol style="list-style-type: lower-alpha;">
{| class="wikitable" style="width:800px;"
|-
| style="text-align: leftcenter;"| '''GPIO serial number'''| style="text-align: leftcenter;"| '''Function'''| style="text-align: leftcenter;"| '''Pin'''
|-
| style="text-align: leftcenter;"|| style="text-align: leftcenter;"| '''5V'''| style="text-align: leftcenter;"| '''1'''
|-
| style="text-align: leftcenter;"|| style="text-align: leftcenter;"| '''GND'''| style="text-align: leftcenter;"| '''2'''
|-
| style="text-align: leftcenter;"|| style="text-align: leftcenter;"| '''USB2-DM'''| style="text-align: leftcenter;"| '''3'''
|-
| style="text-align: leftcenter;"|| style="text-align: leftcenter;"| '''USB2-DP'''| style="text-align: leftcenter;"| '''4'''
|-
| style="text-align: leftcenter;"|| style="text-align: leftcenter;"| '''USB3-DM'''| style="text-align: leftcenter;"| '''5'''
|-
| style="text-align: leftcenter;"|| style="text-align: leftcenter;"| '''USB3-DP'''| style="text-align: leftcenter;"| '''6'''
|-
| style="text-align: leftcenter;"|| style="text-align: leftcenter;"| '''LINEOUTR'''| style="text-align: leftcenter;"| '''7'''
|-
| style="text-align: leftcenter;"|| style="text-align: leftcenter;"| '''LINEOUTL'''| style="text-align: leftcenter;"| '''8'''
|-
| style="text-align: leftcenter;"|| style="text-align: leftcenter;"| '''TV-OUT'''| style="text-align: leftcenter;"| '''9'''
|-
| style="text-align: leftcenter;"| '''<span style="color:#FF0000">65</span>'''| style="text-align: leftcenter;"| '''<span style="color:#FF0000">PC1</span>'''| style="text-align: leftcenter;"| '''<span style="color:#FF0000">10</span>'''
|-
| style="text-align: leftcenter;"| '''<span style="color:#FF0000">272</span>'''| style="text-align: leftcenter;"| '''<span style="color:#FF0000">PI16</span>'''| style="text-align: leftcenter;"| '''<span style="color:#FF0000">11</span>'''
|-
| style="text-align: leftcenter;"| '''<span style="color:#FF0000">262</span>'''| style="text-align: leftcenter;"| '''<span style="color:#FF0000">PI6</span>'''| style="text-align: leftcenter;"| '''<span style="color:#FF0000">12</span>'''
|-
| style="text-align: leftcenter;"| '''<span style="color:#FF0000">234</span>'''| style="text-align: leftcenter;"| '''IR-RX/<span style="color:#FF0000">PH10</span>'''| style="text-align: leftcenter;"| '''<span style="color:#FF0000">13</span>'''
|}
</ol>
<ol style="list-style-type: decimal;">
<li><p>For the order of the 26-pin interface pins on the Orange Pi Zero 3 development board, please refer to the silkscreen diagram on the development board</p>
<p>[[File:media/image171zero3-img171-2.png|389x125px]]</p></li>
<li><p>The functions of the 26 pin interface pins on the development board are shown in the table below</p>
<div style="display: flex;">
{| class="wikitable" style="width:380px;margin-right: 20px;"
|-
| style="text-align: leftcenter;"| '''GPIO序号GPIO S/N'''| style="text-align: leftcenter;"| '''GPIO'''| style="text-align: leftcenter;"| '''功能Function'''| style="text-align: leftcenter;"| '''引脚Pin'''
|-
| style="text-align: leftcenter;"|| style="text-align: leftcenter;"|| style="text-align: leftcenter;"| '''3.3V'''| style="text-align: leftcenter;"| '''1'''
|-
| style="text-align: leftcenter;"| '''229'''| style="text-align: leftcenter;"| '''PH5'''| style="text-align: leftcenter;"| '''TWI3-SDA'''| style="text-align: leftcenter;"| '''3'''
|-
| style="text-align: leftcenter;"| '''228'''| style="text-align: leftcenter;"| '''PH4'''| style="text-align: leftcenter;"| '''TWI3-SCK'''| style="text-align: leftcenter;"| '''5'''
|-
| style="text-align: leftcenter;"| '''73'''| style="text-align: leftcenter;"| '''PC9'''| style="text-align: leftcenter;"| '''PC9'''| style="text-align: leftcenter;"| '''7'''
|-
| style="text-align: leftcenter;"|| style="text-align: leftcenter;"|| style="text-align: leftcenter;"| '''GND'''| style="text-align: leftcenter;"| '''9'''
|-
| style="text-align: leftcenter;"| '''70'''| style="text-align: leftcenter;"| '''PC6'''| style="text-align: leftcenter;"| '''PC6'''| style="text-align: leftcenter;"| '''11'''
|-
| style="text-align: leftcenter;"| '''69'''| style="text-align: leftcenter;"| '''PC5'''| style="text-align: leftcenter;"| '''PC5'''| style="text-align: leftcenter;"| '''13'''
|-
| style="text-align: leftcenter;"| '''72'''| style="text-align: leftcenter;"| '''PC8'''| style="text-align: leftcenter;"| '''PC8'''| style="text-align: leftcenter;"| '''15'''
|-
| style="text-align: leftcenter;"|| style="text-align: leftcenter;"|| style="text-align: leftcenter;"| '''3.3V'''| style="text-align: leftcenter;"| '''17'''
|-
| style="text-align: leftcenter;"| '''231'''| style="text-align: leftcenter;"| '''PH7'''| style="text-align: leftcenter;"| '''SPI1_MOSI'''| style="text-align: leftcenter;"| '''19'''
|-
| style="text-align: leftcenter;"| '''232'''| style="text-align: leftcenter;"| '''PH8'''| style="text-align: leftcenter;"| '''SPI1_MISO'''| style="text-align: leftcenter;"| '''21'''
|-
| style="text-align: leftcenter;"| '''230'''| style="text-align: leftcenter;"| '''PH6'''| style="text-align: leftcenter;"| '''SPI1_CLK'''| style="text-align: leftcenter;"| '''23'''
|-
| style="text-align: leftcenter;"|| style="text-align: leftcenter;"|| style="text-align: leftcenter;"| '''GND'''| style="text-align: leftcenter;"| '''25'''
|}
{| class="wikitable" style="width:380px;"
|-
| style="text-align: leftcenter;"| '''引脚Pin'''| style="text-align: leftcenter;"| '''功能Function'''| style="text-align: leftcenter;"| '''GPIO'''| style="text-align: leftcenter;"| '''GPIO序号GPIO S/N'''
|-
| style="text-align: leftcenter;"| '''2'''| style="text-align: leftcenter;"| '''5V'''| style="text-align: leftcenter;"|| style="text-align: leftcenter;"|
|-
| style="text-align: leftcenter;"| '''4'''| style="text-align: leftcenter;"| '''5V'''| style="text-align: leftcenter;"|| style="text-align: leftcenter;"|
|-
| style="text-align: leftcenter;"| '''6'''| style="text-align: leftcenter;"| '''GND'''| style="text-align: leftcenter;"|| style="text-align: leftcenter;"|
|-
| style="text-align: leftcenter;"| '''8'''| style="text-align: leftcenter;"| '''UART5_TX'''| style="text-align: leftcenter;"| '''PH2'''| style="text-align: leftcenter;"| '''226'''
|-
| style="text-align: leftcenter;"| '''10'''| style="text-align: leftcenter;"| '''UART5_RX'''| style="text-align: leftcenter;"| '''PH3'''| style="text-align: leftcenter;"| '''227'''
|-
| style="text-align: leftcenter;"| '''12'''| style="text-align: leftcenter;"| '''PC11'''| style="text-align: leftcenter;"| '''PC11'''| style="text-align: leftcenter;"| '''75'''
|-
| style="text-align: leftcenter;"| '''14'''| style="text-align: leftcenter;"| '''GND'''| style="text-align: leftcenter;"|| style="text-align: leftcenter;"|
|-
| style="text-align: leftcenter;"| '''16'''| style="text-align: leftcenter;"| '''PC15'''| style="text-align: leftcenter;"| '''PC15'''| style="text-align: leftcenter;"| '''79'''
|-
| style="text-align: leftcenter;"| '''18'''| style="text-align: leftcenter;"| '''PC14'''| style="text-align: leftcenter;"| '''PC14'''| style="text-align: leftcenter;"| '''78'''
|-
| style="text-align: leftcenter;"| '''20'''| style="text-align: leftcenter;"| '''GND'''| style="text-align: leftcenter;"|| style="text-align: leftcenter;"|
|-
| style="text-align: leftcenter;"| '''22'''| style="text-align: leftcenter;"| '''PC7'''| style="text-align: leftcenter;"| '''PC7'''| style="text-align: leftcenter;"| '''71'''
|-
| style="text-align: leftcenter;"| '''24'''| style="text-align: leftcenter;"| '''SPI1_CS'''| style="text-align: leftcenter;"| '''PH9'''| style="text-align: leftcenter;"| '''233'''
|-
| style="text-align: leftcenter;"| '''26'''| style="text-align: leftcenter;"| '''PC10'''| style="text-align: leftcenter;"| '''PC10'''| style="text-align: leftcenter;"| '''74'''
|}
</div>
'''After entering the system, you can run the gpio readall command. If you can see the following output, it means that wiringOP has been pre-installed and can be used normally.'''</big>
[[File:media/image172zero3-img172.png|575x365px780px|center]]
<big>'''wiringOP is currently mainly adapted to the functions of setting GPIO port input and output, setting GPIO port output high and low levels, and setting up and down pull-down resistors. Functions such as hardware PWM are not available.'''</big>
<li><p>Pin 33 corresponds to pin 13 of 13pin on the development board</p></li>
<li><p>'''<span style="color:#FF0000">Pins 28, 30, 32, and 34 are empty, please ignore them</span>'''</p>
<p>[[File:media/image172zero3-img172.png|575x365px]]</p></li></ol>
</li></ol>
<ol style="list-style-type: decimal;">
<li><p>The following takes pin 7—corresponding to GPIO as PC9—corresponding to wPi number 2—as an example to demonstrate how to set the high and low levels of the GPIO port</p>
<p>[[File:media/image173zero3-img173.png|576x128px]]</p></li>
<li><p>First set the GPIO port to output mode, where the third parameter requires the serial number of the wPi corresponding to the input pin</p>
{| class="wikitable" style="width:800px;"
|}
<p>Use gpio readall to see that the value (V) of pin 7 has changed to 0</p>
<p>[[File:media/image174zero3-img174.png|575x128px]]</p></li>
<li><p>Then set the GPIO port to output a high level. After setting, you can use a multimeter to measure the voltage value of the pin. If it is 3.3v, it means that the high level is set successfully.</p>
{| class="wikitable" style="width:800px;"
|}
<p>Use gpio readall to see that the value (V) of pin 7 has changed to 1</p>
<p>[[File:media/image175zero3-img175.png|575x130px]]</p></li>
<li><p>The setting method of other pins is similar, just modify the serial number of wPi to the corresponding serial number of the pin</p></li></ol>
<span id="how-to-set-the-pull-down-resistance-of-pin-gpio-port"></span>
=== 26 How to set the pull-up and pull-down resistance of resistors on 26 pin GPIO port ports ===
<ol style="list-style-type: decimal;">
<li><p>The following takes pin 7—the corresponding GPIO is PC9—the corresponding wPi number is 2—as an example to demonstrate how to set the pull-up and pull-down resistors of the GPIO port</p>
<p>[[File:media/image173zero3-img173.png|576x128px]]</p></li>
<li><p>First, you need to set the GPIO port to the input mode, and the third parameter needs to be the serial number of the wPi corresponding to the input pin</p>
{| class="wikitable" style="width:800px;"
<ol style="list-style-type: decimal;">
<li><p>According to the schematic diagram of the 26pin interface, the available spi is spi1</p>
<p>[[File:media/image176zero3-img176.png|565x209px]]</p></li>
<li><p>The spi1 is disabled by default in the Linux system and needs to be manually enabled before it can be used. The steps to open are as follows:</p>
<ol style="list-style-type: lower-alpha;">
</li>
<li><p>Then select '''System'''</p>
<p>[[File:media/image85zero3-img85.png|398x194px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:media/image86zero3-img86.png|393x202px]]</p></li>
<li><p>Then use the arrow keys on the keyboard to navigate to the position shown in the figure below, and then use the '''space''' to select '''spi1-cs1-spidev'''</p>
<p>[[File:media/image177zero3-img177.png|392x57px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:media/image88zero3-img88.png|397x92px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:media/image89zero3-img89.png|395x91px]]</p></li>
<li><p>Then select '''&lt;Reboot&gt;''' to restart the system to make the configuration take effect</p>
<p>[[File:media/image90zero3-img90.png|374x187px]]</p></li></ol>
</li>
<li><p>Then check whether there is a '''spidev1.1''' device node in the Linux system. If it exists, it means that the configuration of SPI1 has taken effect</p>
<ol style="list-style-type: decimal;">
<li><p>According to the schematic diagram of 26pin, the available i2c is i2c3</p>
<p>[[File:media/image178zero3-img178.png|575x204px]]</p></li>
<li><p>i2c3 is disabled by default in the Linux system, and it needs to be manually enabled before it can be used. The steps to open are as follows:</p>
<ol style="list-style-type: lower-alpha;">
</li>
<li><p>Then select '''System'''</p>
<p>[[File:media/image85zero3-img85.png|390x190px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:media/image86zero3-img86.png|393x202px]]</p></li>
<li><p>Then use the arrow keys on the keyboard to navigate to the position shown in the figure below, and then use the '''space''' to select '''ph-i2c3'''</p>
<p>[[File:media/image179zero3-img179.png|392x57px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:media/image88zero3-img88.png|395x91px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:media/image89zero3-img89.png|395x91px]]</p></li>
<li><p>Then select '''&lt;Reboot&gt;''' to restart the system to make the configuration take effect</p>
<p>[[File:media/image90zero3-img90.png|374x187px]]</p></li></ol>
</li>
<li><p>After starting the linux system, first confirm that there is an i2c3 device node under /dev</p>
{| class="wikitable" style="width:800px;"
|-
| style="text-align: leftcenter;"| '''sda pin'''| style="text-align: leftcenter;"| '''Corresponding to pin 3 in 26pin'''
|-
| style="text-align: leftcenter;"| '''sck pin'''| style="text-align: leftcenter;"| '''Corresponding to pin 5 in 26pin'''
|-
| style="text-align: leftcenter;"| '''5v pin'''| style="text-align: leftcenter;"| '''Corresponding to pin 2 in 26pin'''
|-
| style="text-align: leftcenter;"| '''3.3v pin'''| style="text-align: leftcenter;"| '''Corresponding to pin 1 in 26pin'''
|-
| style="text-align: leftcenter;"| '''gnd pin'''| style="text-align: leftcenter;"| '''Corresponding to pin 6 in 26pin'''
|}
</li></ol>
<div class="figure">
[[File:media/image180zero3-img180.png|383x151px|选区_460]]
</div></li></ol>
<ol style="list-style-type: decimal;">
<li><p>According to the schematic diagram of the 26pin interface, the available uart is uart5</p>
<p>[[File:media/image181zero3-img181.png|575x203px]]</p></li><li><p>uart5 Uart5 is disabled by default in the Linux system, and it needs to be opened manually to use it. The steps to open are as follows:</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First run '''orangepi-config''', normal users remember to add '''sudo''' permission</p>
</li>
<li><p>Then select '''System'''</p>
<p>[[File:media/image85zero3-img85.png|398x194px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:media/image86zero3-img86.png|393x202px]]</p></li>
<li><p>Then use the arrow keys on the keyboard to navigate to the position shown in the figure below, and then use the '''space''' to select '''ph-uart5'''</p>
<p>[[File:media/image182zero3-img182.png|400x60px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:media/image88zero3-img88.png|397x92px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:media/image89zero3-img89.png|395x91px]]</p></li>
<li><p>Then select '''&lt;Reboot&gt;''' to restart the system to make the configuration take effect</p>
<p>[[File:media/image90zero3-img90.png|374x187px]]</p></li></ol>
</li>
<li><p>After entering the linux system, first confirm whether there is a uart5 device node under '''/dev'''</p>
<li><p>Then start to test the uart5 interface, first use the DuPont line to short the rx and tx of the uart5 interface to be tested</p></li>
{| class="wikitable" style="width:800px;text-align: center;"
|-
|
| style="text-align: leftcenter;"| uart5
|-
| tx pin
| style="text-align: leftcenter;"| Corresponding to pin 8 of 26pin
|-
| rx pin
| style="text-align: leftcenter;"| Corresponding to pin 10 of 26pin
|}
</ol>
<big>'''The development board can use up to 4 channels of PWM, and the positions of their pins are shown in the figure below:'''</big>
[[File:media/image183zero3-img183-1.png|388x180pxcenter]]
|}
</li>
<li><p>Then select '''System'''</p>
<p>[[File:media/image85zero3-img85.png|398x194px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:media/image86zero3-img86.png|393x202px]]</p></li>
<li><p>Then use the arrow keys on the keyboard to navigate to the position shown in the figure below, and then use the space to select the configuration corresponding to pwm</p>
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
<p>'''PWM3, PWM4 and the TX and RX pins in the debug serial port are multiplexed, so when using PWM3 and PWM4 (need to select ph-pwm34), please turn off the configuration of UART0 (need to select disable-uart0), after turning off UART0 The debug serial port cannot be used.'''</p></big>
|}
<p>[[File:media/image184zero3-img184.png|402x156px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:media/image88zero3-img88.png|397x92px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:media/image89zero3-img89.png|395x91px]]</p></li>
<li><p>Then select '''&lt;Reboot&gt;''' to restart the system to make the configuration take effect</p>
<p>[[File:media/image90zero3-img90.png|374x187px]]</p></li></ol>
</li>
<li><p>After restarting, the PWM test can be started</p>
|}
<ol style="list-style-type: lower-alpha;">
<li><p>Enter the following command on the command line to make pwm1 output a 50Hz rectangular square wave</p>
{| class="wikitable" style="width:800px;"
|-
</ol>
<ol start="3" style="list-style-type: lower-alpha;">
<li>Enter the following command on the command line to make pwm3 output a 50Hz rectangular square wave</li>
{| class="wikitable" style="width:800px;"
|-
<div class="figure">
[[File:media/image185zero3-img185.jpeg|574x344px|69D96433378187B10005CDD2A52881B0png]]
</div></ol>
|
<big>'''wiringOP-Python is the same as wiringOP, you can also determine which GPIO pin to operate by specifying the wPi number, because there is no command to check the wPi number in wiringOP-Python, so you can only check the board wPi number and physical Correspondence between pins.'''</big>
[[File:media/image172zero3-img172.png|575x365px]]
|}
<ol style="list-style-type: decimal;">
<li><p>The following takes pin 7—the corresponding GPIO is PC9—the corresponding wPi number is 2—as an example to demonstrate how to set the high and low levels of the GPIO port</p>
<p>[[File:media/image173zero3-img173.png|576x128px]]</p></li>
<li><p>The steps to test directly with the command are as follows:</p>
<ol style="list-style-type: lower-alpha;">
</li>
<li><p>Then set the GPIO port to output low level. After setting, you can use a multimeter to measure the voltage value of the pin. If it is 0v, it means that the low level is set successfully.</p>
{| class="wikitable" style="width:800px;" |-| <p>&gt;&gt;&gt; '''wiringpi.digitalWrite(2, <span style="color:#FF0000">GPIO.LOW</span>)'''</p>|}</li>
<li><p>Then set the GPIO port to output a high level. After setting, you can use a multimeter to measure the voltage value of the pin. If it is 3.3v, it means that the high level is set successfully.</p>
{| class="wikitable" style="width:800px;" |-| <p>&gt;&gt;&gt; '''wiringpi.digitalWrite(2, <span style="color:#FF0000">GPIO.HIGH</span>)'''</p>|}</li></ol>
</li>
<li><p>The method of wiringOP-Python to set GPIO high and low levels in python code can refer to the '''blink.py''' test program in the examples below. The '''blink.py''' test program will set the voltage of all GPIO ports in the 26 pins of the development board to change continuously.</p>
<ol style="list-style-type: decimal;">
<li><p>According to the schematic diagram of the 26pin interface, the available spi is spi1</p>
<p>[[File:media/image176zero3-img176.png|565x209px]]</p></li>
<li><p>The spi1 is disabled by default in the Linux system and needs to be manually enabled before it can be used. The steps to open are as follows:</p>
<ol style="list-style-type: lower-alpha;">
</li>
<li><p>Then select '''System'''</p>
<p>[[File:media/image85zero3-img85.png|398x194px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:media/image86zero3-img86.png|393x202px]]</p></li>
<li><p>Then use the arrow keys on the keyboard to navigate to the position shown in the figure below, and then use the '''space''' to select '''spi1-cs1-spidev'''</p>
<p>[[File:media/image177zero3-img177.png|392x57px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:media/image88zero3-img88.png|397x92px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''然后选择'''&lt;Back&gt;'''</p>
<p>[[File:media/image89zero3-img89.png|395x91px]]</p></li>
<li><p>Then select '''&lt;Reboot&gt;''' to restart the system to make the configuration take effect</p>
<p>[[File:media/image90zero3-img90.png|374x187px]]</p></li></ol>
</li>
<li><p>Then check whether there is a '''spidev1.1''' device node in the Linux system. If it exists, it means that the configuration of SPI1 has taken effect</p>
<ol style="list-style-type: lower-alpha;">
<li><p>'''--channel''': Specify the channel number of SPI</p></li>
<li><p>'''--port''': specify Specify the port number of SPI</p></li></ol>
</li>
<li><p>Do not short-circuit the mosi and miso pins of SPI1, the output result of running spidev_test.py is as follows, you can see that the data of TX and RX are inconsistent</p>
<ol style="list-style-type: decimal;">
<li><p>According to the schematic diagram of 26pin, the available i2c is i2c3</p>
<p>[[File:media/image178zero3-img178.png|575x204px]]</p></li>
<li><p>i2c3 is disabled by default in the Linux system, and it needs to be manually enabled before it can be used. The steps to open are as follows:</p>
<ol style="list-style-type: lower-alpha;">
</li>
<li><p>Then select '''System'''</p>
<p>[[File:media/image85zero3-img85.png|398x194px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:media/image86zero3-img86.png|393x202px]]</p></li>
<li><p>Then use the arrow keys on the keyboard to navigate to the position shown in the figure below, and then use the '''space''' to select '''ph-i2c3'''</p>
<p>[[File:media/image179zero3-img179.png|401x59px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:media/image88zero3-img88.png|397x92px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:media/image89zero3-img89.png|395x91px]]</p></li>
<li><p>Then select '''&lt;Reboot&gt;''' to restart the system to make the configuration take effect</p>
<p>[[File:media/image90zero3-img90.png|374x187px]]</p></li></ol>
</li>
<li><p>After starting the linux system, first confirm that there is an i2c3 device node under /dev</p>
</li>
<li><p>Then connect an i2c device to the i2c3 pin of the 26pin connector, here we take the DS1307 RTC module as an example</p>
<p>[[File:media/image186zero3-img186.png|180x153px]]</p>
{| class="wikitable" style="width:800px;"
|-
| style="text-align: leftcenter;"| '''Pins of the RTC module'''| style="text-align: leftcenter;"| '''The pin corresponding to the 26pin of the development board'''
|-
| style="text-align: leftcenter;"| '''5V'''| style="text-align: leftcenter;"| '''Pin 2'''
|-
| style="text-align: leftcenter;"| '''GND'''| style="text-align: leftcenter;"| '''Pin 6'''
|-
| style="text-align: leftcenter;"| '''SDA'''| style="text-align: leftcenter;"| '''Pin 3'''
|-
| style="text-align: leftcenter;"| '''SCL'''| style="text-align: leftcenter;"| '''Pin 5'''
|}
</li></ol>
<li>Then use the '''i2cdetect -y 3''' command, if the address of the connected i2c device can be detected, it means that the i2c device is connected correctly</li>
[[File:media/image187zero3-img187.png|388x203px]]
</ol>
<ol start="7" style="list-style-type: decimal;">
<ol style="list-style-type: decimal;">
<li><p>According to the schematic diagram of the 26pin interface, the available uart is uart5</p>
<p>[[File:media/image181zero3-img181.png|575x203px]]</p></li>
<li><p>uart5 is disabled by default in the Linux system, and it needs to be opened manually to use it. The steps to open are as follows:</p>
<ol style="list-style-type: lower-alpha;">
</li>
<li><p>Then select '''System'''</p>
<p>[[File:media/image85zero3-img85.png|398x194px]]</p></li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:media/image86zero3-img86.png|393x202px]]</p></li>
<li><p>Then use the arrow keys on the keyboard to navigate to the position shown in the figure below, and then use the '''space''' to select '''ph-uart5'''</p>
<p>[[File:media/image182zero3-img182.png|400x60px]]</p></li>
<li><p>Then select '''&lt;Save&gt;''' to save</p>
<p>[[File:media/image88zero3-img88.png|397x92px]]</p></li>
<li><p>Then select '''&lt;Back&gt;'''</p>
<p>[[File:media/image89zero3-img89.png|395x91px]]</p></li>
<li><p>Then select '''&lt;Reboot&gt;''' to restart the system to make the configuration take effect</p>
<p>[[File:media/image90zero3-img90.png|374x187px]]</p></li></ol>
</li>
<li><p>After entering the linux system, first confirm whether there is a uart5 device node under '''/dev'''</p>
<li><p>Then start to test the uart5 interface, first use the DuPont line to short the rx and tx of the uart5 interface to be tested</p>
{| class="wikitable" style="width:800px;text-align: center;"
|-
|
| style="text-align: leftcenter;"| '''uart5'''
|-
| '''tx pin'''
| style="text-align: leftcenter;"| '''Corresponding to pin 8 in 26pin'''
|-
| '''rx pin'''
| style="text-align: leftcenter;"| '''Corresponding to pin 10 in 26pin'''
|}
</li></ol>
<ol start="5" style="list-style-type: decimal;">
<li><p>Finally, you can run the '''serialTest.py''' program in the examples to test the loopback function of the serial port. If you can see the following print, it means that the loopback test of the serial port is normal</p>
{| class="wikitable" style="width:800px;text-align: center;"
|-
|
<ol style="list-style-type: decimal;">
<li><p>First of all, please install docker and make sure that docker can run normally. '''For the installation steps of docker'''The Method Of Installing The Docker, please refer to the instructions in the section on [[Orange Pi Zero 3#The Method Of Installing The Docker|'''how to install Docker''']].</p></li>
<li><p>Then you can search for the docker image of Home Assistant</p>
{| class="wikitable" style="width:800px;"
<big><p>'''It takes a while for the Home Assistant container to start. If the following interface is not displayed normally, please wait for a few seconds and then refresh. If the following interface is not displayed normally after waiting for more than one minute, it means that there is a problem with the installation of Home Assistant. At this time, you need to check whether there is a problem with the previous installation and setting process.'''</p></big>
|}
<p>[[File:media/image188zero3-img188-1.png|576x209px]]</p></li>
<li><p>Then enter '''your name''', '''user name''' and '''password''' and click '''Create Account'''</p>
<p>[[File:media/image189zero3-img189-1.png|220x279px]]</p></li>
<li><p>Then follow the interface prompts to set according to your preferences, and then click Next</p>
<p>[[File:media/image190zero3-img190-1.png|575x297px]]</p></li>
<li><p>Then click Next</p>
<p>[[File:media/image191zero3-img191-1.png|576x185px]]</p></li>
<li><p>Then click Finish</p>
<p>[[File:media/image192zero3-img192-1.png|576x117px]]</p></li>
<li><p>The final main interface displayed by Home Assistant is shown in the figure below</p>
<p>[[File:media/image193zero3-img193-1.png|574x294px]]</p></li>
<li><p>How to stop the Home Assistant container</p>
<ol style="list-style-type: lower-alpha;">
<big><p>'''When running the hass command for the first time, you will download and install and cache some necessary libraries and dependencies to run. This process may take a few minutes. Note that at this time, the interface of Home Assistant cannot be seen in the browser. Please wait for a while before refreshing.'''</p></big>
|}
<p>[[File:media/image194zero3-img194-1.png|576x203px]]</p></li></ol>
<span id="opencv-installation-method"></span>
|-
|
<big>'''aapanel Linux panel is a server management software that improves operation and maintenance efficiency. It supports more than 100 server management functions such as one -click LAMP/LNMP/cluster/monitoring/website/FTP/database/Java (extracted excerpted from the [https://www.bt.cn/new/index.html Baota official website of the aapanel])'''</big>
|}
</li>
<li><p>Then you have to wait patiently. When you see the printing information below the terminal output, it means that the pagoda has been installed. The entire installation process takes about 34 minutes. There may be some differences according to the difference in network speed</p>
<p>[[File:media/image195zero3-img195.png|576x233px]]</p></li>
<li><p>At this time, enter the '''panel address''' displayed above in the browser to open the login interface of the aapanel Linux panel, and then enter the '''username''' and '''password''' displayed in the corresponding position to log in to the aapanel<br />
[[File:media/image196zero3-img196.png|575x281px1200px]]</p></li>
<li><p>After successfully logging in to the aapanel, the following welcome interface will pop up. First, please take the intermediate user notice to read to the bottom, and then you can choose &quot;I have agreed and read&quot; User Agreement &quot;, and then click&quot; Enter the panel &quot; You can enter the aapanel</p>
<p>[[File:media/image197zero3-img197.png|575x317px1200px]]</p></li>
<li><p>After entering the aapanel, you will first prompt that you need to bind the account of the aapanel official website. If you do n’t have an account, you can go to the aapanel's official website ('''https://www.bt.cn''') to register one</p>
<p>[[File:media/image198zero3-img198.png|576x300px1200px]]</p></li>
<li><p>The final display interface is shown in the figure below. You can intuitively see some status information of the development board Linux system, such as load state, CPU usage, memory usage and storage space usage</p>
<p>[[File:media/image199zero3-img199.png|575x306px1200px]]</p></li>
<li><p>For more functions of the aapanel, please refer to the following information to explore by yourself</p>
{| class="wikitable" style="width:800px;"
<span id="face_recognition-the-installation-and-testing-method-of-the-face-recognition-library"></span>
== "face_recognition " The installation and testing method of the face recognition library ==
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
</li>
<li><p>After face_recognition is installed, it will automatically download the source code of face_recognition, and then automatically run some examples in face_recognition. If you can finally see the following pictures popping up on the desktop, it means that the face_recognition installation test is successful.</p>
<p>[[File:media/image200zero3-img200.png|576x324px]]</p></li></ol>
<span id="manually-install-face_recognition"></span>
{| class="wikitable" style="width:800px;"
|-
| style="text-align: leftcenter;"| '''Ubuntu20.04'''| style="text-align: leftcenter;"| '''dlib-19.24.0-cp38-cp38-linux_aarch64.whl'''
|-
| style="text-align: leftcenter;"| '''Ubuntu22.04'''| style="text-align: leftcenter;"| '''dlib-19.24.0-cp310-cp310-linux_aarch64.whl'''
|-
| style="text-align: leftcenter;"| '''Debian11'''| style="text-align: leftcenter;"| '''dlib-19.24.0-cp39-cp39-linux_aarch64.whl'''
|}
</li></ol>
</li>
<li><p>Wait for a while and the following picture will pop up, which is the face located in the test picture</p>
<p>[[File:media/image201zero3-img201.png|575x311px]]</p></li></ol>
</li>
<li><p>'''find_facial_features_in_picture.py''' is used to identify the key points of the face in a single picture, and the test steps are as follows</p>
</li>
<li><p>After waiting for a while, the following picture will pop up, and you can see that the outline of the face is marked</p>
<p>[[File:media/image202zero3-img202.png|575x302px]]</p></li></ol>
</li>
<li><p>'''identify_and_draw_boxes_on_faces.py''' is used to identify faces and mark them with boxes. The test steps are as follows</p>
</li>
<li><p>After waiting for a while, the following picture will pop up. You can see that the faces in the picture are marked with boxes, and the names of the characters are displayed correctly</p>
<p>[[File:media/image203zero3-img203.png|461x250px]]</p></li></ol>
</li>
<li><p>'''face_distance.py''' is used to compare whether two faces belong to the same person at different precisions. First open a terminal, then enter the '''face_recognition/examples''' directory, and then execute the following command to see the output of the test</p>
</li>
<li><p>Wait for a while and the camera display screen will pop up</p>
<p>[[File:media/image204zero3-img204.png|314x245px]]</p></li>
<li><p>At this point, you can point the camera at yourself. When the camera detects a face, it will frame the detected face with a square. '''Note that when detecting a face, the image displayed by the camera will be relatively slow, please do not move too fast'''</p></li>
<li><p>You can also open a picture of Obama, and then use the camera to point at the opened picture. You can see that not only the face can be marked, but also the name of the detected face can be displayed correctly. '''Note that when detecting a face, the image displayed by the camera will be relatively slow, please do not move too fast'''</p>
<p>[[File:media/image205zero3-img205.png|358x284px]]</p></li></ol>
</li>
<li><p>'''web_service_example.py''' is a very simple case of using a web service to upload a picture to run face recognition. The backend server will identify whether the picture is Obama, and output the recognition result as a json key-value pair. The test steps are as follows:</p>
<ol style="list-style-type: none;">
<li><p>a) First open the browser, then enter the '''<span class="mark">IP address of the development board: 5001</span>''' in the address bar of the browser, and then you can see the following page</p>
<p>[[File:media/image206zero3-img206.png|575x150px]]</p></li>
<li><p>b) Then copy obama2.jpg to the desktop</p>
{| class="wikitable" style="width:800px;"
</li>
<li><p>c) Then select the picture you just copied in your browser</p>
<p>[[File:media/image207zero3-img207.png|575x217px]]</p></li>
<li><p>d) Then click '''Upload''' to upload the picture you just selected for face recognition</p>
<p>[[File:media/image208zero3-img208.png|575x145px]]</p></li>
<li><p>e) After waiting for a while, the detection result will be displayed</p>
<p>[[File:media/image209zero3-img209.png|314x149px]]</p></li></ol>
</li></ol>
</li>
</li>
<li><p>Then select '''zh_CN.UTF-8 UTF-8''' in the pop-up interface (move up and down through the up and down direction keys on the keyboard, select through the space bar, and finally move the cursor to '''&lt;OK&gt;''' through the Tab key, and then press Enter.)</p>
<p>[[File:media/image210zero3-img210.png|575x296px1200px]]</p></li>
<li><p>Then set the default '''locale''' to '''zh_CN.UTF-8'''</p>
<p>[[File:media/image211zero3-img211.png|575x160px1200px]]</p></li>
<li><p>After exiting the interface, the '''locale''' setting will start, and the output displayed on the command line is as follows</p>
{| class="wikitable" style="width:800px;"
</li>
<li><p>Then open the '''Input Method'''</p>
<p>[[File:media/image212zero3-img212.png|575x361px]]</p></li>
<li><p>Then choose '''OK'''</p>
<p>[[File:media/image213zero3-img213.png|295x212px]]</p></li>
<li><p>Then choose '''Yes'''</p>
<p>[[File:media/image214zero3-img214.png|303x192px]]</p></li>
<li><p>Then choose '''fcitx'''</p>
<p>[[File:media/image215zero3-img215.png|307x220px]]</p></li>
<li><p>Then choose '''OK'''</p>
<p>[[File:media/image216zero3-img216.png|305x216px]]</p></li>
<li><p>'''<span style="color:#FF0000">Then restart the Linux system to make the configuration take effect</span>'''</p></li>
<li><p>Then open '''Fcitx configuration'''</p>
<p>[[File:media/image217zero3-img217.png|575x376px]]</p></li>
<li><p>Then click the + sign in the position shown in the figure below</p>
<p>[[File:media/image218zero3-img218.png|280x187px]]</p></li>
<li><p>Then search '''Google Pinyin''' and click '''OK'''</p>
<p>[[File:media/image219zero3-img219-1.png|291x196px]]</p></li>
<li><p>Then bring '''Google Pinyin''' to the front</p>
<p>[[File:media/image220zero3-img220.png|299x202px]]</p><p>[[File:media/image221zero3-img221.png|300x202px]]</p></li>
<li><p>Then open the '''Geany''' editor to test the Chinese input method</p>
<p>[[File:media/image222zero3-img222.png|349x212px]]</p></li>
<li><p>The Chinese input method test is as follows</p>
<p>[[File:media/image223zero3-img223.png|575x325px]]</p></li>
<li><p>The Chinese and English input methods can be switched through the '''Ctrl+Space''' shortcut key</p></li>
<li><p>If the entire system needs to be displayed in Chinese, you can set the variables in '''/etc/default/locale''' to '''zh_CN.UTF-8'''</p>
</li>
<li><p>Then '''<span style="color:#FF0000">restart the system</span>''' and you can see that the system is displayed in Chinese</p>
<p>[[File:media/image224zero3-img224.png|576x356px]]</p></li></ol>
<span id="how-to-install-ubuntu-20.04-system"></span>
<ol style="list-style-type: decimal;">
<li><p>First open '''Language Support'''</p>
<p>[[File:media/image225zero3-img225.png|575x351px]]</p></li>
<li><p>Then find the <span class="mark">'''Chinese (China''')</span> option</p>
<p>[[File:media/image226zero3-img226.png|318x311px]]</p></li>
<li><p>Then please use the left mouse button to select '''<span class="mark">Chinese (China)</span>''' and hold it down, then drag it up to the initial position, the display after dragging is as shown in the figure below:</p>
<p>[[File:media/image227zero3-img227.png|324x320px]]</p>
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
<ol start="4" style="list-style-type: decimal;">
<li><p>Then select '''Apply System-Wide''' to apply the Chinese settings to the entire system</p>
<p>[[File:media/image228zero3-img228.png|321x316px]]</p></li>
<li><p>Then set'''Keyboard input method system''' to '''fcitx'''</p>
<p>[[File:media/image229zero3-img229.png|327x320px]]</p></li>
<li><p>'''<span style="color:#FF0000">Then restart the Linux system to make the configuration take effect</span>'''</p></li>
<li><p>After re-entering the system, '''<span class="mark">please choose not to ask me again</span>''' in the following interface, and then please decide whether the standard folder should also be updated to Chinese according to your preferences</p>
<p>[[File:media/image230zero3-img230.png|303x247px]]</p></li>
<li><p>Then you can see that the desktop is displayed in Chinese</p>
<p>[[File:media/image231zero3-img231.png|575x383px]]</p></li>
<li><p>Then we can open '''Geany''' to test the Chinese input method, as shown in the figure below</p>
<p>[[File:media/image232zero3-img232.png|576x292px]]</p></li>
<li><p>After opening '''Geany''', the default is English input method, we can switch to Chinese input method through '''Ctrl+Space''' shortcut key, and then we can input Chinese</p>
<p>[[File:media/image233zero3-img233.png|575x308px]]</p></li></ol>
<span id="how-to-install-ubuntu-22.04-system"></span>
<ol style="list-style-type: decimal;">
<li><p>First open '''Language Support'''</p>
<p>[[File:media/image225zero3-img225.png|575x351px]]</p></li>
<li><p>Then find the '''<span class="mark">Chinese (China)</span>''' option</p>
<p>[[File:media/image234zero3-img234.png|249x242px]]</p></li>
<li><p>Then please use the left mouse button to select '''<span class="mark">Chinese (China)</span>''' and hold it down, then drag it up to the initial position, the display after dragging is as shown in the figure below:</p>
<p>[[File:media/image235zero3-img235.png|267x262px]]</p>
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
<ol start="4" style="list-style-type: decimal;">
<li><p>Then select '''Apply System-Wide''' to apply the Chinese settings to the entire system</p>
<p>[[File:media/image236zero3-img236.png|287x282px]]</p></li>
<li><p>'''<span style="color:#FF0000">Then restart the Linux system to make the configuration take effect</span>'''</p></li>
<li><p>After re-entering the system, please choose '''<span class="mark">not to ask me again</span>''' in the following interface, and then please decide whether the standard folder should also be updated to Chinese according to your preferences</p>
<p>[[File:media/image230zero3-img230.png|303x247px]]</p></li>
<li><p>Then you can see that the desktop is displayed in Chinese</p>
<p>[[File:media/image231zero3-img231.png|575x383px]]</p></li>
<li><p>Then open the Fcitx5 configuration program</p>
<p>[[File:media/image237zero3-img237.png|575x349px]]</p></li>
<li><p>Then choose to use Pinyin input method</p>
<div class="figure">
[[File:media/image238.jpeg|338x267px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题zero3-11img238.jpg未标题-11png]]
</div></li>
<li><p>The interface after selection is as shown below, and then click OK</p>
<p>[[File:media/image239zero3-img239.png|366x290px]]</p></li>
<li><p>Then we can open '''Geany''' to test the Chinese input method, the opening method is shown in the figure below</p>
<p>[[File:media/image232zero3-img232.png|576x292px]]</p></li>
<li><p>After opening '''Geany''', the default is English input method, we can switch to Chinese input method through '''Ctrl+Space''' shortcut key, and then we can input Chinese</p>
<p>[[File:media/image240zero3-img240.png|434x308px]]</p></li></ol>
<span id="how-to-remotely-log-in-to-the-desktop-of-linux-system"></span>
|}
[[File:media/image241zero3-img241.png|575x227px]]
</ol>
<ol start="2" style="list-style-type: lower-alpha;">
<li><p>In addition, the installation package of '''NoMachine''' can also be downloaded in the '''official tool'''</p>
<p>[[File:media/image242zero3-img242.png|66x102px]]</p>
<p>First enter the '''<span class="mark">remote login software-NoMachine</span>''' folder</p>
<p>[[File:media/image243zero3-img243.png|271x43px]]</p>
<p>Then download the arm64 version of the deb installation package</p>
<p>[[File:media/image244zero3-img244.png|180x109px]]</p></li>
<li><p>Then upload the downloaded '''nomachine_x.x.x_x_arm64.deb''' to the Linux system of the development board</p></li>
<li><p>Then use the following command to install '''NoMachine''' in the Linux system of the development board</p>
|}
[[File:media/image245zero3-img245.png|575x163px]]
</ol>
<ol start="3" style="list-style-type: decimal;">
<li><p>Then install NoMachine in Windows, '''please restart the computer after installation'''</p></li>
<li><p>Then open '''NoMachine''' in Window</p>
<p>[[File:media/image246zero3-img246.png|76x66px]]</p></li>
<li><p>After Nomachine starts, it will automatically scan other devices installed in the local area network. After entering the main interface of Nomachine, you can see that the development board is already in the connected device list, and then click the location shown in the red box below. Start log in to the linux system desktop of the development board</p>
<p>[[File:media/image247zero3-img247.png|321x92px]]</p></li>
<li><p>Then click '''OK'''</p>
<p>[[File:media/image248zero3-img248.png|318x217px]]</p></li>
<li><p>Then enter the username and password of the linux system in the corresponding position in the figure below, and then click '''<span class="mark">OK</span>''' to start logging in</p>
<div class="figure">
[[File:media/image249.jpeg|303x204px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题zero3-12img249.jpg未标题-12png]]
</div></li>
<li><p>Then click OK in the next interface</p></li>
<li><p>Finally, you can see the desktop of the development board Linux system</p>
<p>[[File:media/image250zero3-img250.png|411x246px]]</p></li></ol>
<span id="log-in-remotely-using-vnc"></span>
<li><p>The steps to use the MobaXterm software to connect to the desktop of the Linux system of the development board are as follows:</p>
<ol style="list-style-type: lower-alpha;">
<li>First click on Session, then select VNC, then fill in the IP &gt; address and port of the development board, and finally click &gt; OK to confirm</li>
<div class="figure">
[[File:media/image251zero3-img251.png|490x349px|图片1208]]
</div></ol>
<ol start="2" style="list-style-type: lower-alpha;">
<li><p>Then enter the VNC password set earlier</p>
<p>[[File:media/image252zero3-img252.png|221x105px]]</p></li><li><p>After successful login, the interface is displayed as shown in the &gt; figure below, and then you can remotely operate the desktop of the &gt; development board linux system</p></li>
[[File:media/image253zero3-img253.png|405x293px]]
</ol>
</li></ol>
</li>
<li><p>Then you can see the QT Creator startup icon in '''Applications'''</p>
<p>[[File:media/image254zero3-img254.png|576x270px]]</p>
<p>You can also use the following command to open QT Creator</p>
{| class="wikitable" style="width:800px;"
</li>
<li><p>The interface after QT Creator is opened is as follows</p>
<p>[[File:media/image255zero3-img255.png|576x342px]]</p></li>
<li><p>The version of QT Creator is as follows</p>
<ol style="list-style-type: lower-alpha;">
<li><p>The default version of QT Creator in '''Ubuntu20.04''' is as follows</p>
<p>[[File:media/image256zero3-img256.png|419x224px]]</p></li>
<li><p>The default version of QT Creator in '''Ubuntu22.04''' is as follows</p>
<p>[[File:media/image257zero3-img257.png|443x237px]]</p></li>
<li><p>The default version of QT Creator in '''Debian11''' is as follows</p>
<p>[[File:media/image258zero3-img258.png|444x238px]]</p></li>
<li><p>The default version of QT Creator in '''Debian12''' is as follows</p>
<p>[[File:media/image259zero3-img259.png|449x277px]]</p></li></ol>
</li>
<li><p>Then set up QT</p>
<ol style="list-style-type: lower-alpha;">
<li><p>First open '''Help'''-&gt;'''About Plugins.…'''</p>
<p>[[File:media/image260zero3-img260.png|573x164px]]</p></li>
<li><p>Then remove the tick of '''ClangCodeModel'''</p>
<p>[[File:media/image261zero3-img261.png|408x254px]]</p></li>
<li><p>'''<span style="color:#FF0000">After setting, you need to restart QT Creator</span>'''</p></li>
<li><p>Then make sure the GCC compiler used by QT Creator, if the default is Clang, please modify it to GCC</p>
<big><p>'''Debian12 please skip this step.'''</p></big>
|}
<p>[[File:media/image262zero3-img262.png|576x315px]]</p><p>[[File:media/image263zero3-img263.png|575x307px]]</p></li></ol>
</li>
<li><p>Then you can open a sample code</p>
<p>[[File:media/image264zero3-img264.png|575x312px]]</p></li>
<li><p>After clicking the sample code, the corresponding instruction document will be opened automatically, you can read the instructions carefully</p>
<p>[[File:media/image265zero3-img265.png|576x218px]]</p></li>
<li><p>Then click '''Configure Project'''</p>
<p>[[File:media/image266zero3-img266.png|575x304px]]</p></li>
<li><p>Then click the green triangle in the lower left corner to compile and run the sample code</p>
<p>[[File:media/image267zero3-img267.png|575x312px]]</p></li>
<li><p>After waiting for a period of time, the interface shown in the figure below will pop up, which means that QT can compile and run normally</p>
<p>[[File:media/image268zero3-img268.png|576x308px]]</p></li>
<li><p>References</p>
{| class="wikitable" style="width:800px;"
# The currently active version of ROS 1 is shown below, and the recommended version is '''Noetic Ninjemys'''
::[[File:media/image269zero3-img269.png|345x235px]]
::[[File:media/image270zero3-img270.png|576x210px]]
::{| class="wikitable" style="width:800px;"
<p>[http://wiki.ros.org/noetic/Installation '''http://wiki.ros.org/noetic/Installation''']</p>
|}
<p>[[File:media/image271zero3-img271.png|312x176px]]</p></li>
<li><p>Then use the script below to install ros1</p>
{| class="wikitable" style="width:800px;"
</li>
<li><p>After running the '''test_ros.sh''' script, a little turtle as shown in the figure below will pop up</p>
<p>[[File:media/image272zero3-img272.png|575x291px]]</p></li>
<li><p>Then please keep the terminal window you just opened on top</p></li>
<div class="figure">
[[File:media/image273.jpeg|575x269px|C:\Users\orangepi\Desktop\用户手册插图\Zero3\未标题zero3-5img273.jpg未标题-5png]]
</div></ol>
<ol start="9" style="list-style-type: decimal;">
<li><p>At this time, press the direction keys on the keyboard to control the little turtle to move up, down, left, and right</p>
<p>[[File:media/image274zero3-img274.png|575x250px]]</p></li></ol>
<span id="how-to-install-ros-2-galactic-on-ubuntu-20.04"></span>
<ol style="list-style-type: decimal;">
<li><p>The currently active version of ROS 2 is shown below, and the recommended version is '''Galactic Geochelone'''</p>
<p>[[File:media/image275zero3-img275.png|576x271px]]</p><p>[[File:media/image276zero3-img276.png|575x265px]]</p>
{| class="wikitable" style="width:800px;"
|-
<p>orangepi@orangepi:~$ '''ros2 run rviz2 rviz2'''</p>
|}
<p>[[File:media/image277zero3-img277.png|576x324px]]</p></li>
<li><p>For how to use ROS, please refer to the documentation of ROS 2</p>
{| class="wikitable" style="width:800px;"
<p>orangepi@orangepi:~$ '''ros2 run rviz2 rviz2'''</p>
|}
<p>[[File:media/image278zero3-img278.png|575x323px]]</p></li>
<li><p>Reference documents</p>
{| class="wikitable" style="width:800px;"
<li><p>Debian Bookworm does not install Java compilation tools and operating environment by default</p>
<ol style="list-style-type: lower-alpha;">
<li><p>You can use the following command to install openjdk, the latest &gt; version in Debian Bookworm is openjdk-17</p>
{| class="wikitable" style="width:800px;"
|-
<div class="figure">
[[File:media/image279zero3-img279.png|576x453px|截图 2022-12-03 19-04-40]]
</div></li>
<div class="figure">
[[File:media/image280zero3-img280.png|575x128px|图片565]]
</div></li></ol>
<ol start="5" style="list-style-type: decimal;">
<li><p>Then choose to '''<span class="mark">save the password</span>''', and then click '''<span class="mark">OK</span>'''</p>
<p>[[File:media/image281zero3-img281.png|249x181px]]</p></li>
<li><p>Then choose to '''<span class="mark">always trust this host</span>''', and then click '''<span class="mark">OK</span>'''</p>
<div class="figure">
[[File:media/image282zero3-img282.png|278x150px|IMG_256]]
</div></li></ol>
<div class="figure">
[[File:media/image283zero3-img283.png|533x330px|IMG_256]]
</div></li></ol>
<ol start="8" style="list-style-type: decimal;">
<li>Then select the path to be uploaded to the development board on the right side of the filezilla software, and then select the file to be uploaded in on the Ubuntu PC on the left side of the filezilla software, then click the right mouse button, and then click the upload option to start uploading the file to the development board bingo.
<div class="figure">
[[File:media/image284zero3-img284.png|529x414px|IMG_256]]
</div></li></ol>
|}
::[[File:media/image285.jpeg|472x171px|C:\Users\orangepi\Desktop\用户手册插图\Pi5 Plus\未标题zero3-15img285.jpg未标题-15png]]
::[[File:media/image286zero3-img286-1.png|384x276px]]
<ol start="2" style="list-style-type: decimal;">
<div class="figure">
[[File:media/image287zero3-img287.png|355x279px|IMG_256]]
</div></li></ol>
<div class="figure">
[[File:media/image288zero3-img288.png|451x357px|IMG_256]]
</div></li></ol>
<div class="figure">
[[File:media/image280zero3-img280.png|575x128px|图片565]]
</div></li></ol>
<div class="figure">
[[File:media/image289zero3-img289.png|207x146px|IMG_256]]
</div></li></ol>
<div class="figure">
[[File:media/image290zero3-img290.png|221x109px|IMG_256]]
</div></li></ol>
<ol start="8" style="list-style-type: decimal;">
<li>After Then select the connection is successful, you can see path to be uploaded to the development board on the directory structure right side of the development board linux filezilla software, and then select the file system to be uploaded on the Windows PC on the right left side of the filezilla software, then click the right mouse button, and then click the upload option to start uploading the file to the development board.
<div class="figure">
[[File:media/image291zero3-img291.jpeg|446x329px|图片3png]]
</div></li></ol>
<div class="figure">
[[File:media/image292zero3-img292.png|461x340px|IMG_256]]
</div></li></ol>
<p>'''https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/22.04/ubuntu-22.04-desktop-amd64.iso'''</p>
|}
 
After installing Ubuntu 22.04 on the computer or virtual machine, please set the software source of Ubuntu 22.04 to Tsinghua source (or other domestic sources that you think is fast), otherwise it is easy to make mistakes due to network reasons when installing software later. The steps to replace Tsinghua source are as follows:
 
<ol style="list-style-type: lower-alpha;">
<li>For the method of replacing Tsinghua source, please refer to the instructions on this web page.
 
{| class="wikitable" style="width:800px;"
|-
|
[https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/ '''https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/''']
|}
</li></ol>
<ol start="2" style="list-style-type: lower-alpha;">
<li><p>Note that the Ubuntu version needs to be switched to 22.04.</p>
<p>[[File:media/image293.png|576x241px]]</p></li>
<li><p>The content of the '''/etc/apt/sources.list''' file that needs to be replaced is:</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>test@test:~$ '''sudo mv /etc/apt/sources.list cat /etc/apt/sources.list.bak'''</p>
<p>test@test:~$ '''sudo vim /etc/apt/sources.list'''</p>
<p># By default, the source image is commented to improve the speed of apt update, you can uncomment it yourself if necessary</p>
<p>deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse</p>
<p># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse</p>
<p>deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse</p>
<p># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse</p>
<p>deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse</p>
<p># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse</p>
<p>deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse</p>
<p># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse</p>
 
 
<p># Pre-release software source, not recommended to enable</p>
<p># deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse</p>
<p># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse</p>
|}
</li>
<li><p>After the replacement, you need to update the download information and make sure that there is no error.</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>test@test:~$ '''sudo apt-get update'''</p>
|}
</li>
<li><p>'''<span style="color:#FF0000">In addition, since the source codes such as the kernel and U-boot are stored on GitHub, it is very important to ensure that the computer can download codes from GitHub normally when compiling the image.</span>'''</p></li></ol>
<span id="get-the-source-code-of-linux-sdk"></span>
<div class="figure">
[[File:media/image294zero3-img294.png|576x298px780px|图片6center]]
</div>
{| class="wikitable" style="width:800px;"
|-
| style="text-align: leftcenter;"| '''branch'''| style="text-align: leftcenter;"| '''u-boot version'''| style="text-align: leftcenter;"| '''Linux kernel version'''
|-
| style="text-align: leftcenter;"| '''current'''| style="text-align: leftcenter;"| '''u-boot v2018.05'''| style="text-align: leftcenter;"| '''linux5.4'''
|-
| style="text-align: leftcenter;"| '''next'''| style="text-align: leftcenter;"| '''u-boot v2021.07'''| style="text-align: leftcenter;"| '''linux6.1'''
|}
<div class="figure">
[[File:media/image295zero3-img295.png|575x278px|选区_3961200px]]
</div>
|-
|
[https://mirrors.tuna.tsinghua.edu.cn/armbian-releases/_toolchain/ '''https://mirrorsimola.tuna.tsinghua.eduarmbian.cncom/armbian-releasesdl/_toolchain/''']
|}
<div class="figure">
[[File:media/image296zero3-img296.png|576x132px|选区_238]]
</div></li>
<li><p>Then select the model of the development board</p>
<p>[[File:media/image297zero3-img297.png|576x123px]]</p></li>
<li><p>Then select the branch type of u-boot</p>
<ol style="list-style-type: lower-alpha;">
<li><p>The current branch will compile the u-boot v2018.05 code that needs to be used in the linux5.4 image</p></li>
<li><p>The next branch will compile the u-boot v2021.07 version code that needs to be used in the linux6.1 image</p>
<p>[[File:media/image298zero3-img298.png|576x77px]]</p></li></ol>
</li>
<li><p>Then it will start to compile u-boot, and part of the information prompted when compiling the next branch is as follows:</p>
</li>
<li><p>Then select '''5 Install/Update the bootloader on SD/eMMC'''</p>
<p>[[File:media/image299zero3-img299.png|320x174px]]</p></li>
<li><p>After pressing the Enter key, a Warning will pop up first</p>
<p>[[File:media/image300zero3-img300.png|314x170px]]</p></li>
<li><p>Press the Enter key again to start updating u-boot, and the following information will be displayed after the update</p>
<p>[[File:media/image301zero3-img301.png|292x164px]]</p></li>
<li><p>Then you can restart the development board to test whether the modification of u-boot takes effect</p></li></ol>
</li></ol>
<div class="figure">
[[File:media/image302zero3-img302.png|575x116px|选区_240]]
</div></li>
<li><p>Then you will be prompted whether you need to display the kernel configuration interface. If you do not need to modify the kernel configuration, select the first one. If you need to modify the kernel configuration, select the second one.</p>
<p>[[File:media/image303zero3-img303.png|576x87px]]</p></li>
<li><p>Then select the model of the development board</p>
<p>[[File:media/image297zero3-img297.png|576x123px]]</p></li>
<li><p>Then select the branch type of the kernel source code</p>
<ol style="list-style-type: lower-alpha;">
<li><p>current branch will compile linux5.4 kernel source code</p></li>
<li><p>The next branch will compile the linux6.1 kernel source code</p>
<p>[[File:media/image298zero3-img298.png|576x77px]]</p></li></ol>
</li>
<li><p>If you choose to display the kernel configuration menu (the second option) in step 3), the kernel configuration interface opened by '''make menuconfig''' will pop up. At this time, you can directly modify the kernel configuration, save and exit after modification. Yes, after exiting, it will start compiling the kernel source code.</p>
<p>[[File:media/image304zero3-img304.png|575x357px]]</p>
<ol style="list-style-type: lower-alpha;">
<li><p>You can also set '''KERNEL_CONFIGURE=no''' in the orangepi-build/userpatches/config-default.conf configuration file, which can permanently disable this function</p></li>
<li><p>If the following error is displayed when compiling the kernel, it is because the terminal interface of the Ubuntu PC is too small to display the make menuconfig interface. Please maximize the terminal of the Ubuntu PC and run the build.sh script again</p>
<p>[[File:media/image305zero3-img305.png|574x234px]]</p></li></ol>
</li></ol>
<!-- -->
<div class="figure">
[[File:media/image306zero3-img306.png|576x119px|选区_241]]
</div></li></ol>
<ol start="3" style="list-style-type: decimal;">
<li><p>Then select the model of the development board</p>
<p>[[File:media/image297zero3-img297.png|576x123px]]</p></li>
<li><p>Then select the branch type of the kernel source code, the type of rootfs maintained by different versions of the kernel source code is different</p>
<ol style="list-style-type: lower-alpha;">
<li><p>The current branch can see debian11, ubuntu20.04, ubuntu22.04 three options</p></li>
<li><p>The next branch can see debian11, debian12, ubuntu22.04 three options</p>
<p>[[File:media/image298zero3-img298.png|576x77px]]</p></li></ol>
</li>
<li><p>Then select the type of rootfs</p>
<p>[[File:media/image307zero3-img307.png|576x79px]]</p></li>
<li><p>Then select the type of image</p>
<ol style="list-style-type: lower-alpha;">
<div class="figure">
[[File:media/image308zero3-img308.png|576x75px|选区_245]]
</div></li></ol>
<div class="figure">
[[File:media/image309zero3-img309.png|576x78px|选区_397]]
</div></li>
<li><p>If you are compiling the image of the desktop version, you also need to select the type of desktop environment. Currently only XFCE is maintained, so please choose the XFCE type desktop</p>
<p>[[File:media/image310zero3-img310.png|576x76px]]</p><p>[[File:media/image311zero3-img311.png|576x74px]]</p>
<p>You can then select additional packages that need to be installed. Please press the Enter key to skip directly here.</p>
<p>[[File:media/image312zero3-img312.png|575x264px]]</p></li>
<li><p>Then it will start to compile rootfs, and some information prompted during compilation is explained as follows</p>
<ol style="list-style-type: lower-alpha;">
<div class="figure">
[[File:media/image313zero3-img313.png|576x128px|选区_242]]
</div></li></ol>
<ol start="3" style="list-style-type: decimal;">
<li><p>Then select the model of the development board</p>
<p>[[File:media/image297zero3-img297.png|576x123px]]</p></li>
<li><p>Then select the branch type of the kernel source code, the type of rootfs maintained by different versions of the kernel source code is different</p>
<ol style="list-style-type: lower-alpha;">
<li><p>The current branch can see debian11, ubuntu20.04, ubuntu22.04 three options</p></li>
<li><p>The next branch can see debian11, debian12, ubuntu22.04 three options</p>
<p>[[File:media/image298zero3-img298.png|576x77px]]</p></li></ol>
</li>
<li><p>Then select the type of rootfs</p>
<p>[[File:media/image307zero3-img307.png|576x79px]]</p></li>
<li><p>Then select the type of image</p>
<ol style="list-style-type: lower-alpha;">
<div class="figure">
[[File:media/image308zero3-img308.png|576x75px|选区_245]]
</div></li></ol>
<div class="figure">
[[File:media/image309zero3-img309.png|576x78px|选区_397]]
</div></li>
<li><p>If you are compiling the image of the desktop version, you also need to select the type of desktop environment. Currently only XFCE is maintained, so please select the XFCE type desktop</p>
<p>[[File:media/image310zero3-img310.png|576x76px]]</p><p>[[File:media/image311zero3-img311.png|576x74px]]</p>
<p>You can then select additional packages that need to be installed. Please press the Enter key to skip directly here.</p>
<p>[[File:media/image312zero3-img312.png|575x264px]]</p></li>
<li><p>Then it will start to compile the linux image. The general process of compilation is as follows</p>
<ol style="list-style-type: lower-alpha;">
{| class="wikitable" style="width:800px;"
|-
| style="text-align: leftcenter;"| Android version| style="text-align: leftcenter;"| kernel version
|-
| style="text-align: leftcenter;"| '''Android 12 TV version'''| style="text-align: leftcenter;"| '''linux5.4'''
|}
{| class="wikitable" style="width:800px;"
|-
| style="text-align: leftcenter;"| Function| style="text-align: leftcenter;"| Android12
|-
| style="text-align: leftcenter;"| HDMI Video| style="text-align: leftcenter;"| OK
|-
| style="text-align: leftcenter;"| HDMI Audio| style="text-align: leftcenter;"| OK
|-
| style="text-align: leftcenter;"| USB2.0 x 3| style="text-align: leftcenter;"| OK
|-
| style="text-align: leftcenter;"| TFcard boot| style="text-align: leftcenter;"| OK
|-
| style="text-align: leftcenter;"| network card| style="text-align: leftcenter;"| OK
|-
| style="text-align: leftcenter;"| infrared| style="text-align: leftcenter;"| OK
|-
| style="text-align: leftcenter;"| WIFI| style="text-align: leftcenter;"| OK
|-
| style="text-align: leftcenter;"| WIFI hotsport| style="text-align: leftcenter;"| OK
|-
| style="text-align: leftcenter;"| Bluetooth| style="text-align: leftcenter;"| OK
|-
| style="text-align: leftcenter;"| BLE Bluetooth| style="text-align: leftcenter;"| OK
|-
| style="text-align: leftcenter;"| headphone audio| style="text-align: leftcenter;"| OK
|-
| style="text-align: leftcenter;"| TV-OUT| style="text-align: leftcenter;"| OK
|-
| style="text-align: leftcenter;"| USB camera| style="text-align: leftcenter;"| OK
|-
| style="text-align: leftcenter;"| LED light| style="text-align: leftcenter;"| OK
|-
| style="text-align: leftcenter;"| Temperature Sensor| style="text-align: leftcenter;"| OK
|-
| style="text-align: leftcenter;"| Mali GPU| style="text-align: leftcenter;"| OK
|-
| style="text-align: leftcenter;"| video codec| style="text-align: leftcenter;"| OK
|}
|-
|
| style="text-align: leftcenter;"| '''Green Light'''| style="text-align: leftcenter;"| '''Red Light'''
|-
| '''u-boot startup phase'''
| style="text-align: leftcenter;"| '''Off'''| style="text-align: leftcenter;"| '''Bright'''
|-
| '''The kernel boots into the system'''
| style="text-align: leftcenter;"| '''Bright'''| style="text-align: leftcenter;"| '''Off'''
|}
<li><p>We generally use the mouse and keyboard to control the Android system of the development board. When entering certain interfaces and need to return to the previous interface or desktop, we can only return through the '''<span style="color:#FF0000">right mouse button</span>''', and the keyboard cannot return.</p></li>
<li><p>If you have purchased the infrared remote control (other remote control does not work) and the expansion board that match the development board, after inserting the expansion board into the development board, you can return to the previous menu through the return key in the remote control. The position of the return key is shown in the figure below shown:</p>
<p>[[File:media/image314zero3-img314.png|231x199px]]</p></li></ol>
<span id="how-to-use-adb"></span>
<ol style="list-style-type: decimal;">
<li><p>Prepare a data cable with USB Type C interface, plug one end of the USB interface into the USB interface of the computer, and insert one end of the USB Type C interface into the power interface of the development board. In this case, the development board is powered by the USB interface of the computer, so please make sure that the USB interface of the computer can provide the most power to drive the development board</p>
<p>[[File:media/image315zero3-img315.png|178x178px]]</p></li>
<li><p>Install adb tool on Ubuntu PC</p>
{| class="wikitable" style="width:800px;"
<ol style="list-style-type: decimal;">
<li><p>First enter '''Settings'''</p>
<p>[[File:media/image316zero3-img316.png|234x83px]]</p></li>
<li><p>Then select '''Device Preferences'''</p>
<p>[[File:media/image317zero3-img317.png|415x170px]]</p></li>
<li><p>Then select '''Display &amp; Sound'''</p>
<p>[[File:media/image318zero3-img318.png|420x133px]]</p></li>
<li><p>Then select '''Advanced display settings'''</p>
<p>[[File:media/image319zero3-img319.png|423x96px]]</p></li>
<li><p>Then select '''HDMI outpu mode'''</p>
<p>[[File:media/image320zero3-img320.png|423x101px]]</p></li>
<li><p>Then you can see the list of resolutions supported by the display. At this time, click the corresponding option to switch to the corresponding resolution. Please note that the resolutions supported by different monitors may be different. If you connect to a TV, you will generally see more resolution options than the picture below.</p>
<p>[[File:media/image321zero3-img321.png|429x136px]]</p></li>
<li><p>The HDMI output of the development board supports 4K display. When connected to a 4K TV, you can see the option of 4K resolution</p>
<p>[[File:media/image322zero3-img322.png|429x242px]]</p></li></ol>
<span id="hdmi-to-vga-display-test-1"></span>
<ol style="list-style-type: lower-alpha;">
<li><p>HDMI to VGA Converter</p>
<p>[[File:media/image145zero3-img145.png|155x104px]]</p></li><li><p>A VGA cable and a Micro HDMI male to HDMI female conversion &gt; cable</p><p>[[File:media/image146zero3-img146-1.png|148x133px300px]] [[File:media/image147zero3-img147.jpegpng|157x139px|IMG_6140(20220104-134930)300px]]</p></li>
<li><p>A monitor or TV that supports VGA interface</p></li></ol>
</li>
<li><p>HDMI to VGA display test as shown below</p>
<p>[[File:media/image323zero3-img323.png|576x330px]]</p>
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
<ol style="list-style-type: decimal;">
<li><p>First select '''Settings'''</p>
<p>[[File:media/image316zero3-img316.png|234x83px]]</p></li>
<li><p>Then select '''Network &amp; Internet'''</p>
<p>[[File:media/image324zero3-img324.png|373x103px]]</p></li>
<li><p>Then open WI-FI</p>
<p>[[File:media/image325zero3-img325.png|381x50px]]</p></li>
<li><p>After turning on WI-FI, you can see the searched signal under '''Available networks'''</p>
<p>[[File:media/image326zero3-img326.png|381x187px]]</p></li>
<li><p>After selecting the WI-FI you want to connect to, the password input interface shown in the figure below will pop up</p>
<div class="figure">
[[File:media/image327zero3-img327.png|386x180px|Screenshot_20220104-164114]]
</div></li>
<div class="figure">
[[File:media/image328zero3-img328.png|401x165px|图片1]]
</div></li>
<li><p>After the WI-FI connection is successful, the display is as shown in the figure below</p>
<p>[[File:media/image329zero3-img329.png|402x141px]]</p></li></ol>
<span id="how-to-use-wi-fi-hotspot"></span>
<li><p>First, please make sure that the Ethernet port is connected to the network cable and can access the Internet normally</p></li>
<li><p>Then select '''Settings'''</p>
<p>[[File:media/image316zero3-img316.png|234x83px]]</p></li>
<li><p>Then select '''Network &amp; Internet'''</p>
<p>[[File:media/image324zero3-img324.png|373x103px]]</p></li>
<li><p>Then select '''WIFI hotspot'''</p>
<p>[[File:media/image330zero3-img330.png|378x104px]]</p></li>
<li><p>Then turn on '''Hotspot Enable''', you can also see the name and password of the generated hotspot in the figure below, remember them and use them when connecting to the hotspot (if you need to modify the name and password of the hotspot, you need to turn off '''Hotspot Enable''' first, before modifying)</p>
<p>[[File:media/image331zero3-img331.png|402x174px]]</p></li>
<li><p>At this point, you can take out your mobile phone. If everything is normal, you can find the WIFI hotspot with the same name '''(here AndroidAP_7132)''' displayed under the '''Hotspot name''' in the above picture in the WI-FI list searched by the mobile phone. Then you can click '''AndroidAP_7132''' to connect to the hotspot, and the password can be seen under the '''Hotspot password''' in the above picture</p>
<p>[[File:media/image332zero3-img332.png|269x191px]]</p></li>
<li><p>After the connection is successful, it will be displayed as shown in the figure below (the interface of different mobile phones will be different, the specific interface is subject to the display of your mobile phone). At this point, you can open a webpage on your mobile phone to see if you can access the Internet. If you can open the webpage normally, it means that the '''WI-FI Hotspot''' of the development board can be used normally.</p>
<p>[[File:media/image333zero3-img333.png|269x125px]]</p></li></ol>
<span id="how-to-check-the-ip-address-of-the-ethernet-port"></span>
<li><p>First, please make sure that the Gigabit Ethernet port of the development board is connected to a router or switch</p></li>
<li><p>Then open '''Settings'''</p>
<p>[[File:media/image334zero3-img334.png|431x161px]]</p></li>
<li><p>Then select '''Network &amp; Internet'''</p>
<p>[[File:media/image335zero3-img335.png|576x186px]]</p></li>
<li><p>Then you can see the IP address of the development board's wired network port at the position shown in the figure below</p>
<p>[[File:media/image336zero3-img336.png|576x200px]]</p></li></ol>
<span id="bluetooth-connection-method"></span>
<ol style="list-style-type: decimal;">
<li><p>First select '''Settings'''</p>
<p>[[File:media/image316zero3-img316.png|234x83px]]</p></li>
<li><p>Then select '''Bluetooth'''</p>
<p>[[File:media/image337zero3-img337.png|377x111px]]</p></li>
<li><p>Then open '''Bluetooth Enable'''</p>
<p>[[File:media/image338zero3-img338.png|384x180px]]</p></li>
<li><p>Then click '''Pair new device''' to start scanning the surrounding Bluetooth devices</p>
<p>[[File:media/image339zero3-img339.png|389x129px]]</p></li>
<li><p>The searched Bluetooth devices will be displayed under '''Available devices'''</p>
<p>[[File:media/image340zero3-img340.png|407x181px]]</p></li>
<li><p>Then click the Bluetooth device you want to connect to start pairing. When the following interface pops up, please use the mouse to select the '''Pair''' option</p>
<p>[[File:media/image341zero3-img341.png|420x115px]]</p></li>
<li><p>The test here is the configuration process of the development board and the Bluetooth of the '''<span style="color:#FF0000">Android mobile phone</span>'''. At this time, the following confirmation interface will pop up on the mobile phone. After clicking the pairing button on the mobile phone, the pairing process will start</p>
<p>[[File:media/image342zero3-img342.png|178x200px]]</p></li>
<li><p>After the pairing is complete, open '''Paired devices''' and you can see the paired Bluetooth devices</p>
<p>[[File:media/image343zero3-img343.png|430x136px]]</p></li>
<li><p>At this time, you can use the Bluetooth of your mobile phone to send a picture to the development board. After sending, you can see the following confirmation interface in the Android system of the development board, and then click '''Accept''' to start receiving the picture sent by the mobile phone.</p>
<p>[[File:media/image344zero3-img344.png|433x113px]]</p></li>
<li><p>The pictures received by the Android system Bluetooth of the development board can be viewed in '''Received files'''</p>
<p>[[File:media/image345zero3-img345.png|432x209px]]</p></li></ol>
<span id="how-to-use-the-usb-camera"></span>
<li><p>Then make sure that the adb connection between the Ubuntu PC and the development board is normal. For how to use adb, please refer to the instructions in the section on [[Orange Pi Zero 3#How to use ADB|'''how to use ADB''']]</p></li>
<li><p>Download the USB camera test APP in the <span class="mark">official tool</span> on the development board data download page</p>
<p>[[File:media/image346zero3-img346.png|344x183px]]</p><p>[[File:media/image347zero3-img347.png|575x145px]]</p></li>
<li><p>Then use the adb command to install the USB camera test APP to the Android system, of course, you can also use the U disk to copy the installation</p>
{| class="wikitable" style="width:800px;"
</li>
<li><p>After installation, you can see the startup icon of the USB camera on the Android desktop</p>
<p>[[File:media/image348zero3-img348.png|576x132px]]</p></li>
<li><p>Then double-click to open the USB camera APP and you can see the output video of the USB camera</p></li></ol>
<ol style="list-style-type: decimal;">
<li><p>Download '''rootcheck.apk''' from the <span class="mark">[http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Zero-3.html '''official tool''']</span> on the development board data download page</p><p>[[File:media/image349zero3-img349.png|576x172px1200px]]</p><p>[[File:media/image350zero3-img350.png|575x124px1200px]]</p></li>
<li><p>Then make sure that the adb connection between the Ubuntu PC and the development board is normal. For how to use adb, please refer to the instructions in the section on [[Orange Pi Zero 3#How to use ADB|'''how to use ADB''']]</p></li>
<li><p>Then use the adb command to install rootcheck.apk to the Android system, of course, you can also use the U disk to copy the installation</p>
</li>
<li><p>After installation, you can see the startup icon of the ROOT test tool on the Android desktop</p>
<p>[[File:media/image351zero3-img351.png|575x119px]]</p></li>
<li><p>The display interface after opening the '''ROOT test tool''' for the first time is shown in the figure below</p>
<p>[[File:media/image352zero3-img352.png|575x162px]]</p></li>
<li><p>Then you can click '''CHECK NOW''' to start checking the ROOT status of the Android system. After the check, the display is as follows, and you can see that the Android system has obtained the ROOT permission</p>
<p>[[File:media/image353zero3-img353.png|575x161px]]</p></li></ol>
<span id="the-method-of-using-miracastreceiver-to-cast-the-mobile-phone-screen-to-the-development-board"></span>
<li><p>First, please make sure that the development board and the mobile phone are connected to the same WIFI hotspot. For the method of connecting the development board to WIFI, please refer to the description in the section of [[Orange Pi Zero 3#WI-FI connection method|'''WI-FI connection method''']]</p></li>
<li><p>Then open the '''MiracastReceiver''' application in the Android system of the development board</p>
<p>[[File:media/image354zero3-img354.png|576x124px]]</p></li>
<li><p>The interface after '''MiracastReceiver''' is opened is as follows</p>
<div class="figure">
[[File:media/image355zero3-img355.png|420x236px|Screenshot_20230625-193535]]
</div></li>
<li><p>Then find the screen projection function in the mobile phone settings. '''Here we take the Mi 12S Pro mobile phone as an example'''. Please research other brands of mobile phones by yourself. As shown in the figure below, click the button in the red box to open the screen projection function of the mobile phone</p>
<p>[[File:media/image356zero3-img356-1.png|167x266px]]</p></li>
<li><p>After waiting for a while, you can see the searched and connectable devices on the mobile phone, and then we can select the device corresponding to the development board to connect</p>
<p>[[File:media/image357zero3-img357-1.png|146x308px]]</p></li>
<li><p>Then the selection box shown in the figure below will pop up on the '''MiracastReceiver''' application interface of the development board, here we can select '''Accept'''</p>
<p>[[File:media/image358zero3-img358.png|468x265px]]</p></li>
<li><p>Then you can see the content of the mobile phone screen on the HDMI screen connected to the development board</p>
<p>[[File:media/image359zero3-img359-1.png|576x352px]]</p></li></ol>
<span id="pin-interface-gpio-uart-spi-test"></span>
<ol style="list-style-type: decimal;">
<li><p>First open the wiringOP APP on the desktop</p>
<p>[[File:media/image360zero3-img360.png|576x133px]]</p></li>
<li><p>Then click the '''GPIO_TEST''' button to open the GPIO test interface</p>
<p>[[File:media/image361zero3-img361.png|413x77px]]</p></li>
<li><p>The GPIO test interface is shown in the figure below. There is a one-to-one correspondence between the two rows of '''CheckBox''' buttons on the left and the 26pin pins '''(PC1/PI16/PI6/PH10 in the lower left corner are GPIO ports in the 13pin pins)'''. When the '''CheckBox''' button is checked, the corresponding GPIO pin will be set to '''OUT''' mode, and the pin level will be set to high level; when the checkbox is unchecked, the GPIO pin level will be set to low level; When the '''GPIO READALL''' button is pressed, information such as the wPi number, GPIO mode, and pin level can be obtained.</p>
<p>[[File:media/image362zero3-img362.png|425x236px]]</p></li>
<li><p>Then click the '''GPIO READALL''' button, the output information is as shown in the figure below:</p>
<div class="figure">
[[File:media/image363zero3-img363.png|444x249px|Screenshot_20230609-155643]]
</div></li>
<li><p>There are a total of 17 GPIO ports in the 26pin of the development board that can be used '''(if you add 4 GPIO ports in the 13pin, then there are 21 in total)''', and the following pin No. 7 - corresponding to GPIO is PC9 - corresponding to wPi The serial number is 2——as an example to demonstrate how to set the high and low levels of the GPIO port. First click the '''CheckBox''' button corresponding to pin 7. When the button is selected, pin 7 will be set to high level. After setting, you can use a multimeter to measure the voltage value of the pin. If it is '''3.3v''', it means setting high level success</p>
<p>[[File:media/image364zero3-img364.png|432x210px]]</p></li>
<li><p>Then click the '''GPIO READALL''' button, you can see that the current pin 7 mode is '''OUT''', and the pin level is high</p>
<p>[[File:media/image365zero3-img365.png|430x207px]]</p></li>
<li><p>Click the '''CheckBox''' button in the figure below again to cancel the check status. Pin 7 will be set to low level. After setting, you can use a multimeter to measure the voltage value of the pin. If it is '''0v''', it means that the low level is set successfully.</p>
<p>[[File:media/image366zero3-img366.png|434x212px]]</p></li>
<li><p>Then click the '''GPIO READALL''' button, you can see that the current pin 7 mode is OUT, and the pin level is low</p>
<p>[[File:media/image367zero3-img367.png|438x217px]]</p></li></ol>
<span id="pin-uart-test-method"></span>
</li>
<li><p>First open the wiringOP APP on the desktop</p>
<p>[[File:media/image360zero3-img360.png|576x133px]]</p></li>
<li><p>Then click the '''UART_TEST''' button to open the UART test interface</p>
<p>[[File:media/image368zero3-img368.png|505x94px]]</p></li>
<li><p>The serial port test interface of wiringOP is shown in the figure below</p></li>
[[File:media/image369zero3-img369.png|511x133px]]
</ol>
<ol start="5" style="list-style-type: decimal;">
<li><p>Then select the '''/dev/ttyAS5''' node in the selection box</p>
<p>[[File:media/image370zero3-img370.png|499x269px]]</p></li>
<li><p>Enter the baud rate you want to set in the edit box, and then click the '''OPEN''' button to open the '''/dev/ttyAS5''' node. After the opening is successful, the '''OPEN''' button becomes unselectable, and the '''CLOSE''' button and '''SEND''' button become selectable.</p></li>
[[File:media/image371zero3-img371.png|334x107px]]
</ol>
<ol start="7" style="list-style-type: decimal;">
|-
|
| style="text-align: leftcenter;"| uart5
|-
| Tx pin
| style="text-align: leftcenter;"| Corresponding to pin 8 of 26pin
|-
| Rx pin
| style="text-align: leftcenter;"| Corresponding to pin 10 of 26pin
|}
</li></ol>
<li>Then you can enter a character in the send edit box below, click the '''SEND''' button to start sending</li>
[[File:media/image372zero3-img372.png|376x189px]]
</ol>
<ol start="9" style="list-style-type: decimal;">
<li>If everything is normal, the received string will be displayed in the receiving box</li>
[[File:media/image373zero3-img373.png|382x196px]]
</ol>
<span id="pin-spi-test-method"></span>
<ol style="list-style-type: decimal;">
<li><p>The SPI that can be used in 26pin is SPI1, and the corresponding device node is '''/dev/spidev1.1'''</p>
<p>[[File:media/image360zero3-img360.png|576x133px]]</p></li>
<li><p>Here is a demonstration to test the SPI1 interface through the '''w25q64''' module, first connect the w25q64 module to the SPI1 interface</p>
|-
|
<big>'''It doesn’t doesn't matter if there is no w25q64 module, because there is a SPIFlash connected to SPI0 on the development board, and the configuration of SPI0 is also enabled by default in Android, so we can also directly use the onboard SPIFlash test.'''</big>
|}
</li></ol>
<li><p>Then open the wiringOP APP on the desktop</p></li>
<li><p>Then click the '''SPI_TEST''' button to open the SPI test interface</p>
<p>[[File:media/image374zero3-img374.png|518x96px]]</p></li>
<li><p>Then select the spi device node in the upper left corner. If you directly test the onboard SPIFlash, then keep the default '''/dev/spidev0.0'''. If you connect the '''w25q64''' module to the 26pin spi1, then please select /dev '''/dev/spidev1.1'''</p>
<div class="figure">
[[File:media/image375.jpeg|296x135px|C:\Users\orangepi\Desktop\用户手册插图\Zero3\未标题zero3-7img375.jpg未标题-7png]]
</div></li>
<li><p>Then click the '''OPEN''' button to initialize the SPI</p></li>
[[File:media/image376zero3-img376.png|295x168px]]
</ol>
<ol start="7" style="list-style-type: decimal;">
<li><p>Then fill in the bytes that need to be sent, such as reading the ID information of the onboard SPIFlash, fill in the address 0x9f in data[0], and then click the '''TRANSFER''' button</p>
<p>[[File:media/image377zero3-img377.png|294x169px]]</p></li>
<li><p>Finally, the APP will display the read ID information of the onboard SPI Flash</p></li>
[[File:media/image378zero3-img378.png|299x217px]]
</ol>
<ol start="9" style="list-style-type: decimal;">
<li><p>If it is to read the w25q64 module connected to 26pin SPI1, then the read ID information is shown in the figure below</p>
<p>[[File:media/image379zero3-img379.png|302x201px]]</p></li>
<li><p>The MANUFACTURER ID of the w25q64 module is EFh, and the Device ID is 4017h, corresponding to the value read above (h stands for hexadecimal)</p>
<p>[[File:media/image380zero3-img380.png|336x113px]]</p></li></ol>
<span id="pin-i2c-test-method"></span>
</li>
<li><p>First open the wiringOP APP on the desktop</p>
<p>[[File:media/image360zero3-img360.png|576x133px]]</p></li>
<li><p>Then click the '''I2C_TEST''' button to open the i2c test interface</p>
<p>[[File:media/image381zero3-img381.png|506x110px]]</p></li>
<li><p>The i2c test interface of wiringOP is shown in the figure below. You can see that the default i2c is '''/dev/i2c-3''', so we don't need to re-select</p></li>
[[File:media/image382zero3-img382.png|353x159px]]
</ol>
<ol start="5" style="list-style-type: decimal;">
<li><p>Then connect an i2c device to the 26pin i2c3 pin, here we take the ds1307 rtc module as an example</p>
<p>[[File:media/image186zero3-img186.png|121x103px]]</p></li>
{| class="wikitable" style="width:800px;"
|-
| style="text-align: leftcenter;"| '''Pins of the RTC module'''| style="text-align: leftcenter;"| '''The pin corresponding to the 26pin of the development board'''
|-
| style="text-align: leftcenter;"| '''5V'''| style="text-align: leftcenter;"| '''pin 2'''
|-
| style="text-align: leftcenter;"| '''GND'''| style="text-align: leftcenter;"| '''pin 6'''
|-
| style="text-align: leftcenter;"| '''SDA'''| style="text-align: leftcenter;"| '''pin 3'''
|-
| style="text-align: leftcenter;"| '''SCL'''| style="text-align: leftcenter;"| '''pin 5'''
|}
</ol>
<p>apollo-p2:/ # '''i2cdetect -y 3'''</p>
|}
<p>[[File:media/image383zero3-img383.png|424x186px]]</p></li>
<li><p>Then set the address of i2c to 0x68 in wiringOP, and then click the '''OPEN''' button to open i2c3</p>
<p>[[File:media/image384zero3-img384.png|354x177px]]</p></li>
<li><p>The display after clicking the '''OPEN''' button to open i2c3 is as follows:</p>
<p>[[File:media/image385zero3-img385.png|355x171px]]</p></li>
<li><p>Then we test to write a value into the register of the rtc module, for example, write 0x55 to the 0x1c address</p>
<ol style="list-style-type: lower-alpha;">
<li><p>We first set the address of the register to be written to 0x1c</p>
<p>[[File:media/image386zero3-img386.png|322x152px]]</p></li>
<li><p>Then set the value to be written to 0x55</p>
<p>[[File:media/image387zero3-img387.png|315x177px]]</p></li>
<li><p>Then click the '''WRITE BYTE''' button to execute the write action</p>
<p>[[File:media/image388zero3-img388.png|314x173px]]</p></li></ol>
</li>
<li><p>Then click the '''READ BYTE''' button to read the value of the 0x1c register, if it is displayed as 0x55, it means that the i2c read and write test has passed</p>
<p>[[File:media/image389zero3-img389.png|316x170px]]</p></li></ol>
<span id="appendix"></span>
{| class="wikitable" style="width:800px;"
|-
| style="text-align: leftcenter;"| '''Version'''| style="text-align: leftcenter;"| '''Date'''| style="text-align: leftcenter;"| '''Update Notes'''|-| style="text-align: center;"| v1.0| style="text-align: center;"| 2023-07-05| style="text-align: center;"| initial version
|-
| style="text-align: leftcenter;"| v1.01| style="text-align: leftcenter;"| 2023-07-0514| style="text-align: leftcenter;"| initial versionAdd the compilation method of Android 12 source code
|}
== Image update history ==
{| class="wikitable" style="width:800px;text-align: center;"
|-
| '''Date'''
: *initial version|-| 2023-07-13| Opios-arch-aarch64-xfce-opizero3-23.07-linux6.1.31.img.xz 
: *initial version
|}