Changes

Jump to: navigation, search

Orange Pi 3B

3,405 bytes added, 09:06, 24 August 2023
Interface details of Orange Pi 3B
Orange Pi 3B brings out quite a lot of interfaces, including HDMI output, M.2 PCIe2.0x1, Gigabit Ethernet port, USB2.0, USB3.0 interface and 40pin expansion pin header, etc. It can be widely used in high-end tablet, edge computing, artificial intelligence, cloud computing, AR/VR, smart security, smart home and other fields, covering various AIoT industries.
Orange Pi 3B supports Android11, Ubuntu22.04, Ubuntu20.04, Debian11, Debian12, open source Hongmeng OpenHarmony 4.0 Beta1, Orange Pi OS (Arch), Orange Pi OS (OH) based on open source Hongmeng OpenHarmony and other operating systems.
<span id="purpose-of-orange-pi-3b"></span>
 
== Purpose of Orange Pi 3B ==
• Integrated RKNN NPU AI accelerator, 0.8Tops@INT8 performance
• Supports one-click conversion of C affeCaffe/TensorFlow/TFLite/ONNX/PyTorch/Keras/Darknet architecture models
|-
| storage
|
• Support eMMC module: 16GB/32GB/64GB/128GB/256GB
• SPI Flash: 16MB/32MB
| Supported OS
|
Android11, Ubuntu22.04, Ubuntu20.04, Debian11, Debian12, open source Hongmeng OpenHarmony 4.0 Beta1, Orange Pi OS (Arch), Orange Pi OS (OH) based on open source Hongmeng OpenHarmony and other operating systems.
|-
|colspan=2|
<div class="figure">
[[File:pi3b-img3.png|800px]]
</div>
<div class="figure">
[[File:pi3b-img4.png|800px]]
</div>
== Interface details of Orange Pi 3B ==
[[File:pi3b-img5-1.png|800px]]
[[File:pi3b-img6.png|800px]]
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big>'''The diameter of the four positioning holes is 32.0mm7mm, and the diameter of the M.2 PICE device fixing hole is 32.5mm9mm.'''</big>
|}
</ol>
<ol start="5" style="list-style-type: decimal;">
<li>Power adapter, Orange Pi 3B is recommended to use 5V/3A or 5V/4A Type-C power supply for power supply</li>
[[File:pi3b-img11-1.png]]
</ol>
<ol start="6" style="list-style-type: decimal;">
<li>'''3.3V''' USB to TTL module and DuPont line, when using serial port debugging function, need USB to TTL module and DuPont line to connect the development board and computer</li>
[[File:pi3b-img17.png|400px]] [[File:pi3b-img18.png|400px]]
</ol>
<ol start="12" style="list-style-type: decimal;">
<div class="figure">
::[[File:pi3b-img19.png|800px]]
</div>
|-
|
'''https://www.balena.io/etcher/'''
|}
</ol>
<ol start="11" style="list-style-type: decimal;">
<li>After the successful burning is completed, the display interface of balenaEtcher is as shown in the figure below. If the 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 card and insert it into the TF card slot of the development boardfor use. up</li>
<div class="figure">
|-
|
'''https://www.sdcard.org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zip'''
|}
</ol>
|-
|
'''http://sourceforge.net/projects/win32diskimager/files/Archive/'''
|}
</ol>
</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 card and insert it into the TF card slot of the development board for use. up</li>
[[File:pi3b-img60.png]]
# The development board reserves the expansion interface of the eMMC module. Before burning the system to the eMMC, you first need to purchase an eMMC module that matches the eMMC interface of the development board. Then install the eMMC module to the development board. The eMMC module and the method of plugging into the development board are as follows:
::[[File:pi3b-img61.png|400px]] [[File:pi3b-img62.png|400px]]
::[[File:pi3b-img63.png|800px]]
<ol start="2" style="list-style-type: decimal;">
# The development board reserves the expansion interface of the eMMC module. Before burning the system to the eMMC, you first need to purchase an eMMC module that matches the eMMC interface of the development board. Then install the eMMC module to the development board. The eMMC module and the method of plugging into the development board are as follows:
::[[File:pi3b-img61.png|400px]] [[File:pi3b-img62.png|400px]]
::[[File:pi3b-img63.png|800px]]
<ol start="2" style="list-style-type: decimal;">
<li><p>Then you can use the dd command to burn the Linux image of the development board into the eMMC</p>
<ol style="list-style-type: lower-alpha;">
<li><p>In the following command, the '''if= ''' parameter is followed by the full path where the Linux image is stored + the name of the Linux image (such as '''the name of /home/orangepi/Desktop/Linux image'''). Because we have entered the path of the Linux image above, we only need to fill in the name of the Linux image.</p></li>
<li><p>Please do not copy the Linux image name in the following command, but replace it with the actual image name (because the version number of the image may be updated).</p></li>
{| class="wikitable" style="width:800px;"
</li></ol>
<ol start="9" style="list-style-type: decimal;">
<li>Then decompress '''RKDevTool_Release_v3.15.zizip'''p, this software does not need to be installed, just find '''RKDevTool''' in the decompressed folder and open it</li>
[[File:pi3b-img34.png]]
</ol>
<ol start="17" style="list-style-type: lower-alpha;">
<li>Then please check '''the mandatory write option to force writing by address''' option</li>
[[File:pi3b-img83.png]]
<!-- -->
<ol style="list-style-type: lower-alpha;">
<li><p>In the following command, the '''if= ''' parameter is followed by the full path where the Linux image is stored + the name of the Linux image (such as '''the name of /home/orangepi/Desktop/Linux image'''). Because we have entered the path of the Linux image above, we only need to fill in the name of the Linux image.</p></li>
<li><p>Please do not copy the Linux image name in the following command, but replace it with the actual image name (because the version number of the image may be updated).</p></li>
<p>The eMMC module and the method of plugging into the development board are as follows:</p></li>
[[File:pi3b-img61.png|400px]] [[File:pi3b-img62.png|400px]]
[[File:pi3b-img63.png|800px]]
</ol>
<ol start="2" style="list-style-type: decimal;">
# The development board reserves an eMMC expansion interface. Before programming the system to eMMC, you first need to purchase an eMMC module that matches the eMMC interface of the development board. Then install the eMMC module to the development board. The eMMC module and the method of plugging into the development board are as follows:
::[[File:pi3b-img61.png|400px]] [[File:pi3b-img62.png|400px]]
::[[File:pi3b-img63.png|800px]]
<ol start="2" style="list-style-type: decimal;">
# Connect a USB mouse and keyboard to control the Orange Pi development board.
# The development board has an Ethernet port, which can be plugged into a network cable for Internet access.
# Connect a high-quality power adapter with a 5V/3A or 5V/4A USB Type-C interface.
::{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|}
<ol start="56" style="list-style-type: decimal;">
<li>Then turn on the switch of the power adapter. If everything is normal, you can see the startup screen of the system on the HDMI monitor or LCD screen.</li>
|-
|
[https://mobaxterm.mobatek.net/ '''https://mobaxterm.mobatek.net''']
|}
</ol>
<li><p>Open the session settings interface</p></li>
<li><p>Select the serial port type</p></li>
<li><p>Select the port number of the serial port (select the corresponding port number according to the actual situation), if you can't see the port number, please use '''Driver Master''' to scan and install the driver for the USB to TTL serial port chip</p></li>
<li><p>Select the baud rate of the serial port as '''1500000'''</p></li>
<li><p>Finally click the &quot;'''OK'''&quot; button to complete the setting</p></li>
|-
|
<big>'''The power supply method we recommend for the development board is to use the 5V/3A or 5V/4A Type C interface power cord to plug into the Type-C power interface of the development board for power supply. If you need to use the 5V pin in the 40pin interface to power the development board, please make sure that the power cord and power adapter used can meet the power supply requirements of the development board. If the use is unstable, please switch back to the Type-C power supply.'''</big>
|}
<li><p>Use the 5V pin in the 40pin interface to supply power to the development board. The connection method of the power line is as follows</p>
<ol style="list-style-type: lower-alpha;">
<li><p>The USB A port of the power cord shown in the above picture needs to be plugged into the 5V/3A or 5V4A power adapter connector ('''<span style="color:#FF0000">please do not plug into the computer's USB port for power supply</span>''')</p></li>
<li><p>The red DuPont line needs to be plugged into the 5V pin of the development board 40pin</p></li>
<li><p>The black Dupont wire needs to be inserted into the GND pin of the 40pin interface</p></li>
<li><p>The position of the 5V pin and GND pin of the 40pin interface on the development board is shown in the figure below, '''<span style="color:#FF0000">remember not to reverse the connection</span>'''</p></li>
[[File:pi3b-img170.png]]
|-
|
<p>orangepi@orangepi:~$ '''sudo orangepi-config'''</p>
|}
::As shown below, the content in the yellow box indicates the content that needs special attention, except for the commands in it.
|-
|
<big>'''注意, 这里说的Linux镜像具体指的是从Orange Pi资料下载页面下载的Debian或者Ubuntu这样的Linux发行版镜像。'''</big>
|}
<ol start="2" style="list-style-type: decimal;">
=== How to set automatic terminal login in Linux system ===
# The Linux system automatically logs in to the terminal by default, and the default login user name is orangepi '''<span style="color:#FF0000">orangepi</span>'''
::[[File:pi3b-img171.png]]
|-
|
root@orangepi:~# '''cd /sys/class/leds/statusstatus_led'''
|}
</ol>
|-
|
root@orangepi:/sys/class/leds/workstatus_led# '''echo none &gt; trigger'''
|}
</ol>
|-
|
root@orangepi:/sys/class/leds/workstatus_led# '''echo default-on &gt; trigger'''
|}
</ol>
|-
|
root@orangepi:/sys/class/leds/workstatus_led# '''echo heartbeat &gt; trigger'''
|}
</ol>
<span id="wifi-the-server-image-connects-to-wifi-through-commands"></span>
==== WIFI The server image connects to WIFI through commands ====
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
<li>If you can open other web pages after opening the browser, it means that the WIFI connection is normal</li>
[[File:pi3b-img187-1.png]]
</ol>
<span id="how-to-set-a-static-ip-address"></span>
</ol>
<span id="use-the-nmcli-command-to-set-a-static-ip-address"></span>
 
==== Use the nmcli command to set a static IP address ====
</ol>
<ol start="5" style="list-style-type: decimal;">
<li>Then re-enter the Linux system and use the '''ip addr show eth0'''command to see that the IP address has been set to the desired value</li>
{| class="wikitable" style="width:800px;"
|-
</div></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 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.</li>
<div class="figure">
</div></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 on the Windows 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.</li>
<div class="figure">
</ol>
<ol start="3" style="list-style-type: decimal;">
<li>If there is a prompt belowon the following interface, please select '''Yes'''</li>
[[File:pi3b-img232.png]]
</ol>
<ol start="7" style="list-style-type: decimal;">
<li>Then select the Bluetooth device you want to connect. If you to, and then click the right -click button of the mouse, you will to pop up the operating operation interface of for this Bluetooth device. Select , select '''Pair''' to start pairing. Here, it and the demonstration here is demonstrated to pair with the an Android phone</li>
[[File:pi3b-img236.png]]
</ol>
<ol start="9" style="list-style-type: decimal;">
<li>After pairing with the mobile phone, you can choose the paired Bluetooth device, then right -click and select '''Send a File''' to start sending a picture to the phone</li>
[[File:pi3b-img238.png]]
|-
|
<big>'''The USB interface can connect be connected to a USB Hub hub to expand the number of USB interfaces.'''</big>
|}
=== Connect the USB mouse or keyboard test ===
# Insert the keyboard of the USB interface keyboard into the USB interface of the Orange PI Pi development board
# Connect Orange PI development board to HDMI display
# If the mouse or keyboard can normal operating systemsoperate normally, it means that the USB interface is used working normally (the mouse can only be used in the system desktop version of the desktop versionsystem)
<span id="connect-the-usb-storage-device-test"></span>
 
=== Connect the USB storage device test ===
# First insert the U disk or USB mobile hard disk into the USB interface of the Orange PI Pi development board# Execute the following command. If , if you can see the output of sdX, it means that the U disk recognition is successfulrecognized successfully
::{| class="wikitable" style="width:800px;"
</ol>
<ol start="4" style="list-style-type: decimal;">
<li>After the mounting, you can view the capacity usage and mount point of the U disk through the '''df -h''' command and the mounting point</li>
{| class="wikitable" style="width:800px;"
|-
# First insert the RTL8723BU wireless network card module into the USB interface of the development board
# Then the Linux system will automatically load the RTL8723BU Bluetooth bluetooth and WiFi WIFI-related kernel modules. You , through the lsmod command, you can see that the following kernel module below is modules have been automatically loaded through the lsmod command
::{| class="wikitable" style="width:800px;"
<ol start="3" style="list-style-type: decimal;">
<li>You Through the dmesg command, you can see the loading information of the RTL8723BU module through the dmesg command</li>
{| class="wikitable" style="width:800px;"
</ol>
<ol start="4" style="list-style-type: decimal;">
<li>Then you can see the RTL8723BU WIFI device node through the '''sudo ifconfig''' command. Please refer to the WIFI connection test a [[Orange Pi 3B#WIFI connection test|'''section for the WIFI connectiontest chapter''']] for WIFI connection and testing methods</li>
{| class="wikitable" style="width:800px;"
|-
</ol>
<ol start="7" style="list-style-type: decimal;">
<li>Click '''Turn Bluetooth On''' to open turn on Bluetooth</li>
[[File:pi3b-img244.png]]
</ol>
<ol start="8" style="list-style-type: decimal;">
<li>The display after opening turning on Bluetooth is shown belowas follows</li>
[[File:pi3b-img245.png]]
# First insert the RTL8811 wireless network card module into the USB interface of the development board.
# Then the Linux system will automatically load the kernel modules related to RTL8811 WIFI -related kernel modules. You , and you can see that the following kernel module below is modules have been automatically loaded through the lsmod command
::{| class="wikitable" style="width:800px;"
<ol start="3" style="list-style-type: decimal;">
<li>You Through the dmesg command, you can see the loading information of the RTL8811 module through the dmesg command</li>
{| class="wikitable" style="width:800px;"
|-
</ol>
<ol start="4" style="list-style-type: decimal;">
<li>Then you can see the WiFi device node through the '''sudo ifconfig''' command. Please refer to the [[\lOrange Pi 3B#WIFI connection test|'''WiFi connection test a sectionchapter''']] for WIFI connection and testing methods. I won't go into details her</li>
{| class="wikitable" style="width:800px;"
|-
# First insert the rtl8821cu wireless network card module into the USB interface of the development board
# Then use the '''lsusb''' command to see the device information of the rtl8821cu usb wifi module. Make , please make sure that the USB module is not in the Driver CDROM Mode
::{| class="wikitable" style="width:800px;"
<big>'''If the USB WIFI module seen by the lsusb command is in Driver CDROM Mode, re -insert please unplug the USB WiFi WIFI moduleagain. If not, please manually execute the following command to switch to the next mode: '''</big>
<ol start="3" style="list-style-type: decimal;">
<li>The Linux system will automatically load the RTL8821CU Bluetooth rtl8821cu bluetooth and WIFI wifi-related kernel modules. You , through the lsmod command, you can see that the following kernel module below is modules have been automatically loaded through the lsmod command</li>
{| class="wikitable" style="width:800px;"
|-
</ol>
<ol start="4" style="list-style-type: decimal;">
<li>You Through the dmesg command, you can see the loading information of the rtl8821cu module through the dmesg command</li>
{| class="wikitable" style="width:800px;"
|-
<ol start="5" style="list-style-type: decimal;">
<li>Then you can see the RTL8821CU WiFi device node through the '''sudo ifconfig''' command. Please refer to the [[Orange Pi 3B#WIFI connection test|'''WiFi connection testchapter''']] a section for WIFI connection and testing methods.</li>
{| class="wikitable" style="width:800px;"
|-
</ol>
<ol start="7" style="list-style-type: decimal;">
<li>Bluetooth icons can also be seen on the desktop. At this time, Bluetooth has not been openedturned on, so a red '''<span style="color:#FF0000">x</span>''' will be displayed</li>
[[File:pi3b-img243.png]]
</ol>
<ol start="8" style="list-style-type: decimal;">
<li>Click '''Turn Bluetooth On''' to open turn on Bluetooth</li>
[[File:pi3b-img244.png]]
</ol>
<ol start="9" style="list-style-type: decimal;">
<li>The display after opening turning on Bluetooth is shown belowas follows</li>
[[File:pi3b-img245.png]]
</ol>
<ol start="10" style="list-style-type: decimal;">
<li>Please refer to the [[Orange Pi 3B#How to use Bluetooth|'''Bluetooth use chapter''']] for the Bluetooth test method. I won't go into details herhere</li></ol>
<span id="usb-camera-test"></span>
=== USB Camera Test ===
# First, you need to prepare a USB camera that supports the UVC protocol as shown in the figure belowor similar, and then insert the USB camera into the USB interface port of the Orange PI Pi development board
::[[File:pi3b-img13.png]]
|-
|
<big>'''Note that the l in v4l2 is a lowercase letter l, not numbers the number 1.'''
'''In addition, Video's the serial number of the video is not necessarily Video0video0, please refer to what you actually see.'''</big>
|}
</ol>
<ol start="3" style="list-style-type: decimal;">
<li>In the desktop system, you Cheese can use Cheese be used to directly turn on open the USB camera. The cheese method of opening method Cheese is shown in the figure below: </li>
[[File:pi3b-img246.png]]
The interface after cheese opens Cheese turns on the USB camera is shown in the figure below:
[[File:pi3b-img247.png]]
<li><p>b) --no-banner Used to remove the watermark of photos</p></li>
<li><p>c) -r The option is used to specify the resolution of the photo</p></li>
<li><p>d) -S The option is used to set to the number of previous frames before skippingto skip</p></li>
<li><p>e) ./image.jpg The name and path for setting the generated photos</p></li>
{| class="wikitable" style="width:800px;"
</li></ol>
<ol start="3" style="list-style-type: lower-alpha;">
<li>In the service desktop version of the Linux system, you can use directly view the scp command to pass captured pictures through the picture to the Ubuntu PC to watch after taking the photoHDMI display</li>
{| class="wikitable" style="width:800px;"
|-
</ol>
<ol start="4" style="list-style-type: lower-alpha;">
<li>In the desktop version of the Linux system, you can directly view the shot captured pictures through the HDMI display</li></ol>
</li></ol>
<span id="audio-test"></span>
</div></ol>
<ol start="3" style="list-style-type: decimal;">
<li>Then select the audio.wav file, right -click and select VLC to open it with vlc to start playing</li>
[[File:pi3b-img250.png]]
== Temperature Sensor ==
# The command of to view the system temperature sensor is:
::{| class="wikitable" style="width:800px;"
<ol start="2" style="list-style-type: decimal;">
<li><p>The command of to view the current temperature of the NVMe SSD nvme ssd solid -state hard disk drive is: </p>
{| class="wikitable" style="width:800px;"
|-
<li>Below is a complete pins of 40pin</li>
[[File:pi3b-img255-1.png]]
</ol>
<ol start="2" style="list-style-type: lower-alpha;">
<li>The following form is a picture on the left half of the full table above, which can be seen clearly</li>
[[File:pi3b-img256-1.png]]
</ol>
<ol start="3" style="list-style-type: lower-alpha;">
<li>The following form is a picture on the right half of the top table above, which can be seen clearly</li>
[[File:pi3b-img257-1.png]]
</ol>
</li></ol>
<span id="how-to-install-wiringop"></span>
== How to install Wiringop wiringOP ==
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big>'''Note that Wiringop wiringOP has been pre -installed in the Linux image released by Orange Pi. Unless WiringopwiringOP's code is updated, it is not necessary to re -download and install. Just use it directly.'''
'''The storage path of the compiled WiringopwiringOP's Deb is wrapped in Orangepi-Build: '''
'''<span style="color:blue">orangepi-build/external/cache/debs/arm64/wiringpi_x.xx.deb</span>'''
<div class="figure">
[[File:pi3b-img258-1.png]]
</div>
<big>'''wiringOP is currently mainly adapted to set the functions of setting GPIO port input and output, set the setting GPIO port output high and low levellevels, and set the function of pulling setting up and down resistancepull-down resistors. It is impossible to use functions like Functions such as hardware PWMare not available.'''</big>
|}
# Download the code of WiringopwiringOP
::{| class="wikitable" style="width:800px;"
<div class="figure">
[[File:pi3b-img258-1.png]]
</div></ol>
orangepi@orangepi3b:~$ '''sudo blink_all_gpio''' &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #Remember to add Sudo permissions
[sudo] password for orangepi: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #You need to enter a password here'''
|}
# A There are a total of '''28 ''' GPIO ports can be used in the 40pins of the development board 40pin. Below is Nothat can be used. 7 pins -The following uses pin 7—the corresponding GPIO as GPIO4_A4 -is GPIO4_C3——the corresponding WPI wPi serial number 2 -as is 2—as an example to demonstrate how to set the height high and low levels of the GPIO port
::[[File:pi3b-img259-1.png]]
<ol start="2" style="list-style-type: decimal;">
</ol>
<ol start="3" style="list-style-type: decimal;">
<li>Then set the GPIO port to output the low level. After setting, you can use the value of the voltage of the pins with a multimeter. If it is 0v, it means that the low -electric level flat is successful</li>
{| class="wikitable" style="width:800px;"
|}
Using GPIO Readall, you can see the value of the No. 7 pin (vV) to 0
[[File:pi3b-img260.png]]
</ol>
<ol start="4" style="list-style-type: decimal;">
<li>Then set the GPIO port to output a high level. After setting, you can use a multimeter to measure the voltage value of the voltage of the permanent meter to measure the voltagepin. If it is 3.3V3v, it means that the high-electricity level is successfulset successfully.</li>
{| class="wikitable" style="width:800px;"
Using GPIO Readall, you can see the value of No. 7 pin (v) into 1
[[File:pi3b-img261-1.png]]
</ol>
<ol start="5" style="list-style-type: decimal;">
<li>The setting method of other pins is similar. Just , just modify the serial number of the wPi sequence number as to the corresponding serial number corresponding to of the pin</li></ol>
<span id="pin-gpio-port--down-and-downward-pull--down-resistance-setting-method"></span>
=== 40Pin 40pin GPIO Port -down and downward port pull -down resistance setting method ===
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big>'''Note that the 4 GPIO pins below Orange Pi 3B are invalid because there are 3.3V on the outside, so setting drop -down is invalid. Other pins can be set normally'''</big>
[[File:pi3b-img262-1.png|center]]
|}
# Below the No. 11 11 pin—corresponding to GPIO 3_C6-corresponding WPI wPi serial number 5—to demonstrate how to set up and down pull-down resistance of the GPIO port
::[[File:pi3b-img263-1.png]]
<ol start="2" style="list-style-type: decimal;">
<li>First of all, you need to set the GPIO port as the input mode. The third parameter needs to enter the serial number of the wpi wPi corresponding to the pins</li>
{| class="wikitable" style="width:800px;"
|-
</ol>
<ol start="3" style="list-style-type: decimal;">
<li>After the setting is set to input mode, execute the following command to set the GPIO port as the pull -down mode</li>
{| class="wikitable" style="width:800px;"
|-
</ol>
<ol start="6" style="list-style-type: decimal;">
<li>Then enter the following command to read the level of the GPIO port. If the level is 0, it means that the drop -down mode is set successfully</li>
{| class="wikitable" style="width:800px;"
|-
# From the schematic diagram of the 40PIN interface, the SPI available for Orange Pi 3B is spi3
::[[File:pi3b-img264-1.png]]
<ol start="2" style="list-style-type:decimal;"><li><p>In the linux system, the SPI in the 40 pin is closed by default, and it needs to be opened manually before it can be used. The detailed steps 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>{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<bigp>'''In the Linux system, the SPI3 in 40pin is closed by default, and it needs to be opened manually to use.'''  '''Add the configuration of the red font part below to the /boot/orangepiEnv.txt, and then restart the Linux system to open the spi3.'''  orangepi@orangepi:~$ '''sudo vim /boot/orangepiEnv.txt''' '''<span style="color:#FF0000">overlays=spi3-m0orangepi-cs0-spidev</span>config'''</bigp>
|}
</li>
<li><p>Then select '''System'''</p>
<p>[[File:pi3b-1.png]]</p>
</li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:pi3b-2.png]]</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 SPI configuration you want to open</p>
<p>[[File:pi3b-3.png]]</p>
</li>
<li><p>Then select '''<Save>''' to save</p>
<p>[[File:pi3b-4.png]]</p>
</li>
<li><p>Then select '''<Back>'''</p>
<p>[[File:pi3b-5.png]]</p>
</li>
<li><p>Then select '''<Reboot>''' to restart the system to make the configuration take effect</p>
<p>[[File:pi3b-6.png]]</p>
</li>
</ol>
</li></ol>
<ol start="23" style="list-style-type: decimal;"><li>First After restarting, enter the system to check whether there is a '''spidev3.0''' device node in the Linux system. If it exists, it means that the SPI3 has been set. You up and can use it be used directly</li>
{| class="wikitable" style="width:800px;"
|}
</ol>
<ol start="34" style="list-style-type: decimal;"><li>Do not shorten short-circuit the two mosi and miso pins of the SPI3 MOSI and MISO, and run the output result of the running spidev_test is as shown below. You follows, you can see that the data of TX and RX is are inconsistent</li>
{| class="wikitable" style="width:800px;"
|}
</ol>
<ol start="45" style="list-style-type: decimal;"><li>Then short-circuit the two pins of the SPI3 MOSI mosi (No. 19 pins pin 19 in the 40pin interface) and MISO miso (No. 21 pin 21 in the 40PIN 40pin interface) of SPI3, and then run the output of SPIDEV_TEST spidev_test as follows.You , you can see that the sending and receiving same data is the same.</li>
[[File:pi3b-img265.png]]
# From the table below, the I2C available for Orange Pi 3B is I2C2, I2C3, and I2C4 a total of three groups of I2C bus.
::[[File:pi3b-img266-1.png]]
::{| class="wikitable" style="background-color:#ffffdc;width:800px;"
<big>'''It can be seen from the above table that i2c4_m0 and spi3_m0 are pins. The two cannot be opened at the same time. i2c3_m0 and uart3_m0 are also reused. The two cannot be opened at the same time'''</big>
|}
 <ol start="2" style="list-style-type:decimal;"><li><p>In the linux system, the I2C bus in the 40 pin is closed by default, and it needs to be opened manually to use it. The detailed steps 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>{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<bigp>'''In the Linux system, the i2c in 40Pin is closed by default, and it needs to be opened manually to use.'''  '''Add the configuration of the red font part below to the /boot/orangepiEnv.txt, and then restart the Linux system to open the i2c2, i2c3, and i2c4 at the same time. If you only need to open one, then fill in one.'''</big>  orangepi@orangepi:~$ '''sudo vim /boot/orangepiEnv.txt''' orangepi-config'''<span style="color:#FF0000">overlays=i2c2-m1 i2c3-m0 i2c4-m0</spanp>'''
|}
</li>
<li><p>Then select '''System'''</p>
<p>[[File:pi3b-1.png]]</p>
</li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:pi3b-2.png]]</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 I2C configuration you want to open</p>
<p>[[File:pi3b-3-2.png]]</p>
</li>
<li><p>Then select '''<Save>''' to save</p>
<p>[[File:pi3b-4.png]]</p>
</li>
<li><p>Then select '''<Back>'''</p>
<p>[[File:pi3b-5.png]]</p>
</li>
<li><p>Then select '''<Reboot>''' to restart the system to make the configuration take effect</p>
<p>[[File:pi3b-6.png]]</p>
</li>
</ol>
</li></ol>
<ol start="23" style="list-style-type: decimal;">
<li>After starting the Linux system, first confirm that the i2c device node exists under/dev</li>
{| class="wikitable" style="width:800px;"
|}
</ol>
<ol start="34" style="list-style-type: decimal;">
<li>Then connect a i2c device on the i2c pin of the 40Pin connector</li>
|}
</ol>
<ol start="45" style="list-style-type: decimal;">
<li>Then use the '''i2cdetect -y''' command if the address of the connected I2C device can be detected, it means that the I2C can be used normally</li>
{| class="wikitable" style="width:800px;"
# As can be seen from the table below, the uart available for Orange Pi 3B is uart3, uart7, and uart9. There are three sets of uart bus
::[[File:pi3b-img268-1.png]]
::{| class="wikitable" style="background-color:#ffffdc;width:800px;"
<big>'''As can be seen from the above table, i2c3_m0 and uart3_m0 are reused by pins, and the two cannot be opened at the same time'''</big>
|}
 <ol start="2" style="list-style-type:decimal;"><li><p>In the linux system, the UART in the 40 pins is closed by default, and it needs to be opened manually before it can be used. The detailed steps 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>{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<bigp>'''In the Linux system, the uart in 40pin is closed by default, and it needs to be opened manually to use.'''</big>  '''Add the configuration of the red font part below to the /boot/orangepiEnv.txt, and then restart the Linux system to open the uart3, uart7, and uart9 at the same time. If you only need to open one, you can fill in one..'''  orangepi@orangepi:~$ '''sudo vim /boot/orangepiEnv.txt''' orangepi-config'''<span style="color:#FF0000">overlays=uart3-m0 uart7-m2 uart9-m2</spanp>'''
|}
</li>
<li><p>Then select '''System'''</p>
<p>[[File:pi3b-1.png]]</p>
</li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:pi3b-2.png]]</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 UART configuration you want to open</p>
<p>[[File:pi3b-3-3.png]]</p>
</li>
<li><p>Then select '''<Save>''' to save</p>
<p>[[File:pi3b-4.png]]</p>
</li>
<li><p>Then select '''<Back>'''</p>
<p>[[File:pi3b-5.png]]</p>
</li>
<li><p>Then select '''<Reboot>''' to restart the system to make the configuration take effect</p>
<p>[[File:pi3b-6.png]]</p>
</li>
</ol>
</li></ol>
<ol start="23" style="list-style-type: decimal;">
<li>After entering the Linux system, first confirm whether there is a device node corresponding to uart under/dev</li>
|}
</ol>
<ol start="34" style="list-style-type: decimal;">
<li>Then start testing the uart interface, first use the rx and tx of the uart interface to be tested by DuPont</li>
|Corresponding to the 27 pin
|Corresponding to the 15 pin
|Corresponding to the 7 22 pin
|}
[[File:pi3b-img269-1.png]]
</ol>
<ol start="45" style="list-style-type: decimal;">
<li><p>Use the '''gpio serial''' command to test the loop function of the serial port as shown below. If you can see the following printing, it means that the serial communication is normal</p>
<ol style="list-style-type: lower-alpha;">
# From the table below, the pwm11 available for Orange Pi 3B
::[[File:pi3b-img270-1.png]]
<ol start="2" style="list-style-type:decimal;"><li><p>In the linux system, the PWM in the 40 pin is turned off by default, and it needs to be turned on manually before it can be used. The detailed steps 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>{| class="wikitable" style="width:800px;"
|-
|
'''In the Linux system, the pwm in 40pin is closed by default, and it needs to be opened manually to use..'''  '''Add the configuration of the red font part below to the /boot/orangepiEnv.txt, and then restart the Linux system to open the pwm11.'''  <p>orangepi@orangepi:~$ '''sudo vim /boot/orangepiEnv.txt''' orangepi-config'''<span style="color:#FF0000">overlays=pwm11-m1</spanp>'''
|}
</li>
<li><p>Then select '''System'''</p>
<p>[[File:pi3b-1.png]]</p>
</li>
<li><p>Then select '''Hardware'''</p>
<p>[[File:pi3b-2.png]]</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 PWM configuration you want to open</p>
<p>[[File:pi3b-3-4.png]]</p>
</li>
<li><p>Then select '''<Save>''' to save</p>
<p>[[File:pi3b-4.png]]</p>
</li>
<li><p>Then select '''<Back>'''</p>
<p>[[File:pi3b-5.png]]</p>
</li>
<li><p>Then select '''<Reboot>''' to restart the system to make the configuration take effect</p>
<p>[[File:pi3b-6.png]]</p>
</li>
</ol>
</li></ol>
<ol start="23" style="list-style-type: decimal;"><li>After opening a pwm, a there will be an extra pwmchipX in '''/sys/class/pwm/''' (X is a specific number) will be available in, for example, after opening pwm11, check the pwmchipX under '''/sys/class/pwm/'''one becomes two</li>
{| class="wikitable" style="width:800px;"
|-
|}
</ol>
<ol start="34" style="list-style-type: decimal;"><li><p>Which pwmchip above corresponds to pwm11 above? Let, let's first check out the output of the '''ls /sys/class/pwm/ -l''' commandfirst, as shown below: </p></li><li><p>The Then it can be known from the table below that the base address of the pwm11 register is Fe6F0030. Then see fe6f0030, and then look at the output of the '''ls /sys/class/pwm/ -l''' command, you can see that the pwmchip1 is linked to fe6f0030.pwm is connected to the pwmchip1, so the PWM11 corresponding pwm11 corresponds to pwmchip is as pwmchip1</p></li>
<div class="figure">
</div></ol>
<ol start="56" style="list-style-type: decimal;"><li>Then use the following command to allow make pwm11 to output a 50Hz square wave (please switch to the root user first, and then execute the following command)</li>
{| class="wikitable" style="width:800px;"
|-
[[File:pi3b-img272.png]]
 
<li>The test method of pwm11 demonstrated above is similar to other pwm test methods.</li>
</ol>
<span id="how-to-install-and-use-wiringop-python"></span>
== How to install and use WiringopwiringOP-Python ==
{| class="wikitable" style="background-color:#ffffdc;width:800px;"
|-
|
<big>'''WiringopwiringOP-Python is the library of the Python language version of Wiringop. It wiringOP, which is used to operate the hardware resources of the development board's , such as GPIO, I2C, SPI and UART hardware resources such as the development board , in the Python program.'''
'''Please In addition, please note that all the following command below is commands are operated under the <span style="color:#FF0000">root</span> user.'''</big>
|}
<span id="wiringop-python-installation-method"></span>
=== WiringopwiringOP-Python installation method ===
# First install the dependency package
|-
|
<big>'''Note that the following git clone--recursivee command will automatically download the source code of WiringopwiringOP, because WiringopwiringOP-Python depends on WiringopwiringOP. Please make sure that the download process does not report an error due to network problems.'''
'''If there is a problem with the download code from GitHub, you can use the WiringopwiringOP-Python source code that comes with the Linux image directly, and the storage location is:/usr/src/wiringOP-Python'''</big>
|}
{| class="wikitable" style="width:800px;"
</ol>
<ol start="5" style="list-style-type: decimal;">
<li><p>Test whether the WiringopwiringOP-Python is installed successfully under the Python command line is shown below: </p>
<ol style="list-style-type: lower-alpha;">
<li>First use the Python3 command to enter the command line mode of Python3</li>
</ol>
<ol start="3" style="list-style-type: lower-alpha;">
<li>Enter the following command to view the help information of WiringopwiringOP-Python, and press the '''q''' key to exit the interface of the help information</li>
{| class="wikitable" style="width:800px;"
|-
|-
|
<big>'''WiringopwiringOP-Python is the same as Wiringop. You wiringOP, you can also determine which GPIO pink can be determined pin to operate by specifying the WPI wPi number. Because , because there is no command to check the WPI wPi number in WiringopwiringOP-Python, so you can only check the board WPI wPi number and physical physical physics through the GPIO command in Wiringop. The corresponding relationship of the pinCorrespondence between pins.'''</big>
<div class="figure">
<li>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</li>
[[File:pi3b-img278.png|800px]]
</ol>
<ol start="6" style="list-style-type: decimal;">
<li><p>At this time, enter the '''panel address''' displayed above in the browser to open the login interface of the pagoda Linux panel, and then enter the '''username''' and '''password''' displayed in the corresponding position to log in to the Bt-Panel<br />
[[File:pi3b-img279.png|1200px]]</p></li>
<li><p>After successfully logging in to the pagoda, 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 Bt-Panel</p></li>
[[File:pi3b-img280.png|1200px]]
</ol>
<ol start="8" style="list-style-type: decimal;">
<li>After entering the Bt-Panel, you will first prompt that you need to bind the account of the Bt-Panel official website. If you do n't have an account, you can go to the pagoda's official website ('''https://www.bt.cn''') to register one.</li>
[[File:pi3b-img281.png|1200px]]
</ol>
<ol start="9" style="list-style-type: decimal;">
<li>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</li>
[[File:pi3b-img282.png|1200px]]
</ol>
<ol start="10" style="list-style-type: decimal;">
<li>Then select '''zh_CN.UTF-8 UTF-8''' in the pop-up interface (to move up and down through the upper and lower direction buttons on the keyboard, select it through the space key, and finally move the cursor to '''&lt;OK&gt;''' through the TAB key, then press the ENTER key )</li>
[[File:pi3b-img283.png|1200px]]
</ol>
<ol start="3" style="list-style-type: lower-alpha;">
<li>Then set the default '''locale''' as '''zh_CN.UTF-8'''</li>
[[File:pi3b-img284.png|1200px]]
</ol>
<ol start="4" style="list-style-type: lower-alpha;">
# The current active version of ROS 1 is as follows, the recommended version is '''Noetic Ninjemys'''
::[[File:pi3b-img342.png|800px]]
::[[File:pi3b-img343.png|800px]]
::{| class="wikitable" style="width:800px;"
# Then select '''Settings'''
::[[File:pi3b-img396.png]]
<ol start="3" style="list-style-type: decimal;">
<li>Then select '''Network &amp; internet'''</li></ol>
[[File:pi3b-img397.png]]
</ol>
<ol start="4" style="list-style-type: decimal;">
<li>Then select '''Hotspot &amp; tethering'''</li></ol>
[[File:pi3b-img404.png]]
</ol>
<ol start="5" style="list-style-type: decimal;">
<li>Then select '''Wi-Fi hotspot'''</li></ol>
[[File:pi3b-img405.png]]
</ol>
<ol start="6" style="list-style-type: decimal;">
<li>Then turn on the '''Wi-Fi hotspot''', 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 (<span style="color:blue">if you need to modify the name and password of the hotspot, you need to turn off the Wi-Fi first -Fi hotspot before modification)</lispan>)</olli>
[[File:pi3b-img406.png]]
</ol>
<ol start="7" style="list-style-type: decimal;">
<li>At this time, you can take out your mobile phone. If everything is normal, you can find the WIFI hotspot with the same name ('''here AndroidAP_6953''') displayed under the '''Hotspot name''' in the above picture in the WI-FI list searched by the mobile phone. Then you can click '''AndroidAP_6953''' to connect to the hotspot, and the password can be seen under the '''Hotspot password''' in the above picture</li></ol>
[[File:pi3b-img407.png]]
</ol>
<ol start="8" style="list-style-type: decimal;">
<li>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.</li></ol>
[[File:pi3b-img408.png]]
</ol>
<span id="bluetooth-test-method"></span>
<span id="bluetooth-test-method"></span>
== Bluetooth test method ==
# First click enter '''Setting'''
::[[File:pi3b-img396.png]]
<ol start="2" style="list-style-type: decimal;">
<li>Then select '''Connected devices'''</li></ol>
[[File:pi3b-img409.png]]
</ol>
<ol start="3" style="list-style-type: decimal;">
<li>Then click '''Pair new device''' to turn on Bluetooth and start scanning the surrounding Bluetooth devices</li></ol>
[[File:pi3b-img410.png]]
</ol>
<ol start="4" style="list-style-type: decimal;">
<li>The searched Bluetooth devices will be displayed under '''Available devices'''</li></ol>
[[File:pi3b-img411.png]]
</ol>
<ol start="5" style="list-style-type: decimal;">
<li>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</li></ol>
[[File:pi3b-img412.png]]
</ol>
<ol start="6" style="list-style-type: decimal;">
<li>The test here is the configuration process of the development board and the Bluetooth of the Android mobile phone. 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</li></ol>
[[File:pi3b-img413.png]]
</ol>
<ol start="7" style="list-style-type: decimal;">
<li>After the pairing is completed, you can see the paired Bluetooth device as shown in the figure below</li></ol>
[[File:pi3b-img414.png]]
</ol>
<ol start="8" style="list-style-type: decimal;">
<li>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.</li></ol>
[[File:pi3b-img415.png]]
</ol>
<ol start="9" style="list-style-type: decimal;">
<li>You can open the '''Download''' directory in the file manager to view the pictures received by the Android system Bluetooth of the development board</li></ol>
[[File:pi3b-img416.png]]
</ol>
<span id="how-to-use-raspberry-pi-5-inch-screen"></span>
<span id="how-to-use-raspberry-pi-5-inch-screen"></span>
== How to use Raspberry Pi 5-inch screen ==
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Please make sure that the image used is the following two versions of the image:'''
'''OrangePi3B_RK3566_Android11_lcd_v1.x.x.img'''
'''OrangePi3B_RK3566_Android11_spi-nvme_lcd_v1.x.x.img'''</big>|}
# The screen needs to be assembled first, please refer to [[\lOrange Pi 3B#Use of the Raspberry PI's 5-inch screen|'''the assembly method of the Raspberry Pi 5-inch screen''']]
# Connect the Type-C power supply to the board and power it on. After the system starts, you can see the screen display as shown in the figure below
::[[File:pi3b-img417.png]]
<span id="pin-interface-gpio-uart-spi-and-pwm-test"></span>
 
== 40pin interface GPIO, UART, SPI and PWM test ==
# First click on the wiringOP icon to open the wiringOP APP
::[[File:pi3b-img418.png]]
<ol start="2" style="list-style-type: decimal;">
<li>The main interface of wiringOP APP is displayed as shown in the figure below, and then click the '''GPIO_TEST''' button to open the GPIO test interface</li></ol>
[[File:pi3b-img419.png]]
</ol>
<ol start="3" style="list-style-type: decimal;">
<li>The GPIO test interface is shown in the figure below. The two rows of '''CheckBox''' buttons on the left are in one-to-one correspondence with the 40pin 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 wPi number, GPIO mode, and pin level can be obtained; when the '''BLINK ALL GPIO''' button is clicked, the program will control the 28 GPIO ports to continuously switch between high and low levels</li></ol>
[[File:pi3b-img420.png]]
</ol>
<ol start="4" style="list-style-type: decimal;">
<li>Then click the '''GPIO READALL''' button, the output information is as shown in the figure below:</li></ol>
[[File:pi3b-img421.png]]
</ol>
<ol start="5" style="list-style-type: decimal;">
<li>There are a total of 28 GPIO ports in the 40pins of the development board that can be used. The following uses pin 7—the corresponding GPIO is GPIO4_A4—the corresponding wPi 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</li></ol>
[[File:pi3b-img422.png]]
</ol>
<ol start="6" style="list-style-type: decimal;">
<li>Then click the '''GPIO READALL''' button, you can see that the current pin 7 mode is '''OUT''', and the pin level is high</li></ol>
[[File:pi3b-img423.png]]
</ol>
<ol start="7" style="list-style-type: decimal;">
<li>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.</li></ol>
[[File:pi3b-img424.png]]
</ol>
<ol start="8" style="list-style-type: decimal;">
<li>Then click the '''GPIO READALL''' button, you can see that the current pin 7 mode is OUT, and the pin level is low</li></ol>
[[File:pi3b-img425.png]]
</ol>
<span id="pin-uart-test-1"></span>
<span id="pin-uart-test-1"></span>
=== 40pin UART test ===
# UART7 and UART9 are enabled by default in Android. The position of the 40pin is shown in the figure below, and the corresponding device nodes are '''/dev/ttyS7''' and '''/dev/ttyS9''' respectively
::[[File:pi3b-img269.png]]
<ol start="2" style="list-style-type: decimal;">
<li>First click on the wiringOP icon to open the wiringOP APP</li></ol>
[[File:pi3b-img418.png]]
</ol>
<ol start="3" style="list-style-type: decimal;">
<li>The main interface of wiringOP APP is displayed as shown in the figure below, and then click the '''UART_TEST''' button to open the UART test interface</li></ol>
[[File:pi3b-img426.png]]
</ol>
<ol start="4" style="list-style-type: decimal;">
<li>The serial port test interface of the APP is shown in the figure below</li></ol>
[[File:pi3b-img427.png]]
</ol>
<ol start="5" style="list-style-type: decimal;">
<li>Take the test of '''UART7''' as an example below, select the '''/dev/ttyS7''' node in the selection box, enter the baud rate you want to set in the edit box, and then click the '''OPEN''' button to open the /dev/ttyS7 node. After the opening is successful, the '''OPEN''' button becomes unselectable, and the '''CLOSE''' button and '''SEND''' button become selectable</li></ol>
[[File:pi3b-img428.png]]
</ol>
<ol start="6" style="list-style-type: decimal;">
<li>Then use Dupont wire to short the RXD and TXD pins of uart7</li></ol>
[[File:pi3b-img429.png]]
</ol>
<ol start="7" style="list-style-type: decimal;">
<li>Then you can enter a character in the send edit box below, and click the '''SEND''' button to start sending</li></ol>
[[File:pi3b-img430.png]]
</ol>
<ol start="8" style="list-style-type: decimal;">
<li>If everything is normal, the received string will be displayed in the receiving box</li></ol>
[[File:pi3b-img431.png]]
</ol>
<span id="pin-spi-test-2"></span>
<span id="pin-spi-test-2"></span>
=== 40pin SPI test ===
# According to the schematic diagram of the 40pin interface, the spi available for Orange Pi 3B is spi3
::[[File:pi3b-img264.png]]
<ol start="2" style="list-style-type: decimal;">
<li>Here, the SPI interface is tested through the w25q64 module. First, the w25q64 device is connected to the SPI3 interface</li></ol>
[[File:pi3b-img432.png]]
</ol>
<ol start="3" style="list-style-type: decimal;">
<li>Then click the wiringOP icon to open the wiringOP APP</li></ol>
[[File:pi3b-img418.png]]
</ol>
<ol start="4" style="list-style-type: decimal;">
<li>The main interface of wiringOP APP is displayed as shown in the figure below, click the SPI_TEST button to open the SPI test interface</li></ol>
[[File:pi3b-img433.png]]
</ol>
<ol start="5" style="list-style-type: decimal;">
<li>Then click the '''OPEN''' button to initialize the SPI</li></ol>
[[File:pi3b-img434.png]]
</ol>
<ol start="6" style="list-style-type: decimal;">
<li>Then fill in the bytes that need to be sent, such as reading the ID information of w25q64, fill in the address 0x9f in data[0], and then click the '''TRANSFER''' button</li></ol>
[[File:pi3b-img435.png]]
</ol>
<ol start="7" style="list-style-type: decimal;">
<li>Finally, the APP will display the read ID information</li></ol>
[[File:pi3b-img436.png]]
</ol>
<ol start="8" style="list-style-type: decimal;">
<li>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)</li></ol>
[[File:pi3b-img437.png]]
</ol>
<span id="pin-pwm-test"></span>
<span id="pin-pwm-test"></span>
=== 40pin PWM test ===
# Android enables '''PWM11''' by default, and the corresponding pin is located at 40pin as shown in the figure below
::[[File:pi3b-img438.png]]
<ol start="2" style="list-style-type: decimal;">
<li>First click on the wiringOP icon to open the wiringOP APP</li></ol>
[[File:pi3b-img418.png]]
</ol>
<ol start="3" style="list-style-type: decimal;">
<li>Then click the '''PWM_TEST''' button on the main interface of wiringOP to enter the PWM test interface</li></ol>
[[File:pi3b-img439.png]]
</ol>
<ol start="4" style="list-style-type: decimal;">
<li>The base address corresponding to PWM11 is '''fe6f0030''', here pwmchip0 shows '''fdd70020.pwm''' on the right, then you need to click the drop-down option to select other pwmchips until '''febf0030.pwm''' is displayed on the right</li></ol>
[[File:pi3b-img440.png]]
</ol>
<ol start="5" style="list-style-type: decimal;">
<li>When the drop-down option selects '''pwmchip3''', the corresponding base address of PWM11 is '''fe6f0030''' on the right</li></ol>
[[File:pi3b-img441.png]]
</ol>
<ol start="6" style="list-style-type: decimal;">
<li>Then confirm the PWM channel, the default is channel 0, and confirm the PWM cycle, the default configuration is '''50000ns''', converted to PWM frequency is '''20KHz''', you can modify it yourself, click the '''EXPORT''' button to export '''PWM11'''</li></ol>
[[File:pi3b-img442.png]]
</ol>
<ol start="7" style="list-style-type: decimal;">
<li>Then drag the drag bar below to change the PWM duty cycle, and then check Enable to output the PWM waveform</li></ol>
[[File:pi3b-img443.png]]
</ol>
<ol start="8" style="list-style-type: decimal;">
<li>Then use an oscilloscope to measure the No. 32 pin in the 40pin of the development board, and you can see the following waveform</li></ol>
[[File:pi3b-img444.png]]
</ol>
<span id="how-to-use-adb"></span>
<span id="how-to-use-adb"></span>
== How to use ADB ==
=== Use network connection adb debugging ===
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Using the network adb does not require a data cable to connect the computer and the development board, but to communicate through the network, so first make sure that the wired or wireless network of the development board is connected, and then obtain the IP address of the development board, which will be used later.'''</big>|}
# Make sure that the '''service.adb.tcp.port''' of the Android system is set to port number 5555
::{| class="wikitable" style="width:800px;"
|-
|
console:/ # '''getprop | grep &quot;adb.tcp&quot;'''
[service.adb.tcp.port]: ['''5555''']
|}
<ol start="2" style="list-style-type: decimal;">
<li>If '''service.adb.tcp.port''' is not set, you can use the following command to set the port number of network adb</li></ol>
{| class="wikitable" style="width:800px;"
|-
|
console:/ # '''setprop service.adb.tcp.port 5555'''
console:/ # '''start adbd'''
|}</ol>
<ol start="3" style="list-style-type: decimal;">
<li>Install adb tool on Ubuntu PC</li></ol>
{| class="wikitable" style="width:800px;"
|-
|
test@test:~$ '''sudo apt update'''
test@test:~$ '''sudo apt install -y adb'''
|}</ol>
<ol start="4" style="list-style-type: decimal;">
<li>Then connect network adb on Ubuntu PC</li></ol>
{| class="wikitable" style="width:800px;"
|-
|
test@test:~$ '''adb connect 192.168.1.xxx''' '''(The IP address needs to be changed to the IP address of the development board)'''
<p>* daemon not running; starting now at tcp:5037</p>
<p>* daemon started successfully</p>
connected to 192.168.1.xxx:5555
 
test@test:~$ '''adb devices'''
192.168.1.xxx:5555 device
|}</ol>
<ol start="5" style="list-style-type: decimal;">
<li>Then you can log in to the android system through the adb shell on the Ubuntu PC</li></ol>
{| class="wikitable" style="width:800px;"
|-
|
test@test:~$ '''adb shell'''
console:/ #
|}</ol>
<span id="appendix"></span>
== User Manual Update History ==
{| class="wikitable" style="width:800px;text-align: center;"
|-
|'''Version'''|'''Date'''|'''Update Notes'''
|-
|v0.1|2023-07-19|initial version
|}
== Image Update History ==
{| class="wikitable" style="width:800px;"
|-
| style="text-align: center;" | '''Date'''| style="text-align: center;" | '''Update Notes'''
|-
| style="text-align: center;" | 2023-07-19| Orangepi3 b_1Orangepi3b_1.0.0_debian_bullseye_desktop_xfce_linux5.10.160.7z
Orange pi3b_1Orangepi3b_1.0.0_ubuntu_jammy_desktop_xfce_linux5.10.160.7z
Orange pi3b_1Orangepi3b_1.0.0_ubuntu_focal_desktop_xfce_linux5.10.160.7z
OrangePi3B_RK3566_Android11_v1.0.0.tar.gz
OrangePi3B_RK3566_Android11_spi-nvme_v1.0.0.tar.gz
O rangePi3B_RK3566_Android11_lcd_spiOrangePi3B_RK3566_Android11_lcd_spi-nvme_v1.0.0.tar.gz 
<p>* initial version</p>
|}

Navigation menu