<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.banana-pi.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Qubot</id>
		<title>Banana Pi Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.banana-pi.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Qubot"/>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/Special:Contributions/Qubot"/>
		<updated>2026-06-03T23:34:39Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-F3&amp;diff=17315</id>
		<title>Banana Pi BPI-F3</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-F3&amp;diff=17315"/>
				<updated>2024-10-16T02:18:28Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* Hardware Spec */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-F3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= BPI-F3 Introduction =&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-F3 is a industrial grade RISC-V development board, it design with SpacemiT K1 8 core RISC-V chip, CPU integrates 2.0 TOPs AI computing power. 2/4/8/16G DDR and 8/16/32/128G eMMC onboard.2x GbE Ethernet prot, 4x USB 3.0 and PCIe for M.2 interface, support HDMI and Dual MIPI-CSI Camera.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:banana_pi_bpi-f3_banner_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
== about SpacemiT K1 8 core RISC-V chip ==&lt;br /&gt;
&lt;br /&gt;
SpacemiT K1 is an octa-core 64-bit RISC-V AI CPU. Base on RISC-V open instruction set architecture,we are committed to create more energy efficient and more commonly used AI processor platform,promote global open source and open ecological computing power construction.&lt;br /&gt;
&lt;br /&gt;
SpacemiT K1 is mainly used for single board computer,network storage,cloud computer,smart robort,industrial control,edge computer,etc.&lt;br /&gt;
&lt;br /&gt;
[https://docs.banana-pi.org/en/BPI-F3/SpacemiT_K1 SpacemiT K1 8 core RISC-V chip Brief]&lt;br /&gt;
&lt;br /&gt;
[https://docs.banana-pi.org/en/BPI-F3/SpacemiT_K1_datasheet SpacemiT K1 8 core RISC-V chip datasheet]&lt;br /&gt;
&lt;br /&gt;
== Key Features==&lt;br /&gt;
&lt;br /&gt;
* 8 core RISC-V chip, CPU integrates 2.0 TOPs AI computing power&lt;br /&gt;
&lt;br /&gt;
* Single-core general computing power equivalent to 1.3 times Cortex-A55&lt;br /&gt;
&lt;br /&gt;
* Supports 32-bit LPDDR4/4X, with a maximum of 16GB of memory&lt;br /&gt;
&lt;br /&gt;
* 4K decoding and encoding&lt;br /&gt;
&lt;br /&gt;
* 5-lane PCIE2.1 expansion capability&lt;br /&gt;
&lt;br /&gt;
* 1x USB 3.0 + 2x USB 2.0 interfaces&lt;br /&gt;
&lt;br /&gt;
* 12x UART serial ports&lt;br /&gt;
&lt;br /&gt;
* Operating temperature range: -40°C to 85°C &lt;br /&gt;
&lt;br /&gt;
== Application direction==&lt;br /&gt;
&lt;br /&gt;
* NAS&lt;br /&gt;
* Laptop&lt;br /&gt;
* Intelligent robotics&lt;br /&gt;
* Industrial control&lt;br /&gt;
* AI edge computing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Getting Start==&lt;br /&gt;
&lt;br /&gt;
[https://docs.banana-pi.org/en/BPI-F3/GettingStarted_BPI-F3 Getting Started BPI-F3]&lt;br /&gt;
&lt;br /&gt;
= Hardware=&lt;br /&gt;
&lt;br /&gt;
== Hardware Interface==&lt;br /&gt;
&lt;br /&gt;
[[File:bananna_pi_bpi-f3_interface.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi-f3_sch.png]]&lt;br /&gt;
&lt;br /&gt;
== Hardware Spec==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;2&amp;quot;| '''HardWare Specification of Banana Pi BPI-F3 RISC-V SBC'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU                               ||  SpacemiT K1 8 core RISC-V chip&lt;br /&gt;
|-&lt;br /&gt;
| AI                                ||  2.0Tops from RlSC-V Core                                                                            &lt;br /&gt;
|-&lt;br /&gt;
| Memory                            || 2/4/8/16 GB LPDDR4 (Supports up to 16G LPDDR4)                                                                                 &lt;br /&gt;
|-&lt;br /&gt;
| Storage                           || 8/16/32/128G eMMC flash(Optional 4M SPI NOR,32M SPI NAD)                                                                              &lt;br /&gt;
|-&lt;br /&gt;
| SD card                           || MicroSD card slot (Greater than 256MB)                                                                           &lt;br /&gt;
|-&lt;br /&gt;
| Wireless                          || 2.4G/5G WiFi and Bluetooth 4.2                                                               &lt;br /&gt;
|-&lt;br /&gt;
| Ethernet                          || 2x GbE Ethernet port(supports PoE with add-on PoE HAT)                                       &lt;br /&gt;
|-&lt;br /&gt;
| HDMI                              || 1x full-size HDMI digital Audio output(HDMI1.4,up to 1080p@60fps ) &lt;br /&gt;
|-&lt;br /&gt;
| Audio                             || Speaker，Mic， Earphone   &lt;br /&gt;
|-&lt;br /&gt;
| Camera                             || MIPI-CSI, Dual-shot support                                                                                   &lt;br /&gt;
|-&lt;br /&gt;
| USB                               || 4x USB 3.0 Type-A HOST, 1x USB 2.0 Type-C OTG    &lt;br /&gt;
|-&lt;br /&gt;
| PCIe                              || PCIE2.1 2lane * 2.&lt;br /&gt;
|-&lt;br /&gt;
| || PCIEB 2lane connect M.2 KEY M( Support JMB582 expansion card to SATA )&lt;br /&gt;
|-&lt;br /&gt;
| || PCIEC 1lane connect MINI PCIE&lt;br /&gt;
|-&lt;br /&gt;
| GPIO                              || 26-pin header &lt;br /&gt;
|-&lt;br /&gt;
| Buttons                           || Reset, Power and Burn &lt;br /&gt;
|-&lt;br /&gt;
| LED                               || Power Status                                                            &lt;br /&gt;
|-&lt;br /&gt;
| Power                             || DC in and TYPE-C in                                                                    &lt;br /&gt;
|-&lt;br /&gt;
| Size                              || 148x100 mm                                                                                     &lt;br /&gt;
|-&lt;br /&gt;
| Weight                           || 200g                                            &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GPIO Pin Define==&lt;br /&gt;
&lt;br /&gt;
=== 26 PIN GPIO===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''40-pin header define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! PIN&lt;br /&gt;
! Function&lt;br /&gt;
! Function&lt;br /&gt;
! PIN&lt;br /&gt;
|-&lt;br /&gt;
|1 &lt;br /&gt;
|VCC3V3_SYS &lt;br /&gt;
|VCC5V0_OUT &lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|3 &lt;br /&gt;
|AP_I2C4_SDA_3V3 &lt;br /&gt;
|VCC5V0_OUT &lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|5 &lt;br /&gt;
|AP_I2C4_SCL_3V3 &lt;br /&gt;
|GND &lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
|7 &lt;br /&gt;
|GPIO_70_3V3 &lt;br /&gt;
|R_UART0_TXD_3V3 &lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
|9 &lt;br /&gt;
|GND &lt;br /&gt;
|R_UART0_RXD_3V3 &lt;br /&gt;
|10&lt;br /&gt;
|-&lt;br /&gt;
|11 &lt;br /&gt;
|GPIO_71_3V3 &lt;br /&gt;
|GPIO_74_3V3 &lt;br /&gt;
|12&lt;br /&gt;
|-&lt;br /&gt;
|13 &lt;br /&gt;
|GPIO_72_3V3 &lt;br /&gt;
|GND &lt;br /&gt;
|14&lt;br /&gt;
|-&lt;br /&gt;
|15 &lt;br /&gt;
|GPIO_73_3V3 &lt;br /&gt;
|GPIO_91_3V3 &lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
|17 &lt;br /&gt;
|VCC3V3_SYS &lt;br /&gt;
|GPIO_92_3V3 &lt;br /&gt;
|18&lt;br /&gt;
|-&lt;br /&gt;
|19 &lt;br /&gt;
|SPI3_MOSI_3V3 &lt;br /&gt;
|GND &lt;br /&gt;
|20&lt;br /&gt;
|-&lt;br /&gt;
|21 &lt;br /&gt;
|SPI3_MISO_3V3 &lt;br /&gt;
|GPIO_49_3V3 &lt;br /&gt;
|22&lt;br /&gt;
|-&lt;br /&gt;
|23 &lt;br /&gt;
|SPI3_SCLK_3V3 &lt;br /&gt;
|SPI3_CS_3V3 &lt;br /&gt;
|24&lt;br /&gt;
|-&lt;br /&gt;
|25 &lt;br /&gt;
|GND &lt;br /&gt;
|GPIO_50_3V3 &lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MIPI DSI screen connection socket===&lt;br /&gt;
Holding a 1080P screen (JL-M101N013-P12WU-M402632), the screen socket model is FH35C-31S-0.3SHW (50)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! PIN&lt;br /&gt;
! Function&lt;br /&gt;
! Function&lt;br /&gt;
! PIN&lt;br /&gt;
|-&lt;br /&gt;
|1 &lt;br /&gt;
|MIPI_DSI1_LANE0_DN &lt;br /&gt;
|MIPI_DSI1_LANE0_DP &lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|3 &lt;br /&gt;
|GND &lt;br /&gt;
|MIPI_DSI1_LANE1_DN &lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|5 &lt;br /&gt;
|MIPI_DSI1_LANE1_DP &lt;br /&gt;
|GND &lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
|7 &lt;br /&gt;
|MIPI_DSI1_CLK_N &lt;br /&gt;
|MIPI_DSI1_CLK_P &lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
|9 &lt;br /&gt;
|GND &lt;br /&gt;
|MIPI_DSI1_LANE2_DN &lt;br /&gt;
|10&lt;br /&gt;
|-&lt;br /&gt;
|11 &lt;br /&gt;
|MIPI_DSI1_LANE2_DP &lt;br /&gt;
|GND &lt;br /&gt;
|12&lt;br /&gt;
|-&lt;br /&gt;
|13 &lt;br /&gt;
|MIPI_DSI1_LANE3_DN &lt;br /&gt;
|MIPI_DSI1_LANE3_DP &lt;br /&gt;
|14&lt;br /&gt;
|-&lt;br /&gt;
|15 &lt;br /&gt;
|GND &lt;br /&gt;
|MIPI_LCD_ADC_1V8 &lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
|17 &lt;br /&gt;
|LCD_PWR_EN_1V8 &lt;br /&gt;
|LCD_RST_1V8 &lt;br /&gt;
|18&lt;br /&gt;
|-&lt;br /&gt;
|19 &lt;br /&gt;
|LCD_BL_EN_1V8 &lt;br /&gt;
|LCD_BL_PWM_1V8 &lt;br /&gt;
|20&lt;br /&gt;
|-&lt;br /&gt;
|21 &lt;br /&gt;
|GND &lt;br /&gt;
|TP_INT_1V8 &lt;br /&gt;
|22&lt;br /&gt;
|-&lt;br /&gt;
|23 &lt;br /&gt;
|TP_RST_1V8 &lt;br /&gt;
|AP_I2C6_SCL &lt;br /&gt;
|24&lt;br /&gt;
|-&lt;br /&gt;
|25 &lt;br /&gt;
|AP_I2C6_SDA &lt;br /&gt;
|LCD_VCC18 &lt;br /&gt;
|26&lt;br /&gt;
|-&lt;br /&gt;
|27 &lt;br /&gt;
|GND &lt;br /&gt;
|GND &lt;br /&gt;
|28&lt;br /&gt;
|-&lt;br /&gt;
|29 &lt;br /&gt;
|LCD_VCC5V0 &lt;br /&gt;
|LCD_VCC5V0 &lt;br /&gt;
|30&lt;br /&gt;
|-&lt;br /&gt;
|31 &lt;br /&gt;
|LCD_VCC5V0&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Camera module base===&lt;br /&gt;
&lt;br /&gt;
By default, it supports a 16M camera module, which can be modified&lt;br /&gt;
After blocking the configuration, hold the 8M camera module and adopt a uniform spacing&lt;br /&gt;
0.4mm 30 pin socket (model QG1330421Y-M08-7H).&lt;br /&gt;
&lt;br /&gt;
'''16M camera：'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! PIN&lt;br /&gt;
! Function&lt;br /&gt;
! Function&lt;br /&gt;
! PIN&lt;br /&gt;
|-&lt;br /&gt;
|1 &lt;br /&gt;
|GND &lt;br /&gt;
|GND &lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|3 &lt;br /&gt;
|GND &lt;br /&gt;
|FS_DUALCAM &lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|5 &lt;br /&gt;
|CAM_MCLK0 &lt;br /&gt;
|GND &lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
|7 &lt;br /&gt;
|GND &lt;br /&gt;
|CAMERA0_RST &lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
|9 &lt;br /&gt;
|MIPI_CSI1_DN0 &lt;br /&gt;
|CAMERA0_PDN &lt;br /&gt;
|10&lt;br /&gt;
|-&lt;br /&gt;
|11 &lt;br /&gt;
|MIPI_CSI1_DP0 &lt;br /&gt;
|CAM_I2C0_SDA &lt;br /&gt;
|12&lt;br /&gt;
|-&lt;br /&gt;
|13 &lt;br /&gt;
|GND &lt;br /&gt;
|CAM_I2C0_SCL &lt;br /&gt;
|14&lt;br /&gt;
|-&lt;br /&gt;
|15 &lt;br /&gt;
|MIPI_CSI1_CLKN &lt;br /&gt;
|CSI_DVDD12 &lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
|17 &lt;br /&gt;
|MIPI_CSI1_CLKP &lt;br /&gt;
|CSI_VCCIO18 &lt;br /&gt;
|18&lt;br /&gt;
|-&lt;br /&gt;
|19 &lt;br /&gt;
|GND &lt;br /&gt;
|GND &lt;br /&gt;
|20&lt;br /&gt;
|-&lt;br /&gt;
|21 &lt;br /&gt;
|MIPI_CSI1_DN1 &lt;br /&gt;
|CSI_AVDD28 &lt;br /&gt;
|22&lt;br /&gt;
|-&lt;br /&gt;
|23 &lt;br /&gt;
|MIPI_CSI1_DP1 &lt;br /&gt;
|CSI_AFVCC28 &lt;br /&gt;
|24&lt;br /&gt;
|-&lt;br /&gt;
|25 &lt;br /&gt;
|GND &lt;br /&gt;
|GND &lt;br /&gt;
|26&lt;br /&gt;
|-&lt;br /&gt;
|27 &lt;br /&gt;
|MIPI_CSI1_DN2 &lt;br /&gt;
|MIPI_CSI1_DP3 &lt;br /&gt;
|28&lt;br /&gt;
|-&lt;br /&gt;
|29 &lt;br /&gt;
|MIPI_CSI1_DP2 &lt;br /&gt;
|MIPI_CSI1_DN3 &lt;br /&gt;
|30&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''8M camera:'''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! PIN&lt;br /&gt;
! Function&lt;br /&gt;
! Function&lt;br /&gt;
! PIN&lt;br /&gt;
|-&lt;br /&gt;
|1 &lt;br /&gt;
|MIPI_CSI3_DP3 &lt;br /&gt;
|CAM_MCLK1 &lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|3 &lt;br /&gt;
|MIPI_CSI3_DN3 &lt;br /&gt;
|CAMERA1_RST &lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|5 &lt;br /&gt;
|GND &lt;br /&gt;
|CAMERA1_PDN &lt;br /&gt;
|6&lt;br /&gt;
|-&lt;br /&gt;
|7 &lt;br /&gt;
|MIPI_CSI3_DP2 &lt;br /&gt;
|GND &lt;br /&gt;
|8&lt;br /&gt;
|-&lt;br /&gt;
|9 &lt;br /&gt;
|MIPI_CSI3_DN2 &lt;br /&gt;
|CAM_I2C1_SDA &lt;br /&gt;
|10&lt;br /&gt;
|-&lt;br /&gt;
|11 &lt;br /&gt;
|GND &lt;br /&gt;
|CAM_I2C1_SCL &lt;br /&gt;
|12&lt;br /&gt;
|-&lt;br /&gt;
|13 &lt;br /&gt;
|MIPI_CSI3_DP1 &lt;br /&gt;
|GND &lt;br /&gt;
|14&lt;br /&gt;
|-&lt;br /&gt;
|15 &lt;br /&gt;
|MIPI_CSI3_DN1&lt;br /&gt;
|CSI_VCCIO18 &lt;br /&gt;
|16&lt;br /&gt;
|-&lt;br /&gt;
|17 &lt;br /&gt;
|GND &lt;br /&gt;
|CSI_AVDD28 &lt;br /&gt;
|18&lt;br /&gt;
|-&lt;br /&gt;
|19 &lt;br /&gt;
|MIPI_CSI3_CLKP &lt;br /&gt;
|CSI_AFVCC28 &lt;br /&gt;
|20&lt;br /&gt;
|-&lt;br /&gt;
|21 &lt;br /&gt;
|MIPI_CSI3_CLKN &lt;br /&gt;
|CSI_DVDD12 &lt;br /&gt;
|22&lt;br /&gt;
|-&lt;br /&gt;
|23 &lt;br /&gt;
|GND &lt;br /&gt;
|FLASH_LED0+ &lt;br /&gt;
|24&lt;br /&gt;
|-&lt;br /&gt;
|25 &lt;br /&gt;
|MIPI_CSI3_DP0 &lt;br /&gt;
|FLASH_LED1+ &lt;br /&gt;
|26&lt;br /&gt;
|-&lt;br /&gt;
|27 &lt;br /&gt;
|MIPI_CSI3_DN0 &lt;br /&gt;
|GND &lt;br /&gt;
|28&lt;br /&gt;
|-&lt;br /&gt;
|29 &lt;br /&gt;
|GND &lt;br /&gt;
|GND &lt;br /&gt;
|30&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== POE support==&lt;br /&gt;
We design PoE function for BPI-F3 ,so easy to add PoE module to support PoE function.After welding the POE module, it is powered by the RJ45-2 interface.&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-F3 POE power supply.jpg]]&lt;br /&gt;
&lt;br /&gt;
== 4G module==&lt;br /&gt;
&lt;br /&gt;
After connecting to the MINI PCIE interface and inserting the SIM card, it can be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Development=&lt;br /&gt;
&lt;br /&gt;
== Source Code==&lt;br /&gt;
&lt;br /&gt;
=== Linux BSP Source Code===&lt;br /&gt;
&lt;br /&gt;
* pi-opensbi: https://github.com/BPI-SINOVOIP/pi-opensbi/tree/v1.3-k1&lt;br /&gt;
&lt;br /&gt;
* u-boot: https://github.com/BPI-SINOVOIP/pi-u-boot/tree/v2022.10-k1&lt;br /&gt;
&lt;br /&gt;
* kernel: https://github.com/BPI-SINOVOIP/pi-linux/tree/linux-6.1.15-k1&lt;br /&gt;
&lt;br /&gt;
* Armbian: https://github.com/BPI-SINOVOIP/armbian-build/tree/v24.04.30&lt;br /&gt;
&lt;br /&gt;
== Resources==&lt;br /&gt;
*BPI-F3 schematic:&lt;br /&gt;
:Baidu cloud: https://pan.baidu.com/s/1CMp7kVKa5aeSdgB3Ri1PJw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google drive: https://drive.google.com/file/d/19iLJ5xnCB_oK8VeQjkPGjzAn39WYyylv/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
* BPI-F3 DXF file:&lt;br /&gt;
:Baidu cloud: https://pan.baidu.com/s/1igwBjsLC54KbGH_y54tZQA?pwd=8888 (pincode:8888) &lt;br /&gt;
:Google drive:https://drive.google.com/file/d/1Y29kMCUNRPPsj4ELMnQTls74owiXcPKx/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
* BPI-F3 run Ubuntu Linux test 8 Core CPU performance and AI function: https://www.youtube.com/watch?v=Ym-VcJgaGIY&lt;br /&gt;
&lt;br /&gt;
* BPI-F3 SpacemiT K1 run OpenWRT: https://www.youtube.com/watch?v=ejV5KFww8Xo&lt;br /&gt;
&lt;br /&gt;
* BPI-F3 run visual AI+ large models simultaneously: https://www.youtube.com/watch?v=Kn7GYiOxato&lt;br /&gt;
&lt;br /&gt;
= System Image=&lt;br /&gt;
== Tools==&lt;br /&gt;
* Windows PC: https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FTools%2Fimage_download_tools%2Ftitantools_for_windows-1.0.35-beta.zip&lt;br /&gt;
&lt;br /&gt;
* Linux PC: https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FTools%2Fimage_download_tools%2Ftitantools_for_linux-1.0.35-beta.zip&lt;br /&gt;
&lt;br /&gt;
== Linux==&lt;br /&gt;
&lt;br /&gt;
===Bianbu===&lt;br /&gt;
* Bianbu-23.10-k1-v1.0rc3-release-20240525131412.img&lt;br /&gt;
&lt;br /&gt;
:Baidu cloud: https://pan.baidu.com/s/1H0ww8qVIgHRuuA43JszF6g?pwd=8888 (pincode: 8888)&lt;br /&gt;
:Google drive: https://drive.google.com/drive/folders/1eEfMkzNzHyDwz3_Ox8i2acvU4W5CowiW?usp=sharing&lt;br /&gt;
:Account/Password: root/bianbu&lt;br /&gt;
&lt;br /&gt;
* Bianbu-23.10-nas-k1-v1.0rc1-release-20240429192450.img&lt;br /&gt;
:Baidu cloud: https://pan.baidu.com/s/15owwUEjIU_i26cI1iigAew?pwd=8888 (pincode: 8888)&lt;br /&gt;
:Google drive: https://drive.google.com/drive/folders/1LQoioz6N5YQpSOxY47OmetnPX4yggtT0?usp=sharing&lt;br /&gt;
:Account/Password: root/bianbu&lt;br /&gt;
&lt;br /&gt;
* Bianbu-23.10-desktop-k1-v1.0rc1-release-20240429194149.img&lt;br /&gt;
:Baidu cloud: https://pan.baidu.com/s/1zvFkX92f5gpZdKjP-vGJvA?pwd=8888 (pincode: 8888)&lt;br /&gt;
:Google drive: https://drive.google.com/drive/folders/1kCHiMwjnhvZaRBy5vkj6UlPeAlpRQ14P?usp=sharing&lt;br /&gt;
:Account/Password: root/bianbu&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
* 2024-06-14-Armbian-bpi-SpacemiT_24.5.0-trunk_Bananapif3_sid_legacy_6.1.15_xfce_desktop.img&lt;br /&gt;
:Baidu cloud: https://pan.baidu.com/s/19ehNuer2pMatZTt6PIs0kg?pwd=8888 (pincode: 8888)&lt;br /&gt;
:Google drive: https://drive.google.com/file/d/1BvfYttXv9BGazzbyekMzI0zp7SGxHb2M/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
* 2024-06-14-Armbian-bpi-SpacemiT_24.5.0-trunk_Bananapif3_sid_legacy_6.1.15.img&lt;br /&gt;
:Baidu cloud: https://pan.baidu.com/s/1HsroEhKmeFCQU_1lKZxL1A?pwd=8888 (pincode: 8888)&lt;br /&gt;
:Google drive: https://drive.google.com/file/d/1gyUtVZL4S--KCQoXxXDlC-IqbvAn1mSR/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=== Armbian ===&lt;br /&gt;
* 2024-06-11-Armbian-bpi-SpacemiT_24.5.0-trunk_Bananapif3_noble_legacy_6.1.15_xfce_desktop.img&lt;br /&gt;
&lt;br /&gt;
:Baidu cloud:  https://pan.baidu.com/s/1ebteWqsmkImaLGQ2mJkJnA?pwd=8888 (pincode: 8888)&lt;br /&gt;
&lt;br /&gt;
:Google drive: https://drive.google.com/file/d/16zKsqISzMm5Xwx7ssJHynZe2PZFQ21-i/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=== Fedora ===&lt;br /&gt;
&lt;br /&gt;
* Fedora.riscv64-40-20240429.n.0.raw.zst-bpi-f3-3356MB.img&lt;br /&gt;
&lt;br /&gt;
:Baidu cloud: https://pan.baidu.com/s/1EFcLInWYxLi032gmhueiWw?pwd=8888 (pincode: 8888)&lt;br /&gt;
&lt;br /&gt;
:Google drive： https://drive.google.com/file/d/1v-nHZA3AyFLaLRs6bt22XjIh7OVczI9d/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
= Easy to buy=&lt;br /&gt;
*SINOVOIP Aliexpress shop: https://www.aliexpress.com/item/3256806735430070.html&lt;br /&gt;
*BPI Aliexpress shop: https://www.aliexpress.com/item/3256806735645440.html&lt;br /&gt;
*Taobao Shop:https://item.taobao.com/item.htm?id=789483353026&amp;amp;spm=a213gs.v2success.0.0.220c4831vddhXz&lt;br /&gt;
*OEM&amp;amp;ODM, please contact: judyhuang@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16986</id>
		<title>Getting Started with BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16986"/>
				<updated>2024-01-26T06:30:38Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* HDMI LCD */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
===Prepare===&lt;br /&gt;
&lt;br /&gt;
:1. Download latest [[Banana_Pi_BPI-M4_Berry#System_image | Android image]].&lt;br /&gt;
&lt;br /&gt;
:2. Download and Install [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FTools%2Fimage_download_tools%2Fphoenixsuit_V1.1.0_20150325.rar Allwinner Image Download Tools], PhoenixSuit is for window. &lt;br /&gt;
&lt;br /&gt;
:3. Type-C cable, 5V power supply.&lt;br /&gt;
&lt;br /&gt;
===Install Image with USB tool===&lt;br /&gt;
&lt;br /&gt;
:1. Open PhoenixSuit, click the Firmware icon to switching to firmware download panel, then click Image button and choose the Android Image file.&lt;br /&gt;
&lt;br /&gt;
:[[File:m4-berry_android_1.jpg]]&lt;br /&gt;
:[[File:m4-berry_android_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
:2. Press and hold the SW2 button on M4 Berry while connecting to the computer using type-c, popup a warning dialog.Press Yes.&lt;br /&gt;
&lt;br /&gt;
:[[File:m4-berry_android_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. Download&lt;br /&gt;
&lt;br /&gt;
:[[File:m4-berry_android_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:4. Download finish&lt;br /&gt;
&lt;br /&gt;
:[[File:m4-berry_android_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Build Android Source Code===&lt;br /&gt;
&lt;br /&gt;
:Please read the source code [https://github.com/BPI-SINOVOIP/BPI-H618-Android12/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
===Custom IR===&lt;br /&gt;
:Wiki images support NEC protocol default.&lt;br /&gt;
&lt;br /&gt;
:1. Execute getevent -l | grep MSC_SCAN in the serial port or adb shell, then press the corresponding button on the remote control to obtain the device ID and scancode.&lt;br /&gt;
&lt;br /&gt;
:[[File:m4b_custom_ir_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:The MSC_SCAN data is 32 bits.&lt;br /&gt;
:Bits [31:24] represent the key press status, where 0 indicates release, and 1 indicates press.&lt;br /&gt;
:Bits [23:8] represent the device ID. Use this ID to generate a keylayout file named customer_ir_xxxx.kl. For example, in this case, it would be customer_ir_fe01.kl.&lt;br /&gt;
:Bits [7:0] represent the scancode.&lt;br /&gt;
&lt;br /&gt;
:2. Based on the results of step one, create a new file named customer_ir_xxxx.kl with the following content:&lt;br /&gt;
&lt;br /&gt;
:[[File:m4b_custom_ir_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
:Map the scancodes in the second column to Android keycodes.&lt;br /&gt;
&lt;br /&gt;
:3. Use the adb command to push customer_ir_xxxx.kl to the system.&lt;br /&gt;
&lt;br /&gt;
  $ adb root&lt;br /&gt;
  $ adb remount&lt;br /&gt;
  $ adb push customer_ir_xxxx.kl  /system/usr/keylayout/&lt;br /&gt;
  $ adb reboot&lt;br /&gt;
&lt;br /&gt;
:For source code porting, put the customer_ir_xxxx.kl to vendor/w/common/hardware/input/multi_ir/keylayout/ directory and build the source code.&lt;br /&gt;
&lt;br /&gt;
===Custom Logo===&lt;br /&gt;
&lt;br /&gt;
:1. Boot logo&lt;br /&gt;
&lt;br /&gt;
:Rename the logo file to bootlogo.bmp and put it in longan/device/config/chips/h618/boot-resource/boot-resource/ directory.&lt;br /&gt;
&lt;br /&gt;
:2. Bootanimation logo&lt;br /&gt;
&lt;br /&gt;
:Put bootanimation.zip to device/softwinner/apollo/common/media/bootanimation/ directory.&lt;br /&gt;
&lt;br /&gt;
:3. Launcher logo for Box variant image&lt;br /&gt;
&lt;br /&gt;
:Create a 270x110, 32 bit depth, png image and rename it to aw_logo.png, put it in vendor/aw/common/package/TVLauncher/res/drawable-xhdpi/ directory.&lt;br /&gt;
&lt;br /&gt;
:Then build the source code and flash the image to your board.&lt;br /&gt;
&lt;br /&gt;
===Install Play Store===&lt;br /&gt;
&lt;br /&gt;
:Build the android source code with OpenGApps google play include.&lt;br /&gt;
&lt;br /&gt;
:1. Apply this patch to source code.&lt;br /&gt;
  diff --git a/device/softwinner/apollo/common/opengapps/config.mk &lt;br /&gt;
  b/device/softwinner/apollo/common/opengapps/config.mk&lt;br /&gt;
  index 4c2a7f3..c7ff30e 100644&lt;br /&gt;
  --- a/device/softwinner/apollo/common/opengapps/config.mk&lt;br /&gt;
  +++ b/device/softwinner/apollo/common/opengapps/config.mk&lt;br /&gt;
  @@ -1,4 +1,4 @@&lt;br /&gt;
  -BOARD_BUILD_OPENGAPPS := false&lt;br /&gt;
  +BOARD_BUILD_OPENGAPPS := true&lt;br /&gt;
 &lt;br /&gt;
   ifeq ($(BOARD_BUILD_OPENGAPPS), true)&lt;br /&gt;
   GAPPS_VARIANT := pico&lt;br /&gt;
&lt;br /&gt;
:3. Create /vendor/opengapps folder&lt;br /&gt;
&lt;br /&gt;
:4. Download [https://github.com/opengapps/aosp_build OpenGApps aosp_build] project to /vendor/opengapps/build&lt;br /&gt;
&lt;br /&gt;
:5. Create /vendor/opengapps/sources folder, download [https://gitlab.opengapps.org/opengapps OpenGApps projects] to /vendor/opengapps/sources/&lt;br /&gt;
&lt;br /&gt;
:6. Build the source code and flash image to your board.&lt;br /&gt;
&lt;br /&gt;
===Switch Audio Output===&lt;br /&gt;
&lt;br /&gt;
: The default audio output channel is hdmi, switch it to jack output in Settings-&amp;gt;Sound-&amp;gt;Audio output channel&lt;br /&gt;
&lt;br /&gt;
:[[File:m4b_audio_switch.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare===&lt;br /&gt;
:1. Linux image support SDcard or EMMC bootup, and will boot from the SD card first.&lt;br /&gt;
&lt;br /&gt;
:2. It’s recommended to use A1 rated cards, 8GB at least.&lt;br /&gt;
&lt;br /&gt;
:3. Make sure bootable EMMC is formatted if you want bootup from SDcard.&lt;br /&gt;
&lt;br /&gt;
:4. Make sure SDcard is formatted without Linux image flashed if you want bootup from EMMC and use Sdcard as storage.&lt;br /&gt;
&lt;br /&gt;
:5. Download latest [[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian images]], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
:6. Default login: pi/bananapi or root/bananapi&lt;br /&gt;
&lt;br /&gt;
:7. The wiki guide is only for [[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian images]].&lt;br /&gt;
&lt;br /&gt;
:8. USB-Serial (3.3V). Baud: 115200.&lt;br /&gt;
&lt;br /&gt;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with Balena Etcher on Windows, Linux and MacOS.&lt;br /&gt;
:[https://balena.io/etcher Balena Etcher] is an opensource GUI flash tool by Balena, Flash OS images to SDcard or USB drive.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
===Install Image to eMMC===&lt;br /&gt;
&lt;br /&gt;
1. Make sure that the Linux image has been burned into an SD card and started normally.&lt;br /&gt;
&lt;br /&gt;
2. Enter the following command in the terminal:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. By default, select the first item continuously and press the Enter key to install the Linux system image on the eMMC.&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. The last step is to shut down the computer. At this time, disconnect the power supply, remove the SD card, and power on again to boot from eMMC.&lt;br /&gt;
&lt;br /&gt;
===Erase eMMC===&lt;br /&gt;
&lt;br /&gt;
1. Make sure the Linux image has been burned into an SD card and insert the SD card. By default it will boot from the SD card.&lt;br /&gt;
&lt;br /&gt;
2. Enter the command lsblk in the terminal to list the block device information in the system, such as hard disks, partitions, disks, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0 179:0 0 7.4G 0 disk&lt;br /&gt;
└─mmcblk0p1 179:1 0 7.2G 0 part /var/log.hdd&lt;br /&gt;
                                        /&lt;br /&gt;
mmcblk1 179:32 0 7.3G 0 disk&lt;br /&gt;
└─mmcblk1p1 179:33 0 7.3G 0 part&lt;br /&gt;
mmcblk1boot0 179:64 0 4M 1 disk&lt;br /&gt;
mmcblk1boot1 179:96 0 4M 1 disk&lt;br /&gt;
zram0 252:0 0 993.2M 0 disk [SWAP]&lt;br /&gt;
zram1 252:1 0 50M 0 disk /var/log&lt;br /&gt;
zram2 252:2 0 0B 0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0 is the SD card and mmcblk1 is the eMMC. Enter the following command in the terminal to erase the eMMC. This process takes several minutes and is irreversible. Be careful to back up important data.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ubuntu Desktop===&lt;br /&gt;
&lt;br /&gt;
:1. Using the Ubuntu desktop version system image, you can get a graphical operation interface.&lt;br /&gt;
:2. You need to prepare a monitor with an HDMI interface and an HDMI cable.&lt;br /&gt;
:3. Use an HDMI cable to connect the monitor and BPI-M4 Berry, switch the monitor input interface to the corresponding HDMI interface, power on, and wait a moment to see the desktop.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Debug UART===&lt;br /&gt;
:1. Prepare a 3.3v USB to TTL module.&lt;br /&gt;
:2. Use the USB to TTL module to connect the PC USB port and the Debug UART port on the board.&lt;br /&gt;
:3. Open a serial terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:4. Taking mobaxterm as an example, after setting the serial port number and 115200 baud rate, you can open the BPI-M4 Berry UART terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
:1. Prepare a network cable and a router.&lt;br /&gt;
:2. Use a network cable to connect the LAN port of the router to the BPI-M4 Berry, and also connect the PC to another LAN port.&lt;br /&gt;
:3. Check the IP address of BPI-M4 Berry on the router management interface, or use the following command on the BPI-M4 Berry UART terminal to check the IP address.&lt;br /&gt;
   ifconfig&lt;br /&gt;
&lt;br /&gt;
   eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
         inet 192.168.3.10 netmask 255.255.255.0 broadcast 192.168.3.255&lt;br /&gt;
         inet6 fe80::3e1f:688f:81ab:d8b7 prefixlen 64 scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
         ether 02:00:54:a0:d6:a6 txqueuelen 1000 (Ethernet)&lt;br /&gt;
         RX packets 553 bytes 92549 (92.5 KB)&lt;br /&gt;
         RX errors 0 dropped 0 overruns 0 frame 0&lt;br /&gt;
         TX packets 329 bytes 26023 (26.0 KB)&lt;br /&gt;
         TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0&lt;br /&gt;
         device interrupt 42&lt;br /&gt;
:4. Open an SSH terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:5. Taking mobaxterm as an example, fill in the obtained IP address, such as 192.168.3.10 above, in the IP address column and 22 in the Port port.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6. Open the SSH terminal and enter the login username/password: pi/bananapi or root/bananapi. There will be no prompt when entering the password. Please enter it normally and press Enter when finished.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
===NoMachine Remote Desktop===&lt;br /&gt;
:1. Make sure BPI-M4 Berry is connected to the Internet and use the following command to download the nomachine DEB installation package in the system.&lt;br /&gt;
&lt;br /&gt;
   wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2. Or open [https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64 download page] in a PC browser, download the DEB installation package, and then copy it to BPI-M4 Berry user directory through SSH or USB disk.&lt;br /&gt;
&lt;br /&gt;
:3. After the download is completed, install it through the following command. Note that the file name is based on the actual downloaded file name.&lt;br /&gt;
&lt;br /&gt;
   sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4. PC side also needs to download and install NoMachine. [https://download.nomachine.com NoMachine download page] Select the installation package suitable for the PC operating system, download it locally and complete the installation.&lt;br /&gt;
&lt;br /&gt;
:5. Pay attention to keeping the PC and BPI-M4 Berry in the same LAN. You can try SSH connection first to ensure normal communication within the LAN.&lt;br /&gt;
&lt;br /&gt;
:6. Open NoMachine on the PC, click the Add button, enter the IP address of BPI-M4 Berry in the Host bar in the window after the jump, and then click the Add button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7. Click the recognized port icon, enter the username/password in the new window that pops up, and then click the OK button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8. After completing the subsequent settings, you can see the desktop.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9. If no device is connected to the HDMI interface, the NoMachine remote desktop will display a black screen. It is recommended to keep the HDMI connection or connect an HDMI decoy device.&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
: Use the nmcli command to scan WiFi hotspots, connect to hotspots, and create AP hotspots.&lt;br /&gt;
&lt;br /&gt;
   nmcli device #List devices&lt;br /&gt;
   nmcli device wifi list # List available wifi access points, list can be omitted&lt;br /&gt;
   nmcli device wifi connect [SSID] password [PASSWORD] # Connect to the hotspot mySSID. After the connection is successful, the configuration file will be automatically generated. If you want to connect again in the future, you can use the nmcli connection up [SSID] command.&lt;br /&gt;
   nmcli device disconnect [device name] # Disconnect wifi, use the wifi device name displayed in the nmcli device command&lt;br /&gt;
   nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # Create AP hotspot&lt;br /&gt;
&lt;br /&gt;
   nmcli connection show #List network connection configuration&lt;br /&gt;
   nmcli connection down [NAME] # Deactivate a connection&lt;br /&gt;
   nmcli connection up [NAME] # Activate a connection&lt;br /&gt;
   nmcli connection delete [SSID] #Delete a configuration and no longer save information and automatically connect&lt;br /&gt;
&lt;br /&gt;
   nmcli radio wifi off # Turn off wifi&lt;br /&gt;
   nmcli radio wifi on # Turn on wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli command reference document]&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli command reference examples]&lt;br /&gt;
&lt;br /&gt;
===Set static IP, DNS===&lt;br /&gt;
:1. To set a static IP, you need to maintain the connection first. If you want to set an Ethernet static IP, you must first maintain the Ethernet connection; if you want to set a wireless network static IP, you must first maintain a connection to a WIFI.&lt;br /&gt;
:2. If the upper-level router has assigned the IP address you want to set to other devices, please change it to an idle IP, or ask other devices to give up the IP.&lt;br /&gt;
:3. Use the nmcli connection show command to display all connections, for example:&lt;br /&gt;
   pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
   NAME UUID TYPE DEVICE&lt;br /&gt;
   TP-LINK_5G_7747 e4a49726-adf1-44d7-a621-0e3af96cc390 wifi wlx2cc3e6acd5d7&lt;br /&gt;
   Wired connection 1 612eda94-55dc-3c85-b05e-f16c41775b4e ethernet --&lt;br /&gt;
:4. Use the nmcli connection show [NAME] command to display all the properties of a specific connection, such as:&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747 #If you want to see Ethernet, change to Wired connection 1&lt;br /&gt;
&lt;br /&gt;
   #Only list three common items&lt;br /&gt;
   ipv4.dns: 192.168.3.1 #The default is the gateway address&lt;br /&gt;
   ipv4.addresses: 192.168.3.10/24 #The default is the IP address assigned by the router DHCP&lt;br /&gt;
   ipv4.gateway: 192.168.3.1 #Gateway address, the default is the IP address of the router&lt;br /&gt;
&lt;br /&gt;
:5.Set static IP:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.Set DNS:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.Reset:&lt;br /&gt;
   reboot&lt;br /&gt;
:8. After restarting, check whether the modification is successful:&lt;br /&gt;
   ifconfig&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747&lt;br /&gt;
&lt;br /&gt;
===Network time synchronization===&lt;br /&gt;
:Chrony is an open source free Network Time Protocol NTP client and server software. It allows the computer to keep the system clock synchronized with the clock server (NTP), thus allowing your computer to maintain accurate time. Chrony can also be used as a server software to provide time synchronization services for other computers.&lt;br /&gt;
&lt;br /&gt;
   timedatectl set-ntp false #Disable NTP-based network time synchronization&lt;br /&gt;
&lt;br /&gt;
   sudo apt install chrony #Install chrony&lt;br /&gt;
   systemctl start chrony #Start chrony&lt;br /&gt;
   systemctl enable chrony&lt;br /&gt;
   systemctl status chrony&lt;br /&gt;
   systemctl restart chrony #Restart service&lt;br /&gt;
&lt;br /&gt;
   timedatectl status #View time synchronization status&lt;br /&gt;
   timedatectl list-timezones #View time zone list&lt;br /&gt;
   timedatectl set-timezone Asia/Shanghai #Modify time zone&lt;br /&gt;
   timedatectl set-ntp true #Enable NTP network time synchronization&lt;br /&gt;
&lt;br /&gt;
   date #View time&lt;br /&gt;
   sudo hwclock -r #View hardware clock&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony reference documentation]&lt;br /&gt;
&lt;br /&gt;
===View hardware temperature===&lt;br /&gt;
Enter the following command to view the temperature data returned by the sensor built into the chip on the BPI-M4 Berry board.&lt;br /&gt;
   sensors&lt;br /&gt;
&lt;br /&gt;
===Modify HDMI output resolution===&lt;br /&gt;
:When using the Ubuntu desktop operating system, you can find the Displays column in Settings and modify the resolution.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Use USB disk===&lt;br /&gt;
:1. Prepare a USB disk that has been partitioned normally and insert it into the USB interface of BPI-M4 Berry.&lt;br /&gt;
:2. In the Ubuntu desktop version, you can see that the USB disk has been recognized and can be opened in the file manager, or partition management can be performed through the GParted tool.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. In the terminal, mount the USB disk to the local directory:&lt;br /&gt;
   mkdir mnt #Create a separate directory in the ~/user directory for mounting for easy management&lt;br /&gt;
   cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #List partitions starting with sd&lt;br /&gt;
   sudo mount /dev/sda1 ~/mnt/ #Mount /dev/sda1 to ~/mnt/&lt;br /&gt;
   ls ~/mnt/ #After mounting, you can list the files in the USB disk&lt;br /&gt;
   sudo umount -v /dev/sda1 #umount, then you can remove the USB disk&lt;br /&gt;
&lt;br /&gt;
===Use Audio Devices===&lt;br /&gt;
: Prepare an audio file and copy it to the BPI-M4 Berry Ubuntu desktop system through a USB flash drive or SSH.&lt;br /&gt;
====HDMI audio====&lt;br /&gt;
:1. Prepare a monitor with HDMI audio input function, turn on the relevant functions in the monitor settings, and use an HDMI cable to connect the monitor.&lt;br /&gt;
:2. Set the output device to HDMI Audio in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.Play audio.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm audio jack====&lt;br /&gt;
:1. Prepare a headset or other audio device that uses a 3.5mm plug, insert the plug into the 3.5mm jack of BPI-M4 Berry.&lt;br /&gt;
:2. Set the output device to Audio Codec in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3. Play audio.&lt;br /&gt;
&lt;br /&gt;
====Terminal command to play audio files====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aplay -l #List devices&lt;br /&gt;
aplay -D hw:0,0 [path] #Play the audio file of the specified path&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Use Bluetooth===&lt;br /&gt;
:1. Open settings in the Ubuntu desktop and connect a Bluetooth device, such as a Bluetooth mouse or keyboard, in the Bluetooth bar.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2. The method to connect the Bluetooth device through the command line in the terminal is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #Open the Bluetooth device management tool&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #Start the Bluetooth function, power off to turn it off&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #Allow this device to be discovered&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #Allow device pairing&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #Start scanning&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #The MAC address and device name of a Bluetooth mouse&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #Pair the MAC address of the Bluetooth device you want to connect to&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #pairing successfully&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #Exit the Bluetooth device management tool&lt;br /&gt;
pi@bpi-m4berry:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth reference document]&lt;br /&gt;
&lt;br /&gt;
===Use IR Receiver===&lt;br /&gt;
:1. You need to prepare an infrared remote control using NEC format.&lt;br /&gt;
:2. Enter the following command in the terminal to start receiving infrared signals.&lt;br /&gt;
   sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
   Old keytable cleared&lt;br /&gt;
   Protocols changed to nec&lt;br /&gt;
   Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
   258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_SYN(0x00).&lt;br /&gt;
   260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_SYN(0x00).&lt;br /&gt;
   260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
   260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.719568: event type EV_SYN(0x00).&lt;br /&gt;
   273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_SYN(0x00).&lt;br /&gt;
   273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
   273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
For other commands and specific application methods, please see [https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable reference document]&lt;br /&gt;
&lt;br /&gt;
===Transfer files===&lt;br /&gt;
====scp====&lt;br /&gt;
scp (secure copy) command in Linux system is used to copy file(s) between servers in a secure way. &lt;br /&gt;
&lt;br /&gt;
The SCP command or secure copy allows the secure transferring of files between the local host and the remote host or between two remote hosts. &lt;br /&gt;
&lt;br /&gt;
It uses the same authentication and security as it is used in the Secure Shell (SSH) protocol.&lt;br /&gt;
&lt;br /&gt;
You can copy files from a Windows terminal to a Linux system on the same LAN. Just make sure the Open SSH client is turned on and can be viewed in Settings &amp;gt; Applications &amp;gt; Optional Features.&lt;br /&gt;
&lt;br /&gt;
If you want to copy files from Windows systems to Linux systems, you also need to enable the Open SSH server.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
The scp command format is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optionals] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optionals]&amp;lt;/nowiki&amp;gt; is an optional parameter, such as -r, which can be used to copy the entire directory recursively.&lt;br /&gt;
&lt;br /&gt;
::2.file_source The file or directory to be copied.&lt;br /&gt;
&lt;br /&gt;
::3.file_target will copy the past path and rename it if a specific file name is entered at the end.&lt;br /&gt;
&lt;br /&gt;
Take copying local files from a Windows system to a Linux system as an example. In the Windows terminal, enter:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also copy files in the Linux system to the local computer in the Windows terminal:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Where pi@192.168.3.12 is the user name in the Linux system and the IP address of the BPI-M4 Berry in the LAN.&lt;br /&gt;
:: Where &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; is the file path in the Linux system.&lt;br /&gt;
:: Where &amp;quot;D:\temp\temp_4&amp;quot; is the path in Windows system.&lt;br /&gt;
&lt;br /&gt;
[https://www.geeksforgeeks.org/scp-command-in-linux-with-examples/ scp reference document]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
Files can be managed through a graphical interface using mobaxterm or other similar software.&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm download]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux preview version]&lt;br /&gt;
&lt;br /&gt;
As shown in the figure below, after establishing an SSH connection in mobaxterm, a file management window will appear on the left side of the interface, which supports copying and pasting by dragging and dropping files.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;br /&gt;
&lt;br /&gt;
===40 pin interface GPIO, I2C, UART, SPI, and PWM testing===&lt;br /&gt;
====GPIO====&lt;br /&gt;
Control the GPIO port to light up the LED light.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Set the high and low levels of GPIO'''&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_gpio.jpg]]&lt;br /&gt;
&lt;br /&gt;
The following is a demonstration using 7 pin.&lt;br /&gt;
&lt;br /&gt;
Insert the LED light and you can see that it is not lit up.&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
 gpio mode 2 out&lt;br /&gt;
:to set it to output mode.&lt;br /&gt;
&lt;br /&gt;
: 2.Execute&lt;br /&gt;
 gpio write 2 1&lt;br /&gt;
:You can see that the LED light has been turned on.&lt;br /&gt;
:[[File:M4_Berry_gpio_led_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Execute&lt;br /&gt;
 gpio write 2 0&lt;br /&gt;
:You can see that the LED light has been turned off.&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Set pull-up and pull-down resistors'''&lt;br /&gt;
: 1.Firstly, it is necessary to set the GPIO port to input mode&lt;br /&gt;
 gpio mode 2 in&lt;br /&gt;
&lt;br /&gt;
: 2.Then set the GPIO port as an pull-up resistor&lt;br /&gt;
 gpio mode 2 up&lt;br /&gt;
:The LED light is lit up again&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Finally, set the GPIO port to dropdown mode&lt;br /&gt;
 gpio mode 2 down&lt;br /&gt;
:The LED light goes out again&lt;br /&gt;
:[[File:M4_Berry_gpio_led_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====I2C====&lt;br /&gt;
&lt;br /&gt;
According to the schematic diagram, the available i2cs are i2c3 and i2c4&lt;br /&gt;
:[[File:M4_Berry_gpio_i2c.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.Select &amp;quot;pg-i2c3&amp;quot;and&amp;quot;pg-i2c4&amp;quot;&lt;br /&gt;
:[[File:M4_Berry_bananapi_config_i2c.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are i2c-3 and i2c-4 nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/i2c-3&lt;br /&gt;
 /dev/i2c-3&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/i2c-4&lt;br /&gt;
 /dev/i2c-4&lt;br /&gt;
&lt;br /&gt;
: 8. Execute&lt;br /&gt;
&lt;br /&gt;
 cd /usr/src/wiringPi/examples/&lt;br /&gt;
 gcc ./oled_demo.c -o oled -lwiringPi&lt;br /&gt;
&lt;br /&gt;
: 9.Connect the i2c device to the pin of i2c3. Execute&lt;br /&gt;
&lt;br /&gt;
 sudo ./oled /dev/i2c-3&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_i2c_3_led.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 10.Connect the i2c device to the pin of i2c4. Execute&lt;br /&gt;
&lt;br /&gt;
 sudo ./oled /dev/i2c-4&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_i2c_4_led.jpg]]&lt;br /&gt;
&lt;br /&gt;
====UART====&lt;br /&gt;
By reviewing the schematic, it can be found that the available uart are uart1 and uart5.&lt;br /&gt;
:[[File:M4_Berry_gpio_uart.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Uart1 and Uart5 is closed by default and needs to be opened. Execute&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.If you want to use uart1,select&amp;quot;pg-uart1&amp;quot;.If you want to use uart5,select&amp;quot;ph-uart5&amp;quot;&lt;br /&gt;
:[[File:M4_Berry_bananapi_config_uart.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are ttyS5 nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/ttyS5&lt;br /&gt;
 /dev/ttyS5&lt;br /&gt;
&lt;br /&gt;
: 8:Short circuit uart1 pin or uart5 and execute&lt;br /&gt;
 gpio serial /dev/ttyS1&lt;br /&gt;
:[[File:M4_Berry_gpio_uart1.jpg]]&lt;br /&gt;
:[[File:M4_Berry_gpio_uart5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SPI====&lt;br /&gt;
By reviewing the schematic, it can be found that the available spi is spi1.&lt;br /&gt;
:[[File:M4 Berry-sch-gpio-spi.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.Select &amp;quot;spi1-cs1-spidev&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are SPI nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/spidev1.1&lt;br /&gt;
 /dev/spidev1.1&lt;br /&gt;
&lt;br /&gt;
: 8.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo spidev_test -v -D /dev/spidev1.1&lt;br /&gt;
&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:It can be seen that TX and RX are different. So, we need to short-circuit MOSI and MISO and execute the command again.&lt;br /&gt;
&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====PWM====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HDMI LCD===&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Bananapi M4 Berry Tested HDMI LCD'''&lt;br /&gt;
|-&lt;br /&gt;
|panel || Test Video&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/4inch-hdmi-lcd-c.htm Waveshare 4inch 720x720] || https://youtu.be/CRcjx6_29rA&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/5inch-hdmi-amoled.htm Waveshare 5inch 960x544] || https://youtu.be/0wZ3lWQQTkQ&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/5.5inch-1440x2560-lcd.htm Waveshare 5.5inch 1440x2560] || https://youtu.be/z9gTHa3i8Ag&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/8inch-1536x2048-LCD.htm Waveshare 8inch 1536x2048] || https://youtu.be/Qjwo4vVBQmo&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/8.8inch-Side-Monitor.htm Waveshare 8.8inch 480x1920] || https://youtu.be/SP9-HGrY6-M&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/11.9inch-HDMI-LCD.htm Waveshare 11.9inch 320x1480] || https://youtu.be/WA1yBGcYZds&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/12.3inch-hdmi-lcd.htm Waveshare 12.3inch 1920x720] || https://youtu.be/OJfqtHlgDvk&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16985</id>
		<title>Getting Started with BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16985"/>
				<updated>2024-01-26T06:21:19Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* HDMI LCD */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
===Prepare===&lt;br /&gt;
&lt;br /&gt;
:1. Download latest [[Banana_Pi_BPI-M4_Berry#System_image | Android image]].&lt;br /&gt;
&lt;br /&gt;
:2. Download and Install [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FTools%2Fimage_download_tools%2Fphoenixsuit_V1.1.0_20150325.rar Allwinner Image Download Tools], PhoenixSuit is for window. &lt;br /&gt;
&lt;br /&gt;
:3. Type-C cable, 5V power supply.&lt;br /&gt;
&lt;br /&gt;
===Install Image with USB tool===&lt;br /&gt;
&lt;br /&gt;
:1. Open PhoenixSuit, click the Firmware icon to switching to firmware download panel, then click Image button and choose the Android Image file.&lt;br /&gt;
&lt;br /&gt;
:[[File:m4-berry_android_1.jpg]]&lt;br /&gt;
:[[File:m4-berry_android_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
:2. Press and hold the SW2 button on M4 Berry while connecting to the computer using type-c, popup a warning dialog.Press Yes.&lt;br /&gt;
&lt;br /&gt;
:[[File:m4-berry_android_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. Download&lt;br /&gt;
&lt;br /&gt;
:[[File:m4-berry_android_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:4. Download finish&lt;br /&gt;
&lt;br /&gt;
:[[File:m4-berry_android_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Build Android Source Code===&lt;br /&gt;
&lt;br /&gt;
:Please read the source code [https://github.com/BPI-SINOVOIP/BPI-H618-Android12/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
===Custom IR===&lt;br /&gt;
:Wiki images support NEC protocol default.&lt;br /&gt;
&lt;br /&gt;
:1. Execute getevent -l | grep MSC_SCAN in the serial port or adb shell, then press the corresponding button on the remote control to obtain the device ID and scancode.&lt;br /&gt;
&lt;br /&gt;
:[[File:m4b_custom_ir_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:The MSC_SCAN data is 32 bits.&lt;br /&gt;
:Bits [31:24] represent the key press status, where 0 indicates release, and 1 indicates press.&lt;br /&gt;
:Bits [23:8] represent the device ID. Use this ID to generate a keylayout file named customer_ir_xxxx.kl. For example, in this case, it would be customer_ir_fe01.kl.&lt;br /&gt;
:Bits [7:0] represent the scancode.&lt;br /&gt;
&lt;br /&gt;
:2. Based on the results of step one, create a new file named customer_ir_xxxx.kl with the following content:&lt;br /&gt;
&lt;br /&gt;
:[[File:m4b_custom_ir_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
:Map the scancodes in the second column to Android keycodes.&lt;br /&gt;
&lt;br /&gt;
:3. Use the adb command to push customer_ir_xxxx.kl to the system.&lt;br /&gt;
&lt;br /&gt;
  $ adb root&lt;br /&gt;
  $ adb remount&lt;br /&gt;
  $ adb push customer_ir_xxxx.kl  /system/usr/keylayout/&lt;br /&gt;
  $ adb reboot&lt;br /&gt;
&lt;br /&gt;
:For source code porting, put the customer_ir_xxxx.kl to vendor/w/common/hardware/input/multi_ir/keylayout/ directory and build the source code.&lt;br /&gt;
&lt;br /&gt;
===Custom Logo===&lt;br /&gt;
&lt;br /&gt;
:1. Boot logo&lt;br /&gt;
&lt;br /&gt;
:Rename the logo file to bootlogo.bmp and put it in longan/device/config/chips/h618/boot-resource/boot-resource/ directory.&lt;br /&gt;
&lt;br /&gt;
:2. Bootanimation logo&lt;br /&gt;
&lt;br /&gt;
:Put bootanimation.zip to device/softwinner/apollo/common/media/bootanimation/ directory.&lt;br /&gt;
&lt;br /&gt;
:3. Launcher logo for Box variant image&lt;br /&gt;
&lt;br /&gt;
:Create a 270x110, 32 bit depth, png image and rename it to aw_logo.png, put it in vendor/aw/common/package/TVLauncher/res/drawable-xhdpi/ directory.&lt;br /&gt;
&lt;br /&gt;
:Then build the source code and flash the image to your board.&lt;br /&gt;
&lt;br /&gt;
===Install Play Store===&lt;br /&gt;
&lt;br /&gt;
:Build the android source code with OpenGApps google play include.&lt;br /&gt;
&lt;br /&gt;
:1. Apply this patch to source code.&lt;br /&gt;
  diff --git a/device/softwinner/apollo/common/opengapps/config.mk &lt;br /&gt;
  b/device/softwinner/apollo/common/opengapps/config.mk&lt;br /&gt;
  index 4c2a7f3..c7ff30e 100644&lt;br /&gt;
  --- a/device/softwinner/apollo/common/opengapps/config.mk&lt;br /&gt;
  +++ b/device/softwinner/apollo/common/opengapps/config.mk&lt;br /&gt;
  @@ -1,4 +1,4 @@&lt;br /&gt;
  -BOARD_BUILD_OPENGAPPS := false&lt;br /&gt;
  +BOARD_BUILD_OPENGAPPS := true&lt;br /&gt;
 &lt;br /&gt;
   ifeq ($(BOARD_BUILD_OPENGAPPS), true)&lt;br /&gt;
   GAPPS_VARIANT := pico&lt;br /&gt;
&lt;br /&gt;
:3. Create /vendor/opengapps folder&lt;br /&gt;
&lt;br /&gt;
:4. Download [https://github.com/opengapps/aosp_build OpenGApps aosp_build] project to /vendor/opengapps/build&lt;br /&gt;
&lt;br /&gt;
:5. Create /vendor/opengapps/sources folder, download [https://gitlab.opengapps.org/opengapps OpenGApps projects] to /vendor/opengapps/sources/&lt;br /&gt;
&lt;br /&gt;
:6. Build the source code and flash image to your board.&lt;br /&gt;
&lt;br /&gt;
===Switch Audio Output===&lt;br /&gt;
&lt;br /&gt;
: The default audio output channel is hdmi, switch it to jack output in Settings-&amp;gt;Sound-&amp;gt;Audio output channel&lt;br /&gt;
&lt;br /&gt;
:[[File:m4b_audio_switch.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare===&lt;br /&gt;
:1. Linux image support SDcard or EMMC bootup, and will boot from the SD card first.&lt;br /&gt;
&lt;br /&gt;
:2. It’s recommended to use A1 rated cards, 8GB at least.&lt;br /&gt;
&lt;br /&gt;
:3. Make sure bootable EMMC is formatted if you want bootup from SDcard.&lt;br /&gt;
&lt;br /&gt;
:4. Make sure SDcard is formatted without Linux image flashed if you want bootup from EMMC and use Sdcard as storage.&lt;br /&gt;
&lt;br /&gt;
:5. Download latest [[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian images]], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
:6. Default login: pi/bananapi or root/bananapi&lt;br /&gt;
&lt;br /&gt;
:7. The wiki guide is only for [[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian images]].&lt;br /&gt;
&lt;br /&gt;
:8. USB-Serial (3.3V). Baud: 115200.&lt;br /&gt;
&lt;br /&gt;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with Balena Etcher on Windows, Linux and MacOS.&lt;br /&gt;
:[https://balena.io/etcher Balena Etcher] is an opensource GUI flash tool by Balena, Flash OS images to SDcard or USB drive.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
===Install Image to eMMC===&lt;br /&gt;
&lt;br /&gt;
1. Make sure that the Linux image has been burned into an SD card and started normally.&lt;br /&gt;
&lt;br /&gt;
2. Enter the following command in the terminal:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. By default, select the first item continuously and press the Enter key to install the Linux system image on the eMMC.&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. The last step is to shut down the computer. At this time, disconnect the power supply, remove the SD card, and power on again to boot from eMMC.&lt;br /&gt;
&lt;br /&gt;
===Erase eMMC===&lt;br /&gt;
&lt;br /&gt;
1. Make sure the Linux image has been burned into an SD card and insert the SD card. By default it will boot from the SD card.&lt;br /&gt;
&lt;br /&gt;
2. Enter the command lsblk in the terminal to list the block device information in the system, such as hard disks, partitions, disks, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0 179:0 0 7.4G 0 disk&lt;br /&gt;
└─mmcblk0p1 179:1 0 7.2G 0 part /var/log.hdd&lt;br /&gt;
                                        /&lt;br /&gt;
mmcblk1 179:32 0 7.3G 0 disk&lt;br /&gt;
└─mmcblk1p1 179:33 0 7.3G 0 part&lt;br /&gt;
mmcblk1boot0 179:64 0 4M 1 disk&lt;br /&gt;
mmcblk1boot1 179:96 0 4M 1 disk&lt;br /&gt;
zram0 252:0 0 993.2M 0 disk [SWAP]&lt;br /&gt;
zram1 252:1 0 50M 0 disk /var/log&lt;br /&gt;
zram2 252:2 0 0B 0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0 is the SD card and mmcblk1 is the eMMC. Enter the following command in the terminal to erase the eMMC. This process takes several minutes and is irreversible. Be careful to back up important data.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ubuntu Desktop===&lt;br /&gt;
&lt;br /&gt;
:1. Using the Ubuntu desktop version system image, you can get a graphical operation interface.&lt;br /&gt;
:2. You need to prepare a monitor with an HDMI interface and an HDMI cable.&lt;br /&gt;
:3. Use an HDMI cable to connect the monitor and BPI-M4 Berry, switch the monitor input interface to the corresponding HDMI interface, power on, and wait a moment to see the desktop.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Debug UART===&lt;br /&gt;
:1. Prepare a 3.3v USB to TTL module.&lt;br /&gt;
:2. Use the USB to TTL module to connect the PC USB port and the Debug UART port on the board.&lt;br /&gt;
:3. Open a serial terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:4. Taking mobaxterm as an example, after setting the serial port number and 115200 baud rate, you can open the BPI-M4 Berry UART terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
:1. Prepare a network cable and a router.&lt;br /&gt;
:2. Use a network cable to connect the LAN port of the router to the BPI-M4 Berry, and also connect the PC to another LAN port.&lt;br /&gt;
:3. Check the IP address of BPI-M4 Berry on the router management interface, or use the following command on the BPI-M4 Berry UART terminal to check the IP address.&lt;br /&gt;
   ifconfig&lt;br /&gt;
&lt;br /&gt;
   eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
         inet 192.168.3.10 netmask 255.255.255.0 broadcast 192.168.3.255&lt;br /&gt;
         inet6 fe80::3e1f:688f:81ab:d8b7 prefixlen 64 scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
         ether 02:00:54:a0:d6:a6 txqueuelen 1000 (Ethernet)&lt;br /&gt;
         RX packets 553 bytes 92549 (92.5 KB)&lt;br /&gt;
         RX errors 0 dropped 0 overruns 0 frame 0&lt;br /&gt;
         TX packets 329 bytes 26023 (26.0 KB)&lt;br /&gt;
         TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0&lt;br /&gt;
         device interrupt 42&lt;br /&gt;
:4. Open an SSH terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:5. Taking mobaxterm as an example, fill in the obtained IP address, such as 192.168.3.10 above, in the IP address column and 22 in the Port port.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6. Open the SSH terminal and enter the login username/password: pi/bananapi or root/bananapi. There will be no prompt when entering the password. Please enter it normally and press Enter when finished.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
===NoMachine Remote Desktop===&lt;br /&gt;
:1. Make sure BPI-M4 Berry is connected to the Internet and use the following command to download the nomachine DEB installation package in the system.&lt;br /&gt;
&lt;br /&gt;
   wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2. Or open [https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64 download page] in a PC browser, download the DEB installation package, and then copy it to BPI-M4 Berry user directory through SSH or USB disk.&lt;br /&gt;
&lt;br /&gt;
:3. After the download is completed, install it through the following command. Note that the file name is based on the actual downloaded file name.&lt;br /&gt;
&lt;br /&gt;
   sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4. PC side also needs to download and install NoMachine. [https://download.nomachine.com NoMachine download page] Select the installation package suitable for the PC operating system, download it locally and complete the installation.&lt;br /&gt;
&lt;br /&gt;
:5. Pay attention to keeping the PC and BPI-M4 Berry in the same LAN. You can try SSH connection first to ensure normal communication within the LAN.&lt;br /&gt;
&lt;br /&gt;
:6. Open NoMachine on the PC, click the Add button, enter the IP address of BPI-M4 Berry in the Host bar in the window after the jump, and then click the Add button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7. Click the recognized port icon, enter the username/password in the new window that pops up, and then click the OK button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8. After completing the subsequent settings, you can see the desktop.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9. If no device is connected to the HDMI interface, the NoMachine remote desktop will display a black screen. It is recommended to keep the HDMI connection or connect an HDMI decoy device.&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
: Use the nmcli command to scan WiFi hotspots, connect to hotspots, and create AP hotspots.&lt;br /&gt;
&lt;br /&gt;
   nmcli device #List devices&lt;br /&gt;
   nmcli device wifi list # List available wifi access points, list can be omitted&lt;br /&gt;
   nmcli device wifi connect [SSID] password [PASSWORD] # Connect to the hotspot mySSID. After the connection is successful, the configuration file will be automatically generated. If you want to connect again in the future, you can use the nmcli connection up [SSID] command.&lt;br /&gt;
   nmcli device disconnect [device name] # Disconnect wifi, use the wifi device name displayed in the nmcli device command&lt;br /&gt;
   nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # Create AP hotspot&lt;br /&gt;
&lt;br /&gt;
   nmcli connection show #List network connection configuration&lt;br /&gt;
   nmcli connection down [NAME] # Deactivate a connection&lt;br /&gt;
   nmcli connection up [NAME] # Activate a connection&lt;br /&gt;
   nmcli connection delete [SSID] #Delete a configuration and no longer save information and automatically connect&lt;br /&gt;
&lt;br /&gt;
   nmcli radio wifi off # Turn off wifi&lt;br /&gt;
   nmcli radio wifi on # Turn on wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli command reference document]&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli command reference examples]&lt;br /&gt;
&lt;br /&gt;
===Set static IP, DNS===&lt;br /&gt;
:1. To set a static IP, you need to maintain the connection first. If you want to set an Ethernet static IP, you must first maintain the Ethernet connection; if you want to set a wireless network static IP, you must first maintain a connection to a WIFI.&lt;br /&gt;
:2. If the upper-level router has assigned the IP address you want to set to other devices, please change it to an idle IP, or ask other devices to give up the IP.&lt;br /&gt;
:3. Use the nmcli connection show command to display all connections, for example:&lt;br /&gt;
   pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
   NAME UUID TYPE DEVICE&lt;br /&gt;
   TP-LINK_5G_7747 e4a49726-adf1-44d7-a621-0e3af96cc390 wifi wlx2cc3e6acd5d7&lt;br /&gt;
   Wired connection 1 612eda94-55dc-3c85-b05e-f16c41775b4e ethernet --&lt;br /&gt;
:4. Use the nmcli connection show [NAME] command to display all the properties of a specific connection, such as:&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747 #If you want to see Ethernet, change to Wired connection 1&lt;br /&gt;
&lt;br /&gt;
   #Only list three common items&lt;br /&gt;
   ipv4.dns: 192.168.3.1 #The default is the gateway address&lt;br /&gt;
   ipv4.addresses: 192.168.3.10/24 #The default is the IP address assigned by the router DHCP&lt;br /&gt;
   ipv4.gateway: 192.168.3.1 #Gateway address, the default is the IP address of the router&lt;br /&gt;
&lt;br /&gt;
:5.Set static IP:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.Set DNS:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.Reset:&lt;br /&gt;
   reboot&lt;br /&gt;
:8. After restarting, check whether the modification is successful:&lt;br /&gt;
   ifconfig&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747&lt;br /&gt;
&lt;br /&gt;
===Network time synchronization===&lt;br /&gt;
:Chrony is an open source free Network Time Protocol NTP client and server software. It allows the computer to keep the system clock synchronized with the clock server (NTP), thus allowing your computer to maintain accurate time. Chrony can also be used as a server software to provide time synchronization services for other computers.&lt;br /&gt;
&lt;br /&gt;
   timedatectl set-ntp false #Disable NTP-based network time synchronization&lt;br /&gt;
&lt;br /&gt;
   sudo apt install chrony #Install chrony&lt;br /&gt;
   systemctl start chrony #Start chrony&lt;br /&gt;
   systemctl enable chrony&lt;br /&gt;
   systemctl status chrony&lt;br /&gt;
   systemctl restart chrony #Restart service&lt;br /&gt;
&lt;br /&gt;
   timedatectl status #View time synchronization status&lt;br /&gt;
   timedatectl list-timezones #View time zone list&lt;br /&gt;
   timedatectl set-timezone Asia/Shanghai #Modify time zone&lt;br /&gt;
   timedatectl set-ntp true #Enable NTP network time synchronization&lt;br /&gt;
&lt;br /&gt;
   date #View time&lt;br /&gt;
   sudo hwclock -r #View hardware clock&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony reference documentation]&lt;br /&gt;
&lt;br /&gt;
===View hardware temperature===&lt;br /&gt;
Enter the following command to view the temperature data returned by the sensor built into the chip on the BPI-M4 Berry board.&lt;br /&gt;
   sensors&lt;br /&gt;
&lt;br /&gt;
===Modify HDMI output resolution===&lt;br /&gt;
:When using the Ubuntu desktop operating system, you can find the Displays column in Settings and modify the resolution.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Use USB disk===&lt;br /&gt;
:1. Prepare a USB disk that has been partitioned normally and insert it into the USB interface of BPI-M4 Berry.&lt;br /&gt;
:2. In the Ubuntu desktop version, you can see that the USB disk has been recognized and can be opened in the file manager, or partition management can be performed through the GParted tool.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. In the terminal, mount the USB disk to the local directory:&lt;br /&gt;
   mkdir mnt #Create a separate directory in the ~/user directory for mounting for easy management&lt;br /&gt;
   cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #List partitions starting with sd&lt;br /&gt;
   sudo mount /dev/sda1 ~/mnt/ #Mount /dev/sda1 to ~/mnt/&lt;br /&gt;
   ls ~/mnt/ #After mounting, you can list the files in the USB disk&lt;br /&gt;
   sudo umount -v /dev/sda1 #umount, then you can remove the USB disk&lt;br /&gt;
&lt;br /&gt;
===Use Audio Devices===&lt;br /&gt;
: Prepare an audio file and copy it to the BPI-M4 Berry Ubuntu desktop system through a USB flash drive or SSH.&lt;br /&gt;
====HDMI audio====&lt;br /&gt;
:1. Prepare a monitor with HDMI audio input function, turn on the relevant functions in the monitor settings, and use an HDMI cable to connect the monitor.&lt;br /&gt;
:2. Set the output device to HDMI Audio in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.Play audio.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm audio jack====&lt;br /&gt;
:1. Prepare a headset or other audio device that uses a 3.5mm plug, insert the plug into the 3.5mm jack of BPI-M4 Berry.&lt;br /&gt;
:2. Set the output device to Audio Codec in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3. Play audio.&lt;br /&gt;
&lt;br /&gt;
====Terminal command to play audio files====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aplay -l #List devices&lt;br /&gt;
aplay -D hw:0,0 [path] #Play the audio file of the specified path&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Use Bluetooth===&lt;br /&gt;
:1. Open settings in the Ubuntu desktop and connect a Bluetooth device, such as a Bluetooth mouse or keyboard, in the Bluetooth bar.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2. The method to connect the Bluetooth device through the command line in the terminal is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #Open the Bluetooth device management tool&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #Start the Bluetooth function, power off to turn it off&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #Allow this device to be discovered&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #Allow device pairing&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #Start scanning&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #The MAC address and device name of a Bluetooth mouse&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #Pair the MAC address of the Bluetooth device you want to connect to&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #pairing successfully&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #Exit the Bluetooth device management tool&lt;br /&gt;
pi@bpi-m4berry:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth reference document]&lt;br /&gt;
&lt;br /&gt;
===Use IR Receiver===&lt;br /&gt;
:1. You need to prepare an infrared remote control using NEC format.&lt;br /&gt;
:2. Enter the following command in the terminal to start receiving infrared signals.&lt;br /&gt;
   sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
   Old keytable cleared&lt;br /&gt;
   Protocols changed to nec&lt;br /&gt;
   Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
   258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_SYN(0x00).&lt;br /&gt;
   260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_SYN(0x00).&lt;br /&gt;
   260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
   260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.719568: event type EV_SYN(0x00).&lt;br /&gt;
   273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_SYN(0x00).&lt;br /&gt;
   273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
   273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
For other commands and specific application methods, please see [https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable reference document]&lt;br /&gt;
&lt;br /&gt;
===Transfer files===&lt;br /&gt;
====scp====&lt;br /&gt;
scp (secure copy) command in Linux system is used to copy file(s) between servers in a secure way. &lt;br /&gt;
&lt;br /&gt;
The SCP command or secure copy allows the secure transferring of files between the local host and the remote host or between two remote hosts. &lt;br /&gt;
&lt;br /&gt;
It uses the same authentication and security as it is used in the Secure Shell (SSH) protocol.&lt;br /&gt;
&lt;br /&gt;
You can copy files from a Windows terminal to a Linux system on the same LAN. Just make sure the Open SSH client is turned on and can be viewed in Settings &amp;gt; Applications &amp;gt; Optional Features.&lt;br /&gt;
&lt;br /&gt;
If you want to copy files from Windows systems to Linux systems, you also need to enable the Open SSH server.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
The scp command format is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optionals] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optionals]&amp;lt;/nowiki&amp;gt; is an optional parameter, such as -r, which can be used to copy the entire directory recursively.&lt;br /&gt;
&lt;br /&gt;
::2.file_source The file or directory to be copied.&lt;br /&gt;
&lt;br /&gt;
::3.file_target will copy the past path and rename it if a specific file name is entered at the end.&lt;br /&gt;
&lt;br /&gt;
Take copying local files from a Windows system to a Linux system as an example. In the Windows terminal, enter:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also copy files in the Linux system to the local computer in the Windows terminal:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Where pi@192.168.3.12 is the user name in the Linux system and the IP address of the BPI-M4 Berry in the LAN.&lt;br /&gt;
:: Where &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; is the file path in the Linux system.&lt;br /&gt;
:: Where &amp;quot;D:\temp\temp_4&amp;quot; is the path in Windows system.&lt;br /&gt;
&lt;br /&gt;
[https://www.geeksforgeeks.org/scp-command-in-linux-with-examples/ scp reference document]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
Files can be managed through a graphical interface using mobaxterm or other similar software.&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm download]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux preview version]&lt;br /&gt;
&lt;br /&gt;
As shown in the figure below, after establishing an SSH connection in mobaxterm, a file management window will appear on the left side of the interface, which supports copying and pasting by dragging and dropping files.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;br /&gt;
&lt;br /&gt;
===40 pin interface GPIO, I2C, UART, SPI, and PWM testing===&lt;br /&gt;
====GPIO====&lt;br /&gt;
Control the GPIO port to light up the LED light.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Set the high and low levels of GPIO'''&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_gpio.jpg]]&lt;br /&gt;
&lt;br /&gt;
The following is a demonstration using 7 pin.&lt;br /&gt;
&lt;br /&gt;
Insert the LED light and you can see that it is not lit up.&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
 gpio mode 2 out&lt;br /&gt;
:to set it to output mode.&lt;br /&gt;
&lt;br /&gt;
: 2.Execute&lt;br /&gt;
 gpio write 2 1&lt;br /&gt;
:You can see that the LED light has been turned on.&lt;br /&gt;
:[[File:M4_Berry_gpio_led_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Execute&lt;br /&gt;
 gpio write 2 0&lt;br /&gt;
:You can see that the LED light has been turned off.&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Set pull-up and pull-down resistors'''&lt;br /&gt;
: 1.Firstly, it is necessary to set the GPIO port to input mode&lt;br /&gt;
 gpio mode 2 in&lt;br /&gt;
&lt;br /&gt;
: 2.Then set the GPIO port as an pull-up resistor&lt;br /&gt;
 gpio mode 2 up&lt;br /&gt;
:The LED light is lit up again&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Finally, set the GPIO port to dropdown mode&lt;br /&gt;
 gpio mode 2 down&lt;br /&gt;
:The LED light goes out again&lt;br /&gt;
:[[File:M4_Berry_gpio_led_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====I2C====&lt;br /&gt;
&lt;br /&gt;
According to the schematic diagram, the available i2cs are i2c3 and i2c4&lt;br /&gt;
:[[File:M4_Berry_gpio_i2c.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.Select &amp;quot;pg-i2c3&amp;quot;and&amp;quot;pg-i2c4&amp;quot;&lt;br /&gt;
:[[File:M4_Berry_bananapi_config_i2c.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are i2c-3 and i2c-4 nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/i2c-3&lt;br /&gt;
 /dev/i2c-3&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/i2c-4&lt;br /&gt;
 /dev/i2c-4&lt;br /&gt;
&lt;br /&gt;
: 8. Execute&lt;br /&gt;
&lt;br /&gt;
 cd /usr/src/wiringPi/examples/&lt;br /&gt;
 gcc ./oled_demo.c -o oled -lwiringPi&lt;br /&gt;
&lt;br /&gt;
: 9.Connect the i2c device to the pin of i2c3. Execute&lt;br /&gt;
&lt;br /&gt;
 sudo ./oled /dev/i2c-3&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_i2c_3_led.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 10.Connect the i2c device to the pin of i2c4. Execute&lt;br /&gt;
&lt;br /&gt;
 sudo ./oled /dev/i2c-4&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_i2c_4_led.jpg]]&lt;br /&gt;
&lt;br /&gt;
====UART====&lt;br /&gt;
By reviewing the schematic, it can be found that the available uart are uart1 and uart5.&lt;br /&gt;
:[[File:M4_Berry_gpio_uart.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Uart1 and Uart5 is closed by default and needs to be opened. Execute&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.If you want to use uart1,select&amp;quot;pg-uart1&amp;quot;.If you want to use uart5,select&amp;quot;ph-uart5&amp;quot;&lt;br /&gt;
:[[File:M4_Berry_bananapi_config_uart.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are ttyS5 nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/ttyS5&lt;br /&gt;
 /dev/ttyS5&lt;br /&gt;
&lt;br /&gt;
: 8:Short circuit uart1 pin or uart5 and execute&lt;br /&gt;
 gpio serial /dev/ttyS1&lt;br /&gt;
:[[File:M4_Berry_gpio_uart1.jpg]]&lt;br /&gt;
:[[File:M4_Berry_gpio_uart5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SPI====&lt;br /&gt;
By reviewing the schematic, it can be found that the available spi is spi1.&lt;br /&gt;
:[[File:M4 Berry-sch-gpio-spi.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.Select &amp;quot;spi1-cs1-spidev&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are SPI nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/spidev1.1&lt;br /&gt;
 /dev/spidev1.1&lt;br /&gt;
&lt;br /&gt;
: 8.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo spidev_test -v -D /dev/spidev1.1&lt;br /&gt;
&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:It can be seen that TX and RX are different. So, we need to short-circuit MOSI and MISO and execute the command again.&lt;br /&gt;
&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====PWM====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HDMI LCD===&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Bananapi M4 Berry Tested HDMI LCD'''&lt;br /&gt;
|-&lt;br /&gt;
|panel || Test Video&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/3.5inch-hdmi-lcd.htm Waveshare 3.5inch 480x320] || &lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/3.5inch-hdmi-lcd-e.htm Waveshare 3.5inch 640x480] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/4inch-hdmi-lcd-c.htm Waveshare 4inch 720x720] || https://youtu.be/CRcjx6_29rA&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/5inch-hdmi-amoled.htm Waveshare 5inch 960x544] || https://youtu.be/0wZ3lWQQTkQ&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/5inch-hdmi-lcd-h.htm Waveshare 5inch 800x480] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/5.5inch-1440x2560-lcd.htm Waveshare 5.5inch 1440x2560] || https://youtu.be/z9gTHa3i8Ag&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/7inch-hdmi-lcd-b.htm Waveshare 7inch 800x480] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/7inch-hdmi-lcd-c.htm Waveshare 7inch 1024x600] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/7.9inch-HDMI-LCD.htm Waveshare 7.9inch 400x1280] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/8inch-1536x2048-LCD.htm Waveshare 8inch 1536x2048] || https://youtu.be/Qjwo4vVBQmo&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/8.8inch-Side-Monitor.htm Waveshare 8.8inch 480x1920] || https://youtu.be/SP9-HGrY6-M&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/9inch-2560x1600-Monitor.htm Waveshare 9inch 2560x1600] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/10.1inch-HDMI-LCD-E.htm Waveshare 10.1inch 1024x600] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/10.1inch-hdmi-lcd-b-with-case.htm Waveshare 10.1inch 1280x800] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/11.9inch-HDMI-LCD.htm Waveshare 11.9inch 320x1480] || https://youtu.be/WA1yBGcYZds&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/12.3inch-hdmi-lcd.htm Waveshare 12.3inch 1920x720] || https://youtu.be/OJfqtHlgDvk&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/13.3inch-HDMI-LCD-H.htm Waveshare 13.3inch 1920x1080] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/15.6inch-hdmi-lcd-h-with-case.htm Waveshare 15.6inch 1920x1080] ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16984</id>
		<title>Getting Started with BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16984"/>
				<updated>2024-01-26T06:20:40Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* HDMI LCD */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
===Prepare===&lt;br /&gt;
&lt;br /&gt;
:1. Download latest [[Banana_Pi_BPI-M4_Berry#System_image | Android image]].&lt;br /&gt;
&lt;br /&gt;
:2. Download and Install [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FTools%2Fimage_download_tools%2Fphoenixsuit_V1.1.0_20150325.rar Allwinner Image Download Tools], PhoenixSuit is for window. &lt;br /&gt;
&lt;br /&gt;
:3. Type-C cable, 5V power supply.&lt;br /&gt;
&lt;br /&gt;
===Install Image with USB tool===&lt;br /&gt;
&lt;br /&gt;
:1. Open PhoenixSuit, click the Firmware icon to switching to firmware download panel, then click Image button and choose the Android Image file.&lt;br /&gt;
&lt;br /&gt;
:[[File:m4-berry_android_1.jpg]]&lt;br /&gt;
:[[File:m4-berry_android_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
:2. Press and hold the SW2 button on M4 Berry while connecting to the computer using type-c, popup a warning dialog.Press Yes.&lt;br /&gt;
&lt;br /&gt;
:[[File:m4-berry_android_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. Download&lt;br /&gt;
&lt;br /&gt;
:[[File:m4-berry_android_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:4. Download finish&lt;br /&gt;
&lt;br /&gt;
:[[File:m4-berry_android_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Build Android Source Code===&lt;br /&gt;
&lt;br /&gt;
:Please read the source code [https://github.com/BPI-SINOVOIP/BPI-H618-Android12/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
===Custom IR===&lt;br /&gt;
:Wiki images support NEC protocol default.&lt;br /&gt;
&lt;br /&gt;
:1. Execute getevent -l | grep MSC_SCAN in the serial port or adb shell, then press the corresponding button on the remote control to obtain the device ID and scancode.&lt;br /&gt;
&lt;br /&gt;
:[[File:m4b_custom_ir_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:The MSC_SCAN data is 32 bits.&lt;br /&gt;
:Bits [31:24] represent the key press status, where 0 indicates release, and 1 indicates press.&lt;br /&gt;
:Bits [23:8] represent the device ID. Use this ID to generate a keylayout file named customer_ir_xxxx.kl. For example, in this case, it would be customer_ir_fe01.kl.&lt;br /&gt;
:Bits [7:0] represent the scancode.&lt;br /&gt;
&lt;br /&gt;
:2. Based on the results of step one, create a new file named customer_ir_xxxx.kl with the following content:&lt;br /&gt;
&lt;br /&gt;
:[[File:m4b_custom_ir_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
:Map the scancodes in the second column to Android keycodes.&lt;br /&gt;
&lt;br /&gt;
:3. Use the adb command to push customer_ir_xxxx.kl to the system.&lt;br /&gt;
&lt;br /&gt;
  $ adb root&lt;br /&gt;
  $ adb remount&lt;br /&gt;
  $ adb push customer_ir_xxxx.kl  /system/usr/keylayout/&lt;br /&gt;
  $ adb reboot&lt;br /&gt;
&lt;br /&gt;
:For source code porting, put the customer_ir_xxxx.kl to vendor/w/common/hardware/input/multi_ir/keylayout/ directory and build the source code.&lt;br /&gt;
&lt;br /&gt;
===Custom Logo===&lt;br /&gt;
&lt;br /&gt;
:1. Boot logo&lt;br /&gt;
&lt;br /&gt;
:Rename the logo file to bootlogo.bmp and put it in longan/device/config/chips/h618/boot-resource/boot-resource/ directory.&lt;br /&gt;
&lt;br /&gt;
:2. Bootanimation logo&lt;br /&gt;
&lt;br /&gt;
:Put bootanimation.zip to device/softwinner/apollo/common/media/bootanimation/ directory.&lt;br /&gt;
&lt;br /&gt;
:3. Launcher logo for Box variant image&lt;br /&gt;
&lt;br /&gt;
:Create a 270x110, 32 bit depth, png image and rename it to aw_logo.png, put it in vendor/aw/common/package/TVLauncher/res/drawable-xhdpi/ directory.&lt;br /&gt;
&lt;br /&gt;
:Then build the source code and flash the image to your board.&lt;br /&gt;
&lt;br /&gt;
===Install Play Store===&lt;br /&gt;
&lt;br /&gt;
:Build the android source code with OpenGApps google play include.&lt;br /&gt;
&lt;br /&gt;
:1. Apply this patch to source code.&lt;br /&gt;
  diff --git a/device/softwinner/apollo/common/opengapps/config.mk &lt;br /&gt;
  b/device/softwinner/apollo/common/opengapps/config.mk&lt;br /&gt;
  index 4c2a7f3..c7ff30e 100644&lt;br /&gt;
  --- a/device/softwinner/apollo/common/opengapps/config.mk&lt;br /&gt;
  +++ b/device/softwinner/apollo/common/opengapps/config.mk&lt;br /&gt;
  @@ -1,4 +1,4 @@&lt;br /&gt;
  -BOARD_BUILD_OPENGAPPS := false&lt;br /&gt;
  +BOARD_BUILD_OPENGAPPS := true&lt;br /&gt;
 &lt;br /&gt;
   ifeq ($(BOARD_BUILD_OPENGAPPS), true)&lt;br /&gt;
   GAPPS_VARIANT := pico&lt;br /&gt;
&lt;br /&gt;
:3. Create /vendor/opengapps folder&lt;br /&gt;
&lt;br /&gt;
:4. Download [https://github.com/opengapps/aosp_build OpenGApps aosp_build] project to /vendor/opengapps/build&lt;br /&gt;
&lt;br /&gt;
:5. Create /vendor/opengapps/sources folder, download [https://gitlab.opengapps.org/opengapps OpenGApps projects] to /vendor/opengapps/sources/&lt;br /&gt;
&lt;br /&gt;
:6. Build the source code and flash image to your board.&lt;br /&gt;
&lt;br /&gt;
===Switch Audio Output===&lt;br /&gt;
&lt;br /&gt;
: The default audio output channel is hdmi, switch it to jack output in Settings-&amp;gt;Sound-&amp;gt;Audio output channel&lt;br /&gt;
&lt;br /&gt;
:[[File:m4b_audio_switch.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare===&lt;br /&gt;
:1. Linux image support SDcard or EMMC bootup, and will boot from the SD card first.&lt;br /&gt;
&lt;br /&gt;
:2. It’s recommended to use A1 rated cards, 8GB at least.&lt;br /&gt;
&lt;br /&gt;
:3. Make sure bootable EMMC is formatted if you want bootup from SDcard.&lt;br /&gt;
&lt;br /&gt;
:4. Make sure SDcard is formatted without Linux image flashed if you want bootup from EMMC and use Sdcard as storage.&lt;br /&gt;
&lt;br /&gt;
:5. Download latest [[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian images]], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
:6. Default login: pi/bananapi or root/bananapi&lt;br /&gt;
&lt;br /&gt;
:7. The wiki guide is only for [[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian images]].&lt;br /&gt;
&lt;br /&gt;
:8. USB-Serial (3.3V). Baud: 115200.&lt;br /&gt;
&lt;br /&gt;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with Balena Etcher on Windows, Linux and MacOS.&lt;br /&gt;
:[https://balena.io/etcher Balena Etcher] is an opensource GUI flash tool by Balena, Flash OS images to SDcard or USB drive.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
===Install Image to eMMC===&lt;br /&gt;
&lt;br /&gt;
1. Make sure that the Linux image has been burned into an SD card and started normally.&lt;br /&gt;
&lt;br /&gt;
2. Enter the following command in the terminal:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. By default, select the first item continuously and press the Enter key to install the Linux system image on the eMMC.&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. The last step is to shut down the computer. At this time, disconnect the power supply, remove the SD card, and power on again to boot from eMMC.&lt;br /&gt;
&lt;br /&gt;
===Erase eMMC===&lt;br /&gt;
&lt;br /&gt;
1. Make sure the Linux image has been burned into an SD card and insert the SD card. By default it will boot from the SD card.&lt;br /&gt;
&lt;br /&gt;
2. Enter the command lsblk in the terminal to list the block device information in the system, such as hard disks, partitions, disks, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0 179:0 0 7.4G 0 disk&lt;br /&gt;
└─mmcblk0p1 179:1 0 7.2G 0 part /var/log.hdd&lt;br /&gt;
                                        /&lt;br /&gt;
mmcblk1 179:32 0 7.3G 0 disk&lt;br /&gt;
└─mmcblk1p1 179:33 0 7.3G 0 part&lt;br /&gt;
mmcblk1boot0 179:64 0 4M 1 disk&lt;br /&gt;
mmcblk1boot1 179:96 0 4M 1 disk&lt;br /&gt;
zram0 252:0 0 993.2M 0 disk [SWAP]&lt;br /&gt;
zram1 252:1 0 50M 0 disk /var/log&lt;br /&gt;
zram2 252:2 0 0B 0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0 is the SD card and mmcblk1 is the eMMC. Enter the following command in the terminal to erase the eMMC. This process takes several minutes and is irreversible. Be careful to back up important data.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ubuntu Desktop===&lt;br /&gt;
&lt;br /&gt;
:1. Using the Ubuntu desktop version system image, you can get a graphical operation interface.&lt;br /&gt;
:2. You need to prepare a monitor with an HDMI interface and an HDMI cable.&lt;br /&gt;
:3. Use an HDMI cable to connect the monitor and BPI-M4 Berry, switch the monitor input interface to the corresponding HDMI interface, power on, and wait a moment to see the desktop.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Debug UART===&lt;br /&gt;
:1. Prepare a 3.3v USB to TTL module.&lt;br /&gt;
:2. Use the USB to TTL module to connect the PC USB port and the Debug UART port on the board.&lt;br /&gt;
:3. Open a serial terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:4. Taking mobaxterm as an example, after setting the serial port number and 115200 baud rate, you can open the BPI-M4 Berry UART terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
:1. Prepare a network cable and a router.&lt;br /&gt;
:2. Use a network cable to connect the LAN port of the router to the BPI-M4 Berry, and also connect the PC to another LAN port.&lt;br /&gt;
:3. Check the IP address of BPI-M4 Berry on the router management interface, or use the following command on the BPI-M4 Berry UART terminal to check the IP address.&lt;br /&gt;
   ifconfig&lt;br /&gt;
&lt;br /&gt;
   eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
         inet 192.168.3.10 netmask 255.255.255.0 broadcast 192.168.3.255&lt;br /&gt;
         inet6 fe80::3e1f:688f:81ab:d8b7 prefixlen 64 scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
         ether 02:00:54:a0:d6:a6 txqueuelen 1000 (Ethernet)&lt;br /&gt;
         RX packets 553 bytes 92549 (92.5 KB)&lt;br /&gt;
         RX errors 0 dropped 0 overruns 0 frame 0&lt;br /&gt;
         TX packets 329 bytes 26023 (26.0 KB)&lt;br /&gt;
         TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0&lt;br /&gt;
         device interrupt 42&lt;br /&gt;
:4. Open an SSH terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:5. Taking mobaxterm as an example, fill in the obtained IP address, such as 192.168.3.10 above, in the IP address column and 22 in the Port port.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6. Open the SSH terminal and enter the login username/password: pi/bananapi or root/bananapi. There will be no prompt when entering the password. Please enter it normally and press Enter when finished.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
===NoMachine Remote Desktop===&lt;br /&gt;
:1. Make sure BPI-M4 Berry is connected to the Internet and use the following command to download the nomachine DEB installation package in the system.&lt;br /&gt;
&lt;br /&gt;
   wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2. Or open [https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64 download page] in a PC browser, download the DEB installation package, and then copy it to BPI-M4 Berry user directory through SSH or USB disk.&lt;br /&gt;
&lt;br /&gt;
:3. After the download is completed, install it through the following command. Note that the file name is based on the actual downloaded file name.&lt;br /&gt;
&lt;br /&gt;
   sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4. PC side also needs to download and install NoMachine. [https://download.nomachine.com NoMachine download page] Select the installation package suitable for the PC operating system, download it locally and complete the installation.&lt;br /&gt;
&lt;br /&gt;
:5. Pay attention to keeping the PC and BPI-M4 Berry in the same LAN. You can try SSH connection first to ensure normal communication within the LAN.&lt;br /&gt;
&lt;br /&gt;
:6. Open NoMachine on the PC, click the Add button, enter the IP address of BPI-M4 Berry in the Host bar in the window after the jump, and then click the Add button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7. Click the recognized port icon, enter the username/password in the new window that pops up, and then click the OK button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8. After completing the subsequent settings, you can see the desktop.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9. If no device is connected to the HDMI interface, the NoMachine remote desktop will display a black screen. It is recommended to keep the HDMI connection or connect an HDMI decoy device.&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
: Use the nmcli command to scan WiFi hotspots, connect to hotspots, and create AP hotspots.&lt;br /&gt;
&lt;br /&gt;
   nmcli device #List devices&lt;br /&gt;
   nmcli device wifi list # List available wifi access points, list can be omitted&lt;br /&gt;
   nmcli device wifi connect [SSID] password [PASSWORD] # Connect to the hotspot mySSID. After the connection is successful, the configuration file will be automatically generated. If you want to connect again in the future, you can use the nmcli connection up [SSID] command.&lt;br /&gt;
   nmcli device disconnect [device name] # Disconnect wifi, use the wifi device name displayed in the nmcli device command&lt;br /&gt;
   nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # Create AP hotspot&lt;br /&gt;
&lt;br /&gt;
   nmcli connection show #List network connection configuration&lt;br /&gt;
   nmcli connection down [NAME] # Deactivate a connection&lt;br /&gt;
   nmcli connection up [NAME] # Activate a connection&lt;br /&gt;
   nmcli connection delete [SSID] #Delete a configuration and no longer save information and automatically connect&lt;br /&gt;
&lt;br /&gt;
   nmcli radio wifi off # Turn off wifi&lt;br /&gt;
   nmcli radio wifi on # Turn on wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli command reference document]&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli command reference examples]&lt;br /&gt;
&lt;br /&gt;
===Set static IP, DNS===&lt;br /&gt;
:1. To set a static IP, you need to maintain the connection first. If you want to set an Ethernet static IP, you must first maintain the Ethernet connection; if you want to set a wireless network static IP, you must first maintain a connection to a WIFI.&lt;br /&gt;
:2. If the upper-level router has assigned the IP address you want to set to other devices, please change it to an idle IP, or ask other devices to give up the IP.&lt;br /&gt;
:3. Use the nmcli connection show command to display all connections, for example:&lt;br /&gt;
   pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
   NAME UUID TYPE DEVICE&lt;br /&gt;
   TP-LINK_5G_7747 e4a49726-adf1-44d7-a621-0e3af96cc390 wifi wlx2cc3e6acd5d7&lt;br /&gt;
   Wired connection 1 612eda94-55dc-3c85-b05e-f16c41775b4e ethernet --&lt;br /&gt;
:4. Use the nmcli connection show [NAME] command to display all the properties of a specific connection, such as:&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747 #If you want to see Ethernet, change to Wired connection 1&lt;br /&gt;
&lt;br /&gt;
   #Only list three common items&lt;br /&gt;
   ipv4.dns: 192.168.3.1 #The default is the gateway address&lt;br /&gt;
   ipv4.addresses: 192.168.3.10/24 #The default is the IP address assigned by the router DHCP&lt;br /&gt;
   ipv4.gateway: 192.168.3.1 #Gateway address, the default is the IP address of the router&lt;br /&gt;
&lt;br /&gt;
:5.Set static IP:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.Set DNS:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.Reset:&lt;br /&gt;
   reboot&lt;br /&gt;
:8. After restarting, check whether the modification is successful:&lt;br /&gt;
   ifconfig&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747&lt;br /&gt;
&lt;br /&gt;
===Network time synchronization===&lt;br /&gt;
:Chrony is an open source free Network Time Protocol NTP client and server software. It allows the computer to keep the system clock synchronized with the clock server (NTP), thus allowing your computer to maintain accurate time. Chrony can also be used as a server software to provide time synchronization services for other computers.&lt;br /&gt;
&lt;br /&gt;
   timedatectl set-ntp false #Disable NTP-based network time synchronization&lt;br /&gt;
&lt;br /&gt;
   sudo apt install chrony #Install chrony&lt;br /&gt;
   systemctl start chrony #Start chrony&lt;br /&gt;
   systemctl enable chrony&lt;br /&gt;
   systemctl status chrony&lt;br /&gt;
   systemctl restart chrony #Restart service&lt;br /&gt;
&lt;br /&gt;
   timedatectl status #View time synchronization status&lt;br /&gt;
   timedatectl list-timezones #View time zone list&lt;br /&gt;
   timedatectl set-timezone Asia/Shanghai #Modify time zone&lt;br /&gt;
   timedatectl set-ntp true #Enable NTP network time synchronization&lt;br /&gt;
&lt;br /&gt;
   date #View time&lt;br /&gt;
   sudo hwclock -r #View hardware clock&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony reference documentation]&lt;br /&gt;
&lt;br /&gt;
===View hardware temperature===&lt;br /&gt;
Enter the following command to view the temperature data returned by the sensor built into the chip on the BPI-M4 Berry board.&lt;br /&gt;
   sensors&lt;br /&gt;
&lt;br /&gt;
===Modify HDMI output resolution===&lt;br /&gt;
:When using the Ubuntu desktop operating system, you can find the Displays column in Settings and modify the resolution.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Use USB disk===&lt;br /&gt;
:1. Prepare a USB disk that has been partitioned normally and insert it into the USB interface of BPI-M4 Berry.&lt;br /&gt;
:2. In the Ubuntu desktop version, you can see that the USB disk has been recognized and can be opened in the file manager, or partition management can be performed through the GParted tool.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. In the terminal, mount the USB disk to the local directory:&lt;br /&gt;
   mkdir mnt #Create a separate directory in the ~/user directory for mounting for easy management&lt;br /&gt;
   cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #List partitions starting with sd&lt;br /&gt;
   sudo mount /dev/sda1 ~/mnt/ #Mount /dev/sda1 to ~/mnt/&lt;br /&gt;
   ls ~/mnt/ #After mounting, you can list the files in the USB disk&lt;br /&gt;
   sudo umount -v /dev/sda1 #umount, then you can remove the USB disk&lt;br /&gt;
&lt;br /&gt;
===Use Audio Devices===&lt;br /&gt;
: Prepare an audio file and copy it to the BPI-M4 Berry Ubuntu desktop system through a USB flash drive or SSH.&lt;br /&gt;
====HDMI audio====&lt;br /&gt;
:1. Prepare a monitor with HDMI audio input function, turn on the relevant functions in the monitor settings, and use an HDMI cable to connect the monitor.&lt;br /&gt;
:2. Set the output device to HDMI Audio in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.Play audio.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm audio jack====&lt;br /&gt;
:1. Prepare a headset or other audio device that uses a 3.5mm plug, insert the plug into the 3.5mm jack of BPI-M4 Berry.&lt;br /&gt;
:2. Set the output device to Audio Codec in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3. Play audio.&lt;br /&gt;
&lt;br /&gt;
====Terminal command to play audio files====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aplay -l #List devices&lt;br /&gt;
aplay -D hw:0,0 [path] #Play the audio file of the specified path&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Use Bluetooth===&lt;br /&gt;
:1. Open settings in the Ubuntu desktop and connect a Bluetooth device, such as a Bluetooth mouse or keyboard, in the Bluetooth bar.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2. The method to connect the Bluetooth device through the command line in the terminal is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #Open the Bluetooth device management tool&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #Start the Bluetooth function, power off to turn it off&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #Allow this device to be discovered&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #Allow device pairing&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #Start scanning&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #The MAC address and device name of a Bluetooth mouse&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #Pair the MAC address of the Bluetooth device you want to connect to&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #pairing successfully&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #Exit the Bluetooth device management tool&lt;br /&gt;
pi@bpi-m4berry:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth reference document]&lt;br /&gt;
&lt;br /&gt;
===Use IR Receiver===&lt;br /&gt;
:1. You need to prepare an infrared remote control using NEC format.&lt;br /&gt;
:2. Enter the following command in the terminal to start receiving infrared signals.&lt;br /&gt;
   sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
   Old keytable cleared&lt;br /&gt;
   Protocols changed to nec&lt;br /&gt;
   Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
   258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_SYN(0x00).&lt;br /&gt;
   260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_SYN(0x00).&lt;br /&gt;
   260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
   260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.719568: event type EV_SYN(0x00).&lt;br /&gt;
   273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_SYN(0x00).&lt;br /&gt;
   273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
   273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
For other commands and specific application methods, please see [https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable reference document]&lt;br /&gt;
&lt;br /&gt;
===Transfer files===&lt;br /&gt;
====scp====&lt;br /&gt;
scp (secure copy) command in Linux system is used to copy file(s) between servers in a secure way. &lt;br /&gt;
&lt;br /&gt;
The SCP command or secure copy allows the secure transferring of files between the local host and the remote host or between two remote hosts. &lt;br /&gt;
&lt;br /&gt;
It uses the same authentication and security as it is used in the Secure Shell (SSH) protocol.&lt;br /&gt;
&lt;br /&gt;
You can copy files from a Windows terminal to a Linux system on the same LAN. Just make sure the Open SSH client is turned on and can be viewed in Settings &amp;gt; Applications &amp;gt; Optional Features.&lt;br /&gt;
&lt;br /&gt;
If you want to copy files from Windows systems to Linux systems, you also need to enable the Open SSH server.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
The scp command format is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optionals] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optionals]&amp;lt;/nowiki&amp;gt; is an optional parameter, such as -r, which can be used to copy the entire directory recursively.&lt;br /&gt;
&lt;br /&gt;
::2.file_source The file or directory to be copied.&lt;br /&gt;
&lt;br /&gt;
::3.file_target will copy the past path and rename it if a specific file name is entered at the end.&lt;br /&gt;
&lt;br /&gt;
Take copying local files from a Windows system to a Linux system as an example. In the Windows terminal, enter:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also copy files in the Linux system to the local computer in the Windows terminal:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Where pi@192.168.3.12 is the user name in the Linux system and the IP address of the BPI-M4 Berry in the LAN.&lt;br /&gt;
:: Where &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; is the file path in the Linux system.&lt;br /&gt;
:: Where &amp;quot;D:\temp\temp_4&amp;quot; is the path in Windows system.&lt;br /&gt;
&lt;br /&gt;
[https://www.geeksforgeeks.org/scp-command-in-linux-with-examples/ scp reference document]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
Files can be managed through a graphical interface using mobaxterm or other similar software.&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm download]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux preview version]&lt;br /&gt;
&lt;br /&gt;
As shown in the figure below, after establishing an SSH connection in mobaxterm, a file management window will appear on the left side of the interface, which supports copying and pasting by dragging and dropping files.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;br /&gt;
&lt;br /&gt;
===40 pin interface GPIO, I2C, UART, SPI, and PWM testing===&lt;br /&gt;
====GPIO====&lt;br /&gt;
Control the GPIO port to light up the LED light.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Set the high and low levels of GPIO'''&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_gpio.jpg]]&lt;br /&gt;
&lt;br /&gt;
The following is a demonstration using 7 pin.&lt;br /&gt;
&lt;br /&gt;
Insert the LED light and you can see that it is not lit up.&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
 gpio mode 2 out&lt;br /&gt;
:to set it to output mode.&lt;br /&gt;
&lt;br /&gt;
: 2.Execute&lt;br /&gt;
 gpio write 2 1&lt;br /&gt;
:You can see that the LED light has been turned on.&lt;br /&gt;
:[[File:M4_Berry_gpio_led_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Execute&lt;br /&gt;
 gpio write 2 0&lt;br /&gt;
:You can see that the LED light has been turned off.&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Set pull-up and pull-down resistors'''&lt;br /&gt;
: 1.Firstly, it is necessary to set the GPIO port to input mode&lt;br /&gt;
 gpio mode 2 in&lt;br /&gt;
&lt;br /&gt;
: 2.Then set the GPIO port as an pull-up resistor&lt;br /&gt;
 gpio mode 2 up&lt;br /&gt;
:The LED light is lit up again&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Finally, set the GPIO port to dropdown mode&lt;br /&gt;
 gpio mode 2 down&lt;br /&gt;
:The LED light goes out again&lt;br /&gt;
:[[File:M4_Berry_gpio_led_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====I2C====&lt;br /&gt;
&lt;br /&gt;
According to the schematic diagram, the available i2cs are i2c3 and i2c4&lt;br /&gt;
:[[File:M4_Berry_gpio_i2c.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.Select &amp;quot;pg-i2c3&amp;quot;and&amp;quot;pg-i2c4&amp;quot;&lt;br /&gt;
:[[File:M4_Berry_bananapi_config_i2c.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are i2c-3 and i2c-4 nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/i2c-3&lt;br /&gt;
 /dev/i2c-3&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/i2c-4&lt;br /&gt;
 /dev/i2c-4&lt;br /&gt;
&lt;br /&gt;
: 8. Execute&lt;br /&gt;
&lt;br /&gt;
 cd /usr/src/wiringPi/examples/&lt;br /&gt;
 gcc ./oled_demo.c -o oled -lwiringPi&lt;br /&gt;
&lt;br /&gt;
: 9.Connect the i2c device to the pin of i2c3. Execute&lt;br /&gt;
&lt;br /&gt;
 sudo ./oled /dev/i2c-3&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_i2c_3_led.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 10.Connect the i2c device to the pin of i2c4. Execute&lt;br /&gt;
&lt;br /&gt;
 sudo ./oled /dev/i2c-4&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_i2c_4_led.jpg]]&lt;br /&gt;
&lt;br /&gt;
====UART====&lt;br /&gt;
By reviewing the schematic, it can be found that the available uart are uart1 and uart5.&lt;br /&gt;
:[[File:M4_Berry_gpio_uart.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Uart1 and Uart5 is closed by default and needs to be opened. Execute&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.If you want to use uart1,select&amp;quot;pg-uart1&amp;quot;.If you want to use uart5,select&amp;quot;ph-uart5&amp;quot;&lt;br /&gt;
:[[File:M4_Berry_bananapi_config_uart.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are ttyS5 nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/ttyS5&lt;br /&gt;
 /dev/ttyS5&lt;br /&gt;
&lt;br /&gt;
: 8:Short circuit uart1 pin or uart5 and execute&lt;br /&gt;
 gpio serial /dev/ttyS1&lt;br /&gt;
:[[File:M4_Berry_gpio_uart1.jpg]]&lt;br /&gt;
:[[File:M4_Berry_gpio_uart5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SPI====&lt;br /&gt;
By reviewing the schematic, it can be found that the available spi is spi1.&lt;br /&gt;
:[[File:M4 Berry-sch-gpio-spi.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.Select &amp;quot;spi1-cs1-spidev&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are SPI nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/spidev1.1&lt;br /&gt;
 /dev/spidev1.1&lt;br /&gt;
&lt;br /&gt;
: 8.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo spidev_test -v -D /dev/spidev1.1&lt;br /&gt;
&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:It can be seen that TX and RX are different. So, we need to short-circuit MOSI and MISO and execute the command again.&lt;br /&gt;
&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====PWM====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HDMI LCD===&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Bananapi M4 Berry Tested HDMI LCD'''&lt;br /&gt;
|-&lt;br /&gt;
|panel || Test Video&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/3.5inch-hdmi-lcd.htm Waveshare 3.5inch 480x320] || &lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/3.5inch-hdmi-lcd-e.htm Waveshare 3.5inch 640x480] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/4inch-hdmi-lcd-c.htm Waveshare 4inch 720x720] || https://youtu.be/CRcjx6_29rA&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/5inch-hdmi-amoled.htm Waveshare 5inch 960x544] || https://youtu.be/0wZ3lWQQTkQ&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/5inch-hdmi-lcd-h.htm Waveshare 5inch 800x480] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/5.5inch-1440x2560-lcd.htm Waveshare 5.5inch 1440x2560] || https://youtu.be/z9gTHa3i8Ag&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/7inch-hdmi-lcd-b.htm Waveshare 7inch 800x480] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/7inch-hdmi-lcd-c.htm Waveshare 7inch 1024x600] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/7.9inch-HDMI-LCD.htm Waveshare 7.9inch 400x1280] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/8inch-1536x2048-LCD.htm Waveshare 8inch 1536x2048] || https://youtu.be/Qjwo4vVBQmo&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/8.8inch-Side-Monitor.htm Waveshare 8.8inch 480x1920] || https://youtu.be/SP9-HGrY6-M&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/9inch-2560x1600-Monitor.htm Waveshare 9inch 2560x1600] || setenv display_autodetect &amp;quot;false&amp;quot;&lt;br /&gt;
setenv hdmimode &amp;quot;2560x1600p60hz&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/10.1inch-HDMI-LCD-E.htm Waveshare 10.1inch 1024x600] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/10.1inch-hdmi-lcd-b-with-case.htm Waveshare 10.1inch 1280x800] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/11.9inch-HDMI-LCD.htm Waveshare 11.9inch 320x1480] || https://youtu.be/WA1yBGcYZds&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/12.3inch-hdmi-lcd.htm Waveshare 12.3inch 1920x720] || https://youtu.be/OJfqtHlgDvk&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/13.3inch-HDMI-LCD-H.htm Waveshare 13.3inch 1920x1080] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/15.6inch-hdmi-lcd-h-with-case.htm Waveshare 15.6inch 1920x1080] ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16983</id>
		<title>Getting Started with BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16983"/>
				<updated>2024-01-26T06:20:16Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
===Prepare===&lt;br /&gt;
&lt;br /&gt;
:1. Download latest [[Banana_Pi_BPI-M4_Berry#System_image | Android image]].&lt;br /&gt;
&lt;br /&gt;
:2. Download and Install [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FTools%2Fimage_download_tools%2Fphoenixsuit_V1.1.0_20150325.rar Allwinner Image Download Tools], PhoenixSuit is for window. &lt;br /&gt;
&lt;br /&gt;
:3. Type-C cable, 5V power supply.&lt;br /&gt;
&lt;br /&gt;
===Install Image with USB tool===&lt;br /&gt;
&lt;br /&gt;
:1. Open PhoenixSuit, click the Firmware icon to switching to firmware download panel, then click Image button and choose the Android Image file.&lt;br /&gt;
&lt;br /&gt;
:[[File:m4-berry_android_1.jpg]]&lt;br /&gt;
:[[File:m4-berry_android_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
:2. Press and hold the SW2 button on M4 Berry while connecting to the computer using type-c, popup a warning dialog.Press Yes.&lt;br /&gt;
&lt;br /&gt;
:[[File:m4-berry_android_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. Download&lt;br /&gt;
&lt;br /&gt;
:[[File:m4-berry_android_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:4. Download finish&lt;br /&gt;
&lt;br /&gt;
:[[File:m4-berry_android_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Build Android Source Code===&lt;br /&gt;
&lt;br /&gt;
:Please read the source code [https://github.com/BPI-SINOVOIP/BPI-H618-Android12/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
===Custom IR===&lt;br /&gt;
:Wiki images support NEC protocol default.&lt;br /&gt;
&lt;br /&gt;
:1. Execute getevent -l | grep MSC_SCAN in the serial port or adb shell, then press the corresponding button on the remote control to obtain the device ID and scancode.&lt;br /&gt;
&lt;br /&gt;
:[[File:m4b_custom_ir_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:The MSC_SCAN data is 32 bits.&lt;br /&gt;
:Bits [31:24] represent the key press status, where 0 indicates release, and 1 indicates press.&lt;br /&gt;
:Bits [23:8] represent the device ID. Use this ID to generate a keylayout file named customer_ir_xxxx.kl. For example, in this case, it would be customer_ir_fe01.kl.&lt;br /&gt;
:Bits [7:0] represent the scancode.&lt;br /&gt;
&lt;br /&gt;
:2. Based on the results of step one, create a new file named customer_ir_xxxx.kl with the following content:&lt;br /&gt;
&lt;br /&gt;
:[[File:m4b_custom_ir_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
:Map the scancodes in the second column to Android keycodes.&lt;br /&gt;
&lt;br /&gt;
:3. Use the adb command to push customer_ir_xxxx.kl to the system.&lt;br /&gt;
&lt;br /&gt;
  $ adb root&lt;br /&gt;
  $ adb remount&lt;br /&gt;
  $ adb push customer_ir_xxxx.kl  /system/usr/keylayout/&lt;br /&gt;
  $ adb reboot&lt;br /&gt;
&lt;br /&gt;
:For source code porting, put the customer_ir_xxxx.kl to vendor/w/common/hardware/input/multi_ir/keylayout/ directory and build the source code.&lt;br /&gt;
&lt;br /&gt;
===Custom Logo===&lt;br /&gt;
&lt;br /&gt;
:1. Boot logo&lt;br /&gt;
&lt;br /&gt;
:Rename the logo file to bootlogo.bmp and put it in longan/device/config/chips/h618/boot-resource/boot-resource/ directory.&lt;br /&gt;
&lt;br /&gt;
:2. Bootanimation logo&lt;br /&gt;
&lt;br /&gt;
:Put bootanimation.zip to device/softwinner/apollo/common/media/bootanimation/ directory.&lt;br /&gt;
&lt;br /&gt;
:3. Launcher logo for Box variant image&lt;br /&gt;
&lt;br /&gt;
:Create a 270x110, 32 bit depth, png image and rename it to aw_logo.png, put it in vendor/aw/common/package/TVLauncher/res/drawable-xhdpi/ directory.&lt;br /&gt;
&lt;br /&gt;
:Then build the source code and flash the image to your board.&lt;br /&gt;
&lt;br /&gt;
===Install Play Store===&lt;br /&gt;
&lt;br /&gt;
:Build the android source code with OpenGApps google play include.&lt;br /&gt;
&lt;br /&gt;
:1. Apply this patch to source code.&lt;br /&gt;
  diff --git a/device/softwinner/apollo/common/opengapps/config.mk &lt;br /&gt;
  b/device/softwinner/apollo/common/opengapps/config.mk&lt;br /&gt;
  index 4c2a7f3..c7ff30e 100644&lt;br /&gt;
  --- a/device/softwinner/apollo/common/opengapps/config.mk&lt;br /&gt;
  +++ b/device/softwinner/apollo/common/opengapps/config.mk&lt;br /&gt;
  @@ -1,4 +1,4 @@&lt;br /&gt;
  -BOARD_BUILD_OPENGAPPS := false&lt;br /&gt;
  +BOARD_BUILD_OPENGAPPS := true&lt;br /&gt;
 &lt;br /&gt;
   ifeq ($(BOARD_BUILD_OPENGAPPS), true)&lt;br /&gt;
   GAPPS_VARIANT := pico&lt;br /&gt;
&lt;br /&gt;
:3. Create /vendor/opengapps folder&lt;br /&gt;
&lt;br /&gt;
:4. Download [https://github.com/opengapps/aosp_build OpenGApps aosp_build] project to /vendor/opengapps/build&lt;br /&gt;
&lt;br /&gt;
:5. Create /vendor/opengapps/sources folder, download [https://gitlab.opengapps.org/opengapps OpenGApps projects] to /vendor/opengapps/sources/&lt;br /&gt;
&lt;br /&gt;
:6. Build the source code and flash image to your board.&lt;br /&gt;
&lt;br /&gt;
===Switch Audio Output===&lt;br /&gt;
&lt;br /&gt;
: The default audio output channel is hdmi, switch it to jack output in Settings-&amp;gt;Sound-&amp;gt;Audio output channel&lt;br /&gt;
&lt;br /&gt;
:[[File:m4b_audio_switch.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare===&lt;br /&gt;
:1. Linux image support SDcard or EMMC bootup, and will boot from the SD card first.&lt;br /&gt;
&lt;br /&gt;
:2. It’s recommended to use A1 rated cards, 8GB at least.&lt;br /&gt;
&lt;br /&gt;
:3. Make sure bootable EMMC is formatted if you want bootup from SDcard.&lt;br /&gt;
&lt;br /&gt;
:4. Make sure SDcard is formatted without Linux image flashed if you want bootup from EMMC and use Sdcard as storage.&lt;br /&gt;
&lt;br /&gt;
:5. Download latest [[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian images]], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
:6. Default login: pi/bananapi or root/bananapi&lt;br /&gt;
&lt;br /&gt;
:7. The wiki guide is only for [[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian images]].&lt;br /&gt;
&lt;br /&gt;
:8. USB-Serial (3.3V). Baud: 115200.&lt;br /&gt;
&lt;br /&gt;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with Balena Etcher on Windows, Linux and MacOS.&lt;br /&gt;
:[https://balena.io/etcher Balena Etcher] is an opensource GUI flash tool by Balena, Flash OS images to SDcard or USB drive.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
===Install Image to eMMC===&lt;br /&gt;
&lt;br /&gt;
1. Make sure that the Linux image has been burned into an SD card and started normally.&lt;br /&gt;
&lt;br /&gt;
2. Enter the following command in the terminal:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. By default, select the first item continuously and press the Enter key to install the Linux system image on the eMMC.&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. The last step is to shut down the computer. At this time, disconnect the power supply, remove the SD card, and power on again to boot from eMMC.&lt;br /&gt;
&lt;br /&gt;
===Erase eMMC===&lt;br /&gt;
&lt;br /&gt;
1. Make sure the Linux image has been burned into an SD card and insert the SD card. By default it will boot from the SD card.&lt;br /&gt;
&lt;br /&gt;
2. Enter the command lsblk in the terminal to list the block device information in the system, such as hard disks, partitions, disks, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0 179:0 0 7.4G 0 disk&lt;br /&gt;
└─mmcblk0p1 179:1 0 7.2G 0 part /var/log.hdd&lt;br /&gt;
                                        /&lt;br /&gt;
mmcblk1 179:32 0 7.3G 0 disk&lt;br /&gt;
└─mmcblk1p1 179:33 0 7.3G 0 part&lt;br /&gt;
mmcblk1boot0 179:64 0 4M 1 disk&lt;br /&gt;
mmcblk1boot1 179:96 0 4M 1 disk&lt;br /&gt;
zram0 252:0 0 993.2M 0 disk [SWAP]&lt;br /&gt;
zram1 252:1 0 50M 0 disk /var/log&lt;br /&gt;
zram2 252:2 0 0B 0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0 is the SD card and mmcblk1 is the eMMC. Enter the following command in the terminal to erase the eMMC. This process takes several minutes and is irreversible. Be careful to back up important data.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ubuntu Desktop===&lt;br /&gt;
&lt;br /&gt;
:1. Using the Ubuntu desktop version system image, you can get a graphical operation interface.&lt;br /&gt;
:2. You need to prepare a monitor with an HDMI interface and an HDMI cable.&lt;br /&gt;
:3. Use an HDMI cable to connect the monitor and BPI-M4 Berry, switch the monitor input interface to the corresponding HDMI interface, power on, and wait a moment to see the desktop.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Debug UART===&lt;br /&gt;
:1. Prepare a 3.3v USB to TTL module.&lt;br /&gt;
:2. Use the USB to TTL module to connect the PC USB port and the Debug UART port on the board.&lt;br /&gt;
:3. Open a serial terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:4. Taking mobaxterm as an example, after setting the serial port number and 115200 baud rate, you can open the BPI-M4 Berry UART terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
:1. Prepare a network cable and a router.&lt;br /&gt;
:2. Use a network cable to connect the LAN port of the router to the BPI-M4 Berry, and also connect the PC to another LAN port.&lt;br /&gt;
:3. Check the IP address of BPI-M4 Berry on the router management interface, or use the following command on the BPI-M4 Berry UART terminal to check the IP address.&lt;br /&gt;
   ifconfig&lt;br /&gt;
&lt;br /&gt;
   eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
         inet 192.168.3.10 netmask 255.255.255.0 broadcast 192.168.3.255&lt;br /&gt;
         inet6 fe80::3e1f:688f:81ab:d8b7 prefixlen 64 scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
         ether 02:00:54:a0:d6:a6 txqueuelen 1000 (Ethernet)&lt;br /&gt;
         RX packets 553 bytes 92549 (92.5 KB)&lt;br /&gt;
         RX errors 0 dropped 0 overruns 0 frame 0&lt;br /&gt;
         TX packets 329 bytes 26023 (26.0 KB)&lt;br /&gt;
         TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0&lt;br /&gt;
         device interrupt 42&lt;br /&gt;
:4. Open an SSH terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:5. Taking mobaxterm as an example, fill in the obtained IP address, such as 192.168.3.10 above, in the IP address column and 22 in the Port port.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6. Open the SSH terminal and enter the login username/password: pi/bananapi or root/bananapi. There will be no prompt when entering the password. Please enter it normally and press Enter when finished.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
===NoMachine Remote Desktop===&lt;br /&gt;
:1. Make sure BPI-M4 Berry is connected to the Internet and use the following command to download the nomachine DEB installation package in the system.&lt;br /&gt;
&lt;br /&gt;
   wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2. Or open [https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64 download page] in a PC browser, download the DEB installation package, and then copy it to BPI-M4 Berry user directory through SSH or USB disk.&lt;br /&gt;
&lt;br /&gt;
:3. After the download is completed, install it through the following command. Note that the file name is based on the actual downloaded file name.&lt;br /&gt;
&lt;br /&gt;
   sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4. PC side also needs to download and install NoMachine. [https://download.nomachine.com NoMachine download page] Select the installation package suitable for the PC operating system, download it locally and complete the installation.&lt;br /&gt;
&lt;br /&gt;
:5. Pay attention to keeping the PC and BPI-M4 Berry in the same LAN. You can try SSH connection first to ensure normal communication within the LAN.&lt;br /&gt;
&lt;br /&gt;
:6. Open NoMachine on the PC, click the Add button, enter the IP address of BPI-M4 Berry in the Host bar in the window after the jump, and then click the Add button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7. Click the recognized port icon, enter the username/password in the new window that pops up, and then click the OK button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8. After completing the subsequent settings, you can see the desktop.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9. If no device is connected to the HDMI interface, the NoMachine remote desktop will display a black screen. It is recommended to keep the HDMI connection or connect an HDMI decoy device.&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
: Use the nmcli command to scan WiFi hotspots, connect to hotspots, and create AP hotspots.&lt;br /&gt;
&lt;br /&gt;
   nmcli device #List devices&lt;br /&gt;
   nmcli device wifi list # List available wifi access points, list can be omitted&lt;br /&gt;
   nmcli device wifi connect [SSID] password [PASSWORD] # Connect to the hotspot mySSID. After the connection is successful, the configuration file will be automatically generated. If you want to connect again in the future, you can use the nmcli connection up [SSID] command.&lt;br /&gt;
   nmcli device disconnect [device name] # Disconnect wifi, use the wifi device name displayed in the nmcli device command&lt;br /&gt;
   nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # Create AP hotspot&lt;br /&gt;
&lt;br /&gt;
   nmcli connection show #List network connection configuration&lt;br /&gt;
   nmcli connection down [NAME] # Deactivate a connection&lt;br /&gt;
   nmcli connection up [NAME] # Activate a connection&lt;br /&gt;
   nmcli connection delete [SSID] #Delete a configuration and no longer save information and automatically connect&lt;br /&gt;
&lt;br /&gt;
   nmcli radio wifi off # Turn off wifi&lt;br /&gt;
   nmcli radio wifi on # Turn on wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli command reference document]&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli command reference examples]&lt;br /&gt;
&lt;br /&gt;
===Set static IP, DNS===&lt;br /&gt;
:1. To set a static IP, you need to maintain the connection first. If you want to set an Ethernet static IP, you must first maintain the Ethernet connection; if you want to set a wireless network static IP, you must first maintain a connection to a WIFI.&lt;br /&gt;
:2. If the upper-level router has assigned the IP address you want to set to other devices, please change it to an idle IP, or ask other devices to give up the IP.&lt;br /&gt;
:3. Use the nmcli connection show command to display all connections, for example:&lt;br /&gt;
   pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
   NAME UUID TYPE DEVICE&lt;br /&gt;
   TP-LINK_5G_7747 e4a49726-adf1-44d7-a621-0e3af96cc390 wifi wlx2cc3e6acd5d7&lt;br /&gt;
   Wired connection 1 612eda94-55dc-3c85-b05e-f16c41775b4e ethernet --&lt;br /&gt;
:4. Use the nmcli connection show [NAME] command to display all the properties of a specific connection, such as:&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747 #If you want to see Ethernet, change to Wired connection 1&lt;br /&gt;
&lt;br /&gt;
   #Only list three common items&lt;br /&gt;
   ipv4.dns: 192.168.3.1 #The default is the gateway address&lt;br /&gt;
   ipv4.addresses: 192.168.3.10/24 #The default is the IP address assigned by the router DHCP&lt;br /&gt;
   ipv4.gateway: 192.168.3.1 #Gateway address, the default is the IP address of the router&lt;br /&gt;
&lt;br /&gt;
:5.Set static IP:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.Set DNS:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.Reset:&lt;br /&gt;
   reboot&lt;br /&gt;
:8. After restarting, check whether the modification is successful:&lt;br /&gt;
   ifconfig&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747&lt;br /&gt;
&lt;br /&gt;
===Network time synchronization===&lt;br /&gt;
:Chrony is an open source free Network Time Protocol NTP client and server software. It allows the computer to keep the system clock synchronized with the clock server (NTP), thus allowing your computer to maintain accurate time. Chrony can also be used as a server software to provide time synchronization services for other computers.&lt;br /&gt;
&lt;br /&gt;
   timedatectl set-ntp false #Disable NTP-based network time synchronization&lt;br /&gt;
&lt;br /&gt;
   sudo apt install chrony #Install chrony&lt;br /&gt;
   systemctl start chrony #Start chrony&lt;br /&gt;
   systemctl enable chrony&lt;br /&gt;
   systemctl status chrony&lt;br /&gt;
   systemctl restart chrony #Restart service&lt;br /&gt;
&lt;br /&gt;
   timedatectl status #View time synchronization status&lt;br /&gt;
   timedatectl list-timezones #View time zone list&lt;br /&gt;
   timedatectl set-timezone Asia/Shanghai #Modify time zone&lt;br /&gt;
   timedatectl set-ntp true #Enable NTP network time synchronization&lt;br /&gt;
&lt;br /&gt;
   date #View time&lt;br /&gt;
   sudo hwclock -r #View hardware clock&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony reference documentation]&lt;br /&gt;
&lt;br /&gt;
===View hardware temperature===&lt;br /&gt;
Enter the following command to view the temperature data returned by the sensor built into the chip on the BPI-M4 Berry board.&lt;br /&gt;
   sensors&lt;br /&gt;
&lt;br /&gt;
===Modify HDMI output resolution===&lt;br /&gt;
:When using the Ubuntu desktop operating system, you can find the Displays column in Settings and modify the resolution.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Use USB disk===&lt;br /&gt;
:1. Prepare a USB disk that has been partitioned normally and insert it into the USB interface of BPI-M4 Berry.&lt;br /&gt;
:2. In the Ubuntu desktop version, you can see that the USB disk has been recognized and can be opened in the file manager, or partition management can be performed through the GParted tool.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. In the terminal, mount the USB disk to the local directory:&lt;br /&gt;
   mkdir mnt #Create a separate directory in the ~/user directory for mounting for easy management&lt;br /&gt;
   cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #List partitions starting with sd&lt;br /&gt;
   sudo mount /dev/sda1 ~/mnt/ #Mount /dev/sda1 to ~/mnt/&lt;br /&gt;
   ls ~/mnt/ #After mounting, you can list the files in the USB disk&lt;br /&gt;
   sudo umount -v /dev/sda1 #umount, then you can remove the USB disk&lt;br /&gt;
&lt;br /&gt;
===Use Audio Devices===&lt;br /&gt;
: Prepare an audio file and copy it to the BPI-M4 Berry Ubuntu desktop system through a USB flash drive or SSH.&lt;br /&gt;
====HDMI audio====&lt;br /&gt;
:1. Prepare a monitor with HDMI audio input function, turn on the relevant functions in the monitor settings, and use an HDMI cable to connect the monitor.&lt;br /&gt;
:2. Set the output device to HDMI Audio in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.Play audio.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm audio jack====&lt;br /&gt;
:1. Prepare a headset or other audio device that uses a 3.5mm plug, insert the plug into the 3.5mm jack of BPI-M4 Berry.&lt;br /&gt;
:2. Set the output device to Audio Codec in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3. Play audio.&lt;br /&gt;
&lt;br /&gt;
====Terminal command to play audio files====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aplay -l #List devices&lt;br /&gt;
aplay -D hw:0,0 [path] #Play the audio file of the specified path&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Use Bluetooth===&lt;br /&gt;
:1. Open settings in the Ubuntu desktop and connect a Bluetooth device, such as a Bluetooth mouse or keyboard, in the Bluetooth bar.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2. The method to connect the Bluetooth device through the command line in the terminal is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #Open the Bluetooth device management tool&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #Start the Bluetooth function, power off to turn it off&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #Allow this device to be discovered&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #Allow device pairing&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #Start scanning&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #The MAC address and device name of a Bluetooth mouse&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #Pair the MAC address of the Bluetooth device you want to connect to&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #pairing successfully&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #Exit the Bluetooth device management tool&lt;br /&gt;
pi@bpi-m4berry:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth reference document]&lt;br /&gt;
&lt;br /&gt;
===Use IR Receiver===&lt;br /&gt;
:1. You need to prepare an infrared remote control using NEC format.&lt;br /&gt;
:2. Enter the following command in the terminal to start receiving infrared signals.&lt;br /&gt;
   sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
   Old keytable cleared&lt;br /&gt;
   Protocols changed to nec&lt;br /&gt;
   Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
   258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_SYN(0x00).&lt;br /&gt;
   260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_SYN(0x00).&lt;br /&gt;
   260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
   260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.719568: event type EV_SYN(0x00).&lt;br /&gt;
   273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_SYN(0x00).&lt;br /&gt;
   273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
   273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
For other commands and specific application methods, please see [https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable reference document]&lt;br /&gt;
&lt;br /&gt;
===Transfer files===&lt;br /&gt;
====scp====&lt;br /&gt;
scp (secure copy) command in Linux system is used to copy file(s) between servers in a secure way. &lt;br /&gt;
&lt;br /&gt;
The SCP command or secure copy allows the secure transferring of files between the local host and the remote host or between two remote hosts. &lt;br /&gt;
&lt;br /&gt;
It uses the same authentication and security as it is used in the Secure Shell (SSH) protocol.&lt;br /&gt;
&lt;br /&gt;
You can copy files from a Windows terminal to a Linux system on the same LAN. Just make sure the Open SSH client is turned on and can be viewed in Settings &amp;gt; Applications &amp;gt; Optional Features.&lt;br /&gt;
&lt;br /&gt;
If you want to copy files from Windows systems to Linux systems, you also need to enable the Open SSH server.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
The scp command format is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optionals] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optionals]&amp;lt;/nowiki&amp;gt; is an optional parameter, such as -r, which can be used to copy the entire directory recursively.&lt;br /&gt;
&lt;br /&gt;
::2.file_source The file or directory to be copied.&lt;br /&gt;
&lt;br /&gt;
::3.file_target will copy the past path and rename it if a specific file name is entered at the end.&lt;br /&gt;
&lt;br /&gt;
Take copying local files from a Windows system to a Linux system as an example. In the Windows terminal, enter:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also copy files in the Linux system to the local computer in the Windows terminal:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Where pi@192.168.3.12 is the user name in the Linux system and the IP address of the BPI-M4 Berry in the LAN.&lt;br /&gt;
:: Where &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; is the file path in the Linux system.&lt;br /&gt;
:: Where &amp;quot;D:\temp\temp_4&amp;quot; is the path in Windows system.&lt;br /&gt;
&lt;br /&gt;
[https://www.geeksforgeeks.org/scp-command-in-linux-with-examples/ scp reference document]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
Files can be managed through a graphical interface using mobaxterm or other similar software.&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm download]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux preview version]&lt;br /&gt;
&lt;br /&gt;
As shown in the figure below, after establishing an SSH connection in mobaxterm, a file management window will appear on the left side of the interface, which supports copying and pasting by dragging and dropping files.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;br /&gt;
&lt;br /&gt;
===40 pin interface GPIO, I2C, UART, SPI, and PWM testing===&lt;br /&gt;
====GPIO====&lt;br /&gt;
Control the GPIO port to light up the LED light.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Set the high and low levels of GPIO'''&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_gpio.jpg]]&lt;br /&gt;
&lt;br /&gt;
The following is a demonstration using 7 pin.&lt;br /&gt;
&lt;br /&gt;
Insert the LED light and you can see that it is not lit up.&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
 gpio mode 2 out&lt;br /&gt;
:to set it to output mode.&lt;br /&gt;
&lt;br /&gt;
: 2.Execute&lt;br /&gt;
 gpio write 2 1&lt;br /&gt;
:You can see that the LED light has been turned on.&lt;br /&gt;
:[[File:M4_Berry_gpio_led_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Execute&lt;br /&gt;
 gpio write 2 0&lt;br /&gt;
:You can see that the LED light has been turned off.&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Set pull-up and pull-down resistors'''&lt;br /&gt;
: 1.Firstly, it is necessary to set the GPIO port to input mode&lt;br /&gt;
 gpio mode 2 in&lt;br /&gt;
&lt;br /&gt;
: 2.Then set the GPIO port as an pull-up resistor&lt;br /&gt;
 gpio mode 2 up&lt;br /&gt;
:The LED light is lit up again&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Finally, set the GPIO port to dropdown mode&lt;br /&gt;
 gpio mode 2 down&lt;br /&gt;
:The LED light goes out again&lt;br /&gt;
:[[File:M4_Berry_gpio_led_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====I2C====&lt;br /&gt;
&lt;br /&gt;
According to the schematic diagram, the available i2cs are i2c3 and i2c4&lt;br /&gt;
:[[File:M4_Berry_gpio_i2c.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.Select &amp;quot;pg-i2c3&amp;quot;and&amp;quot;pg-i2c4&amp;quot;&lt;br /&gt;
:[[File:M4_Berry_bananapi_config_i2c.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are i2c-3 and i2c-4 nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/i2c-3&lt;br /&gt;
 /dev/i2c-3&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/i2c-4&lt;br /&gt;
 /dev/i2c-4&lt;br /&gt;
&lt;br /&gt;
: 8. Execute&lt;br /&gt;
&lt;br /&gt;
 cd /usr/src/wiringPi/examples/&lt;br /&gt;
 gcc ./oled_demo.c -o oled -lwiringPi&lt;br /&gt;
&lt;br /&gt;
: 9.Connect the i2c device to the pin of i2c3. Execute&lt;br /&gt;
&lt;br /&gt;
 sudo ./oled /dev/i2c-3&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_i2c_3_led.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 10.Connect the i2c device to the pin of i2c4. Execute&lt;br /&gt;
&lt;br /&gt;
 sudo ./oled /dev/i2c-4&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_i2c_4_led.jpg]]&lt;br /&gt;
&lt;br /&gt;
====UART====&lt;br /&gt;
By reviewing the schematic, it can be found that the available uart are uart1 and uart5.&lt;br /&gt;
:[[File:M4_Berry_gpio_uart.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Uart1 and Uart5 is closed by default and needs to be opened. Execute&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.If you want to use uart1,select&amp;quot;pg-uart1&amp;quot;.If you want to use uart5,select&amp;quot;ph-uart5&amp;quot;&lt;br /&gt;
:[[File:M4_Berry_bananapi_config_uart.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are ttyS5 nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/ttyS5&lt;br /&gt;
 /dev/ttyS5&lt;br /&gt;
&lt;br /&gt;
: 8:Short circuit uart1 pin or uart5 and execute&lt;br /&gt;
 gpio serial /dev/ttyS1&lt;br /&gt;
:[[File:M4_Berry_gpio_uart1.jpg]]&lt;br /&gt;
:[[File:M4_Berry_gpio_uart5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SPI====&lt;br /&gt;
By reviewing the schematic, it can be found that the available spi is spi1.&lt;br /&gt;
:[[File:M4 Berry-sch-gpio-spi.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.Select &amp;quot;spi1-cs1-spidev&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are SPI nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/spidev1.1&lt;br /&gt;
 /dev/spidev1.1&lt;br /&gt;
&lt;br /&gt;
: 8.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo spidev_test -v -D /dev/spidev1.1&lt;br /&gt;
&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:It can be seen that TX and RX are different. So, we need to short-circuit MOSI and MISO and execute the command again.&lt;br /&gt;
&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====PWM====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HDMI LCD===&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Bananapi M4 Berry Tested HDMI LCD'''&lt;br /&gt;
|-&lt;br /&gt;
|panel || Test Video&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/3.5inch-hdmi-lcd.htm Waveshare 3.5inch 480x320] || &lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/3.5inch-hdmi-lcd-e.htm Waveshare 3.5inch 640x480] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/4inch-hdmi-lcd-c.htm Waveshare 4inch 720x720] || https://youtu.be/CRcjx6_29rA&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/5inch-hdmi-amoled.htm Waveshare 5inch 960x544] || https://youtu.be/0wZ3lWQQTkQ&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/5inch-hdmi-lcd-h.htm Waveshare 5inch 800x480] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/5.5inch-1440x2560-lcd.htm Waveshare 5.5inch 1440x2560] || https://youtu.be/z9gTHa3i8Ag&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/7inch-hdmi-lcd-b.htm Waveshare 7inch 800x480] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/7inch-hdmi-lcd-c.htm Waveshare 7inch 1024x600] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/7.9inch-HDMI-LCD.htm Waveshare 7.9inch 400x1280] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/8inch-1536x2048-LCD.htm Waveshare 8inch 1536x2048] || https://youtu.be/Qjwo4vVBQmo&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/8.8inch-Side-Monitor.htm Waveshare 8.8inch 480x1920] || https://youtu.be/SP9-HGrY6-M&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/9inch-2560x1600-Monitor.htm Waveshare 9inch 2560x1600] || setenv display_autodetect &amp;quot;false&amp;quot;&lt;br /&gt;
setenv hdmimode &amp;quot;2560x1600p60hz&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/10.1inch-HDMI-LCD-E.htm Waveshare 10.1inch 1024x600] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/10.1inch-hdmi-lcd-b-with-case.htm Waveshare 10.1inch 1280x800] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/11.9inch-HDMI-LCD.htm Waveshare 11.9inch 320x1480] || https://youtu.be/WA1yBGcYZds&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/12.3inch-hdmi-lcd.htm Waveshare 12.3inch 1920x720] || https://youtu.be/OJfqtHlgDvk&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/13.3inch-HDMI-LCD-H.htm Waveshare 13.3inch 1920x1080] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/15.6inch-hdmi-lcd-h-with-case.htm Waveshare 15.6inch 1920x1080] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: backlight control&lt;br /&gt;
&lt;br /&gt;
  https://github.com/Dangku/Waveshare-USB-Brightness&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16914</id>
		<title>Getting Started with BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16914"/>
				<updated>2024-01-17T07:39:28Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* UART */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare===&lt;br /&gt;
:1. Linux image support SDcard or EMMC bootup, and will boot from the SD card first.&lt;br /&gt;
&lt;br /&gt;
:2. It’s recommended to use A1 rated cards, 8GB at least.&lt;br /&gt;
&lt;br /&gt;
:3. Make sure bootable EMMC is formatted if you want bootup from SDcard.&lt;br /&gt;
&lt;br /&gt;
:4. Make sure SDcard is formatted without Linux image flashed if you want bootup from EMMC and use Sdcard as storage.&lt;br /&gt;
&lt;br /&gt;
:5. Download latest [[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian images]], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
:6. Default login: pi/bananapi or root/bananapi&lt;br /&gt;
&lt;br /&gt;
:7. The wiki guide is only for [[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian images]].&lt;br /&gt;
&lt;br /&gt;
:8. USB-Serial (3.3V). Baud: 115200.&lt;br /&gt;
&lt;br /&gt;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with Balena Etcher on Windows, Linux and MacOS.&lt;br /&gt;
:[https://balena.io/etcher Balena Etcher] is an opensource GUI flash tool by Balena, Flash OS images to SDcard or USB drive.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
===Install Image to eMMC===&lt;br /&gt;
&lt;br /&gt;
1. Make sure that the Linux image has been burned into an SD card and started normally.&lt;br /&gt;
&lt;br /&gt;
2. Enter the following command in the terminal:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. By default, select the first item continuously and press the Enter key to install the Linux system image on the eMMC.&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. The last step is to shut down the computer. At this time, disconnect the power supply, remove the SD card, and power on again to boot from eMMC.&lt;br /&gt;
&lt;br /&gt;
===Erase eMMC===&lt;br /&gt;
&lt;br /&gt;
1. Make sure the Linux image has been burned into an SD card and insert the SD card. By default it will boot from the SD card.&lt;br /&gt;
&lt;br /&gt;
2. Enter the command lsblk in the terminal to list the block device information in the system, such as hard disks, partitions, disks, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0 179:0 0 7.4G 0 disk&lt;br /&gt;
└─mmcblk0p1 179:1 0 7.2G 0 part /var/log.hdd&lt;br /&gt;
                                        /&lt;br /&gt;
mmcblk1 179:32 0 7.3G 0 disk&lt;br /&gt;
└─mmcblk1p1 179:33 0 7.3G 0 part&lt;br /&gt;
mmcblk1boot0 179:64 0 4M 1 disk&lt;br /&gt;
mmcblk1boot1 179:96 0 4M 1 disk&lt;br /&gt;
zram0 252:0 0 993.2M 0 disk [SWAP]&lt;br /&gt;
zram1 252:1 0 50M 0 disk /var/log&lt;br /&gt;
zram2 252:2 0 0B 0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0 is the SD card and mmcblk1 is the eMMC. Enter the following command in the terminal to erase the eMMC. This process takes several minutes and is irreversible. Be careful to back up important data.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ubuntu Desktop===&lt;br /&gt;
&lt;br /&gt;
:1. Using the Ubuntu desktop version system image, you can get a graphical operation interface.&lt;br /&gt;
:2. You need to prepare a monitor with an HDMI interface and an HDMI cable.&lt;br /&gt;
:3. Use an HDMI cable to connect the monitor and BPI-M4 Berry, switch the monitor input interface to the corresponding HDMI interface, power on, and wait a moment to see the desktop.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Debug UART===&lt;br /&gt;
:1. Prepare a 3.3v USB to TTL module.&lt;br /&gt;
:2. Use the USB to TTL module to connect the PC USB port and the Debug UART port on the board.&lt;br /&gt;
:3. Open a serial terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:4. Taking mobaxterm as an example, after setting the serial port number and 115200 baud rate, you can open the BPI-M4 Berry UART terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
:1. Prepare a network cable and a router.&lt;br /&gt;
:2. Use a network cable to connect the LAN port of the router to the BPI-M4 Berry, and also connect the PC to another LAN port.&lt;br /&gt;
:3. Check the IP address of BPI-M4 Berry on the router management interface, or use the following command on the BPI-M4 Berry UART terminal to check the IP address.&lt;br /&gt;
   ifconfig&lt;br /&gt;
&lt;br /&gt;
   eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
         inet 192.168.3.10 netmask 255.255.255.0 broadcast 192.168.3.255&lt;br /&gt;
         inet6 fe80::3e1f:688f:81ab:d8b7 prefixlen 64 scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
         ether 02:00:54:a0:d6:a6 txqueuelen 1000 (Ethernet)&lt;br /&gt;
         RX packets 553 bytes 92549 (92.5 KB)&lt;br /&gt;
         RX errors 0 dropped 0 overruns 0 frame 0&lt;br /&gt;
         TX packets 329 bytes 26023 (26.0 KB)&lt;br /&gt;
         TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0&lt;br /&gt;
         device interrupt 42&lt;br /&gt;
:4. Open an SSH terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:5. Taking mobaxterm as an example, fill in the obtained IP address, such as 192.168.3.10 above, in the IP address column and 22 in the Port port.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6. Open the SSH terminal and enter the login username/password: pi/bananapi or root/bananapi. There will be no prompt when entering the password. Please enter it normally and press Enter when finished.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
===NoMachine Remote Desktop===&lt;br /&gt;
:1. Make sure BPI-M4 Berry is connected to the Internet and use the following command to download the nomachine DEB installation package in the system.&lt;br /&gt;
&lt;br /&gt;
   wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2. Or open [https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64 download page] in a PC browser, download the DEB installation package, and then copy it to BPI-M4 Berry user directory through SSH or USB disk.&lt;br /&gt;
&lt;br /&gt;
:3. After the download is completed, install it through the following command. Note that the file name is based on the actual downloaded file name.&lt;br /&gt;
&lt;br /&gt;
   sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4. PC side also needs to download and install NoMachine. [https://download.nomachine.com NoMachine download page] Select the installation package suitable for the PC operating system, download it locally and complete the installation.&lt;br /&gt;
&lt;br /&gt;
:5. Pay attention to keeping the PC and BPI-M4 Berry in the same LAN. You can try SSH connection first to ensure normal communication within the LAN.&lt;br /&gt;
&lt;br /&gt;
:6. Open NoMachine on the PC, click the Add button, enter the IP address of BPI-M4 Berry in the Host bar in the window after the jump, and then click the Add button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7. Click the recognized port icon, enter the username/password in the new window that pops up, and then click the OK button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8. After completing the subsequent settings, you can see the desktop.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9. If no device is connected to the HDMI interface, the NoMachine remote desktop will display a black screen. It is recommended to keep the HDMI connection or connect an HDMI decoy device.&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
: Use the nmcli command to scan WiFi hotspots, connect to hotspots, and create AP hotspots.&lt;br /&gt;
&lt;br /&gt;
   nmcli device #List devices&lt;br /&gt;
   nmcli device wifi list # List available wifi access points, list can be omitted&lt;br /&gt;
   nmcli device wifi connect [SSID] password [PASSWORD] # Connect to the hotspot mySSID. After the connection is successful, the configuration file will be automatically generated. If you want to connect again in the future, you can use the nmcli connection up [SSID] command.&lt;br /&gt;
   nmcli device disconnect [device name] # Disconnect wifi, use the wifi device name displayed in the nmcli device command&lt;br /&gt;
   nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # Create AP hotspot&lt;br /&gt;
&lt;br /&gt;
   nmcli connection show #List network connection configuration&lt;br /&gt;
   nmcli connection down [NAME] # Deactivate a connection&lt;br /&gt;
   nmcli connection up [NAME] # Activate a connection&lt;br /&gt;
   nmcli connection delete [SSID] #Delete a configuration and no longer save information and automatically connect&lt;br /&gt;
&lt;br /&gt;
   nmcli radio wifi off # Turn off wifi&lt;br /&gt;
   nmcli radio wifi on # Turn on wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli command reference document]&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli command reference examples]&lt;br /&gt;
&lt;br /&gt;
===Set static IP, DNS===&lt;br /&gt;
:1. To set a static IP, you need to maintain the connection first. If you want to set an Ethernet static IP, you must first maintain the Ethernet connection; if you want to set a wireless network static IP, you must first maintain a connection to a WIFI.&lt;br /&gt;
:2. If the upper-level router has assigned the IP address you want to set to other devices, please change it to an idle IP, or ask other devices to give up the IP.&lt;br /&gt;
:3. Use the nmcli connection show command to display all connections, for example:&lt;br /&gt;
   pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
   NAME UUID TYPE DEVICE&lt;br /&gt;
   TP-LINK_5G_7747 e4a49726-adf1-44d7-a621-0e3af96cc390 wifi wlx2cc3e6acd5d7&lt;br /&gt;
   Wired connection 1 612eda94-55dc-3c85-b05e-f16c41775b4e ethernet --&lt;br /&gt;
:4. Use the nmcli connection show [NAME] command to display all the properties of a specific connection, such as:&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747 #If you want to see Ethernet, change to Wired connection 1&lt;br /&gt;
&lt;br /&gt;
   #Only list three common items&lt;br /&gt;
   ipv4.dns: 192.168.3.1 #The default is the gateway address&lt;br /&gt;
   ipv4.addresses: 192.168.3.10/24 #The default is the IP address assigned by the router DHCP&lt;br /&gt;
   ipv4.gateway: 192.168.3.1 #Gateway address, the default is the IP address of the router&lt;br /&gt;
&lt;br /&gt;
:5.Set static IP:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.Set DNS:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.Reset:&lt;br /&gt;
   reboot&lt;br /&gt;
:8. After restarting, check whether the modification is successful:&lt;br /&gt;
   ifconfig&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747&lt;br /&gt;
&lt;br /&gt;
===Network time synchronization===&lt;br /&gt;
:Chrony is an open source free Network Time Protocol NTP client and server software. It allows the computer to keep the system clock synchronized with the clock server (NTP), thus allowing your computer to maintain accurate time. Chrony can also be used as a server software to provide time synchronization services for other computers.&lt;br /&gt;
&lt;br /&gt;
   timedatectl set-ntp false #Disable NTP-based network time synchronization&lt;br /&gt;
&lt;br /&gt;
   sudo apt install chrony #Install chrony&lt;br /&gt;
   systemctl start chrony #Start chrony&lt;br /&gt;
   systemctl enable chrony&lt;br /&gt;
   systemctl status chrony&lt;br /&gt;
   systemctl restart chrony #Restart service&lt;br /&gt;
&lt;br /&gt;
   timedatectl status #View time synchronization status&lt;br /&gt;
   timedatectl list-timezones #View time zone list&lt;br /&gt;
   timedatectl set-timezone Asia/Shanghai #Modify time zone&lt;br /&gt;
   timedatectl set-ntp true #Enable NTP network time synchronization&lt;br /&gt;
&lt;br /&gt;
   date #View time&lt;br /&gt;
   sudo hwclock -r #View hardware clock&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony reference documentation]&lt;br /&gt;
&lt;br /&gt;
===View hardware temperature===&lt;br /&gt;
Enter the following command to view the temperature data returned by the sensor built into the chip on the BPI-M4 Berry board.&lt;br /&gt;
   sensors&lt;br /&gt;
&lt;br /&gt;
===Modify HDMI output resolution===&lt;br /&gt;
:When using the Ubuntu desktop operating system, you can find the Displays column in Settings and modify the resolution.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Use USB disk===&lt;br /&gt;
:1. Prepare a USB disk that has been partitioned normally and insert it into the USB interface of BPI-M4 Berry.&lt;br /&gt;
:2. In the Ubuntu desktop version, you can see that the USB disk has been recognized and can be opened in the file manager, or partition management can be performed through the GParted tool.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. In the terminal, mount the USB disk to the local directory:&lt;br /&gt;
   mkdir mnt #Create a separate directory in the ~/user directory for mounting for easy management&lt;br /&gt;
   cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #List partitions starting with sd&lt;br /&gt;
   sudo mount /dev/sda1 ~/mnt/ #Mount /dev/sda1 to ~/mnt/&lt;br /&gt;
   ls ~/mnt/ #After mounting, you can list the files in the USB disk&lt;br /&gt;
   sudo umount -v /dev/sda1 #umount, then you can remove the USB disk&lt;br /&gt;
&lt;br /&gt;
===Use Audio Devices===&lt;br /&gt;
: Prepare an audio file and copy it to the BPI-M4 Berry Ubuntu desktop system through a USB flash drive or SSH.&lt;br /&gt;
====HDMI audio====&lt;br /&gt;
:1. Prepare a monitor with HDMI audio input function, turn on the relevant functions in the monitor settings, and use an HDMI cable to connect the monitor.&lt;br /&gt;
:2. Set the output device to HDMI Audio in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.Play audio.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm audio jack====&lt;br /&gt;
:1. Prepare a headset or other audio device that uses a 3.5mm plug, insert the plug into the 3.5mm jack of BPI-M4 Berry.&lt;br /&gt;
:2. Set the output device to Audio Codec in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3. Play audio.&lt;br /&gt;
&lt;br /&gt;
====Terminal command to play audio files====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aplay -l #List devices&lt;br /&gt;
aplay -D hw:0,0 [path] #Play the audio file of the specified path&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Use Bluetooth===&lt;br /&gt;
:1. Open settings in the Ubuntu desktop and connect a Bluetooth device, such as a Bluetooth mouse or keyboard, in the Bluetooth bar.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2. The method to connect the Bluetooth device through the command line in the terminal is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #Open the Bluetooth device management tool&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #Start the Bluetooth function, power off to turn it off&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #Allow this device to be discovered&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #Allow device pairing&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #Start scanning&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #The MAC address and device name of a Bluetooth mouse&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #Pair the MAC address of the Bluetooth device you want to connect to&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #pairing successfully&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #Exit the Bluetooth device management tool&lt;br /&gt;
pi@bpi-m4berry:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth reference document]&lt;br /&gt;
&lt;br /&gt;
===Use IR Receiver===&lt;br /&gt;
:1. You need to prepare an infrared remote control using NEC format.&lt;br /&gt;
:2. Enter the following command in the terminal to start receiving infrared signals.&lt;br /&gt;
   sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
   Old keytable cleared&lt;br /&gt;
   Protocols changed to nec&lt;br /&gt;
   Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
   258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_SYN(0x00).&lt;br /&gt;
   260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_SYN(0x00).&lt;br /&gt;
   260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
   260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.719568: event type EV_SYN(0x00).&lt;br /&gt;
   273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_SYN(0x00).&lt;br /&gt;
   273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
   273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
For other commands and specific application methods, please see [https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable reference document]&lt;br /&gt;
&lt;br /&gt;
===Transfer files===&lt;br /&gt;
====scp====&lt;br /&gt;
scp (secure copy) command in Linux system is used to copy file(s) between servers in a secure way. &lt;br /&gt;
&lt;br /&gt;
The SCP command or secure copy allows the secure transferring of files between the local host and the remote host or between two remote hosts. &lt;br /&gt;
&lt;br /&gt;
It uses the same authentication and security as it is used in the Secure Shell (SSH) protocol.&lt;br /&gt;
&lt;br /&gt;
You can copy files from a Windows terminal to a Linux system on the same LAN. Just make sure the Open SSH client is turned on and can be viewed in Settings &amp;gt; Applications &amp;gt; Optional Features.&lt;br /&gt;
&lt;br /&gt;
If you want to copy files from Windows systems to Linux systems, you also need to enable the Open SSH server.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
The scp command format is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optionals] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optionals]&amp;lt;/nowiki&amp;gt; is an optional parameter, such as -r, which can be used to copy the entire directory recursively.&lt;br /&gt;
&lt;br /&gt;
::2.file_source The file or directory to be copied.&lt;br /&gt;
&lt;br /&gt;
::3.file_target will copy the past path and rename it if a specific file name is entered at the end.&lt;br /&gt;
&lt;br /&gt;
Take copying local files from a Windows system to a Linux system as an example. In the Windows terminal, enter:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also copy files in the Linux system to the local computer in the Windows terminal:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Where pi@192.168.3.12 is the user name in the Linux system and the IP address of the BPI-M4 Berry in the LAN.&lt;br /&gt;
:: Where &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; is the file path in the Linux system.&lt;br /&gt;
:: Where &amp;quot;D:\temp\temp_4&amp;quot; is the path in Windows system.&lt;br /&gt;
&lt;br /&gt;
[https://www.geeksforgeeks.org/scp-command-in-linux-with-examples/ scp reference document]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
Files can be managed through a graphical interface using mobaxterm or other similar software.&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm download]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux preview version]&lt;br /&gt;
&lt;br /&gt;
As shown in the figure below, after establishing an SSH connection in mobaxterm, a file management window will appear on the left side of the interface, which supports copying and pasting by dragging and dropping files.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;br /&gt;
&lt;br /&gt;
===40 pin interface GPIO, I2C, UART, SPI, and PWM testing===&lt;br /&gt;
====GPIO====&lt;br /&gt;
Control the GPIO port to light up the LED light.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Set the high and low levels of GPIO'''&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_gpio.jpg]]&lt;br /&gt;
&lt;br /&gt;
The following is a demonstration using 7 pin.&lt;br /&gt;
&lt;br /&gt;
Insert the LED light and you can see that it is not lit up.&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
 gpio mode 2 out&lt;br /&gt;
:to set it to output mode.&lt;br /&gt;
&lt;br /&gt;
: 2.Execute&lt;br /&gt;
 gpio write 2 1&lt;br /&gt;
:You can see that the LED light has been turned on.&lt;br /&gt;
:[[File:M4_Berry_gpio_led_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Execute&lt;br /&gt;
 gpio write 2 0&lt;br /&gt;
:You can see that the LED light has been turned off.&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Set pull-up and pull-down resistors'''&lt;br /&gt;
: 1.Firstly, it is necessary to set the GPIO port to input mode&lt;br /&gt;
 gpio mode 2 in&lt;br /&gt;
&lt;br /&gt;
: 2.Then set the GPIO port as an pull-up resistor&lt;br /&gt;
 gpio mode 2 up&lt;br /&gt;
:The LED light is lit up again&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Finally, set the GPIO port to dropdown mode&lt;br /&gt;
 gpio mode 2 down&lt;br /&gt;
:The LED light goes out again&lt;br /&gt;
:[[File:M4_Berry_gpio_led_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====I2C====&lt;br /&gt;
&lt;br /&gt;
According to the schematic diagram, the available i2cs are i2c3 and i2c4&lt;br /&gt;
:[[File:M4_Berry_gpio_i2c.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.Select &amp;quot;pg-i2c3&amp;quot;and&amp;quot;pg-i2c4&amp;quot;&lt;br /&gt;
:[[File:M4_Berry_bananapi_config_i2c.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are i2c-3 and i2c-4 nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/i2c-3&lt;br /&gt;
 /dev/i2c-3&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/i2c-4&lt;br /&gt;
 /dev/i2c-4&lt;br /&gt;
&lt;br /&gt;
: 8. Execute&lt;br /&gt;
&lt;br /&gt;
 cd /usr/src/wiringPi/examples/&lt;br /&gt;
 gcc ./oled_demo.c -o oled -lwiringPi&lt;br /&gt;
&lt;br /&gt;
: 9.Connect the i2c device to the pin of i2c3. Execute&lt;br /&gt;
&lt;br /&gt;
 sudo ./oled /dev/i2c-3&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_i2c_3_led.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 10.Connect the i2c device to the pin of i2c4. Execute&lt;br /&gt;
&lt;br /&gt;
 sudo ./oled /dev/i2c-4&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_i2c_4_led.jpg]]&lt;br /&gt;
&lt;br /&gt;
====UART====&lt;br /&gt;
By reviewing the schematic, it can be found that the available uart are uart1 and uart5.&lt;br /&gt;
:[[File:M4_Berry_gpio_uart.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Uart1 and Uart5 is closed by default and needs to be opened. Execute&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.If you want to use uart1,select&amp;quot;pg-uart1&amp;quot;.If you want to use uart5,select&amp;quot;ph-uart5&amp;quot;&lt;br /&gt;
:[[File:M4_Berry_bananapi_config_uart.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are ttyS5 nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/ttyS5&lt;br /&gt;
 /dev/ttyS5&lt;br /&gt;
&lt;br /&gt;
: 8:Short circuit uart1 pin or uart5 and execute&lt;br /&gt;
 gpio serial /dev/ttyS1&lt;br /&gt;
:[[File:M4_Berry_gpio_uart1.jpg]]&lt;br /&gt;
:[[File:M4_Berry_gpio_uart5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SPI====&lt;br /&gt;
By reviewing the schematic, it can be found that the available spi is spi1.&lt;br /&gt;
:[[File:M4 Berry-sch-gpio-spi.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.Select &amp;quot;spi1-cs1-spidev&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are SPI nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/spidev1.1&lt;br /&gt;
 /dev/spidev1.1&lt;br /&gt;
&lt;br /&gt;
: 8.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo spidev_test -v -D /dev/spidev1.1&lt;br /&gt;
&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:It can be seen that TX and RX are different. So, we need to short-circuit MOSI and MISO and execute the command again.&lt;br /&gt;
&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====PWM====&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16913</id>
		<title>Getting Started with BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16913"/>
				<updated>2024-01-17T07:37:49Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* UART */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare===&lt;br /&gt;
:1. Linux image support SDcard or EMMC bootup, and will boot from the SD card first.&lt;br /&gt;
&lt;br /&gt;
:2. It’s recommended to use A1 rated cards, 8GB at least.&lt;br /&gt;
&lt;br /&gt;
:3. Make sure bootable EMMC is formatted if you want bootup from SDcard.&lt;br /&gt;
&lt;br /&gt;
:4. Make sure SDcard is formatted without Linux image flashed if you want bootup from EMMC and use Sdcard as storage.&lt;br /&gt;
&lt;br /&gt;
:5. Download latest [[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian images]], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
:6. Default login: pi/bananapi or root/bananapi&lt;br /&gt;
&lt;br /&gt;
:7. The wiki guide is only for [[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian images]].&lt;br /&gt;
&lt;br /&gt;
:8. USB-Serial (3.3V). Baud: 115200.&lt;br /&gt;
&lt;br /&gt;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with Balena Etcher on Windows, Linux and MacOS.&lt;br /&gt;
:[https://balena.io/etcher Balena Etcher] is an opensource GUI flash tool by Balena, Flash OS images to SDcard or USB drive.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
===Install Image to eMMC===&lt;br /&gt;
&lt;br /&gt;
1. Make sure that the Linux image has been burned into an SD card and started normally.&lt;br /&gt;
&lt;br /&gt;
2. Enter the following command in the terminal:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. By default, select the first item continuously and press the Enter key to install the Linux system image on the eMMC.&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. The last step is to shut down the computer. At this time, disconnect the power supply, remove the SD card, and power on again to boot from eMMC.&lt;br /&gt;
&lt;br /&gt;
===Erase eMMC===&lt;br /&gt;
&lt;br /&gt;
1. Make sure the Linux image has been burned into an SD card and insert the SD card. By default it will boot from the SD card.&lt;br /&gt;
&lt;br /&gt;
2. Enter the command lsblk in the terminal to list the block device information in the system, such as hard disks, partitions, disks, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0 179:0 0 7.4G 0 disk&lt;br /&gt;
└─mmcblk0p1 179:1 0 7.2G 0 part /var/log.hdd&lt;br /&gt;
                                        /&lt;br /&gt;
mmcblk1 179:32 0 7.3G 0 disk&lt;br /&gt;
└─mmcblk1p1 179:33 0 7.3G 0 part&lt;br /&gt;
mmcblk1boot0 179:64 0 4M 1 disk&lt;br /&gt;
mmcblk1boot1 179:96 0 4M 1 disk&lt;br /&gt;
zram0 252:0 0 993.2M 0 disk [SWAP]&lt;br /&gt;
zram1 252:1 0 50M 0 disk /var/log&lt;br /&gt;
zram2 252:2 0 0B 0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0 is the SD card and mmcblk1 is the eMMC. Enter the following command in the terminal to erase the eMMC. This process takes several minutes and is irreversible. Be careful to back up important data.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ubuntu Desktop===&lt;br /&gt;
&lt;br /&gt;
:1. Using the Ubuntu desktop version system image, you can get a graphical operation interface.&lt;br /&gt;
:2. You need to prepare a monitor with an HDMI interface and an HDMI cable.&lt;br /&gt;
:3. Use an HDMI cable to connect the monitor and BPI-M4 Berry, switch the monitor input interface to the corresponding HDMI interface, power on, and wait a moment to see the desktop.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Debug UART===&lt;br /&gt;
:1. Prepare a 3.3v USB to TTL module.&lt;br /&gt;
:2. Use the USB to TTL module to connect the PC USB port and the Debug UART port on the board.&lt;br /&gt;
:3. Open a serial terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:4. Taking mobaxterm as an example, after setting the serial port number and 115200 baud rate, you can open the BPI-M4 Berry UART terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
:1. Prepare a network cable and a router.&lt;br /&gt;
:2. Use a network cable to connect the LAN port of the router to the BPI-M4 Berry, and also connect the PC to another LAN port.&lt;br /&gt;
:3. Check the IP address of BPI-M4 Berry on the router management interface, or use the following command on the BPI-M4 Berry UART terminal to check the IP address.&lt;br /&gt;
   ifconfig&lt;br /&gt;
&lt;br /&gt;
   eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
         inet 192.168.3.10 netmask 255.255.255.0 broadcast 192.168.3.255&lt;br /&gt;
         inet6 fe80::3e1f:688f:81ab:d8b7 prefixlen 64 scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
         ether 02:00:54:a0:d6:a6 txqueuelen 1000 (Ethernet)&lt;br /&gt;
         RX packets 553 bytes 92549 (92.5 KB)&lt;br /&gt;
         RX errors 0 dropped 0 overruns 0 frame 0&lt;br /&gt;
         TX packets 329 bytes 26023 (26.0 KB)&lt;br /&gt;
         TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0&lt;br /&gt;
         device interrupt 42&lt;br /&gt;
:4. Open an SSH terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:5. Taking mobaxterm as an example, fill in the obtained IP address, such as 192.168.3.10 above, in the IP address column and 22 in the Port port.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6. Open the SSH terminal and enter the login username/password: pi/bananapi or root/bananapi. There will be no prompt when entering the password. Please enter it normally and press Enter when finished.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
===NoMachine Remote Desktop===&lt;br /&gt;
:1. Make sure BPI-M4 Berry is connected to the Internet and use the following command to download the nomachine DEB installation package in the system.&lt;br /&gt;
&lt;br /&gt;
   wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2. Or open [https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64 download page] in a PC browser, download the DEB installation package, and then copy it to BPI-M4 Berry user directory through SSH or USB disk.&lt;br /&gt;
&lt;br /&gt;
:3. After the download is completed, install it through the following command. Note that the file name is based on the actual downloaded file name.&lt;br /&gt;
&lt;br /&gt;
   sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4. PC side also needs to download and install NoMachine. [https://download.nomachine.com NoMachine download page] Select the installation package suitable for the PC operating system, download it locally and complete the installation.&lt;br /&gt;
&lt;br /&gt;
:5. Pay attention to keeping the PC and BPI-M4 Berry in the same LAN. You can try SSH connection first to ensure normal communication within the LAN.&lt;br /&gt;
&lt;br /&gt;
:6. Open NoMachine on the PC, click the Add button, enter the IP address of BPI-M4 Berry in the Host bar in the window after the jump, and then click the Add button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7. Click the recognized port icon, enter the username/password in the new window that pops up, and then click the OK button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8. After completing the subsequent settings, you can see the desktop.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9. If no device is connected to the HDMI interface, the NoMachine remote desktop will display a black screen. It is recommended to keep the HDMI connection or connect an HDMI decoy device.&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
: Use the nmcli command to scan WiFi hotspots, connect to hotspots, and create AP hotspots.&lt;br /&gt;
&lt;br /&gt;
   nmcli device #List devices&lt;br /&gt;
   nmcli device wifi list # List available wifi access points, list can be omitted&lt;br /&gt;
   nmcli device wifi connect [SSID] password [PASSWORD] # Connect to the hotspot mySSID. After the connection is successful, the configuration file will be automatically generated. If you want to connect again in the future, you can use the nmcli connection up [SSID] command.&lt;br /&gt;
   nmcli device disconnect [device name] # Disconnect wifi, use the wifi device name displayed in the nmcli device command&lt;br /&gt;
   nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # Create AP hotspot&lt;br /&gt;
&lt;br /&gt;
   nmcli connection show #List network connection configuration&lt;br /&gt;
   nmcli connection down [NAME] # Deactivate a connection&lt;br /&gt;
   nmcli connection up [NAME] # Activate a connection&lt;br /&gt;
   nmcli connection delete [SSID] #Delete a configuration and no longer save information and automatically connect&lt;br /&gt;
&lt;br /&gt;
   nmcli radio wifi off # Turn off wifi&lt;br /&gt;
   nmcli radio wifi on # Turn on wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli command reference document]&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli command reference examples]&lt;br /&gt;
&lt;br /&gt;
===Set static IP, DNS===&lt;br /&gt;
:1. To set a static IP, you need to maintain the connection first. If you want to set an Ethernet static IP, you must first maintain the Ethernet connection; if you want to set a wireless network static IP, you must first maintain a connection to a WIFI.&lt;br /&gt;
:2. If the upper-level router has assigned the IP address you want to set to other devices, please change it to an idle IP, or ask other devices to give up the IP.&lt;br /&gt;
:3. Use the nmcli connection show command to display all connections, for example:&lt;br /&gt;
   pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
   NAME UUID TYPE DEVICE&lt;br /&gt;
   TP-LINK_5G_7747 e4a49726-adf1-44d7-a621-0e3af96cc390 wifi wlx2cc3e6acd5d7&lt;br /&gt;
   Wired connection 1 612eda94-55dc-3c85-b05e-f16c41775b4e ethernet --&lt;br /&gt;
:4. Use the nmcli connection show [NAME] command to display all the properties of a specific connection, such as:&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747 #If you want to see Ethernet, change to Wired connection 1&lt;br /&gt;
&lt;br /&gt;
   #Only list three common items&lt;br /&gt;
   ipv4.dns: 192.168.3.1 #The default is the gateway address&lt;br /&gt;
   ipv4.addresses: 192.168.3.10/24 #The default is the IP address assigned by the router DHCP&lt;br /&gt;
   ipv4.gateway: 192.168.3.1 #Gateway address, the default is the IP address of the router&lt;br /&gt;
&lt;br /&gt;
:5.Set static IP:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.Set DNS:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.Reset:&lt;br /&gt;
   reboot&lt;br /&gt;
:8. After restarting, check whether the modification is successful:&lt;br /&gt;
   ifconfig&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747&lt;br /&gt;
&lt;br /&gt;
===Network time synchronization===&lt;br /&gt;
:Chrony is an open source free Network Time Protocol NTP client and server software. It allows the computer to keep the system clock synchronized with the clock server (NTP), thus allowing your computer to maintain accurate time. Chrony can also be used as a server software to provide time synchronization services for other computers.&lt;br /&gt;
&lt;br /&gt;
   timedatectl set-ntp false #Disable NTP-based network time synchronization&lt;br /&gt;
&lt;br /&gt;
   sudo apt install chrony #Install chrony&lt;br /&gt;
   systemctl start chrony #Start chrony&lt;br /&gt;
   systemctl enable chrony&lt;br /&gt;
   systemctl status chrony&lt;br /&gt;
   systemctl restart chrony #Restart service&lt;br /&gt;
&lt;br /&gt;
   timedatectl status #View time synchronization status&lt;br /&gt;
   timedatectl list-timezones #View time zone list&lt;br /&gt;
   timedatectl set-timezone Asia/Shanghai #Modify time zone&lt;br /&gt;
   timedatectl set-ntp true #Enable NTP network time synchronization&lt;br /&gt;
&lt;br /&gt;
   date #View time&lt;br /&gt;
   sudo hwclock -r #View hardware clock&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony reference documentation]&lt;br /&gt;
&lt;br /&gt;
===View hardware temperature===&lt;br /&gt;
Enter the following command to view the temperature data returned by the sensor built into the chip on the BPI-M4 Berry board.&lt;br /&gt;
   sensors&lt;br /&gt;
&lt;br /&gt;
===Modify HDMI output resolution===&lt;br /&gt;
:When using the Ubuntu desktop operating system, you can find the Displays column in Settings and modify the resolution.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Use USB disk===&lt;br /&gt;
:1. Prepare a USB disk that has been partitioned normally and insert it into the USB interface of BPI-M4 Berry.&lt;br /&gt;
:2. In the Ubuntu desktop version, you can see that the USB disk has been recognized and can be opened in the file manager, or partition management can be performed through the GParted tool.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. In the terminal, mount the USB disk to the local directory:&lt;br /&gt;
   mkdir mnt #Create a separate directory in the ~/user directory for mounting for easy management&lt;br /&gt;
   cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #List partitions starting with sd&lt;br /&gt;
   sudo mount /dev/sda1 ~/mnt/ #Mount /dev/sda1 to ~/mnt/&lt;br /&gt;
   ls ~/mnt/ #After mounting, you can list the files in the USB disk&lt;br /&gt;
   sudo umount -v /dev/sda1 #umount, then you can remove the USB disk&lt;br /&gt;
&lt;br /&gt;
===Use Audio Devices===&lt;br /&gt;
: Prepare an audio file and copy it to the BPI-M4 Berry Ubuntu desktop system through a USB flash drive or SSH.&lt;br /&gt;
====HDMI audio====&lt;br /&gt;
:1. Prepare a monitor with HDMI audio input function, turn on the relevant functions in the monitor settings, and use an HDMI cable to connect the monitor.&lt;br /&gt;
:2. Set the output device to HDMI Audio in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.Play audio.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm audio jack====&lt;br /&gt;
:1. Prepare a headset or other audio device that uses a 3.5mm plug, insert the plug into the 3.5mm jack of BPI-M4 Berry.&lt;br /&gt;
:2. Set the output device to Audio Codec in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3. Play audio.&lt;br /&gt;
&lt;br /&gt;
====Terminal command to play audio files====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aplay -l #List devices&lt;br /&gt;
aplay -D hw:0,0 [path] #Play the audio file of the specified path&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Use Bluetooth===&lt;br /&gt;
:1. Open settings in the Ubuntu desktop and connect a Bluetooth device, such as a Bluetooth mouse or keyboard, in the Bluetooth bar.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2. The method to connect the Bluetooth device through the command line in the terminal is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #Open the Bluetooth device management tool&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #Start the Bluetooth function, power off to turn it off&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #Allow this device to be discovered&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #Allow device pairing&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #Start scanning&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #The MAC address and device name of a Bluetooth mouse&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #Pair the MAC address of the Bluetooth device you want to connect to&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #pairing successfully&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #Exit the Bluetooth device management tool&lt;br /&gt;
pi@bpi-m4berry:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth reference document]&lt;br /&gt;
&lt;br /&gt;
===Use IR Receiver===&lt;br /&gt;
:1. You need to prepare an infrared remote control using NEC format.&lt;br /&gt;
:2. Enter the following command in the terminal to start receiving infrared signals.&lt;br /&gt;
   sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
   Old keytable cleared&lt;br /&gt;
   Protocols changed to nec&lt;br /&gt;
   Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
   258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_SYN(0x00).&lt;br /&gt;
   260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_SYN(0x00).&lt;br /&gt;
   260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
   260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.719568: event type EV_SYN(0x00).&lt;br /&gt;
   273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_SYN(0x00).&lt;br /&gt;
   273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
   273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
For other commands and specific application methods, please see [https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable reference document]&lt;br /&gt;
&lt;br /&gt;
===Transfer files===&lt;br /&gt;
====scp====&lt;br /&gt;
scp (secure copy) command in Linux system is used to copy file(s) between servers in a secure way. &lt;br /&gt;
&lt;br /&gt;
The SCP command or secure copy allows the secure transferring of files between the local host and the remote host or between two remote hosts. &lt;br /&gt;
&lt;br /&gt;
It uses the same authentication and security as it is used in the Secure Shell (SSH) protocol.&lt;br /&gt;
&lt;br /&gt;
You can copy files from a Windows terminal to a Linux system on the same LAN. Just make sure the Open SSH client is turned on and can be viewed in Settings &amp;gt; Applications &amp;gt; Optional Features.&lt;br /&gt;
&lt;br /&gt;
If you want to copy files from Windows systems to Linux systems, you also need to enable the Open SSH server.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
The scp command format is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optionals] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optionals]&amp;lt;/nowiki&amp;gt; is an optional parameter, such as -r, which can be used to copy the entire directory recursively.&lt;br /&gt;
&lt;br /&gt;
::2.file_source The file or directory to be copied.&lt;br /&gt;
&lt;br /&gt;
::3.file_target will copy the past path and rename it if a specific file name is entered at the end.&lt;br /&gt;
&lt;br /&gt;
Take copying local files from a Windows system to a Linux system as an example. In the Windows terminal, enter:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also copy files in the Linux system to the local computer in the Windows terminal:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Where pi@192.168.3.12 is the user name in the Linux system and the IP address of the BPI-M4 Berry in the LAN.&lt;br /&gt;
:: Where &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; is the file path in the Linux system.&lt;br /&gt;
:: Where &amp;quot;D:\temp\temp_4&amp;quot; is the path in Windows system.&lt;br /&gt;
&lt;br /&gt;
[https://www.geeksforgeeks.org/scp-command-in-linux-with-examples/ scp reference document]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
Files can be managed through a graphical interface using mobaxterm or other similar software.&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm download]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux preview version]&lt;br /&gt;
&lt;br /&gt;
As shown in the figure below, after establishing an SSH connection in mobaxterm, a file management window will appear on the left side of the interface, which supports copying and pasting by dragging and dropping files.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;br /&gt;
&lt;br /&gt;
===40 pin interface GPIO, I2C, UART, SPI, and PWM testing===&lt;br /&gt;
====GPIO====&lt;br /&gt;
Control the GPIO port to light up the LED light.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Set the high and low levels of GPIO'''&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_gpio.jpg]]&lt;br /&gt;
&lt;br /&gt;
The following is a demonstration using 7 pin.&lt;br /&gt;
&lt;br /&gt;
Insert the LED light and you can see that it is not lit up.&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
 gpio mode 2 out&lt;br /&gt;
:to set it to output mode.&lt;br /&gt;
&lt;br /&gt;
: 2.Execute&lt;br /&gt;
 gpio write 2 1&lt;br /&gt;
:You can see that the LED light has been turned on.&lt;br /&gt;
:[[File:M4_Berry_gpio_led_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Execute&lt;br /&gt;
 gpio write 2 0&lt;br /&gt;
:You can see that the LED light has been turned off.&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Set pull-up and pull-down resistors'''&lt;br /&gt;
: 1.Firstly, it is necessary to set the GPIO port to input mode&lt;br /&gt;
 gpio mode 2 in&lt;br /&gt;
&lt;br /&gt;
: 2.Then set the GPIO port as an pull-up resistor&lt;br /&gt;
 gpio mode 2 up&lt;br /&gt;
:The LED light is lit up again&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Finally, set the GPIO port to dropdown mode&lt;br /&gt;
 gpio mode 2 down&lt;br /&gt;
:The LED light goes out again&lt;br /&gt;
:[[File:M4_Berry_gpio_led_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====I2C====&lt;br /&gt;
&lt;br /&gt;
According to the schematic diagram, the available i2cs are i2c3 and i2c4&lt;br /&gt;
:[[File:M4_Berry_gpio_i2c.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.Select &amp;quot;pg-i2c3&amp;quot;and&amp;quot;pg-i2c4&amp;quot;&lt;br /&gt;
:[[File:M4_Berry_bananapi_config_i2c.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are i2c-3 and i2c-4 nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/i2c-3&lt;br /&gt;
 /dev/i2c-3&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/i2c-4&lt;br /&gt;
 /dev/i2c-4&lt;br /&gt;
&lt;br /&gt;
: 8. Execute&lt;br /&gt;
&lt;br /&gt;
 cd /usr/src/wiringPi/examples/&lt;br /&gt;
 gcc ./oled_demo.c -o oled -lwiringPi&lt;br /&gt;
&lt;br /&gt;
: 9.Connect the i2c device to the pin of i2c3. Execute&lt;br /&gt;
&lt;br /&gt;
 sudo ./oled /dev/i2c-3&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_i2c_3_led.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 10.Connect the i2c device to the pin of i2c4. Execute&lt;br /&gt;
&lt;br /&gt;
 sudo ./oled /dev/i2c-4&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_i2c_4_led.jpg]]&lt;br /&gt;
&lt;br /&gt;
====UART====&lt;br /&gt;
By reviewing the schematic, it can be found that the available uart are uart1 and uart5.&lt;br /&gt;
:[[File:M4_Berry_gpio_uart.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Uart1 and Uart5 is closed and needs to be opened. Execute&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.If you want to use uart1,select&amp;quot;pg-uart1&amp;quot;.If you want to use uart5,select&amp;quot;ph-uart5&amp;quot;&lt;br /&gt;
:[[File:M4_Berry_bananapi_config_uart.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are ttyS5 nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/ttyS5&lt;br /&gt;
 /dev/ttyS5&lt;br /&gt;
&lt;br /&gt;
: 8:Short circuit uart1 pin or uart5 and execute&lt;br /&gt;
 gpio serial /dev/ttyS1&lt;br /&gt;
:[[File:M4_Berry_gpio_uart1.jpg]]&lt;br /&gt;
:[[File:M4_Berry_gpio_uart5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SPI====&lt;br /&gt;
By reviewing the schematic, it can be found that the available spi is spi1.&lt;br /&gt;
:[[File:M4 Berry-sch-gpio-spi.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.Select &amp;quot;spi1-cs1-spidev&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are SPI nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/spidev1.1&lt;br /&gt;
 /dev/spidev1.1&lt;br /&gt;
&lt;br /&gt;
: 8.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo spidev_test -v -D /dev/spidev1.1&lt;br /&gt;
&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:It can be seen that TX and RX are different. So, we need to short-circuit MOSI and MISO and execute the command again.&lt;br /&gt;
&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====PWM====&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16912</id>
		<title>Getting Started with BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_BPI-M4_Berry&amp;diff=16912"/>
				<updated>2024-01-17T07:36:07Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* UART */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare===&lt;br /&gt;
:1. Linux image support SDcard or EMMC bootup, and will boot from the SD card first.&lt;br /&gt;
&lt;br /&gt;
:2. It’s recommended to use A1 rated cards, 8GB at least.&lt;br /&gt;
&lt;br /&gt;
:3. Make sure bootable EMMC is formatted if you want bootup from SDcard.&lt;br /&gt;
&lt;br /&gt;
:4. Make sure SDcard is formatted without Linux image flashed if you want bootup from EMMC and use Sdcard as storage.&lt;br /&gt;
&lt;br /&gt;
:5. Download latest [[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian images]], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
:6. Default login: pi/bananapi or root/bananapi&lt;br /&gt;
&lt;br /&gt;
:7. The wiki guide is only for [[Banana_Pi_BPI-M4_Berry#System_image | bananapi ubuntu/debian images]].&lt;br /&gt;
&lt;br /&gt;
:8. USB-Serial (3.3V). Baud: 115200.&lt;br /&gt;
&lt;br /&gt;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with Balena Etcher on Windows, Linux and MacOS.&lt;br /&gt;
:[https://balena.io/etcher Balena Etcher] is an opensource GUI flash tool by Balena, Flash OS images to SDcard or USB drive.&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
===Install Image to eMMC===&lt;br /&gt;
&lt;br /&gt;
1. Make sure that the Linux image has been burned into an SD card and started normally.&lt;br /&gt;
&lt;br /&gt;
2. Enter the following command in the terminal:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bananapi-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. By default, select the first item continuously and press the Enter key to install the Linux system image on the eMMC.&lt;br /&gt;
&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_12.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_13.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_14.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_15.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_16.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_17.jpg]]&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_18.jpg]]&lt;br /&gt;
&lt;br /&gt;
4. The last step is to shut down the computer. At this time, disconnect the power supply, remove the SD card, and power on again to boot from eMMC.&lt;br /&gt;
&lt;br /&gt;
===Erase eMMC===&lt;br /&gt;
&lt;br /&gt;
1. Make sure the Linux image has been burned into an SD card and insert the SD card. By default it will boot from the SD card.&lt;br /&gt;
&lt;br /&gt;
2. Enter the command lsblk in the terminal to list the block device information in the system, such as hard disks, partitions, disks, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ lsblk&lt;br /&gt;
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS&lt;br /&gt;
mmcblk0 179:0 0 7.4G 0 disk&lt;br /&gt;
└─mmcblk0p1 179:1 0 7.2G 0 part /var/log.hdd&lt;br /&gt;
                                        /&lt;br /&gt;
mmcblk1 179:32 0 7.3G 0 disk&lt;br /&gt;
└─mmcblk1p1 179:33 0 7.3G 0 part&lt;br /&gt;
mmcblk1boot0 179:64 0 4M 1 disk&lt;br /&gt;
mmcblk1boot1 179:96 0 4M 1 disk&lt;br /&gt;
zram0 252:0 0 993.2M 0 disk [SWAP]&lt;br /&gt;
zram1 252:1 0 50M 0 disk /var/log&lt;br /&gt;
zram2 252:2 0 0B 0 disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. mmcblk0 is the SD card and mmcblk1 is the eMMC. Enter the following command in the terminal to erase the eMMC. This process takes several minutes and is irreversible. Be careful to back up important data.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dd if=/dev/zero of=/dev/mmcblk1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ubuntu Desktop===&lt;br /&gt;
&lt;br /&gt;
:1. Using the Ubuntu desktop version system image, you can get a graphical operation interface.&lt;br /&gt;
:2. You need to prepare a monitor with an HDMI interface and an HDMI cable.&lt;br /&gt;
:3. Use an HDMI cable to connect the monitor and BPI-M4 Berry, switch the monitor input interface to the corresponding HDMI interface, power on, and wait a moment to see the desktop.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Debug UART===&lt;br /&gt;
:1. Prepare a 3.3v USB to TTL module.&lt;br /&gt;
:2. Use the USB to TTL module to connect the PC USB port and the Debug UART port on the board.&lt;br /&gt;
:3. Open a serial terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:4. Taking mobaxterm as an example, after setting the serial port number and 115200 baud rate, you can open the BPI-M4 Berry UART terminal.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
:1. Prepare a network cable and a router.&lt;br /&gt;
:2. Use a network cable to connect the LAN port of the router to the BPI-M4 Berry, and also connect the PC to another LAN port.&lt;br /&gt;
:3. Check the IP address of BPI-M4 Berry on the router management interface, or use the following command on the BPI-M4 Berry UART terminal to check the IP address.&lt;br /&gt;
   ifconfig&lt;br /&gt;
&lt;br /&gt;
   eth0: flags=4163&amp;lt;UP,BROADCAST,RUNNING,MULTICAST&amp;gt; mtu 1500&lt;br /&gt;
         inet 192.168.3.10 netmask 255.255.255.0 broadcast 192.168.3.255&lt;br /&gt;
         inet6 fe80::3e1f:688f:81ab:d8b7 prefixlen 64 scopeid 0x20&amp;lt;link&amp;gt;&lt;br /&gt;
         ether 02:00:54:a0:d6:a6 txqueuelen 1000 (Ethernet)&lt;br /&gt;
         RX packets 553 bytes 92549 (92.5 KB)&lt;br /&gt;
         RX errors 0 dropped 0 overruns 0 frame 0&lt;br /&gt;
         TX packets 329 bytes 26023 (26.0 KB)&lt;br /&gt;
         TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0&lt;br /&gt;
         device interrupt 42&lt;br /&gt;
:4. Open an SSH terminal software on the PC, such as [https://mobaxterm.mobatek.net/ mobaxterm] or [https://www.putty.org/ putty].&lt;br /&gt;
:5. Taking mobaxterm as an example, fill in the obtained IP address, such as 192.168.3.10 above, in the IP address column and 22 in the Port port.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:6. Open the SSH terminal and enter the login username/password: pi/bananapi or root/bananapi. There will be no prompt when entering the password. Please enter it normally and press Enter when finished.&lt;br /&gt;
&lt;br /&gt;
[[File:bpi_m4_berry_mobaxterm_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
===NoMachine Remote Desktop===&lt;br /&gt;
:1. Make sure BPI-M4 Berry is connected to the Internet and use the following command to download the nomachine DEB installation package in the system.&lt;br /&gt;
&lt;br /&gt;
   wget https://download.nomachine.com/download/8.9/Arm/nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:2. Or open [https://downloads.nomachine.com/download/?id=117&amp;amp;distro=ARM NoMachine for ARM - arm64 download page] in a PC browser, download the DEB installation package, and then copy it to BPI-M4 Berry user directory through SSH or USB disk.&lt;br /&gt;
&lt;br /&gt;
:3. After the download is completed, install it through the following command. Note that the file name is based on the actual downloaded file name.&lt;br /&gt;
&lt;br /&gt;
   sudo dpkg -i nomachine_8.9.1_1_arm64.deb&lt;br /&gt;
&lt;br /&gt;
:4. PC side also needs to download and install NoMachine. [https://download.nomachine.com NoMachine download page] Select the installation package suitable for the PC operating system, download it locally and complete the installation.&lt;br /&gt;
&lt;br /&gt;
:5. Pay attention to keeping the PC and BPI-M4 Berry in the same LAN. You can try SSH connection first to ensure normal communication within the LAN.&lt;br /&gt;
&lt;br /&gt;
:6. Open NoMachine on the PC, click the Add button, enter the IP address of BPI-M4 Berry in the Host bar in the window after the jump, and then click the Add button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
:7. Click the recognized port icon, enter the username/password in the new window that pops up, and then click the OK button.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_2.jpg]]&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:8. After completing the subsequent settings, you can see the desktop.&lt;br /&gt;
[[File:Bpi_m4_berry_nomachine_4.jpg]]&lt;br /&gt;
&lt;br /&gt;
:9. If no device is connected to the HDMI interface, the NoMachine remote desktop will display a black screen. It is recommended to keep the HDMI connection or connect an HDMI decoy device.&lt;br /&gt;
&lt;br /&gt;
===WiFi===&lt;br /&gt;
: Use the nmcli command to scan WiFi hotspots, connect to hotspots, and create AP hotspots.&lt;br /&gt;
&lt;br /&gt;
   nmcli device #List devices&lt;br /&gt;
   nmcli device wifi list # List available wifi access points, list can be omitted&lt;br /&gt;
   nmcli device wifi connect [SSID] password [PASSWORD] # Connect to the hotspot mySSID. After the connection is successful, the configuration file will be automatically generated. If you want to connect again in the future, you can use the nmcli connection up [SSID] command.&lt;br /&gt;
   nmcli device disconnect [device name] # Disconnect wifi, use the wifi device name displayed in the nmcli device command&lt;br /&gt;
   nmcli device wifi hotspot con-name [NAME] ifname [device name] ssid [SSID] password [PASSWORD] # Create AP hotspot&lt;br /&gt;
&lt;br /&gt;
   nmcli connection show #List network connection configuration&lt;br /&gt;
   nmcli connection down [NAME] # Deactivate a connection&lt;br /&gt;
   nmcli connection up [NAME] # Activate a connection&lt;br /&gt;
   nmcli connection delete [SSID] #Delete a configuration and no longer save information and automatically connect&lt;br /&gt;
&lt;br /&gt;
   nmcli radio wifi off # Turn off wifi&lt;br /&gt;
   nmcli radio wifi on # Turn on wifi&lt;br /&gt;
&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli.html nmcli command reference document]&lt;br /&gt;
:* [https://developer-old.gnome.org/NetworkManager/unstable/nmcli-examples.html nmcli command reference examples]&lt;br /&gt;
&lt;br /&gt;
===Set static IP, DNS===&lt;br /&gt;
:1. To set a static IP, you need to maintain the connection first. If you want to set an Ethernet static IP, you must first maintain the Ethernet connection; if you want to set a wireless network static IP, you must first maintain a connection to a WIFI.&lt;br /&gt;
:2. If the upper-level router has assigned the IP address you want to set to other devices, please change it to an idle IP, or ask other devices to give up the IP.&lt;br /&gt;
:3. Use the nmcli connection show command to display all connections, for example:&lt;br /&gt;
   pi@bpi-m4berry:~$ nmcli connection show&lt;br /&gt;
   NAME UUID TYPE DEVICE&lt;br /&gt;
   TP-LINK_5G_7747 e4a49726-adf1-44d7-a621-0e3af96cc390 wifi wlx2cc3e6acd5d7&lt;br /&gt;
   Wired connection 1 612eda94-55dc-3c85-b05e-f16c41775b4e ethernet --&lt;br /&gt;
:4. Use the nmcli connection show [NAME] command to display all the properties of a specific connection, such as:&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747 #If you want to see Ethernet, change to Wired connection 1&lt;br /&gt;
&lt;br /&gt;
   #Only list three common items&lt;br /&gt;
   ipv4.dns: 192.168.3.1 #The default is the gateway address&lt;br /&gt;
   ipv4.addresses: 192.168.3.10/24 #The default is the IP address assigned by the router DHCP&lt;br /&gt;
   ipv4.gateway: 192.168.3.1 #Gateway address, the default is the IP address of the router&lt;br /&gt;
&lt;br /&gt;
:5.Set static IP:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.addresses 192.168.3.2&lt;br /&gt;
:6.Set DNS:&lt;br /&gt;
   nmcli connection modify TP-LINK_5G_7747 ipv4.dns 8.8.8.8 #Google DNS&lt;br /&gt;
:7.Reset:&lt;br /&gt;
   reboot&lt;br /&gt;
:8. After restarting, check whether the modification is successful:&lt;br /&gt;
   ifconfig&lt;br /&gt;
   nmcli connection show TP-LINK_5G_7747&lt;br /&gt;
&lt;br /&gt;
===Network time synchronization===&lt;br /&gt;
:Chrony is an open source free Network Time Protocol NTP client and server software. It allows the computer to keep the system clock synchronized with the clock server (NTP), thus allowing your computer to maintain accurate time. Chrony can also be used as a server software to provide time synchronization services for other computers.&lt;br /&gt;
&lt;br /&gt;
   timedatectl set-ntp false #Disable NTP-based network time synchronization&lt;br /&gt;
&lt;br /&gt;
   sudo apt install chrony #Install chrony&lt;br /&gt;
   systemctl start chrony #Start chrony&lt;br /&gt;
   systemctl enable chrony&lt;br /&gt;
   systemctl status chrony&lt;br /&gt;
   systemctl restart chrony #Restart service&lt;br /&gt;
&lt;br /&gt;
   timedatectl status #View time synchronization status&lt;br /&gt;
   timedatectl list-timezones #View time zone list&lt;br /&gt;
   timedatectl set-timezone Asia/Shanghai #Modify time zone&lt;br /&gt;
   timedatectl set-ntp true #Enable NTP network time synchronization&lt;br /&gt;
&lt;br /&gt;
   date #View time&lt;br /&gt;
   sudo hwclock -r #View hardware clock&lt;br /&gt;
&lt;br /&gt;
:* [https://chrony-project.org/documentation.html Chrony reference documentation]&lt;br /&gt;
&lt;br /&gt;
===View hardware temperature===&lt;br /&gt;
Enter the following command to view the temperature data returned by the sensor built into the chip on the BPI-M4 Berry board.&lt;br /&gt;
   sensors&lt;br /&gt;
&lt;br /&gt;
===Modify HDMI output resolution===&lt;br /&gt;
:When using the Ubuntu desktop operating system, you can find the Displays column in Settings and modify the resolution.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Use USB disk===&lt;br /&gt;
:1. Prepare a USB disk that has been partitioned normally and insert it into the USB interface of BPI-M4 Berry.&lt;br /&gt;
:2. In the Ubuntu desktop version, you can see that the USB disk has been recognized and can be opened in the file manager, or partition management can be performed through the GParted tool.&lt;br /&gt;
&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
:3. In the terminal, mount the USB disk to the local directory:&lt;br /&gt;
   mkdir mnt #Create a separate directory in the ~/user directory for mounting for easy management&lt;br /&gt;
   cat /proc/partitions | grep &amp;quot;sd*&amp;quot; #List partitions starting with sd&lt;br /&gt;
   sudo mount /dev/sda1 ~/mnt/ #Mount /dev/sda1 to ~/mnt/&lt;br /&gt;
   ls ~/mnt/ #After mounting, you can list the files in the USB disk&lt;br /&gt;
   sudo umount -v /dev/sda1 #umount, then you can remove the USB disk&lt;br /&gt;
&lt;br /&gt;
===Use Audio Devices===&lt;br /&gt;
: Prepare an audio file and copy it to the BPI-M4 Berry Ubuntu desktop system through a USB flash drive or SSH.&lt;br /&gt;
====HDMI audio====&lt;br /&gt;
:1. Prepare a monitor with HDMI audio input function, turn on the relevant functions in the monitor settings, and use an HDMI cable to connect the monitor.&lt;br /&gt;
:2. Set the output device to HDMI Audio in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_4.jpg]]&lt;br /&gt;
:3.Play audio.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====3.5mm audio jack====&lt;br /&gt;
:1. Prepare a headset or other audio device that uses a 3.5mm plug, insert the plug into the 3.5mm jack of BPI-M4 Berry.&lt;br /&gt;
:2. Set the output device to Audio Codec in the Sound column of the settings.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_6.jpg]]&lt;br /&gt;
:3. Play audio.&lt;br /&gt;
&lt;br /&gt;
====Terminal command to play audio files====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
aplay -l #List devices&lt;br /&gt;
aplay -D hw:0,0 [path] #Play the audio file of the specified path&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Use Bluetooth===&lt;br /&gt;
:1. Open settings in the Ubuntu desktop and connect a Bluetooth device, such as a Bluetooth mouse or keyboard, in the Bluetooth bar.&lt;br /&gt;
[[File:Bpi_m4_berry_ubuntu_7.jpg]]&lt;br /&gt;
:2. The method to connect the Bluetooth device through the command line in the terminal is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pi@bpi-m4berry:~$ sudo bluetoothctl #Open the Bluetooth device management tool&lt;br /&gt;
[sudo] password for pi:&lt;br /&gt;
Agent registered&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Pairable: yes&lt;br /&gt;
[bluetooth]# power on #Start the Bluetooth function, power off to turn it off&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[bluetooth]# discoverable on #Allow this device to be discovered&lt;br /&gt;
Changing discoverable on succeeded&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discoverable: yes&lt;br /&gt;
[bluetooth]# pairable on #Allow device pairing&lt;br /&gt;
Changing pairable on succeeded&lt;br /&gt;
[bluetooth]# scan on #Start scanning&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 2C:C3:E6:AC:D5:D8 Discovering: yes&lt;br /&gt;
[NEW] Device D4:C4:85:A5:C6:B1 Logitech Pebble #The MAC address and device name of a Bluetooth mouse&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 TxPower: 4&lt;br /&gt;
[bluetooth]# pair D4:C4:85:A5:C6:B1 #Pair the MAC address of the Bluetooth device you want to connect to&lt;br /&gt;
Attempting to pair with D4:C4:85:A5:C6:B1&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Connected: yes&lt;br /&gt;
[DEL] Device A4:C1:38:9B:F6:FD SLPO20N20200059&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001800-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001801-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180a-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 0000180f-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00001812-0000-1000-8000-00805f9b34fb&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 UUIDs: 00010000-0000-1000-8000-011f2000046d&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 ServicesResolved: yes&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Paired: yes&lt;br /&gt;
Pairing successful #pairing successfully&lt;br /&gt;
[CHG] Device D4:C4:85:A5:C6:B1 Modalias: usb:v046DpB021d0007&lt;br /&gt;
[bluetooth]# exit #Exit the Bluetooth device management tool&lt;br /&gt;
pi@bpi-m4berry:~$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[https://wiki.archlinux.org/title/bluetooth archlinux bluetooth reference document]&lt;br /&gt;
&lt;br /&gt;
===Use IR Receiver===&lt;br /&gt;
:1. You need to prepare an infrared remote control using NEC format.&lt;br /&gt;
:2. Enter the following command in the terminal to start receiving infrared signals.&lt;br /&gt;
   sudo ir-keytable -c -p NEC -t&lt;br /&gt;
&lt;br /&gt;
   Old keytable cleared&lt;br /&gt;
   Protocols changed to nec&lt;br /&gt;
   Testing events. Please, press CTRL-C to abort.&lt;br /&gt;
   258.553895: lirc protocol(nec): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_MSC(0x04): scancode = 0x45&lt;br /&gt;
   258.553926: event type EV_SYN(0x00).&lt;br /&gt;
   260.667648: lirc protocol(nec): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.667671: event type EV_SYN(0x00).&lt;br /&gt;
   260.719552: lirc protocol(nec): scancode = 0x46 repeat&lt;br /&gt;
   260.719568: event type EV_MSC(0x04): scancode = 0x46&lt;br /&gt;
   260.719568: event type EV_SYN(0x00).&lt;br /&gt;
   273.263728: lirc protocol(nec): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.263753: event type EV_SYN(0x00).&lt;br /&gt;
   273.315591: lirc protocol(nec): scancode = 0x47 repeat&lt;br /&gt;
   273.315608: event type EV_MSC(0x04): scancode = 0x47&lt;br /&gt;
   273.315608: event type EV_SYN(0x00).&lt;br /&gt;
&lt;br /&gt;
For other commands and specific application methods, please see [https://manpages.ubuntu.com/manpages/focal/en/man1/ir-keytable.1.html ir-keytable reference document]&lt;br /&gt;
&lt;br /&gt;
===Transfer files===&lt;br /&gt;
====scp====&lt;br /&gt;
scp (secure copy) command in Linux system is used to copy file(s) between servers in a secure way. &lt;br /&gt;
&lt;br /&gt;
The SCP command or secure copy allows the secure transferring of files between the local host and the remote host or between two remote hosts. &lt;br /&gt;
&lt;br /&gt;
It uses the same authentication and security as it is used in the Secure Shell (SSH) protocol.&lt;br /&gt;
&lt;br /&gt;
You can copy files from a Windows terminal to a Linux system on the same LAN. Just make sure the Open SSH client is turned on and can be viewed in Settings &amp;gt; Applications &amp;gt; Optional Features.&lt;br /&gt;
&lt;br /&gt;
If you want to copy files from Windows systems to Linux systems, you also need to enable the Open SSH server.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_6.jpg]]&lt;br /&gt;
&lt;br /&gt;
The scp command format is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;scp [optionals] file_source file_target&amp;lt;/pre&amp;gt;&lt;br /&gt;
::1.&amp;lt;nowiki&amp;gt;[optionals]&amp;lt;/nowiki&amp;gt; is an optional parameter, such as -r, which can be used to copy the entire directory recursively.&lt;br /&gt;
&lt;br /&gt;
::2.file_source The file or directory to be copied.&lt;br /&gt;
&lt;br /&gt;
::3.file_target will copy the past path and rename it if a specific file name is entered at the end.&lt;br /&gt;
&lt;br /&gt;
Take copying local files from a Windows system to a Linux system as an example. In the Windows terminal, enter:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp &amp;quot;.\hello.txt&amp;quot; pi@192.168.3.12:&amp;quot;/home/pi/Downloads/&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also copy files in the Linux system to the local computer in the Windows terminal:&lt;br /&gt;
:&amp;lt;pre&amp;gt;PS D:\temp\temp_4&amp;gt; scp pi@192.168.3.12:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot; &amp;quot;D:\temp\temp_4&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Where pi@192.168.3.12 is the user name in the Linux system and the IP address of the BPI-M4 Berry in the LAN.&lt;br /&gt;
:: Where &amp;lt;nowiki&amp;gt;:&amp;quot;/home/pi/Downloads/hello.txt&amp;quot;&amp;lt;/nowiki&amp;gt; is the file path in the Linux system.&lt;br /&gt;
:: Where &amp;quot;D:\temp\temp_4&amp;quot; is the path in Windows system.&lt;br /&gt;
&lt;br /&gt;
[https://www.geeksforgeeks.org/scp-command-in-linux-with-examples/ scp reference document]&lt;br /&gt;
&lt;br /&gt;
====mobaxterm====&lt;br /&gt;
Files can be managed through a graphical interface using mobaxterm or other similar software.&lt;br /&gt;
:[https://mobaxterm.mobatek.net/download.html mobaxterm download]&lt;br /&gt;
:[https://download.mobatek.net/mobaxterm-on-linux.html mobaxterm-linux preview version]&lt;br /&gt;
&lt;br /&gt;
As shown in the figure below, after establishing an SSH connection in mobaxterm, a file management window will appear on the left side of the interface, which supports copying and pasting by dragging and dropping files.&lt;br /&gt;
:[[File:Bpi_m4_berry_mobaxterm_7.jpg]]&lt;br /&gt;
&lt;br /&gt;
===40 pin interface GPIO, I2C, UART, SPI, and PWM testing===&lt;br /&gt;
====GPIO====&lt;br /&gt;
Control the GPIO port to light up the LED light.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Set the high and low levels of GPIO'''&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_gpio.jpg]]&lt;br /&gt;
&lt;br /&gt;
The following is a demonstration using 7 pin.&lt;br /&gt;
&lt;br /&gt;
Insert the LED light and you can see that it is not lit up.&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
 gpio mode 2 out&lt;br /&gt;
:to set it to output mode.&lt;br /&gt;
&lt;br /&gt;
: 2.Execute&lt;br /&gt;
 gpio write 2 1&lt;br /&gt;
:You can see that the LED light has been turned on.&lt;br /&gt;
:[[File:M4_Berry_gpio_led_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Execute&lt;br /&gt;
 gpio write 2 0&lt;br /&gt;
:You can see that the LED light has been turned off.&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Set pull-up and pull-down resistors'''&lt;br /&gt;
: 1.Firstly, it is necessary to set the GPIO port to input mode&lt;br /&gt;
 gpio mode 2 in&lt;br /&gt;
&lt;br /&gt;
: 2.Then set the GPIO port as an pull-up resistor&lt;br /&gt;
 gpio mode 2 up&lt;br /&gt;
:The LED light is lit up again&lt;br /&gt;
:[[File:M4_Berry_gpio_led_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Finally, set the GPIO port to dropdown mode&lt;br /&gt;
 gpio mode 2 down&lt;br /&gt;
:The LED light goes out again&lt;br /&gt;
:[[File:M4_Berry_gpio_led_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====I2C====&lt;br /&gt;
&lt;br /&gt;
According to the schematic diagram, the available i2cs are i2c3 and i2c4&lt;br /&gt;
:[[File:M4_Berry_gpio_i2c.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.Select &amp;quot;pg-i2c3&amp;quot;and&amp;quot;pg-i2c4&amp;quot;&lt;br /&gt;
:[[File:M4_Berry_bananapi_config_i2c.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are i2c-3 and i2c-4 nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/i2c-3&lt;br /&gt;
 /dev/i2c-3&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/i2c-4&lt;br /&gt;
 /dev/i2c-4&lt;br /&gt;
&lt;br /&gt;
: 8. Execute&lt;br /&gt;
&lt;br /&gt;
 cd /usr/src/wiringPi/examples/&lt;br /&gt;
 gcc ./oled_demo.c -o oled -lwiringPi&lt;br /&gt;
&lt;br /&gt;
: 9.Connect the i2c device to the pin of i2c3. Execute&lt;br /&gt;
&lt;br /&gt;
 sudo ./oled /dev/i2c-3&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_i2c_3_led.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 10.Connect the i2c device to the pin of i2c4. Execute&lt;br /&gt;
&lt;br /&gt;
 sudo ./oled /dev/i2c-4&lt;br /&gt;
&lt;br /&gt;
:[[File:M4_Berry_i2c_4_led.jpg]]&lt;br /&gt;
&lt;br /&gt;
====UART====&lt;br /&gt;
By reviewing the schematic, it can be found that the available uart are uart1 and uart5.&lt;br /&gt;
:[[File:M4_Berry_gpio_uart.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Uart1 and Uart5 is closed and needs to be opened. Execute&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.If you want to use uart1,select&amp;quot;pg-uart1&amp;quot;.If you want to use uart1,select&amp;quot;ph-uart5&amp;quot;&lt;br /&gt;
:[[File:M4_Berry_bananapi_config_uart.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are ttyS5 nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/ttyS5&lt;br /&gt;
 /dev/ttyS5&lt;br /&gt;
&lt;br /&gt;
: 8:Short circuit uart1 pin or uart5 and execute&lt;br /&gt;
 gpio serial /dev/ttyS1&lt;br /&gt;
:[[File:M4_Berry_gpio_uart1.jpg]]&lt;br /&gt;
:[[File:M4_Berry_gpio_uart5.jpg]]&lt;br /&gt;
&lt;br /&gt;
====SPI====&lt;br /&gt;
By reviewing the schematic, it can be found that the available spi is spi1.&lt;br /&gt;
:[[File:M4 Berry-sch-gpio-spi.png]]&lt;br /&gt;
&lt;br /&gt;
: 1.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo bananapi-config&lt;br /&gt;
&lt;br /&gt;
: 2.Select &amp;quot;System&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 3.Select &amp;quot;Hardware&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 4.Use the keyboard directional keys to move, then use the spacebar to select.Select &amp;quot;spi1-cs1-spidev&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 5.Select &amp;quot;Save&amp;quot;, then select &amp;quot;Back&amp;quot;&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-3.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 6.Finally, choose Reboot.&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
: 7.After restarting, check if there are SPI nodes.&lt;br /&gt;
 pi@bpi-m4berry:~$ ls /dev/spidev1.1&lt;br /&gt;
 /dev/spidev1.1&lt;br /&gt;
&lt;br /&gt;
: 8.Execute&lt;br /&gt;
&lt;br /&gt;
 sudo spidev_test -v -D /dev/spidev1.1&lt;br /&gt;
&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi-1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:It can be seen that TX and RX are different. So, we need to short-circuit MOSI and MISO and execute the command again.&lt;br /&gt;
&lt;br /&gt;
:[[File:M4 Berry-bananapi-config-spi-2.jpg]]&lt;br /&gt;
&lt;br /&gt;
====PWM====&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-Pico-RP2040&amp;diff=16872</id>
		<title>BPI-Pico-RP2040</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-Pico-RP2040&amp;diff=16872"/>
				<updated>2024-01-09T02:43:32Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* Hardware Size */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:BPI-Pico-RP2040_开发板]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
[[File:BPI-Pico-RP2040_banner.png|750px]]&lt;br /&gt;
&lt;br /&gt;
[[File:PICO-1000-7.jpg|thumb|[[BPI-PicoW-S3 ]]with ESP32-S3]]&lt;br /&gt;
[[File:PICO-1000-5.png|thumb|[[BPI-PicoW-S3 ]]with ESP32-S3]]&lt;br /&gt;
[[File:Leaf-S3-incline-front.jpg|thumb|[[BPI-Leaf-S3]] with ESP32-S3]]&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
The Banana Pi Pico series is a low-power microcontroller development board designed for the Internet of Things.&lt;br /&gt;
&lt;br /&gt;
BPI-Pico-RP2040 is a microcontroller development board launched by Banana Pi equipped with RP2040 chip. Its most notable feature is to add a Onboard WS2812 color LED; replace the 3-Pin DEBUG interface with a JST SH 1mm 4-Pin socket, which can be connected with Qwiic &amp;amp; STEMMA QT or any possible peripherals; replace the micro-USB socket with a USB Type-C socket , supports reversible insertion, and is compatible with the USB Type-C cable of most modern smartphones, no additional purchase is required.&lt;br /&gt;
&lt;br /&gt;
== key features ==&lt;br /&gt;
&lt;br /&gt;
* Dual-core ARM Cortex M0+ CPU cores (up to 133 MHz)&lt;br /&gt;
* 264K SRAM&lt;br /&gt;
* 2MB Flash&lt;br /&gt;
* 26 available GPIO pins, 4 of which support ADC analog input&lt;br /&gt;
* 1 x LED&lt;br /&gt;
* 1 x Neopixel LED&lt;br /&gt;
* 1 × SH 1.0 4-Pin socket&lt;br /&gt;
* 1 × USB Type-C socket&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
== Hardware interface ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-Pico-RP2040-V0.2-IO_800.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
== Hardware spec ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-Pico-RP2040  Spec Sheet&lt;br /&gt;
|-&lt;br /&gt;
| Main Chip&lt;br /&gt;
| RP2040,Dual-core ARM Cortex M0+ CPU cores&lt;br /&gt;
|-&lt;br /&gt;
| Frequency&lt;br /&gt;
| 133MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| Operating temperature&lt;br /&gt;
| -20℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| On-chip SRAM  &lt;br /&gt;
| 264 KB&lt;br /&gt;
|-&lt;br /&gt;
| On-board FLASH&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| 26 GPIO&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
| 4 analogue inputs&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;6&amp;quot; | PIO&lt;br /&gt;
| I2C&lt;br /&gt;
|-&lt;br /&gt;
| SPI,DSPI,QSPI&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
|-&lt;br /&gt;
| SDIO (SD card)&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
|-&lt;br /&gt;
| 8080 and 6800 parallel port&lt;br /&gt;
|-&lt;br /&gt;
| USB input voltage&lt;br /&gt;
| 5V&lt;br /&gt;
|-&lt;br /&gt;
| 3V3 output current&lt;br /&gt;
| 2A MAX&lt;br /&gt;
|-&lt;br /&gt;
| Neopixel LED&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| LED&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| USB Type-C socket&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| SH 1.0 4-pin socket&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hardware Size ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-Pico-RP2040-V0.2-dimension.jpg|800px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-Pico-RP2040 size chart&lt;br /&gt;
|-&lt;br /&gt;
| Pin spacing&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| Mounting hole spacing&lt;br /&gt;
| 17.6mm/ 11.4mm&lt;br /&gt;
|-&lt;br /&gt;
| Mounting hole size&lt;br /&gt;
| Inner diameter 2.1mm/outer diameter 3.4mm&lt;br /&gt;
|-&lt;br /&gt;
| Mainboard size&lt;br /&gt;
| 11.4 × 55.8(mm)&lt;br /&gt;
|-&lt;br /&gt;
| Thickness&lt;br /&gt;
| 1.2mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin spacing is compatible with universal boards (hole boards, dot matrix boards) and breadboards, which is convenient for debugging applications.&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
==MicroPython==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
MicroPython implements most of the features and syntax of Python 3, which is easy to learn and use, and can be downloaded directly into the chip to run the verification program without compiling.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you have a programming foundation or not, MicroPython is far less difficult to get started with than other programming languages. Its code is easy to read, and the open source community has accumulated rich resources over the years. Just like Python, it has strong vitality and application value.&lt;br /&gt;
&lt;br /&gt;
* [https://bpi-steam.com/Pico_RP2040_doc/en/Programming/MicroPython_Gettingstart.html BPI-Pico-RP2040 MicroPython Getting Started[BPI-STEAM]]&lt;br /&gt;
&lt;br /&gt;
* [https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-python-sdk.pdf Raspberry Pi Pico Python SDK]&lt;br /&gt;
&lt;br /&gt;
==Arduino==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino is an open source embedded software and hardware development platform for users to create interactive embedded projects.&lt;br /&gt;
&lt;br /&gt;
* [https://bpi-steam.com/Pico_RP2040_doc/en/Programming/Arduino_Gettingstart.html BPI-Pico-RP2040 Arduino Getting Started[BPI-STEAM]]&lt;br /&gt;
&lt;br /&gt;
* [https://arduino-pico.readthedocs.io/en/latest/ RP2040 Arduino documentation]&lt;br /&gt;
&lt;br /&gt;
= Reference Resources =&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Pico-RP2040-Doc/blob/main/BPI-Pico-RP2040-V0.2-SCH.pdf GitHub: BPI-Pico-RP2040 Schematic diagram of development board PDF]&lt;br /&gt;
&lt;br /&gt;
* [https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf rp2040-datasheet.pdf]&lt;br /&gt;
&lt;br /&gt;
* [https://datasheets.raspberrypi.com/rp2040/rp2040-product-brief.pdf rp2040-product-brief.pdf]&lt;br /&gt;
&lt;br /&gt;
=Easy to buy sample=&lt;br /&gt;
*BIPAI Aliexress shop:https://www.aliexpress.com/item/1005005083258994.html?&lt;br /&gt;
*SINOVOIP Aliexpress shop : https://www.aliexpress.us/item/3256804896912828.html?gatewayAdapt=glo2usa4itemAdapt&amp;amp;_randl_shipto=US&lt;br /&gt;
*Taobao Shop: https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-24708246124.11.774a3ce5S1Yvbl&amp;amp;id=695456693140&lt;br /&gt;
*OEM&amp;amp;ODM,please contact: judyhuang@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Berry&amp;diff=16529</id>
		<title>Banana Pi BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Berry&amp;diff=16529"/>
				<updated>2023-11-23T10:14:12Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* BPI-M4 Berry VS Raspberry Pi 4b */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
BPI-M4 Berry development board stands as a powerful Single Board Computer (SBC), harnessing the capabilities of the Allwinner H618 System-on-Chip (SoC) to provide developers with impressive performance and a wealth of features. Similar to the Raspberry Pi 4b, the BPI-M4 Berry boasts comparable CPU prowess, 2G LPDDR4 memory and 8G eMMC, integrated WiFi and Bluetooth functionalities, and a familiar 40-pin header layout, alongside 4 USB interfaces and a GbE RJ45 port. &lt;br /&gt;
&lt;br /&gt;
Characterized by its robust performance, versatile features, and remarkable image processing capabilities, stands as an exemplary SBC development platform for professionals within the embedded and computing industries. Equipped with 8GB eMMC flash storage, high-performance decoding and encoding capabilities, and an array of interface options, it caters to a wide spectrum of application domains, including media processing, IoT, and entertainment. Whether catering to novices or seasoned developers, the BPI-M4 Berry development board offers an ideal toolset for realizing creative visions and project objectives.&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_M4-Berry_banner_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Key Features=&lt;br /&gt;
* Allwinner H618, Quad-core ARM Cortex™-A53 processor&lt;br /&gt;
* ARM Mali G31 GPU&lt;br /&gt;
* WIFI &amp;amp; Bluetooth&lt;br /&gt;
* 2G LPDDR4 RAM&lt;br /&gt;
* 8G eMMC flash memory&lt;br /&gt;
* 1x USB2.0 Type-C OTG, 5V power supply&lt;br /&gt;
* 4x USB2.0 Type-A&lt;br /&gt;
* 1x HDMI 2.0a&lt;br /&gt;
* 1x 3.5mm Audio &amp;amp; TVE jack socket&lt;br /&gt;
* 1x GbE Ethernet port&lt;br /&gt;
&lt;br /&gt;
=Getting Start=&lt;br /&gt;
*[[Getting Started with BPI-M4 Berry]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:BPI-M4 Berry interface.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Hardware spec==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;2&amp;quot;| '''Hardware  Specification of Banana pi BPI-M4 Berry'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU || Allwinner H618, Quad-core ARM Cortex™-A53 processor, 64-bit, up to 1.5GHz&lt;br /&gt;
|-&lt;br /&gt;
| GPU ||ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 2 GB LPDDR4 &lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8G eMMC flash&lt;br /&gt;
|-&lt;br /&gt;
| SD card || MicroSD card slot&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || 2.4G/5G WiFi and Bluetooth 4.2&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || 1x GbE Ethernet port(supports PoE with add-on PoE HAT)&lt;br /&gt;
|-&lt;br /&gt;
| HDMI || 1x full-size HDMI 2.0a (up to 4K@60Hz with HDR10, CEC, DDC, SCDC), HDMI digital Audio output&lt;br /&gt;
|-&lt;br /&gt;
| Audio || 1x 3.5mm Audio &amp;amp; TVE jack socket&lt;br /&gt;
|-&lt;br /&gt;
| IR || 1x CIR&lt;br /&gt;
|-&lt;br /&gt;
| USB || 4x USB2.0 Type-A HOST, 1x USB2.0 Type-C OTG&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 40-pin header&lt;br /&gt;
| 28 pins GPIO and Power (+5V, +3.3V and GND)&lt;br /&gt;
|-&lt;br /&gt;
| UART, SPI, TWI/I²C, PWM, PCM/I²S&lt;br /&gt;
|-&lt;br /&gt;
|Buttons|| Reset, FEL and User&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
| Power || 5V@3A via USB Type-C&lt;br /&gt;
|-&lt;br /&gt;
|Size || 85x56 mm &lt;br /&gt;
|-&lt;br /&gt;
|Weight || 60g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BPI-M4 Berry VS Raspberry Pi 4b ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! module !! Raspberry Pi 4B !! Banana Pi BPI-M4 Berry&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1.5GHz Quad-Core BroadcomBCM2711(Cortex A72) || H618,64 Bit Cortex™-A53 Quad-Core&lt;br /&gt;
|-&lt;br /&gt;
| GPU || 500 MHz VideoCore Vl || ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 1-4GB DDR4 || 2GB LPDDR4(up to 4G)&lt;br /&gt;
|-&lt;br /&gt;
| Onboard Storage || MicroSD (TF) card || MicroSD (TF) card / MMC card slot ,eMMC 8GB&lt;br /&gt;
|-&lt;br /&gt;
| Network || 10/100/1000 Ethernet || 10/100/1000 Ethernet&lt;br /&gt;
|-&lt;br /&gt;
| Onboard WIFI &amp;amp;BT || IEEE 802.11a/b/g/n/ac &amp;amp; BT5.0 || IEEE 802.11a/b/g/n/ac &amp;amp; BT4.2&lt;br /&gt;
|-&lt;br /&gt;
| Display || HDMI || HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Camera || CSI || N/A&lt;br /&gt;
|-&lt;br /&gt;
| Video Outputs || 2*Micro-HDMI || HDMI 2.0a 4K@60fps&lt;br /&gt;
|-&lt;br /&gt;
| Audio Output || 3.5 mm Jack and HDM || 3.5 mm Jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Audio In || N/A || N/A&lt;br /&gt;
|-&lt;br /&gt;
| GPIO || 40-PIN: PWM,GPIO,UART,I²C bus,I²S bus,SPI bus,+3.3v,+5v,ground. CAN bus || 40-PIN: PWM,GPIO,UART,I²C bus,I²S bus,SPI bus,+3.3v,+5v,ground. CAN bus&lt;br /&gt;
|-&lt;br /&gt;
| Remote || N/A || IR reciever&lt;br /&gt;
|-&lt;br /&gt;
| USB Ports || 2*USB3.0+2USB2.0 || 2 * USB 2.0 1* USB Otg&lt;br /&gt;
|-&lt;br /&gt;
| Buttons || N/A || Reset button, User button, Uboot button&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power led Status led || Power led  Status led  Wifi led&lt;br /&gt;
|-&lt;br /&gt;
| Power || DC 5V/3A || DC 5V/2A&lt;br /&gt;
|-&lt;br /&gt;
| Board Size || 88mmx58mm || 88mmx58mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PIN define ==&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Berry 40-pin header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;6&amp;quot;| '''40-pin header define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! Pin Num&lt;br /&gt;
! Pin Name&lt;br /&gt;
! ALT0&lt;br /&gt;
! ALT1&lt;br /&gt;
! ALT2&lt;br /&gt;
! ALT3&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| PG16&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| PG15&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PG19&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PG6&lt;br /&gt;
| UART1_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PG7&lt;br /&gt;
| UART1_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| PH2&lt;br /&gt;
| UART5_TX&lt;br /&gt;
| &lt;br /&gt;
| PWM2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| PG11&lt;br /&gt;
| H_I2S2_BCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PH3&lt;br /&gt;
| UART5_RX&lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PG2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PG8&lt;br /&gt;
| UART1_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| PG9&lt;br /&gt;
| UART1_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| PH7&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| H_I2S3_LRCK&lt;br /&gt;
| SPI1_MOSI&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| PH8&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| H_I2S3_DOUT0&lt;br /&gt;
| SPI1_MISO&lt;br /&gt;
| H_I2S3_DIN1&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| PG1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| PH6&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| H_I2S3_BCLK&lt;br /&gt;
| SPI1_CLK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| PH5&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| H_I2S3_MCLK&lt;br /&gt;
| SPI1_CS0&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| PH9&lt;br /&gt;
| &lt;br /&gt;
| H_I2S3_DIN0&lt;br /&gt;
| SPI1_CS1&lt;br /&gt;
| H_I2S3_DOUT1&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| PG18&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| PG17&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| PG3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| PG4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| PG0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| PG5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 34&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 35&lt;br /&gt;
| PG12&lt;br /&gt;
| H_I2S2_LRCK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| PH4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 37&lt;br /&gt;
| PG10&lt;br /&gt;
| H_I2S2_MCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 38&lt;br /&gt;
| PG14&lt;br /&gt;
| H_I2S2_DIN0&lt;br /&gt;
| H_I2S2_DOUT1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 40&lt;br /&gt;
| PG13&lt;br /&gt;
| H_I2S2_DOUT0&lt;br /&gt;
| H_I2S2_DIN1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Berry Debug UART===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GND&lt;br /&gt;
|-&lt;br /&gt;
| 2 || UART0_RX&lt;br /&gt;
|-&lt;br /&gt;
| 3 || UART0_TX&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Source code==&lt;br /&gt;
&lt;br /&gt;
*u-boot for H618 : https://github.com/BPI-SINOVOIP/pi-u-boot/tree/v2021.07-sunxi&lt;br /&gt;
*kernel for H618 : https://github.com/BPI-SINOVOIP/pi-linux/tree/pi-6.1-sunxi&lt;br /&gt;
&lt;br /&gt;
== Resources==&lt;br /&gt;
*BPI-M4 Berry Allwinner H618 SBC burn Ubuntu desktop image:https://www.youtube.com/watch?v=GAZsUDYL0DE&lt;br /&gt;
*BPI-M4 Berry DXF file&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1qS-_3d3IpoMBWJe8aI8JFA?pwd=8888 (pincode:8888) &lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/13wsY0cMZGfz5MdTqlo19DtmlZfdOGLI4/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*BPI-M4 Berry SBC bench test: http://forum.banana-pi.org/t/bpi-m4-sbc-bench-test/9469&lt;br /&gt;
&lt;br /&gt;
*Allwinner H618 Datasheet&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/10Rk4xLMOhIkk-gIoQx9DQw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/1N6oWF9PHTcxXC1JY4x3Malr3twFv2wWZ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=System image=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Ubuntu===&lt;br /&gt;
*2023-11-09 Bpi-m4berry_0.0.1_beta_ubuntu_jammy_minimal_linux6.1.31&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1Mh8E6Zh-x8dAPkb00iX9Rw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/159Y7p8j067snqTG4oaUA2CP4aY4t6uyt/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*2023-11-09 Bpi-m4berry_0.0.1_beta_ubuntu_jammy_desktop_xfce_linux6.1.31&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1_sN137hKZt4DaawVsfO5Nw?pwd=8888 (pincode:8888) &lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/10wXnsgGtLWwf9J-dvLHW2mxsPKOrdHmJ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=Easy to buy=&lt;br /&gt;
*Aliexpress shop:&lt;br /&gt;
:SINOVOIP Aliexpress shop: https://www.aliexpress.us/item/1005006212355480.html?spm&lt;br /&gt;
:Bipai Aliexpress shop: https://www.aliexpress.us/item/1005006212128000.html?gatewayAdapt=glo2usa&lt;br /&gt;
:Taobao Shop: https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-25059194413.11.489155c8Addsck&amp;amp;id=747425760994&lt;br /&gt;
:OEM&amp;amp;ODM, please contact: judyhuang@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Berry&amp;diff=16524</id>
		<title>Banana Pi BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Berry&amp;diff=16524"/>
				<updated>2023-11-23T08:48:16Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* BPI-M4 Berry VS Raspberry Pi 4b */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
BPI-M4 Berry development board stands as a powerful Single Board Computer (SBC), harnessing the capabilities of the Allwinner H618 System-on-Chip (SoC) to provide developers with impressive performance and a wealth of features. Similar to the Raspberry Pi 4b, the BPI-M4 Berry boasts comparable CPU prowess, 2G LPDDR4 memory and 8G eMMC, integrated WiFi and Bluetooth functionalities, and a familiar 40-pin header layout, alongside 4 USB interfaces and a GbE RJ45 port. &lt;br /&gt;
&lt;br /&gt;
Characterized by its robust performance, versatile features, and remarkable image processing capabilities, stands as an exemplary SBC development platform for professionals within the embedded and computing industries. Equipped with 8GB eMMC flash storage, high-performance decoding and encoding capabilities, and an array of interface options, it caters to a wide spectrum of application domains, including media processing, IoT, and entertainment. Whether catering to novices or seasoned developers, the BPI-M4 Berry development board offers an ideal toolset for realizing creative visions and project objectives.&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_M4-Berry_banner_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Key Features=&lt;br /&gt;
* Allwinner H618, Quad-core ARM Cortex™-A53 processor&lt;br /&gt;
* ARM Mali G31 GPU&lt;br /&gt;
* WIFI &amp;amp; Bluetooth&lt;br /&gt;
* 2G LPDDR4 RAM&lt;br /&gt;
* 8G eMMC flash memory&lt;br /&gt;
* 1x USB2.0 Type-C OTG, 5V power supply&lt;br /&gt;
* 4x USB2.0 Type-A&lt;br /&gt;
* 1x HDMI 2.0a&lt;br /&gt;
* 1x 3.5mm Audio &amp;amp; TVE jack socket&lt;br /&gt;
* 1x GbE Ethernet port&lt;br /&gt;
&lt;br /&gt;
=Getting Start=&lt;br /&gt;
*[[Getting Started with BPI-M4 Berry]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:BPI-M4 Berry interface.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Hardware spec==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;2&amp;quot;| '''Hardware  Specification of Banana pi BPI-M4 Berry'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU || Allwinner H618, Quad-core ARM Cortex™-A53 processor, 64-bit, up to 1.5GHz&lt;br /&gt;
|-&lt;br /&gt;
| GPU ||ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 2 GB LPDDR4 &lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8G eMMC flash&lt;br /&gt;
|-&lt;br /&gt;
| SD card || MicroSD card slot&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || 2.4G/5G WiFi and Bluetooth 4.2&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || 1x GbE Ethernet port(supports PoE with add-on PoE HAT)&lt;br /&gt;
|-&lt;br /&gt;
| HDMI || 1x full-size HDMI 2.0a (up to 4K@60Hz with HDR10, CEC, DDC, SCDC), HDMI digital Audio output&lt;br /&gt;
|-&lt;br /&gt;
| Audio || 1x 3.5mm Audio &amp;amp; TVE jack socket&lt;br /&gt;
|-&lt;br /&gt;
| IR || 1x CIR&lt;br /&gt;
|-&lt;br /&gt;
| USB || 4x USB2.0 Type-A HOST, 1x USB2.0 Type-C OTG&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 40-pin header&lt;br /&gt;
| 28 pins GPIO and Power (+5V, +3.3V and GND)&lt;br /&gt;
|-&lt;br /&gt;
| UART, SPI, TWI/I²C, PWM, PCM/I²S&lt;br /&gt;
|-&lt;br /&gt;
|Buttons|| Reset, FEL and User&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
| Power || 5V@3A via USB Type-C&lt;br /&gt;
|-&lt;br /&gt;
|Size || 85x56 mm &lt;br /&gt;
|-&lt;br /&gt;
|Weight || 60g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BPI-M4 Berry VS Raspberry Pi 4b ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! module !! Raspberry Pi 4B !! Banana Pi BPI-M4 Berry&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1.5GHz Quad-Core BroadcomBCM2711(Cortex A72) || H618,64 Bit Cortex™-A53 Quad-Core&lt;br /&gt;
|-&lt;br /&gt;
| GPU || 500 MHz VideoCore Vl || ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 1-4GB DDR4 || 2GB LPDDR4(up to 4G)&lt;br /&gt;
|-&lt;br /&gt;
| Onboard Storage || MicroSD (TF) card || MicroSD (TF) card / MMC card slot ,eMMC 8GB&lt;br /&gt;
|-&lt;br /&gt;
| Network || 10/100/1000 Ethernet || 10/100/1000 Ethernet&lt;br /&gt;
|-&lt;br /&gt;
| Onboard WIFI &amp;amp;BT || IEEE 802.11a/b/g/n/ac &amp;amp; BT5.0 || IEEE 802.11a/b/g/n/ac &amp;amp; BT4.2&lt;br /&gt;
|-&lt;br /&gt;
| Display || HDMI || HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Camera || N/A || N/A&lt;br /&gt;
|-&lt;br /&gt;
| Video Outputs || 2*Micro-HDMI || HDMI 2.0a 4K@60fps&lt;br /&gt;
|-&lt;br /&gt;
| Audio Output || 3.5 mm Jack and HDM || 3.5 mm Jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Audio In || N/A || N/A&lt;br /&gt;
|-&lt;br /&gt;
| GPIO || 40-PIN: PWM,GPIO,UART,I²C bus,I²S bus,SPI bus,+3.3v,+5v,ground. CAN bus || 40-PIN: PWM,GPIO,UART,I²C bus,I²S bus,SPI bus,+3.3v,+5v,ground. CAN bus&lt;br /&gt;
|-&lt;br /&gt;
| Remote || N/A || IR reciever&lt;br /&gt;
|-&lt;br /&gt;
| USB Ports || 2*USB3.0+2USB2.0 || 2 * USB 2.0 1* USB Otg&lt;br /&gt;
|-&lt;br /&gt;
| Buttons || N/A || Reset button, User button, Uboot button&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power led Status led || Power led  Status led  Wifi led&lt;br /&gt;
|-&lt;br /&gt;
| Power || DC 5V/3A || DC 5V/2A&lt;br /&gt;
|-&lt;br /&gt;
| Board Size || 88mmx58mm || 88mmx58mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PIN define ==&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Berry 40-pin header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;6&amp;quot;| '''40-pin header define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! Pin Num&lt;br /&gt;
! Pin Name&lt;br /&gt;
! ALT0&lt;br /&gt;
! ALT1&lt;br /&gt;
! ALT2&lt;br /&gt;
! ALT3&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| PG16&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| PG15&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PG19&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PG6&lt;br /&gt;
| UART1_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PG7&lt;br /&gt;
| UART1_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| PH2&lt;br /&gt;
| UART5_TX&lt;br /&gt;
| &lt;br /&gt;
| PWM2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| PG11&lt;br /&gt;
| H_I2S2_BCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PH3&lt;br /&gt;
| UART5_RX&lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PG2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PG8&lt;br /&gt;
| UART1_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| PG9&lt;br /&gt;
| UART1_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| PH7&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| H_I2S3_LRCK&lt;br /&gt;
| SPI1_MOSI&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| PH8&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| H_I2S3_DOUT0&lt;br /&gt;
| SPI1_MISO&lt;br /&gt;
| H_I2S3_DIN1&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| PG1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| PH6&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| H_I2S3_BCLK&lt;br /&gt;
| SPI1_CLK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| PH5&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| H_I2S3_MCLK&lt;br /&gt;
| SPI1_CS0&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| PH9&lt;br /&gt;
| &lt;br /&gt;
| H_I2S3_DIN0&lt;br /&gt;
| SPI1_CS1&lt;br /&gt;
| H_I2S3_DOUT1&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| PG18&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| PG17&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| PG3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| PG4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| PG0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| PG5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 34&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 35&lt;br /&gt;
| PG12&lt;br /&gt;
| H_I2S2_LRCK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| PH4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 37&lt;br /&gt;
| PG10&lt;br /&gt;
| H_I2S2_MCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 38&lt;br /&gt;
| PG14&lt;br /&gt;
| H_I2S2_DIN0&lt;br /&gt;
| H_I2S2_DOUT1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 40&lt;br /&gt;
| PG13&lt;br /&gt;
| H_I2S2_DOUT0&lt;br /&gt;
| H_I2S2_DIN1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Berry Debug UART===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GND&lt;br /&gt;
|-&lt;br /&gt;
| 2 || UART0_RX&lt;br /&gt;
|-&lt;br /&gt;
| 3 || UART0_TX&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Source code==&lt;br /&gt;
&lt;br /&gt;
*u-boot for H618 : https://github.com/BPI-SINOVOIP/pi-u-boot/tree/v2021.07-sunxi&lt;br /&gt;
*kernel for H618 : https://github.com/BPI-SINOVOIP/pi-linux/tree/pi-6.1-sunxi&lt;br /&gt;
&lt;br /&gt;
== Resources==&lt;br /&gt;
*BPI-M4 Berry Allwinner H618 SBC burn Ubuntu desktop image:https://www.youtube.com/watch?v=GAZsUDYL0DE&lt;br /&gt;
*BPI-M4 Berry DXF file&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1qS-_3d3IpoMBWJe8aI8JFA?pwd=8888 (pincode:8888) &lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/13wsY0cMZGfz5MdTqlo19DtmlZfdOGLI4/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*BPI-M4 Berry SBC bench test: http://forum.banana-pi.org/t/bpi-m4-sbc-bench-test/9469&lt;br /&gt;
&lt;br /&gt;
*Allwinner H618 Datasheet&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/10Rk4xLMOhIkk-gIoQx9DQw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/1N6oWF9PHTcxXC1JY4x3Malr3twFv2wWZ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=System image=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Ubuntu===&lt;br /&gt;
*2023-11-09 Bpi-m4berry_0.0.1_beta_ubuntu_jammy_minimal_linux6.1.31&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1Mh8E6Zh-x8dAPkb00iX9Rw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/159Y7p8j067snqTG4oaUA2CP4aY4t6uyt/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*2023-11-09 Bpi-m4berry_0.0.1_beta_ubuntu_jammy_desktop_xfce_linux6.1.31&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1_sN137hKZt4DaawVsfO5Nw?pwd=8888 (pincode:8888) &lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/10wXnsgGtLWwf9J-dvLHW2mxsPKOrdHmJ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=Easy to buy=&lt;br /&gt;
*Aliexpress shop:&lt;br /&gt;
:SINOVOIP Aliexpress shop: https://www.aliexpress.us/item/1005006212355480.html?spm&lt;br /&gt;
:Bipai Aliexpress shop: https://www.aliexpress.us/item/1005006212128000.html?gatewayAdapt=glo2usa&lt;br /&gt;
:Taobao Shop: https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-25059194413.11.489155c8Addsck&amp;amp;id=747425760994&lt;br /&gt;
:OEM&amp;amp;ODM, please contact: judyhuang@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Berry&amp;diff=16523</id>
		<title>Banana Pi BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Berry&amp;diff=16523"/>
				<updated>2023-11-23T08:47:56Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* BPI-M4 Berry VS Raspberry Pi 4b */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
BPI-M4 Berry development board stands as a powerful Single Board Computer (SBC), harnessing the capabilities of the Allwinner H618 System-on-Chip (SoC) to provide developers with impressive performance and a wealth of features. Similar to the Raspberry Pi 4b, the BPI-M4 Berry boasts comparable CPU prowess, 2G LPDDR4 memory and 8G eMMC, integrated WiFi and Bluetooth functionalities, and a familiar 40-pin header layout, alongside 4 USB interfaces and a GbE RJ45 port. &lt;br /&gt;
&lt;br /&gt;
Characterized by its robust performance, versatile features, and remarkable image processing capabilities, stands as an exemplary SBC development platform for professionals within the embedded and computing industries. Equipped with 8GB eMMC flash storage, high-performance decoding and encoding capabilities, and an array of interface options, it caters to a wide spectrum of application domains, including media processing, IoT, and entertainment. Whether catering to novices or seasoned developers, the BPI-M4 Berry development board offers an ideal toolset for realizing creative visions and project objectives.&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_M4-Berry_banner_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Key Features=&lt;br /&gt;
* Allwinner H618, Quad-core ARM Cortex™-A53 processor&lt;br /&gt;
* ARM Mali G31 GPU&lt;br /&gt;
* WIFI &amp;amp; Bluetooth&lt;br /&gt;
* 2G LPDDR4 RAM&lt;br /&gt;
* 8G eMMC flash memory&lt;br /&gt;
* 1x USB2.0 Type-C OTG, 5V power supply&lt;br /&gt;
* 4x USB2.0 Type-A&lt;br /&gt;
* 1x HDMI 2.0a&lt;br /&gt;
* 1x 3.5mm Audio &amp;amp; TVE jack socket&lt;br /&gt;
* 1x GbE Ethernet port&lt;br /&gt;
&lt;br /&gt;
=Getting Start=&lt;br /&gt;
*[[Getting Started with BPI-M4 Berry]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:BPI-M4 Berry interface.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Hardware spec==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;2&amp;quot;| '''Hardware  Specification of Banana pi BPI-M4 Berry'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU || Allwinner H618, Quad-core ARM Cortex™-A53 processor, 64-bit, up to 1.5GHz&lt;br /&gt;
|-&lt;br /&gt;
| GPU ||ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 2 GB LPDDR4 &lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8G eMMC flash&lt;br /&gt;
|-&lt;br /&gt;
| SD card || MicroSD card slot&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || 2.4G/5G WiFi and Bluetooth 4.2&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || 1x GbE Ethernet port(supports PoE with add-on PoE HAT)&lt;br /&gt;
|-&lt;br /&gt;
| HDMI || 1x full-size HDMI 2.0a (up to 4K@60Hz with HDR10, CEC, DDC, SCDC), HDMI digital Audio output&lt;br /&gt;
|-&lt;br /&gt;
| Audio || 1x 3.5mm Audio &amp;amp; TVE jack socket&lt;br /&gt;
|-&lt;br /&gt;
| IR || 1x CIR&lt;br /&gt;
|-&lt;br /&gt;
| USB || 4x USB2.0 Type-A HOST, 1x USB2.0 Type-C OTG&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 40-pin header&lt;br /&gt;
| 28 pins GPIO and Power (+5V, +3.3V and GND)&lt;br /&gt;
|-&lt;br /&gt;
| UART, SPI, TWI/I²C, PWM, PCM/I²S&lt;br /&gt;
|-&lt;br /&gt;
|Buttons|| Reset, FEL and User&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
| Power || 5V@3A via USB Type-C&lt;br /&gt;
|-&lt;br /&gt;
|Size || 85x56 mm &lt;br /&gt;
|-&lt;br /&gt;
|Weight || 60g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BPI-M4 Berry VS Raspberry Pi 4b ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! module !! Raspberry Pi 4B !! Banana Pi BPI-M4 Berry&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1.5GHz Quad-Core BroadcomBCM2711(Cortex A72) || H618,64 Bit Cortex™-A53 Quad-Core&lt;br /&gt;
|-&lt;br /&gt;
| GPU || 500 MHz VideoCore Vl || ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory \(SDRAM\) || 1-4GB DDR4 || 2GB LPDDR4(up to 4G)&lt;br /&gt;
|-&lt;br /&gt;
| Onboard Storage || MicroSD (TF) card || MicroSD (TF) card / MMC card slot ,eMMC 8GB&lt;br /&gt;
|-&lt;br /&gt;
| Network || 10/100/1000 Ethernet || 10/100/1000 Ethernet&lt;br /&gt;
|-&lt;br /&gt;
| Onboard WIFI &amp;amp;BT || IEEE 802.11a/b/g/n/ac &amp;amp; BT5.0 || IEEE 802.11a/b/g/n/ac &amp;amp; BT4.2&lt;br /&gt;
|-&lt;br /&gt;
| Display || HDMI || HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Camera || N/A || N/A&lt;br /&gt;
|-&lt;br /&gt;
| Video Outputs || 2*Micro-HDMI || HDMI 2.0a 4K@60fps&lt;br /&gt;
|-&lt;br /&gt;
| Audio Output || 3.5 mm Jack and HDM || 3.5 mm Jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Audio In || N/A || N/A&lt;br /&gt;
|-&lt;br /&gt;
| GPIO || 40-PIN: PWM,GPIO,UART,I²C bus,I²S bus,SPI bus,+3.3v,+5v,ground. CAN bus || 40-PIN: PWM,GPIO,UART,I²C bus,I²S bus,SPI bus,+3.3v,+5v,ground. CAN bus&lt;br /&gt;
|-&lt;br /&gt;
| Remote || N/A || IR reciever&lt;br /&gt;
|-&lt;br /&gt;
| USB Ports || 2*USB3.0+2USB2.0 || 2 * USB 2.0 1* USB Otg&lt;br /&gt;
|-&lt;br /&gt;
| Buttons || N/A || Reset button, User button, Uboot button&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power led Status led || Power led  Status led  Wifi led&lt;br /&gt;
|-&lt;br /&gt;
| Power || DC 5V/3A || DC 5V/2A&lt;br /&gt;
|-&lt;br /&gt;
| Board Size || 88mmx58mm || 88mmx58mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PIN define ==&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Berry 40-pin header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;6&amp;quot;| '''40-pin header define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! Pin Num&lt;br /&gt;
! Pin Name&lt;br /&gt;
! ALT0&lt;br /&gt;
! ALT1&lt;br /&gt;
! ALT2&lt;br /&gt;
! ALT3&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| PG16&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| PG15&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PG19&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PG6&lt;br /&gt;
| UART1_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PG7&lt;br /&gt;
| UART1_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| PH2&lt;br /&gt;
| UART5_TX&lt;br /&gt;
| &lt;br /&gt;
| PWM2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| PG11&lt;br /&gt;
| H_I2S2_BCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PH3&lt;br /&gt;
| UART5_RX&lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PG2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PG8&lt;br /&gt;
| UART1_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| PG9&lt;br /&gt;
| UART1_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| PH7&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| H_I2S3_LRCK&lt;br /&gt;
| SPI1_MOSI&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| PH8&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| H_I2S3_DOUT0&lt;br /&gt;
| SPI1_MISO&lt;br /&gt;
| H_I2S3_DIN1&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| PG1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| PH6&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| H_I2S3_BCLK&lt;br /&gt;
| SPI1_CLK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| PH5&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| H_I2S3_MCLK&lt;br /&gt;
| SPI1_CS0&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| PH9&lt;br /&gt;
| &lt;br /&gt;
| H_I2S3_DIN0&lt;br /&gt;
| SPI1_CS1&lt;br /&gt;
| H_I2S3_DOUT1&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| PG18&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| PG17&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| PG3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| PG4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| PG0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| PG5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 34&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 35&lt;br /&gt;
| PG12&lt;br /&gt;
| H_I2S2_LRCK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| PH4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 37&lt;br /&gt;
| PG10&lt;br /&gt;
| H_I2S2_MCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 38&lt;br /&gt;
| PG14&lt;br /&gt;
| H_I2S2_DIN0&lt;br /&gt;
| H_I2S2_DOUT1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 40&lt;br /&gt;
| PG13&lt;br /&gt;
| H_I2S2_DOUT0&lt;br /&gt;
| H_I2S2_DIN1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Berry Debug UART===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GND&lt;br /&gt;
|-&lt;br /&gt;
| 2 || UART0_RX&lt;br /&gt;
|-&lt;br /&gt;
| 3 || UART0_TX&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Source code==&lt;br /&gt;
&lt;br /&gt;
*u-boot for H618 : https://github.com/BPI-SINOVOIP/pi-u-boot/tree/v2021.07-sunxi&lt;br /&gt;
*kernel for H618 : https://github.com/BPI-SINOVOIP/pi-linux/tree/pi-6.1-sunxi&lt;br /&gt;
&lt;br /&gt;
== Resources==&lt;br /&gt;
*BPI-M4 Berry Allwinner H618 SBC burn Ubuntu desktop image:https://www.youtube.com/watch?v=GAZsUDYL0DE&lt;br /&gt;
*BPI-M4 Berry DXF file&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1qS-_3d3IpoMBWJe8aI8JFA?pwd=8888 (pincode:8888) &lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/13wsY0cMZGfz5MdTqlo19DtmlZfdOGLI4/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*BPI-M4 Berry SBC bench test: http://forum.banana-pi.org/t/bpi-m4-sbc-bench-test/9469&lt;br /&gt;
&lt;br /&gt;
*Allwinner H618 Datasheet&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/10Rk4xLMOhIkk-gIoQx9DQw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/1N6oWF9PHTcxXC1JY4x3Malr3twFv2wWZ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=System image=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Ubuntu===&lt;br /&gt;
*2023-11-09 Bpi-m4berry_0.0.1_beta_ubuntu_jammy_minimal_linux6.1.31&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1Mh8E6Zh-x8dAPkb00iX9Rw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/159Y7p8j067snqTG4oaUA2CP4aY4t6uyt/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*2023-11-09 Bpi-m4berry_0.0.1_beta_ubuntu_jammy_desktop_xfce_linux6.1.31&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1_sN137hKZt4DaawVsfO5Nw?pwd=8888 (pincode:8888) &lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/10wXnsgGtLWwf9J-dvLHW2mxsPKOrdHmJ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=Easy to buy=&lt;br /&gt;
*Aliexpress shop:&lt;br /&gt;
:SINOVOIP Aliexpress shop: https://www.aliexpress.us/item/1005006212355480.html?spm&lt;br /&gt;
:Bipai Aliexpress shop: https://www.aliexpress.us/item/1005006212128000.html?gatewayAdapt=glo2usa&lt;br /&gt;
:Taobao Shop: https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-25059194413.11.489155c8Addsck&amp;amp;id=747425760994&lt;br /&gt;
:OEM&amp;amp;ODM, please contact: judyhuang@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Berry&amp;diff=16522</id>
		<title>Banana Pi BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Berry&amp;diff=16522"/>
				<updated>2023-11-23T08:44:50Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* BPI-M4 Berry VS Raspberry Pi 4b */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
BPI-M4 Berry development board stands as a powerful Single Board Computer (SBC), harnessing the capabilities of the Allwinner H618 System-on-Chip (SoC) to provide developers with impressive performance and a wealth of features. Similar to the Raspberry Pi 4b, the BPI-M4 Berry boasts comparable CPU prowess, 2G LPDDR4 memory and 8G eMMC, integrated WiFi and Bluetooth functionalities, and a familiar 40-pin header layout, alongside 4 USB interfaces and a GbE RJ45 port. &lt;br /&gt;
&lt;br /&gt;
Characterized by its robust performance, versatile features, and remarkable image processing capabilities, stands as an exemplary SBC development platform for professionals within the embedded and computing industries. Equipped with 8GB eMMC flash storage, high-performance decoding and encoding capabilities, and an array of interface options, it caters to a wide spectrum of application domains, including media processing, IoT, and entertainment. Whether catering to novices or seasoned developers, the BPI-M4 Berry development board offers an ideal toolset for realizing creative visions and project objectives.&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_M4-Berry_banner_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Key Features=&lt;br /&gt;
* Allwinner H618, Quad-core ARM Cortex™-A53 processor&lt;br /&gt;
* ARM Mali G31 GPU&lt;br /&gt;
* WIFI &amp;amp; Bluetooth&lt;br /&gt;
* 2G LPDDR4 RAM&lt;br /&gt;
* 8G eMMC flash memory&lt;br /&gt;
* 1x USB2.0 Type-C OTG, 5V power supply&lt;br /&gt;
* 4x USB2.0 Type-A&lt;br /&gt;
* 1x HDMI 2.0a&lt;br /&gt;
* 1x 3.5mm Audio &amp;amp; TVE jack socket&lt;br /&gt;
* 1x GbE Ethernet port&lt;br /&gt;
&lt;br /&gt;
=Getting Start=&lt;br /&gt;
*[[Getting Started with BPI-M4 Berry]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:BPI-M4 Berry interface.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Hardware spec==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;2&amp;quot;| '''Hardware  Specification of Banana pi BPI-M4 Berry'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU || Allwinner H618, Quad-core ARM Cortex™-A53 processor, 64-bit, up to 1.5GHz&lt;br /&gt;
|-&lt;br /&gt;
| GPU ||ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 2 GB LPDDR4 &lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8G eMMC flash&lt;br /&gt;
|-&lt;br /&gt;
| SD card || MicroSD card slot&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || 2.4G/5G WiFi and Bluetooth 4.2&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || 1x GbE Ethernet port(supports PoE with add-on PoE HAT)&lt;br /&gt;
|-&lt;br /&gt;
| HDMI || 1x full-size HDMI 2.0a (up to 4K@60Hz with HDR10, CEC, DDC, SCDC), HDMI digital Audio output&lt;br /&gt;
|-&lt;br /&gt;
| Audio || 1x 3.5mm Audio &amp;amp; TVE jack socket&lt;br /&gt;
|-&lt;br /&gt;
| IR || 1x CIR&lt;br /&gt;
|-&lt;br /&gt;
| USB || 4x USB2.0 Type-A HOST, 1x USB2.0 Type-C OTG&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 40-pin header&lt;br /&gt;
| 28 pins GPIO and Power (+5V, +3.3V and GND)&lt;br /&gt;
|-&lt;br /&gt;
| UART, SPI, TWI/I²C, PWM, PCM/I²S&lt;br /&gt;
|-&lt;br /&gt;
|Buttons|| Reset, FEL and User&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
| Power || 5V@3A via USB Type-C&lt;br /&gt;
|-&lt;br /&gt;
|Size || 85x56 mm &lt;br /&gt;
|-&lt;br /&gt;
|Weight || 60g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BPI-M4 Berry VS Raspberry Pi 4b ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! module !! Raspberry Pi 4B !! Banana Pi BPI-M4 Berry&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1.5GHz 4核 BroadcomBCM2711(Cortex A72) || H618,64 Bit Cortex™-A53 Quad-Core&lt;br /&gt;
|-&lt;br /&gt;
| GPU || 500 MHz VideoCore Vl || ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory \(SDRAM\) || 1-4GB DDR4 || 2GB LPDDR4(up to 4G)&lt;br /&gt;
|-&lt;br /&gt;
| Onboard Storage || MicroSD (TF) card || MicroSD (TF) card / MMC card slot ,eMMC 8GB&lt;br /&gt;
|-&lt;br /&gt;
| Network || 10/100/1000 Ethernet || 10/100/1000 Ethernet&lt;br /&gt;
|-&lt;br /&gt;
| Onboard WIFI &amp;amp;BT || IEEE 802.11a/b/g/n/ac &amp;amp; BT5.0 || IEEE 802.11a/b/g/n/ac &amp;amp; BT4.2&lt;br /&gt;
|-&lt;br /&gt;
| Display || HDMI || HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Camera || N/A || N/A&lt;br /&gt;
|-&lt;br /&gt;
| Video Outputs || 2*Micro-HDMI || HDMI 2.0a 4K@60fps&lt;br /&gt;
|-&lt;br /&gt;
| Audio Output || 3.5 mm Jack and HDM || 3.5 mm Jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Audio In || N/A || N/A&lt;br /&gt;
|-&lt;br /&gt;
| GPIO || 40-PIN: PWM,GPIO,UART,I²C bus,I²S bus,SPI bus,+3.3v,+5v,ground. CAN bus || 40-PIN: PWM,GPIO,UART,I²C bus,I²S bus,SPI bus,+3.3v,+5v,ground. CAN bus&lt;br /&gt;
|-&lt;br /&gt;
| Remote || N/A || IR reciever&lt;br /&gt;
|-&lt;br /&gt;
| USB Ports || 2*USB3.0+2USB2.0 || 2 * USB 2.0 1* USB Otg&lt;br /&gt;
|-&lt;br /&gt;
| Buttons || N/A || Reset button, User button, Uboot button&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power led Status led || Power led  Status led  Wifi led&lt;br /&gt;
|-&lt;br /&gt;
| Power || DC 5V/3A || DC 5V/2A&lt;br /&gt;
|-&lt;br /&gt;
| Board Size || 88mmx58mm || 88mmx58mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PIN define ==&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Berry 40-pin header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;6&amp;quot;| '''40-pin header define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! Pin Num&lt;br /&gt;
! Pin Name&lt;br /&gt;
! ALT0&lt;br /&gt;
! ALT1&lt;br /&gt;
! ALT2&lt;br /&gt;
! ALT3&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| PG16&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| PG15&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PG19&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PG6&lt;br /&gt;
| UART1_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PG7&lt;br /&gt;
| UART1_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| PH2&lt;br /&gt;
| UART5_TX&lt;br /&gt;
| &lt;br /&gt;
| PWM2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| PG11&lt;br /&gt;
| H_I2S2_BCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PH3&lt;br /&gt;
| UART5_RX&lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PG2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PG8&lt;br /&gt;
| UART1_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| PG9&lt;br /&gt;
| UART1_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| PH7&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| H_I2S3_LRCK&lt;br /&gt;
| SPI1_MOSI&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| PH8&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| H_I2S3_DOUT0&lt;br /&gt;
| SPI1_MISO&lt;br /&gt;
| H_I2S3_DIN1&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| PG1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| PH6&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| H_I2S3_BCLK&lt;br /&gt;
| SPI1_CLK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| PH5&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| H_I2S3_MCLK&lt;br /&gt;
| SPI1_CS0&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| PH9&lt;br /&gt;
| &lt;br /&gt;
| H_I2S3_DIN0&lt;br /&gt;
| SPI1_CS1&lt;br /&gt;
| H_I2S3_DOUT1&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| PG18&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| PG17&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| PG3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| PG4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| PG0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| PG5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 34&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 35&lt;br /&gt;
| PG12&lt;br /&gt;
| H_I2S2_LRCK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| PH4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 37&lt;br /&gt;
| PG10&lt;br /&gt;
| H_I2S2_MCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 38&lt;br /&gt;
| PG14&lt;br /&gt;
| H_I2S2_DIN0&lt;br /&gt;
| H_I2S2_DOUT1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 40&lt;br /&gt;
| PG13&lt;br /&gt;
| H_I2S2_DOUT0&lt;br /&gt;
| H_I2S2_DIN1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Berry Debug UART===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GND&lt;br /&gt;
|-&lt;br /&gt;
| 2 || UART0_RX&lt;br /&gt;
|-&lt;br /&gt;
| 3 || UART0_TX&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Source code==&lt;br /&gt;
&lt;br /&gt;
*u-boot for H618 : https://github.com/BPI-SINOVOIP/pi-u-boot/tree/v2021.07-sunxi&lt;br /&gt;
*kernel for H618 : https://github.com/BPI-SINOVOIP/pi-linux/tree/pi-6.1-sunxi&lt;br /&gt;
&lt;br /&gt;
== Resources==&lt;br /&gt;
*BPI-M4 Berry Allwinner H618 SBC burn Ubuntu desktop image:https://www.youtube.com/watch?v=GAZsUDYL0DE&lt;br /&gt;
*BPI-M4 Berry DXF file&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1qS-_3d3IpoMBWJe8aI8JFA?pwd=8888 (pincode:8888) &lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/13wsY0cMZGfz5MdTqlo19DtmlZfdOGLI4/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*BPI-M4 Berry SBC bench test: http://forum.banana-pi.org/t/bpi-m4-sbc-bench-test/9469&lt;br /&gt;
&lt;br /&gt;
*Allwinner H618 Datasheet&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/10Rk4xLMOhIkk-gIoQx9DQw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/1N6oWF9PHTcxXC1JY4x3Malr3twFv2wWZ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=System image=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Ubuntu===&lt;br /&gt;
*2023-11-09 Bpi-m4berry_0.0.1_beta_ubuntu_jammy_minimal_linux6.1.31&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1Mh8E6Zh-x8dAPkb00iX9Rw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/159Y7p8j067snqTG4oaUA2CP4aY4t6uyt/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*2023-11-09 Bpi-m4berry_0.0.1_beta_ubuntu_jammy_desktop_xfce_linux6.1.31&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1_sN137hKZt4DaawVsfO5Nw?pwd=8888 (pincode:8888) &lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/10wXnsgGtLWwf9J-dvLHW2mxsPKOrdHmJ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=Easy to buy=&lt;br /&gt;
*Aliexpress shop:&lt;br /&gt;
:SINOVOIP Aliexpress shop: https://www.aliexpress.us/item/1005006212355480.html?spm&lt;br /&gt;
:Bipai Aliexpress shop: https://www.aliexpress.us/item/1005006212128000.html?gatewayAdapt=glo2usa&lt;br /&gt;
:Taobao Shop: https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-25059194413.11.489155c8Addsck&amp;amp;id=747425760994&lt;br /&gt;
:OEM&amp;amp;ODM, please contact: judyhuang@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Berry&amp;diff=16521</id>
		<title>Banana Pi BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Berry&amp;diff=16521"/>
				<updated>2023-11-23T08:44:40Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* BPI-M4 Berry VS Raspberry Pi 4b */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
BPI-M4 Berry development board stands as a powerful Single Board Computer (SBC), harnessing the capabilities of the Allwinner H618 System-on-Chip (SoC) to provide developers with impressive performance and a wealth of features. Similar to the Raspberry Pi 4b, the BPI-M4 Berry boasts comparable CPU prowess, 2G LPDDR4 memory and 8G eMMC, integrated WiFi and Bluetooth functionalities, and a familiar 40-pin header layout, alongside 4 USB interfaces and a GbE RJ45 port. &lt;br /&gt;
&lt;br /&gt;
Characterized by its robust performance, versatile features, and remarkable image processing capabilities, stands as an exemplary SBC development platform for professionals within the embedded and computing industries. Equipped with 8GB eMMC flash storage, high-performance decoding and encoding capabilities, and an array of interface options, it caters to a wide spectrum of application domains, including media processing, IoT, and entertainment. Whether catering to novices or seasoned developers, the BPI-M4 Berry development board offers an ideal toolset for realizing creative visions and project objectives.&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_M4-Berry_banner_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Key Features=&lt;br /&gt;
* Allwinner H618, Quad-core ARM Cortex™-A53 processor&lt;br /&gt;
* ARM Mali G31 GPU&lt;br /&gt;
* WIFI &amp;amp; Bluetooth&lt;br /&gt;
* 2G LPDDR4 RAM&lt;br /&gt;
* 8G eMMC flash memory&lt;br /&gt;
* 1x USB2.0 Type-C OTG, 5V power supply&lt;br /&gt;
* 4x USB2.0 Type-A&lt;br /&gt;
* 1x HDMI 2.0a&lt;br /&gt;
* 1x 3.5mm Audio &amp;amp; TVE jack socket&lt;br /&gt;
* 1x GbE Ethernet port&lt;br /&gt;
&lt;br /&gt;
=Getting Start=&lt;br /&gt;
*[[Getting Started with BPI-M4 Berry]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:BPI-M4 Berry interface.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Hardware spec==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;2&amp;quot;| '''Hardware  Specification of Banana pi BPI-M4 Berry'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU || Allwinner H618, Quad-core ARM Cortex™-A53 processor, 64-bit, up to 1.5GHz&lt;br /&gt;
|-&lt;br /&gt;
| GPU ||ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 2 GB LPDDR4 &lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8G eMMC flash&lt;br /&gt;
|-&lt;br /&gt;
| SD card || MicroSD card slot&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || 2.4G/5G WiFi and Bluetooth 4.2&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || 1x GbE Ethernet port(supports PoE with add-on PoE HAT)&lt;br /&gt;
|-&lt;br /&gt;
| HDMI || 1x full-size HDMI 2.0a (up to 4K@60Hz with HDR10, CEC, DDC, SCDC), HDMI digital Audio output&lt;br /&gt;
|-&lt;br /&gt;
| Audio || 1x 3.5mm Audio &amp;amp; TVE jack socket&lt;br /&gt;
|-&lt;br /&gt;
| IR || 1x CIR&lt;br /&gt;
|-&lt;br /&gt;
| USB || 4x USB2.0 Type-A HOST, 1x USB2.0 Type-C OTG&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 40-pin header&lt;br /&gt;
| 28 pins GPIO and Power (+5V, +3.3V and GND)&lt;br /&gt;
|-&lt;br /&gt;
| UART, SPI, TWI/I²C, PWM, PCM/I²S&lt;br /&gt;
|-&lt;br /&gt;
|Buttons|| Reset, FEL and User&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
| Power || 5V@3A via USB Type-C&lt;br /&gt;
|-&lt;br /&gt;
|Size || 85x56 mm &lt;br /&gt;
|-&lt;br /&gt;
|Weight || 60g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BPI-M4 Berry VS Raspberry Pi 4b ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! module !! Raspberry Pi 4B !! Banana Pi BPI-M4 Berry&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1.5GHz 4核 BroadcomBCM2711(Cortex A72) || H618,64 Bit Cortex™-A53 Quad-Core&lt;br /&gt;
|-&lt;br /&gt;
| GPU || 500 MHz VideoCore Vl || ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory \(SDRAM\) || 1-4GB DDR4 || 2GB LPDDR4(up to 4G)&lt;br /&gt;
|-&lt;br /&gt;
| Onboard Storage || MicroSD (TF) card || MicroSD (TF) card / MMC card slot ,eMMC 8GB&lt;br /&gt;
|-&lt;br /&gt;
| Network || 10/100/1000 Ethernet || 10/100/1000 Ethernet&lt;br /&gt;
|-&lt;br /&gt;
| Onboard WIFI &amp;amp;BT || IEEE 802.11a/b/g/n/ac &amp;amp; BT5.0 || IEEE 802.11a/b/g/n/ac &amp;amp; BT4.2&lt;br /&gt;
|-&lt;br /&gt;
| Display || HDMI || HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Camera || N/A || N/A&lt;br /&gt;
|-&lt;br /&gt;
| Video Outputs || 2*Micro-HDMI || &amp;quot;HDMI 2.0a 4K@60fps&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Audio Output || 3.5 mm Jack and HDM || 3.5 mm Jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Audio In || N/A || N/A&lt;br /&gt;
|-&lt;br /&gt;
| GPIO || 40-PIN: PWM,GPIO,UART,I²C bus,I²S bus,SPI bus,+3.3v,+5v,ground. CAN bus || 40-PIN: PWM,GPIO,UART,I²C bus,I²S bus,SPI bus,+3.3v,+5v,ground. CAN bus&lt;br /&gt;
|-&lt;br /&gt;
| Remote || N/A || IR reciever&lt;br /&gt;
|-&lt;br /&gt;
| USB Ports || 2*USB3.0+2USB2.0 || 2 * USB 2.0 1* USB Otg&lt;br /&gt;
|-&lt;br /&gt;
| Buttons || N/A || Reset button, User button, Uboot button&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power led Status led || Power led  Status led  Wifi led&lt;br /&gt;
|-&lt;br /&gt;
| Power || DC 5V/3A || DC 5V/2A&lt;br /&gt;
|-&lt;br /&gt;
| Board Size || 88mmx58mm || 88mmx58mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PIN define ==&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Berry 40-pin header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;6&amp;quot;| '''40-pin header define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! Pin Num&lt;br /&gt;
! Pin Name&lt;br /&gt;
! ALT0&lt;br /&gt;
! ALT1&lt;br /&gt;
! ALT2&lt;br /&gt;
! ALT3&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| PG16&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| PG15&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PG19&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PG6&lt;br /&gt;
| UART1_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PG7&lt;br /&gt;
| UART1_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| PH2&lt;br /&gt;
| UART5_TX&lt;br /&gt;
| &lt;br /&gt;
| PWM2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| PG11&lt;br /&gt;
| H_I2S2_BCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PH3&lt;br /&gt;
| UART5_RX&lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PG2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PG8&lt;br /&gt;
| UART1_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| PG9&lt;br /&gt;
| UART1_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| PH7&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| H_I2S3_LRCK&lt;br /&gt;
| SPI1_MOSI&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| PH8&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| H_I2S3_DOUT0&lt;br /&gt;
| SPI1_MISO&lt;br /&gt;
| H_I2S3_DIN1&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| PG1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| PH6&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| H_I2S3_BCLK&lt;br /&gt;
| SPI1_CLK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| PH5&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| H_I2S3_MCLK&lt;br /&gt;
| SPI1_CS0&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| PH9&lt;br /&gt;
| &lt;br /&gt;
| H_I2S3_DIN0&lt;br /&gt;
| SPI1_CS1&lt;br /&gt;
| H_I2S3_DOUT1&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| PG18&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| PG17&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| PG3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| PG4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| PG0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| PG5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 34&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 35&lt;br /&gt;
| PG12&lt;br /&gt;
| H_I2S2_LRCK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| PH4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 37&lt;br /&gt;
| PG10&lt;br /&gt;
| H_I2S2_MCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 38&lt;br /&gt;
| PG14&lt;br /&gt;
| H_I2S2_DIN0&lt;br /&gt;
| H_I2S2_DOUT1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 40&lt;br /&gt;
| PG13&lt;br /&gt;
| H_I2S2_DOUT0&lt;br /&gt;
| H_I2S2_DIN1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Berry Debug UART===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GND&lt;br /&gt;
|-&lt;br /&gt;
| 2 || UART0_RX&lt;br /&gt;
|-&lt;br /&gt;
| 3 || UART0_TX&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Source code==&lt;br /&gt;
&lt;br /&gt;
*u-boot for H618 : https://github.com/BPI-SINOVOIP/pi-u-boot/tree/v2021.07-sunxi&lt;br /&gt;
*kernel for H618 : https://github.com/BPI-SINOVOIP/pi-linux/tree/pi-6.1-sunxi&lt;br /&gt;
&lt;br /&gt;
== Resources==&lt;br /&gt;
*BPI-M4 Berry Allwinner H618 SBC burn Ubuntu desktop image:https://www.youtube.com/watch?v=GAZsUDYL0DE&lt;br /&gt;
*BPI-M4 Berry DXF file&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1qS-_3d3IpoMBWJe8aI8JFA?pwd=8888 (pincode:8888) &lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/13wsY0cMZGfz5MdTqlo19DtmlZfdOGLI4/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*BPI-M4 Berry SBC bench test: http://forum.banana-pi.org/t/bpi-m4-sbc-bench-test/9469&lt;br /&gt;
&lt;br /&gt;
*Allwinner H618 Datasheet&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/10Rk4xLMOhIkk-gIoQx9DQw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/1N6oWF9PHTcxXC1JY4x3Malr3twFv2wWZ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=System image=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Ubuntu===&lt;br /&gt;
*2023-11-09 Bpi-m4berry_0.0.1_beta_ubuntu_jammy_minimal_linux6.1.31&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1Mh8E6Zh-x8dAPkb00iX9Rw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/159Y7p8j067snqTG4oaUA2CP4aY4t6uyt/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*2023-11-09 Bpi-m4berry_0.0.1_beta_ubuntu_jammy_desktop_xfce_linux6.1.31&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1_sN137hKZt4DaawVsfO5Nw?pwd=8888 (pincode:8888) &lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/10wXnsgGtLWwf9J-dvLHW2mxsPKOrdHmJ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=Easy to buy=&lt;br /&gt;
*Aliexpress shop:&lt;br /&gt;
:SINOVOIP Aliexpress shop: https://www.aliexpress.us/item/1005006212355480.html?spm&lt;br /&gt;
:Bipai Aliexpress shop: https://www.aliexpress.us/item/1005006212128000.html?gatewayAdapt=glo2usa&lt;br /&gt;
:Taobao Shop: https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-25059194413.11.489155c8Addsck&amp;amp;id=747425760994&lt;br /&gt;
:OEM&amp;amp;ODM, please contact: judyhuang@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Berry&amp;diff=16520</id>
		<title>Banana Pi BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Berry&amp;diff=16520"/>
				<updated>2023-11-23T08:43:47Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* BPI-M4 Berry VS Raspberry Pi 4b */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
BPI-M4 Berry development board stands as a powerful Single Board Computer (SBC), harnessing the capabilities of the Allwinner H618 System-on-Chip (SoC) to provide developers with impressive performance and a wealth of features. Similar to the Raspberry Pi 4b, the BPI-M4 Berry boasts comparable CPU prowess, 2G LPDDR4 memory and 8G eMMC, integrated WiFi and Bluetooth functionalities, and a familiar 40-pin header layout, alongside 4 USB interfaces and a GbE RJ45 port. &lt;br /&gt;
&lt;br /&gt;
Characterized by its robust performance, versatile features, and remarkable image processing capabilities, stands as an exemplary SBC development platform for professionals within the embedded and computing industries. Equipped with 8GB eMMC flash storage, high-performance decoding and encoding capabilities, and an array of interface options, it caters to a wide spectrum of application domains, including media processing, IoT, and entertainment. Whether catering to novices or seasoned developers, the BPI-M4 Berry development board offers an ideal toolset for realizing creative visions and project objectives.&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_M4-Berry_banner_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Key Features=&lt;br /&gt;
* Allwinner H618, Quad-core ARM Cortex™-A53 processor&lt;br /&gt;
* ARM Mali G31 GPU&lt;br /&gt;
* WIFI &amp;amp; Bluetooth&lt;br /&gt;
* 2G LPDDR4 RAM&lt;br /&gt;
* 8G eMMC flash memory&lt;br /&gt;
* 1x USB2.0 Type-C OTG, 5V power supply&lt;br /&gt;
* 4x USB2.0 Type-A&lt;br /&gt;
* 1x HDMI 2.0a&lt;br /&gt;
* 1x 3.5mm Audio &amp;amp; TVE jack socket&lt;br /&gt;
* 1x GbE Ethernet port&lt;br /&gt;
&lt;br /&gt;
=Getting Start=&lt;br /&gt;
*[[Getting Started with BPI-M4 Berry]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:BPI-M4 Berry interface.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Hardware spec==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;2&amp;quot;| '''Hardware  Specification of Banana pi BPI-M4 Berry'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU || Allwinner H618, Quad-core ARM Cortex™-A53 processor, 64-bit, up to 1.5GHz&lt;br /&gt;
|-&lt;br /&gt;
| GPU ||ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 2 GB LPDDR4 &lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8G eMMC flash&lt;br /&gt;
|-&lt;br /&gt;
| SD card || MicroSD card slot&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || 2.4G/5G WiFi and Bluetooth 4.2&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || 1x GbE Ethernet port(supports PoE with add-on PoE HAT)&lt;br /&gt;
|-&lt;br /&gt;
| HDMI || 1x full-size HDMI 2.0a (up to 4K@60Hz with HDR10, CEC, DDC, SCDC), HDMI digital Audio output&lt;br /&gt;
|-&lt;br /&gt;
| Audio || 1x 3.5mm Audio &amp;amp; TVE jack socket&lt;br /&gt;
|-&lt;br /&gt;
| IR || 1x CIR&lt;br /&gt;
|-&lt;br /&gt;
| USB || 4x USB2.0 Type-A HOST, 1x USB2.0 Type-C OTG&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 40-pin header&lt;br /&gt;
| 28 pins GPIO and Power (+5V, +3.3V and GND)&lt;br /&gt;
|-&lt;br /&gt;
| UART, SPI, TWI/I²C, PWM, PCM/I²S&lt;br /&gt;
|-&lt;br /&gt;
|Buttons|| Reset, FEL and User&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
| Power || 5V@3A via USB Type-C&lt;br /&gt;
|-&lt;br /&gt;
|Size || 85x56 mm &lt;br /&gt;
|-&lt;br /&gt;
|Weight || 60g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BPI-M4 Berry VS Raspberry Pi 4b ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! module !! Raspberry Pi 4B !! Banana Pi BPI-M4 Berry&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1.5GHz 4核 BroadcomBCM2711(Cortex A72) || H618,64 Bit Cortex™-A53 Quad-Core&lt;br /&gt;
|-&lt;br /&gt;
| GPU || 500 MHz VideoCore Vl || ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory \(SDRAM\) || 1-4GB DDR4 || 2GB LPDDR4(up to 4G)&lt;br /&gt;
|-&lt;br /&gt;
| Onboard Storage || MicroSD (TF) card || MicroSD (TF) card / MMC card slot ,eMMC 8GB&lt;br /&gt;
|-&lt;br /&gt;
| Network || 10/100/1000 Ethernet || 10/100/1000 Ethernet&lt;br /&gt;
|-&lt;br /&gt;
| Onboard WIFI &amp;amp;BT || IEEE 802.11a/b/g/n/ac &amp;amp; BT5.0 || IEEE 802.11a/b/g/n/ac &amp;amp; BT4.2&lt;br /&gt;
|-&lt;br /&gt;
| Display || HDMI || HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Camera || N/A || N/A&lt;br /&gt;
|-&lt;br /&gt;
| Video Outputs || 2*Micro-HDMI || &amp;quot;HDMI 2.0a 4K@60fps&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Audio Output || 2*Micro-HDMI || 3.5 mm Jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Audino In || N/A || N/A&lt;br /&gt;
|-&lt;br /&gt;
| GPIO || 40-PIN: PWM,GPIO,UART,I²C bus,I²S bus,SPI bus,+3.3v,+5v,ground. CAN bus || 40-PIN: PWM,GPIO,UART,I²C bus,I²S bus,SPI bus,+3.3v,+5v,ground. CAN bus&lt;br /&gt;
|-&lt;br /&gt;
| Remote || N/A || IR reciever&lt;br /&gt;
|-&lt;br /&gt;
| USB Ports || 2*USB3.0+2USB2.0 || 2 * USB 2.0 1* USB Otg&lt;br /&gt;
|-&lt;br /&gt;
| Buttons || N/A || Reset button, User button, Uboot button&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power led Status led || Power led  Status led  Wifi led&lt;br /&gt;
|-&lt;br /&gt;
| Power || DC 5V/3A || DC 5V/2A&lt;br /&gt;
|-&lt;br /&gt;
| Board Size || 88mmx58mm || 88mmx58mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PIN define ==&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Berry 40-pin header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;6&amp;quot;| '''40-pin header define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! Pin Num&lt;br /&gt;
! Pin Name&lt;br /&gt;
! ALT0&lt;br /&gt;
! ALT1&lt;br /&gt;
! ALT2&lt;br /&gt;
! ALT3&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| PG16&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| PG15&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PG19&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PG6&lt;br /&gt;
| UART1_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PG7&lt;br /&gt;
| UART1_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| PH2&lt;br /&gt;
| UART5_TX&lt;br /&gt;
| &lt;br /&gt;
| PWM2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| PG11&lt;br /&gt;
| H_I2S2_BCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PH3&lt;br /&gt;
| UART5_RX&lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PG2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PG8&lt;br /&gt;
| UART1_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| PG9&lt;br /&gt;
| UART1_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| PH7&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| H_I2S3_LRCK&lt;br /&gt;
| SPI1_MOSI&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| PH8&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| H_I2S3_DOUT0&lt;br /&gt;
| SPI1_MISO&lt;br /&gt;
| H_I2S3_DIN1&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| PG1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| PH6&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| H_I2S3_BCLK&lt;br /&gt;
| SPI1_CLK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| PH5&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| H_I2S3_MCLK&lt;br /&gt;
| SPI1_CS0&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| PH9&lt;br /&gt;
| &lt;br /&gt;
| H_I2S3_DIN0&lt;br /&gt;
| SPI1_CS1&lt;br /&gt;
| H_I2S3_DOUT1&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| PG18&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| PG17&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| PG3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| PG4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| PG0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| PG5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 34&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 35&lt;br /&gt;
| PG12&lt;br /&gt;
| H_I2S2_LRCK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| PH4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 37&lt;br /&gt;
| PG10&lt;br /&gt;
| H_I2S2_MCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 38&lt;br /&gt;
| PG14&lt;br /&gt;
| H_I2S2_DIN0&lt;br /&gt;
| H_I2S2_DOUT1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 40&lt;br /&gt;
| PG13&lt;br /&gt;
| H_I2S2_DOUT0&lt;br /&gt;
| H_I2S2_DIN1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Berry Debug UART===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GND&lt;br /&gt;
|-&lt;br /&gt;
| 2 || UART0_RX&lt;br /&gt;
|-&lt;br /&gt;
| 3 || UART0_TX&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Source code==&lt;br /&gt;
&lt;br /&gt;
*u-boot for H618 : https://github.com/BPI-SINOVOIP/pi-u-boot/tree/v2021.07-sunxi&lt;br /&gt;
*kernel for H618 : https://github.com/BPI-SINOVOIP/pi-linux/tree/pi-6.1-sunxi&lt;br /&gt;
&lt;br /&gt;
== Resources==&lt;br /&gt;
*BPI-M4 Berry Allwinner H618 SBC burn Ubuntu desktop image:https://www.youtube.com/watch?v=GAZsUDYL0DE&lt;br /&gt;
*BPI-M4 Berry DXF file&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1qS-_3d3IpoMBWJe8aI8JFA?pwd=8888 (pincode:8888) &lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/13wsY0cMZGfz5MdTqlo19DtmlZfdOGLI4/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*BPI-M4 Berry SBC bench test: http://forum.banana-pi.org/t/bpi-m4-sbc-bench-test/9469&lt;br /&gt;
&lt;br /&gt;
*Allwinner H618 Datasheet&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/10Rk4xLMOhIkk-gIoQx9DQw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/1N6oWF9PHTcxXC1JY4x3Malr3twFv2wWZ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=System image=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Ubuntu===&lt;br /&gt;
*2023-11-09 Bpi-m4berry_0.0.1_beta_ubuntu_jammy_minimal_linux6.1.31&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1Mh8E6Zh-x8dAPkb00iX9Rw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/159Y7p8j067snqTG4oaUA2CP4aY4t6uyt/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*2023-11-09 Bpi-m4berry_0.0.1_beta_ubuntu_jammy_desktop_xfce_linux6.1.31&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1_sN137hKZt4DaawVsfO5Nw?pwd=8888 (pincode:8888) &lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/10wXnsgGtLWwf9J-dvLHW2mxsPKOrdHmJ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=Easy to buy=&lt;br /&gt;
*Aliexpress shop:&lt;br /&gt;
:SINOVOIP Aliexpress shop: https://www.aliexpress.us/item/1005006212355480.html?spm&lt;br /&gt;
:Bipai Aliexpress shop: https://www.aliexpress.us/item/1005006212128000.html?gatewayAdapt=glo2usa&lt;br /&gt;
:Taobao Shop: https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-25059194413.11.489155c8Addsck&amp;amp;id=747425760994&lt;br /&gt;
:OEM&amp;amp;ODM, please contact: judyhuang@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Berry&amp;diff=16519</id>
		<title>Banana Pi BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Berry&amp;diff=16519"/>
				<updated>2023-11-23T08:40:17Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* BPI-M4 Berry VS Raspberry Pi 4b */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
BPI-M4 Berry development board stands as a powerful Single Board Computer (SBC), harnessing the capabilities of the Allwinner H618 System-on-Chip (SoC) to provide developers with impressive performance and a wealth of features. Similar to the Raspberry Pi 4b, the BPI-M4 Berry boasts comparable CPU prowess, 2G LPDDR4 memory and 8G eMMC, integrated WiFi and Bluetooth functionalities, and a familiar 40-pin header layout, alongside 4 USB interfaces and a GbE RJ45 port. &lt;br /&gt;
&lt;br /&gt;
Characterized by its robust performance, versatile features, and remarkable image processing capabilities, stands as an exemplary SBC development platform for professionals within the embedded and computing industries. Equipped with 8GB eMMC flash storage, high-performance decoding and encoding capabilities, and an array of interface options, it caters to a wide spectrum of application domains, including media processing, IoT, and entertainment. Whether catering to novices or seasoned developers, the BPI-M4 Berry development board offers an ideal toolset for realizing creative visions and project objectives.&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_M4-Berry_banner_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Key Features=&lt;br /&gt;
* Allwinner H618, Quad-core ARM Cortex™-A53 processor&lt;br /&gt;
* ARM Mali G31 GPU&lt;br /&gt;
* WIFI &amp;amp; Bluetooth&lt;br /&gt;
* 2G LPDDR4 RAM&lt;br /&gt;
* 8G eMMC flash memory&lt;br /&gt;
* 1x USB2.0 Type-C OTG, 5V power supply&lt;br /&gt;
* 4x USB2.0 Type-A&lt;br /&gt;
* 1x HDMI 2.0a&lt;br /&gt;
* 1x 3.5mm Audio &amp;amp; TVE jack socket&lt;br /&gt;
* 1x GbE Ethernet port&lt;br /&gt;
&lt;br /&gt;
=Getting Start=&lt;br /&gt;
*[[Getting Started with BPI-M4 Berry]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:BPI-M4 Berry interface.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Hardware spec==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;2&amp;quot;| '''Hardware  Specification of Banana pi BPI-M4 Berry'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU || Allwinner H618, Quad-core ARM Cortex™-A53 processor, 64-bit, up to 1.5GHz&lt;br /&gt;
|-&lt;br /&gt;
| GPU ||ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 2 GB LPDDR4 &lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8G eMMC flash&lt;br /&gt;
|-&lt;br /&gt;
| SD card || MicroSD card slot&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || 2.4G/5G WiFi and Bluetooth 4.2&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || 1x GbE Ethernet port(supports PoE with add-on PoE HAT)&lt;br /&gt;
|-&lt;br /&gt;
| HDMI || 1x full-size HDMI 2.0a (up to 4K@60Hz with HDR10, CEC, DDC, SCDC), HDMI digital Audio output&lt;br /&gt;
|-&lt;br /&gt;
| Audio || 1x 3.5mm Audio &amp;amp; TVE jack socket&lt;br /&gt;
|-&lt;br /&gt;
| IR || 1x CIR&lt;br /&gt;
|-&lt;br /&gt;
| USB || 4x USB2.0 Type-A HOST, 1x USB2.0 Type-C OTG&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 40-pin header&lt;br /&gt;
| 28 pins GPIO and Power (+5V, +3.3V and GND)&lt;br /&gt;
|-&lt;br /&gt;
| UART, SPI, TWI/I²C, PWM, PCM/I²S&lt;br /&gt;
|-&lt;br /&gt;
|Buttons|| Reset, FEL and User&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
| Power || 5V@3A via USB Type-C&lt;br /&gt;
|-&lt;br /&gt;
|Size || 85x56 mm &lt;br /&gt;
|-&lt;br /&gt;
|Weight || 60g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BPI-M4 Berry VS Raspberry Pi 4b ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! module !! Raspberry Pi 4B !! Banana Pi BPI-M4 Berry&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1.5GHz 4核 BroadcomBCM2711(Cortex A72) || H618,64 Bit Cortex™-A53 Quad-Core&lt;br /&gt;
|-&lt;br /&gt;
| GPU || 500 MHz VideoCore Vl || ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory \(SDRAM\) || 1-4GB DDR4 || 2GB LPDDR4(up to 4G)&lt;br /&gt;
|-&lt;br /&gt;
| Onboard Storage || MicroSD (TF) card || MicroSD (TF) card / MMC card slot ,eMMC 8GB&lt;br /&gt;
|-&lt;br /&gt;
| Network || 10/100/1000 Ethernet || 10/100/1000 Ethernet&lt;br /&gt;
|-&lt;br /&gt;
| Onboard WIFI &amp;amp;BT || IEEE 802.11a/b/g/n/ac &amp;amp; BT5.0 || IEEE 802.11a/b/g/n/ac &amp;amp; BT4.2&lt;br /&gt;
|-&lt;br /&gt;
| Display || HDMI || HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Camera || N/A || N/A&lt;br /&gt;
|-&lt;br /&gt;
| Video Outputs || 2*Micro-HDMI || &amp;quot;HDMI 2.0a&lt;br /&gt;
|-&lt;br /&gt;
| 4K@60fps&amp;quot; ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Audio Output || 2*Micro-HDMI || 3.5 mm Jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Audino In || N/A || N/A&lt;br /&gt;
|-&lt;br /&gt;
| GPIO || 40-PIN: PWM,GPIO,UART,I²C bus,I²S bus,SPI bus,+3.3v,+5v,ground. CAN bus || 40-PIN: PWM,GPIO,UART,I²C bus,I²S bus,SPI bus,+3.3v,+5v,ground. CAN bus&lt;br /&gt;
|-&lt;br /&gt;
| Remote || N/A || IR reciever&lt;br /&gt;
|-&lt;br /&gt;
| USB Ports || 2*USB3.0+2USB2.0 || 2 * USB 2.0 1* USB Otg&lt;br /&gt;
|-&lt;br /&gt;
| Buttons || N/A || Reset button, User button, Uboot button&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power led Status led || Power led  Status led  Wifi led&lt;br /&gt;
|-&lt;br /&gt;
| Power || DC 5V/3A || DC 5V/2A&lt;br /&gt;
|-&lt;br /&gt;
| Board Size || 88mmx58mm || 88mmx58mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PIN define ==&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Berry 40-pin header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;6&amp;quot;| '''40-pin header define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! Pin Num&lt;br /&gt;
! Pin Name&lt;br /&gt;
! ALT0&lt;br /&gt;
! ALT1&lt;br /&gt;
! ALT2&lt;br /&gt;
! ALT3&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| PG16&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| PG15&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PG19&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PG6&lt;br /&gt;
| UART1_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PG7&lt;br /&gt;
| UART1_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| PH2&lt;br /&gt;
| UART5_TX&lt;br /&gt;
| &lt;br /&gt;
| PWM2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| PG11&lt;br /&gt;
| H_I2S2_BCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PH3&lt;br /&gt;
| UART5_RX&lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PG2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PG8&lt;br /&gt;
| UART1_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| PG9&lt;br /&gt;
| UART1_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| PH7&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| H_I2S3_LRCK&lt;br /&gt;
| SPI1_MOSI&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| PH8&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| H_I2S3_DOUT0&lt;br /&gt;
| SPI1_MISO&lt;br /&gt;
| H_I2S3_DIN1&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| PG1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| PH6&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| H_I2S3_BCLK&lt;br /&gt;
| SPI1_CLK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| PH5&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| H_I2S3_MCLK&lt;br /&gt;
| SPI1_CS0&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| PH9&lt;br /&gt;
| &lt;br /&gt;
| H_I2S3_DIN0&lt;br /&gt;
| SPI1_CS1&lt;br /&gt;
| H_I2S3_DOUT1&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| PG18&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| PG17&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| PG3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| PG4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| PG0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| PG5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 34&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 35&lt;br /&gt;
| PG12&lt;br /&gt;
| H_I2S2_LRCK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| PH4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 37&lt;br /&gt;
| PG10&lt;br /&gt;
| H_I2S2_MCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 38&lt;br /&gt;
| PG14&lt;br /&gt;
| H_I2S2_DIN0&lt;br /&gt;
| H_I2S2_DOUT1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 40&lt;br /&gt;
| PG13&lt;br /&gt;
| H_I2S2_DOUT0&lt;br /&gt;
| H_I2S2_DIN1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Berry Debug UART===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GND&lt;br /&gt;
|-&lt;br /&gt;
| 2 || UART0_RX&lt;br /&gt;
|-&lt;br /&gt;
| 3 || UART0_TX&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Source code==&lt;br /&gt;
&lt;br /&gt;
*u-boot for H618 : https://github.com/BPI-SINOVOIP/pi-u-boot/tree/v2021.07-sunxi&lt;br /&gt;
*kernel for H618 : https://github.com/BPI-SINOVOIP/pi-linux/tree/pi-6.1-sunxi&lt;br /&gt;
&lt;br /&gt;
== Resources==&lt;br /&gt;
*BPI-M4 Berry Allwinner H618 SBC burn Ubuntu desktop image:https://www.youtube.com/watch?v=GAZsUDYL0DE&lt;br /&gt;
*BPI-M4 Berry DXF file&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1qS-_3d3IpoMBWJe8aI8JFA?pwd=8888 (pincode:8888) &lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/13wsY0cMZGfz5MdTqlo19DtmlZfdOGLI4/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*BPI-M4 Berry SBC bench test: http://forum.banana-pi.org/t/bpi-m4-sbc-bench-test/9469&lt;br /&gt;
&lt;br /&gt;
*Allwinner H618 Datasheet&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/10Rk4xLMOhIkk-gIoQx9DQw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/1N6oWF9PHTcxXC1JY4x3Malr3twFv2wWZ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=System image=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Ubuntu===&lt;br /&gt;
*2023-11-09 Bpi-m4berry_0.0.1_beta_ubuntu_jammy_minimal_linux6.1.31&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1Mh8E6Zh-x8dAPkb00iX9Rw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/159Y7p8j067snqTG4oaUA2CP4aY4t6uyt/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*2023-11-09 Bpi-m4berry_0.0.1_beta_ubuntu_jammy_desktop_xfce_linux6.1.31&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1_sN137hKZt4DaawVsfO5Nw?pwd=8888 (pincode:8888) &lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/10wXnsgGtLWwf9J-dvLHW2mxsPKOrdHmJ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=Easy to buy=&lt;br /&gt;
*Aliexpress shop:&lt;br /&gt;
:SINOVOIP Aliexpress shop: https://www.aliexpress.us/item/1005006212355480.html?spm&lt;br /&gt;
:Bipai Aliexpress shop: https://www.aliexpress.us/item/1005006212128000.html?gatewayAdapt=glo2usa&lt;br /&gt;
:Taobao Shop: https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-25059194413.11.489155c8Addsck&amp;amp;id=747425760994&lt;br /&gt;
:OEM&amp;amp;ODM, please contact: judyhuang@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Berry&amp;diff=16518</id>
		<title>Banana Pi BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Berry&amp;diff=16518"/>
				<updated>2023-11-23T08:40:02Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* BPI-M4 Berry VS Raspberry Pi 4b */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
BPI-M4 Berry development board stands as a powerful Single Board Computer (SBC), harnessing the capabilities of the Allwinner H618 System-on-Chip (SoC) to provide developers with impressive performance and a wealth of features. Similar to the Raspberry Pi 4b, the BPI-M4 Berry boasts comparable CPU prowess, 2G LPDDR4 memory and 8G eMMC, integrated WiFi and Bluetooth functionalities, and a familiar 40-pin header layout, alongside 4 USB interfaces and a GbE RJ45 port. &lt;br /&gt;
&lt;br /&gt;
Characterized by its robust performance, versatile features, and remarkable image processing capabilities, stands as an exemplary SBC development platform for professionals within the embedded and computing industries. Equipped with 8GB eMMC flash storage, high-performance decoding and encoding capabilities, and an array of interface options, it caters to a wide spectrum of application domains, including media processing, IoT, and entertainment. Whether catering to novices or seasoned developers, the BPI-M4 Berry development board offers an ideal toolset for realizing creative visions and project objectives.&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_M4-Berry_banner_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Key Features=&lt;br /&gt;
* Allwinner H618, Quad-core ARM Cortex™-A53 processor&lt;br /&gt;
* ARM Mali G31 GPU&lt;br /&gt;
* WIFI &amp;amp; Bluetooth&lt;br /&gt;
* 2G LPDDR4 RAM&lt;br /&gt;
* 8G eMMC flash memory&lt;br /&gt;
* 1x USB2.0 Type-C OTG, 5V power supply&lt;br /&gt;
* 4x USB2.0 Type-A&lt;br /&gt;
* 1x HDMI 2.0a&lt;br /&gt;
* 1x 3.5mm Audio &amp;amp; TVE jack socket&lt;br /&gt;
* 1x GbE Ethernet port&lt;br /&gt;
&lt;br /&gt;
=Getting Start=&lt;br /&gt;
*[[Getting Started with BPI-M4 Berry]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:BPI-M4 Berry interface.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Hardware spec==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;2&amp;quot;| '''Hardware  Specification of Banana pi BPI-M4 Berry'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU || Allwinner H618, Quad-core ARM Cortex™-A53 processor, 64-bit, up to 1.5GHz&lt;br /&gt;
|-&lt;br /&gt;
| GPU ||ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 2 GB LPDDR4 &lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8G eMMC flash&lt;br /&gt;
|-&lt;br /&gt;
| SD card || MicroSD card slot&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || 2.4G/5G WiFi and Bluetooth 4.2&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || 1x GbE Ethernet port(supports PoE with add-on PoE HAT)&lt;br /&gt;
|-&lt;br /&gt;
| HDMI || 1x full-size HDMI 2.0a (up to 4K@60Hz with HDR10, CEC, DDC, SCDC), HDMI digital Audio output&lt;br /&gt;
|-&lt;br /&gt;
| Audio || 1x 3.5mm Audio &amp;amp; TVE jack socket&lt;br /&gt;
|-&lt;br /&gt;
| IR || 1x CIR&lt;br /&gt;
|-&lt;br /&gt;
| USB || 4x USB2.0 Type-A HOST, 1x USB2.0 Type-C OTG&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | 40-pin header&lt;br /&gt;
| 28 pins GPIO and Power (+5V, +3.3V and GND)&lt;br /&gt;
|-&lt;br /&gt;
| UART, SPI, TWI/I²C, PWM, PCM/I²S&lt;br /&gt;
|-&lt;br /&gt;
|Buttons|| Reset, FEL and User&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
| Power || 5V@3A via USB Type-C&lt;br /&gt;
|-&lt;br /&gt;
|Size || 85x56 mm &lt;br /&gt;
|-&lt;br /&gt;
|Weight || 60g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BPI-M4 Berry VS Raspberry Pi 4b ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! module !! Raspberry Pi 4B !! Banana Pi BPI-M4 Berry&lt;br /&gt;
|-&lt;br /&gt;
| CPU || 1.5GHz.4核 BroadcomBCM2711(Cortex A72) || H618,64 Bit Cortex™-A53 Quad-Core&lt;br /&gt;
|-&lt;br /&gt;
| GPU || 500 MHz VideoCore Vl || ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory \(SDRAM\) || 1-4GB DDR4 || 2GB LPDDR4(up to 4G)&lt;br /&gt;
|-&lt;br /&gt;
| Onboard Storage || MicroSD (TF) card || MicroSD (TF) card / MMC card slot ,eMMC 8GB&lt;br /&gt;
|-&lt;br /&gt;
| Network || 10/100/1000 Ethernet || 10/100/1000 Ethernet&lt;br /&gt;
|-&lt;br /&gt;
| Onboard WIFI &amp;amp;BT || IEEE 802.11a/b/g/n/ac &amp;amp; BT5.0 || IEEE 802.11a/b/g/n/ac &amp;amp; BT4.2&lt;br /&gt;
|-&lt;br /&gt;
| Display || HDMI || HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Camera || N/A || N/A&lt;br /&gt;
|-&lt;br /&gt;
| Video Outputs || 2*Micro-HDMI || &amp;quot;HDMI 2.0a&lt;br /&gt;
|-&lt;br /&gt;
| 4K@60fps&amp;quot; ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Audio Output || 2*Micro-HDMI || 3.5 mm Jack and HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Audino In || N/A || N/A&lt;br /&gt;
|-&lt;br /&gt;
| GPIO || 40-PIN: PWM,GPIO,UART,I²C bus,I²S bus,SPI bus,+3.3v,+5v,ground. CAN bus || 40-PIN: PWM,GPIO,UART,I²C bus,I²S bus,SPI bus,+3.3v,+5v,ground. CAN bus&lt;br /&gt;
|-&lt;br /&gt;
| Remote || N/A || IR reciever&lt;br /&gt;
|-&lt;br /&gt;
| USB Ports || 2*USB3.0+2USB2.0 || 2 * USB 2.0 1* USB Otg&lt;br /&gt;
|-&lt;br /&gt;
| Buttons || N/A || Reset button, User button, Uboot button&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power led Status led || Power led  Status led  Wifi led&lt;br /&gt;
|-&lt;br /&gt;
| Power || DC 5V/3A || DC 5V/2A&lt;br /&gt;
|-&lt;br /&gt;
| Board Size || 88mmx58mm || 88mmx58mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PIN define ==&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Berry 40-pin header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;6&amp;quot;| '''40-pin header define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! Pin Num&lt;br /&gt;
! Pin Name&lt;br /&gt;
! ALT0&lt;br /&gt;
! ALT1&lt;br /&gt;
! ALT2&lt;br /&gt;
! ALT3&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| PG16&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| PG15&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PG19&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PG6&lt;br /&gt;
| UART1_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PG7&lt;br /&gt;
| UART1_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| PH2&lt;br /&gt;
| UART5_TX&lt;br /&gt;
| &lt;br /&gt;
| PWM2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| PG11&lt;br /&gt;
| H_I2S2_BCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PH3&lt;br /&gt;
| UART5_RX&lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PG2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PG8&lt;br /&gt;
| UART1_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| PG9&lt;br /&gt;
| UART1_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| PH7&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| H_I2S3_LRCK&lt;br /&gt;
| SPI1_MOSI&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| PH8&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| H_I2S3_DOUT0&lt;br /&gt;
| SPI1_MISO&lt;br /&gt;
| H_I2S3_DIN1&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| PG1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| PH6&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| H_I2S3_BCLK&lt;br /&gt;
| SPI1_CLK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| PH5&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| H_I2S3_MCLK&lt;br /&gt;
| SPI1_CS0&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| PH9&lt;br /&gt;
| &lt;br /&gt;
| H_I2S3_DIN0&lt;br /&gt;
| SPI1_CS1&lt;br /&gt;
| H_I2S3_DOUT1&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| PG18&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| PG17&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| PG3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| PG4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| PG0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| PG5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 34&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 35&lt;br /&gt;
| PG12&lt;br /&gt;
| H_I2S2_LRCK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| PH4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 37&lt;br /&gt;
| PG10&lt;br /&gt;
| H_I2S2_MCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 38&lt;br /&gt;
| PG14&lt;br /&gt;
| H_I2S2_DIN0&lt;br /&gt;
| H_I2S2_DOUT1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 40&lt;br /&gt;
| PG13&lt;br /&gt;
| H_I2S2_DOUT0&lt;br /&gt;
| H_I2S2_DIN1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Berry Debug UART===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GND&lt;br /&gt;
|-&lt;br /&gt;
| 2 || UART0_RX&lt;br /&gt;
|-&lt;br /&gt;
| 3 || UART0_TX&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Source code==&lt;br /&gt;
&lt;br /&gt;
*u-boot for H618 : https://github.com/BPI-SINOVOIP/pi-u-boot/tree/v2021.07-sunxi&lt;br /&gt;
*kernel for H618 : https://github.com/BPI-SINOVOIP/pi-linux/tree/pi-6.1-sunxi&lt;br /&gt;
&lt;br /&gt;
== Resources==&lt;br /&gt;
*BPI-M4 Berry Allwinner H618 SBC burn Ubuntu desktop image:https://www.youtube.com/watch?v=GAZsUDYL0DE&lt;br /&gt;
*BPI-M4 Berry DXF file&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1qS-_3d3IpoMBWJe8aI8JFA?pwd=8888 (pincode:8888) &lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/13wsY0cMZGfz5MdTqlo19DtmlZfdOGLI4/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*BPI-M4 Berry SBC bench test: http://forum.banana-pi.org/t/bpi-m4-sbc-bench-test/9469&lt;br /&gt;
&lt;br /&gt;
*Allwinner H618 Datasheet&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/10Rk4xLMOhIkk-gIoQx9DQw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/1N6oWF9PHTcxXC1JY4x3Malr3twFv2wWZ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=System image=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Ubuntu===&lt;br /&gt;
*2023-11-09 Bpi-m4berry_0.0.1_beta_ubuntu_jammy_minimal_linux6.1.31&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1Mh8E6Zh-x8dAPkb00iX9Rw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/159Y7p8j067snqTG4oaUA2CP4aY4t6uyt/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*2023-11-09 Bpi-m4berry_0.0.1_beta_ubuntu_jammy_desktop_xfce_linux6.1.31&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1_sN137hKZt4DaawVsfO5Nw?pwd=8888 (pincode:8888) &lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/10wXnsgGtLWwf9J-dvLHW2mxsPKOrdHmJ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=Easy to buy=&lt;br /&gt;
*Aliexpress shop:&lt;br /&gt;
:SINOVOIP Aliexpress shop: https://www.aliexpress.us/item/1005006212355480.html?spm&lt;br /&gt;
:Bipai Aliexpress shop: https://www.aliexpress.us/item/1005006212128000.html?gatewayAdapt=glo2usa&lt;br /&gt;
:Taobao Shop: https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-25059194413.11.489155c8Addsck&amp;amp;id=747425760994&lt;br /&gt;
:OEM&amp;amp;ODM, please contact: judyhuang@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Berry&amp;diff=16322</id>
		<title>Banana Pi BPI-M4 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M4_Berry&amp;diff=16322"/>
				<updated>2023-11-01T06:39:41Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* Source code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M4_Berry]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M4_Berry_1.jpg|thumb|[[Banana Pi BPI-M4 Berry]] H618 design]]&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|[[Banana Pi BPI-M2 Berry]] A40i-H design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
[[File:Banana_Pi_M4-Berry_banner_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
The BPI-M4 Berry development board stands as a powerful Single Board Computer (SBC), harnessing the capabilities of the Allwinner H618 System-on-Chip (SoC) to provide developers with impressive performance and a wealth of features. Similar to the Raspberry Pi 4b, the BPI-M4 Berry boasts comparable CPU prowess, LPDDR4 memory support, integrated WiFi and Bluetooth functionalities, and a familiar 40-pin header layout, alongside 4 USB interfaces and a GbE RJ45 port. &lt;br /&gt;
&lt;br /&gt;
Characterized by its robust performance, versatile features, and remarkable image processing capabilities, stands as an exemplary SBC development platform for professionals within the embedded and computing industries. Equipped with 8GB eMMC flash storage, high-performance decoding and encoding capabilities, and an array of interface options, it caters to a wide spectrum of application domains, including media processing, IoT, and entertainment. Whether catering to novices or seasoned developers, the BPI-M4 Berry development board offers an ideal toolset for realizing creative visions and project objectives.&lt;br /&gt;
&lt;br /&gt;
=Key Features=&lt;br /&gt;
* Allwinner H618, Quad-core ARM Cortex™-A53 processor&lt;br /&gt;
* ARM Mali G31 GPU&lt;br /&gt;
* WIFI &amp;amp; Bluetooth&lt;br /&gt;
* 2G LPDDR4 RAM&lt;br /&gt;
* 8G eMMC flash memory&lt;br /&gt;
* 1x USB2.0 Type-C OTG, 5V power supply&lt;br /&gt;
* 4x USB2.0 Type-A&lt;br /&gt;
* 1x HDMI 2.0a&lt;br /&gt;
* 1x 3.5mm Audio &amp;amp; TVE jack socket&lt;br /&gt;
* 1x GbE Ethernet port&lt;br /&gt;
&lt;br /&gt;
=Getting Start=&lt;br /&gt;
*[[Getting Started with BPI-M4 Berry]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:BPI-M4 Berry interface.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Hardware spec==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;2&amp;quot;| '''Hardware  Specification of Banana pi BPI-M4 Berry'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU || Allwinner H618, Quad-core ARM Cortex™-A53 processor, 64-bit, up to 1.5GHz&lt;br /&gt;
|-&lt;br /&gt;
| GPU ||ARM Mali G31 GPU&lt;br /&gt;
|-&lt;br /&gt;
| Memory || 2 GB LPDDR4 &lt;br /&gt;
|-&lt;br /&gt;
| Storage || 8G eMMC flash&lt;br /&gt;
|-&lt;br /&gt;
| SD card || MicroSD card slot&lt;br /&gt;
|-&lt;br /&gt;
| Wireless || 2.4G/5G WiFi and Bluetooth 4.2&lt;br /&gt;
|-&lt;br /&gt;
| Ethernet || 1x GbE Ethernet port(supports PoE with add-on PoE HAT)&lt;br /&gt;
|-&lt;br /&gt;
| HDMI || 1x full-size HDMI 2.0a (up to 4K@60Hz with HDR10, CEC, DDC, SCDC), HDMI digital Audio output&lt;br /&gt;
|-&lt;br /&gt;
| Audio || 1x 3.5mm Audio &amp;amp; TVE jack socket&lt;br /&gt;
|-&lt;br /&gt;
| IR || 1x CIR&lt;br /&gt;
|-&lt;br /&gt;
| USB || 4x USB2.0 Type-A HOST, 1x USB2.0 Type-C OTG&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | GPIO &lt;br /&gt;
| 40-pin header, 28 pins GPIO and Power (+5V, +3.3V and GND)&lt;br /&gt;
|-&lt;br /&gt;
| UART, SPI, TWI/I²C, PWM, PCM/I²S&lt;br /&gt;
|-&lt;br /&gt;
|Buttons|| Reset, FEL and User&lt;br /&gt;
|-&lt;br /&gt;
| LED || Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
| Power || 5V@3A via USB Type-C&lt;br /&gt;
|-&lt;br /&gt;
|Size || 85x56 mm &lt;br /&gt;
|-&lt;br /&gt;
|Weight || 60g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==BPI-M4 Berry VS Raspberry Pi 4b ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PIN define ==&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Berry 40-pin header===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;6&amp;quot;| '''40-pin header define and GPIO Alternative Functions Assignments'''&lt;br /&gt;
|-&lt;br /&gt;
! Pin Num&lt;br /&gt;
! Pin Name&lt;br /&gt;
! ALT0&lt;br /&gt;
! ALT1&lt;br /&gt;
! ALT2&lt;br /&gt;
! ALT3&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| PG16&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 5V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| PG15&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI4_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| PG19&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| PG6&lt;br /&gt;
| UART1_TX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| PG7&lt;br /&gt;
| UART1_RX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| PH2&lt;br /&gt;
| UART5_TX&lt;br /&gt;
| &lt;br /&gt;
| PWM2&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| PG11&lt;br /&gt;
| H_I2S2_BCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| PH3&lt;br /&gt;
| UART5_RX&lt;br /&gt;
| &lt;br /&gt;
| PWM1&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| PG2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| PG8&lt;br /&gt;
| UART1_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| 3.3V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| PG9&lt;br /&gt;
| UART1_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| PH7&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| H_I2S3_LRCK&lt;br /&gt;
| SPI1_MOSI&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| PH8&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| H_I2S3_DOUT0&lt;br /&gt;
| SPI1_MISO&lt;br /&gt;
| H_I2S3_DIN1&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| PG1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| PH6&lt;br /&gt;
| UART2_RX&lt;br /&gt;
| H_I2S3_BCLK&lt;br /&gt;
| SPI1_CLK&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| PH5&lt;br /&gt;
| UART2_TX&lt;br /&gt;
| H_I2S3_MCLK&lt;br /&gt;
| SPI1_CS0&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| PH9&lt;br /&gt;
| &lt;br /&gt;
| H_I2S3_DIN0&lt;br /&gt;
| SPI1_CS1&lt;br /&gt;
| H_I2S3_DOUT1&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| PG18&lt;br /&gt;
| UART2_CTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SDA&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| PG17&lt;br /&gt;
| UART2_RTS&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| TWI3_SCK&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| PG3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| PG4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| PG0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| PG5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 34&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 35&lt;br /&gt;
| PG12&lt;br /&gt;
| H_I2S2_LRCK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| PH4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 37&lt;br /&gt;
| PG10&lt;br /&gt;
| H_I2S2_MCLK&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 38&lt;br /&gt;
| PG14&lt;br /&gt;
| H_I2S2_DIN0&lt;br /&gt;
| H_I2S2_DOUT1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 39&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 40&lt;br /&gt;
| PG13&lt;br /&gt;
| H_I2S2_DOUT0&lt;br /&gt;
| H_I2S2_DIN1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BPI-M4 Berry Debug UART===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GND&lt;br /&gt;
|-&lt;br /&gt;
| 2 || UART0_RX&lt;br /&gt;
|-&lt;br /&gt;
| 3 || UART0_TX&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Source code==&lt;br /&gt;
&lt;br /&gt;
*u-boot for H618 : https://github.com/BPI-SINOVOIP/pi-u-boot/tree/v2021.07-sunxi&lt;br /&gt;
*kernel for H618 : https://github.com/BPI-SINOVOIP/pi-linux/tree/pi-6.1-sunxi&lt;br /&gt;
&lt;br /&gt;
== Resources==&lt;br /&gt;
*BPI-M4 Berry Allwinner H618 SBC burn Ubuntu desktop image:https://www.youtube.com/watch?v=GAZsUDYL0DE&lt;br /&gt;
*BPI-M4 Berry DXF file&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1qS-_3d3IpoMBWJe8aI8JFA?pwd=8888 (pincode:8888) &lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/13wsY0cMZGfz5MdTqlo19DtmlZfdOGLI4/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
*BPI-M4 Berry SBC bench test: http://forum.banana-pi.org/t/bpi-m4-sbc-bench-test/9469&lt;br /&gt;
&lt;br /&gt;
*Allwinner H618 Datasheet&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/10Rk4xLMOhIkk-gIoQx9DQw?pwd=8888 (pincode:8888)&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/1N6oWF9PHTcxXC1JY4x3Malr3twFv2wWZ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
=System image=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Easy to buy=&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E9%A6%99%E8%95%89%E6%B4%BE_BPI-R3_Mini&amp;diff=16301</id>
		<title>香蕉派 BPI-R3 Mini</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E9%A6%99%E8%95%89%E6%B4%BE_BPI-R3_Mini&amp;diff=16301"/>
				<updated>2023-10-30T01:43:27Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* OpenWRT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Banana Pi BPI-R3 Mini]]&lt;br /&gt;
=概述=&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_BPI-R3_Mini__1.jpg|thumb|[[香蕉派 BPI-R3 Mini]] with  MediaTek MT7986(Filogic 830)]]&lt;br /&gt;
[[File:Banana_Pi_BPI-R3_Mini__case_1.jpg|thumb|[[香蕉派 BPI-R3 Mini]] with MediaTek MT7986(Filogic 830)]]&lt;br /&gt;
[[File:Banana_Pi_BPI-R3_Router_2.jpg|thumb|[[香蕉派 BPI-R3]] with MediaTek MT7986(Filogic 830)]]&lt;br /&gt;
[[File:Banana_Pi_BPI-R2_Pro_1_750.jpg|thumb|[[香蕉派 BPI-R2 Pro]] Rockchip RK3568 design]]&lt;br /&gt;
[[File:BPI-R64_3.JPG|thumb|[[香蕉派 BPI-R64]] with MediaTek MT7622]]&lt;br /&gt;
[[File:BPI-R2_3.JPG|thumb|[[香蕉派 BPI-R2]] with MTK MT7623N chip design]]&lt;br /&gt;
[[File:O2A0500.jpg|thumb|[[香蕉派 BPI-W2]] with Realtek RTK1296 chip design]]&lt;br /&gt;
[[File:Banana_pi_BPI-R1_1.JPG|thumb|[[香蕉派 BPI-R1]] with allwinner A20 chip design]]&lt;br /&gt;
[[File:Bpi-r3_Metal_case.jpg|thumb|[[香蕉派 BPI-R3 ]] Metal case ]]&lt;br /&gt;
&lt;br /&gt;
[[File:Banana Pi BPI-R3 Mini banner 1.jpg]]&lt;br /&gt;
==BPI-R3 mini介绍==&lt;br /&gt;
&lt;br /&gt;
香蕉派BPI-R3 Mini开源路由器开发板采用联发科MT7986 (Filogic 830)四核 ARMA53 + MT7531A芯片设计,板载2G DDR内存与8G eMMC存储,这是一个非常高性能开源路由器开发板,支持WIFI6, 2.4G Wifi无线使用MT7975N芯片, 5G Wifi使用MT7975P芯片,支持2个2.5网口。&lt;br /&gt;
&lt;br /&gt;
==MediaTek MT7986(Filogic 830)芯片介绍==&lt;br /&gt;
&lt;br /&gt;
联发科技Filogic 830 Filogic 830 整合四个主频高达2GHz 的Arm Cortex-A53 核心，处理能力高达18,000 DMIPs，双4x4 Wi-Fi 6/6E 连接速率可达6Gbps，并拥有两个2.5G 乙太网路介面和串列周边介面（SPI）。Filogic 830 内建硬体加速引擎，可实现快速且可靠的Wi-Fi卸载（offloading）及无线网路连结。此外，该晶片支援联发科技FastPath™ 技术，可适用于游戏、AR/VR 等低延迟应用。Wi-Fi 6E 与前几代相比具有许多优势，包括更低的延迟、更大的频宽容量和更快的传送速率。支援6GHz 频段的无线网路设备主要运用160MHz 宽通道和6GHz 的未拥塞频宽，以提供千兆级（multigigabit）传输和低延迟的Wi-Fi 连接，可为串流媒体、游戏、AR/VR 等应用提供可靠的无线连网。&lt;br /&gt;
&lt;br /&gt;
==应用方向==&lt;br /&gt;
* 互联网服务路由器&lt;br /&gt;
* 无线路由器&lt;br /&gt;
* 无线中继器&lt;br /&gt;
* 家庭安全网关&lt;br /&gt;
* 家庭自动化&lt;br /&gt;
* NAS设备&lt;br /&gt;
* 网络和通信应用&lt;br /&gt;
&lt;br /&gt;
==关键特征==&lt;br /&gt;
*联发科(MediaTek) MT7986(Filogic 830) 四核ARM Cortex A53 chip&lt;br /&gt;
*Wifi 6 2.4G/5G（MT7976C）&lt;br /&gt;
*2G DDR 内存&lt;br /&gt;
*8G eMMC 存储&lt;br /&gt;
*128MB Nand 存储&lt;br /&gt;
*2x 2.5GbE 网络接口&lt;br /&gt;
*1xM.2 Key B 接口&lt;br /&gt;
*1xM.2 KEY M PCIe 接口&lt;br /&gt;
*1xUSB 接口&lt;br /&gt;
&lt;br /&gt;
==快速上手==&lt;br /&gt;
*[[Getting Started with BPI-R3 MINI]]&lt;br /&gt;
&lt;br /&gt;
=硬件=&lt;br /&gt;
==硬件示意图==&lt;br /&gt;
[[File:BPI-R3_MINI_interface.jpg]]&lt;br /&gt;
&lt;br /&gt;
==硬件规格==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''HardWare  Specification of Banana pi BPI-R3 Mini'''&lt;br /&gt;
|-&lt;br /&gt;
| CPU ||MediaTek MT7986(Filogic 830) Quad core ARM Cortex A53 chip design&lt;br /&gt;
|-&lt;br /&gt;
| SDRAM || 2 GB DDR4 &lt;br /&gt;
|-&lt;br /&gt;
| On board Storage || Nand flash,8GB eMMC onboard &lt;br /&gt;
|-&lt;br /&gt;
| On board Network || 2 2.5GbE Ethernet  &lt;br /&gt;
|-&lt;br /&gt;
| Wifi || Wifi 6  4x4 2.4G Wifi(MT7976) +4x4 5G Wifi(MT7976) &lt;br /&gt;
|-&lt;br /&gt;
| M.2 Key B| 1x M.2 Key B interface&lt;br /&gt;
|-&lt;br /&gt;
|M.2 Key M ||1x M.2 KEY-M PCIe inerface&lt;br /&gt;
|-&lt;br /&gt;
| USB || 1 USB 2.0&lt;br /&gt;
|-&lt;br /&gt;
| Buttons || Reset button,WPS botton, boot switch&lt;br /&gt;
|-&lt;br /&gt;
| 5 Leds || Power ,System, Wifi 2G ,Wifi 5G ,4G Lte ,SSD &lt;br /&gt;
|-&lt;br /&gt;
| DC Power || 20W/12V TypeC PD&lt;br /&gt;
|-&lt;br /&gt;
| Sizes || &lt;br /&gt;
|-&lt;br /&gt;
| Weight || 100g&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=开发资源=&lt;br /&gt;
==软件源代码==&lt;br /&gt;
&lt;br /&gt;
*开源驱动的BSP&lt;br /&gt;
:https://github.com/BPI-SINOVOIP/BPI-R3MINI-OPENWRT-V21.02.3&lt;br /&gt;
&lt;br /&gt;
==参考文档==&lt;br /&gt;
*BPI-R3 Mini DXF 文档&lt;br /&gt;
:Google Drive: https://drive.google.com/file/d/1FgNVjR-kPdFVNZBPkAF8xTIZ4YauJ_2O/view?usp=sharing&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1t1hZjNdg7rMBJcqVEZN-Ag?pwd=8888 (pincode:8888)&lt;br /&gt;
*BPI-R3 Mini原理图&lt;br /&gt;
:Google Drive:https://drive.google.com/file/d/1wvovcYf0OtvQl5fekJku25QNeER1D7cM/view?usp=sharing&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1HohHjd2w-mqLlBhwsXR87A?pwd=8888 (pincode:8888)&lt;br /&gt;
*MT7986A_Datasheet_1.15 : https://drive.google.com/file/d/1t_nuPTeoAcFb1dmEe4kJVlLWdHcAA6OB/view?usp=sharing&lt;br /&gt;
*MT7986A_Reference_Manual_for_BPI-R3 : https://drive.google.com/file/d/1biSJmxnIpNzQroYDg9mtPtSTAv4i0DFf/view?usp=sharing&lt;br /&gt;
*[Tutorial] Build, customize and use MediaTek open-source U-Boot and ATF : https://forum.banana-pi.org/t/tutorial-build-customize-and-use-mediatek-open-source-u-boot-and-atf/13785&lt;br /&gt;
&lt;br /&gt;
=镜像发布=&lt;br /&gt;
==OpenWRT==&lt;br /&gt;
*bl2_emmc.img&lt;br /&gt;
:Google Drive:https://drive.google.com/file/d/1L5lVyg8dDl60eyzkqBr-8aeG2Weq5ouo/view?usp=sharing&lt;br /&gt;
:Baidu Cloud:https://pan.baidu.com/s/1vdnCKqr0GSzQid7Y3ADCKw?pwd=8888 (pincode:8888)&lt;br /&gt;
&lt;br /&gt;
*2023-09-12 BPI-R3 Mini OpenWRT image with Opensource Driver BSP (support Quectel RM500U-CN &amp;amp; RM520N-GL 5G Modules)&lt;br /&gt;
:Google Drive: https://drive.google.com/drive/folders/1o6JGM61eZQycuYPFlror4IwNa5cGzyIa?usp=sharing&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1vAJC-n37Yt_aHEZU9PL7Sw?pwd=8888 (pincode:8888)&lt;br /&gt;
&lt;br /&gt;
*2023-09-12 BPI-R3 Mini OpenWRT image with MTK vendor driver, Not OpenSource Driver BSP (support Quectel RM500U-CN &amp;amp; RM520N-GL 5G Modules)&lt;br /&gt;
:Google Drive:https://drive.google.com/drive/folders/15iXMvzaZFb1M5HHfotew3NMdMEjOEtTJ?usp=sharing&lt;br /&gt;
:Baidu Cloud: https://pan.baidu.com/s/1qAiIqHxhUwuRUp8CIcrPTw?pwd=8888 (pincode:8888)&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;br /&gt;
&lt;br /&gt;
=样品购买=&lt;br /&gt;
&lt;br /&gt;
*BIPAI Aliexpress shop :   https://www.aliexpress.com/item/1005005873750368.html?&lt;br /&gt;
*SINOVOIP Aliexpress shop:  https://www.aliexpress.com/store/group/BPI-R3-Mini/1100417230_40000004378662.html?&lt;br /&gt;
*Taobao shop :  https://item.taobao.com/item.htm?spm=a213gs.success.result.1.1bd14831HTwBxZ&amp;amp;id=730610953668&lt;br /&gt;
*OEM &amp;amp;ODM定制服务，请联系：judyhuang@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M5/M2Pro&amp;diff=15460</id>
		<title>Getting Started with M5/M2Pro</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M5/M2Pro&amp;diff=15460"/>
				<updated>2023-08-04T07:14:37Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* Wifi/BT support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_4.JPG|thumb|[[Banana Pi BPI-M5]]]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|Amlogic S905X3 Processor]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_2.jpg|thumb|Amlogic S905X3 Processor]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi M5 is a new generation single board computer design , use Amlogic S905X3 Quad-Core Cortex-A55 (2.0xxGHz) Processor. Mali-G31 MP2 GPU with 4 x Execution Engines (650Mhz). support 4GB LPDDR4 and 16G eMMC flash. it have 4 USB 3.0 port,1GbE LAN port, IR Reciver, Audio Jack, 1 HDMI Out and USB type-c power supply.&lt;br /&gt;
&lt;br /&gt;
Banana Pi M2Pro is the same SOC with M5, but different board layout. 2GB LPDDR4 and 16G eMMC flash, 2 USB 3.0 port,1GbE LAN port, rtl8821cu usb wifi/bt onboard, IR Reciver, 1 HDMI Out, 1 MicroUSB port,  DC power supply.&lt;br /&gt;
&lt;br /&gt;
=specifications=&lt;br /&gt;
&lt;br /&gt;
*SoC – Amlogic S905X3 quad-core Cortex-A55 processor @ up to 2.0 GHz with&lt;br /&gt;
*Mali-G31 MP2 GPU @ 650Mhz&lt;br /&gt;
*System Memory – 4GB LPDDR4&lt;br /&gt;
*Storage – 16GB eMMC flash (option up to 64GB), MicroSD slot up to 2TB&lt;br /&gt;
*Video Output – HDMI 2.1 up to 4Kp60 with HDR, CEC, EDID&lt;br /&gt;
*Audio – 3.5mm audio jack, digital HDMI audio&lt;br /&gt;
*Connectivity – Gigabit Ethernet&lt;br /&gt;
*USB – 4x USB 3.0 ports via VL817 hub controller, 1x USB-C port (for power only?)&lt;br /&gt;
*Expansion – 40-pin Raspberry Pi header with 28x GPIO, UART, I2C, SPI, PWM, and power signal (+5V, +3.3V, GND).&lt;br /&gt;
*Debugging – 3-pin debug header&lt;br /&gt;
*Misc – Reset, Power, and U-boot button; power and activity LED’s; IR receiver&lt;br /&gt;
*Power Supply – 5V @3A via USB Type-C port&lt;br /&gt;
*Dimensions – 92x60mm (Not the same as Raspberry Pi PCB size, but they probably included the connectors during measurement)&lt;br /&gt;
*Weight – 48grams&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Prepare==&lt;br /&gt;
:1. Prepare a usb-serial cable, a 5V/3A adaptor type-c power supply. The serial cable is used for console debug and type-c cable is used for android image download and ADB debug. M2pro is used Micro-usb port for android image download and ADB debug.&lt;br /&gt;
:2. Prepare a SDcard at least 8GB for linux development, android only support emmc boot.&lt;br /&gt;
:3. The SOC rom first boot media is emmc, so board can't bootup from SDcard if the emmc is bootable with any image flashed, more info please refer to board [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Boot_Sequence boot sequence].&lt;br /&gt;
:4. In Android SDcard is mmc0, emmc is mmc1, but in Linux SDcard is mmc1, emmc is mmc0.&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
===Prepare===&lt;br /&gt;
&lt;br /&gt;
:1. Download and install the [https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FTools%2Fimage_download_tools%2Faml_usb_burning_tool_V2_setup_v2.2.3.3.zip AML Usb Burning Tool] for android image download via USB type-c on M5 and Micro-usb on M2pro, only support windows.&lt;br /&gt;
:2. Download the latest [http://wiki.banana-pi.org/Banana_Pi_BPI-M5#Android_2 android image], and confirm that the md5 checksum is correct.&lt;br /&gt;
:3. M5 and M2pro are compatiable with same android image.&lt;br /&gt;
&lt;br /&gt;
===Install Image with Usb Burning Tool===&lt;br /&gt;
&lt;br /&gt;
:1. Open USB_Burning_Tool.exe, select menu File-&amp;gt;Import image, choose the android image file aml_upgrade_package.img.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. M5/M2pro board disconnect power, press and hold SW4 button beside 40pin header, plugin type-c usb cable(microUSB on m2pro) to PC&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:3. Click the Start button and wait for upgrade complete.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:4. After Burning successfull, Unplug the usb and connect to power supply adaptor to startup.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:5. Click the Stop button to cancel the upgrade process and close the USB Buring Tool.&lt;br /&gt;
&lt;br /&gt;
===Install Image with Aml Flash Tool===&lt;br /&gt;
:[https://github.com/Dangku/aml-flash-tool aml-flash-tool] is a linux platform opensource image flash util for Amlogic android.&lt;br /&gt;
&lt;br /&gt;
  $ ./flash-tool.sh --img=/path/to/aml_upgrade_package.img --parts=all --wipe --soc=g12a --reset=y&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_linux_flash.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Build Android Source Code===&lt;br /&gt;
:1. Get Android 9.0 source code&lt;br /&gt;
&lt;br /&gt;
  $ git clone https://github.com/BPI-SINOVOIP/BPI-S905X3-Android9&lt;br /&gt;
&lt;br /&gt;
:or you can get the source code tar archive from [https://pan.baidu.com/s/1TmmR_075b49lPSt1Phq0ag?pwd=8888  Baidu Pan(pincode: 8888)] or [https://drive.google.com/drive/folders/1RuvazYcr46HKMvNBxSqQftdyWa0tK9f7?usp=share_link  Google Drive]&lt;br /&gt;
&lt;br /&gt;
:2. Build the Android 9.0 Source code&lt;br /&gt;
&lt;br /&gt;
:Please read the source code [https://github.com/BPI-SINOVOIP/BPI-S905X3-Android9/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
===Android DTB overlay===&lt;br /&gt;
&lt;br /&gt;
:Bananapi M5/M2Pro DTBO idx value table, default idx value is 0 in release image.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Bananapi M5/M2pro DTBO idx value table'''&lt;br /&gt;
|-&lt;br /&gt;
|idx value|| device tree overlay || description&lt;br /&gt;
|-&lt;br /&gt;
| 0|| android_p_overlay|| default dtbo, no use&lt;br /&gt;
|-&lt;br /&gt;
| 1|| wifi_bt_rtl8822cs|| enable bpi rtl8822cs wifi/bt module&lt;br /&gt;
|-&lt;br /&gt;
| 2|| i2c2|| enable i2c 2&lt;br /&gt;
|-&lt;br /&gt;
| 3|| i2c3|| enable i2c 3&lt;br /&gt;
|-&lt;br /&gt;
| 4|| sdio|| enable sdio&lt;br /&gt;
|-&lt;br /&gt;
| 5|| uart1|| enable 2 pins uart 1&lt;br /&gt;
|-&lt;br /&gt;
| 6|| uart1_cts_rts|| enable 4 pins uart 1&lt;br /&gt;
|-&lt;br /&gt;
| 7|| uart2|| enable 2 pins uart 2&lt;br /&gt;
|-&lt;br /&gt;
| 8|| hifi_pcm5122|| enable i2s [https://shumeipai.nxez.com/hifidac-hat-for-raspberry-pi pcm5122 HiFi DAC]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:'''How to apply a new dtbo'''&lt;br /&gt;
&lt;br /&gt;
:1. ADB command via sysfs&lt;br /&gt;
&lt;br /&gt;
  root@dangku-desktop:/tmp# adb root&lt;br /&gt;
  restarting adbd as root&lt;br /&gt;
  root@dangku-desktop:/tmp# adb remount&lt;br /&gt;
  remount succeeded&lt;br /&gt;
  root@dangku-desktop:/tmp# adb shell&lt;br /&gt;
  bananapi_m5:/ # echo dtbo &amp;gt; /sys/class/unifykeys/name                                                &lt;br /&gt;
  bananapi_m5:/ # echo &amp;quot;1&amp;quot; &amp;gt; /sys/class/unifykeys/write                                                &lt;br /&gt;
  bananapi_m5:/ # reboot&lt;br /&gt;
&lt;br /&gt;
:2. Uart console command via sysfs&lt;br /&gt;
&lt;br /&gt;
  console:/ $ &lt;br /&gt;
  console:/ $ su&lt;br /&gt;
  console:/ # echo dtbo &amp;gt; /sys/class/unifykeys/name                              &lt;br /&gt;
  [  115.702781@0] unifykey: name_store() 1302, name dtbo, 4&lt;br /&gt;
  [  115.702856@0] unifykey: name_store() 1311&lt;br /&gt;
  console:/ #&lt;br /&gt;
  console:/ # echo &amp;quot;1&amp;quot; &amp;gt; /sys/class/unifykeys/write                              &lt;br /&gt;
  [  129.262659@0] unifykey: write_store()  is a string&lt;br /&gt;
  [  129.262733@0] unifykey: dtbo, 1, 1&lt;br /&gt;
  [  129.265312@0] unifykey: amlkey_write 393&lt;br /&gt;
  [  129.292347@1] emmc_key_write:149, write ok&lt;br /&gt;
  console:/ # &lt;br /&gt;
  console:/ # reboot&lt;br /&gt;
&lt;br /&gt;
:3. Settings App(To-Do)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Check the bootup uart debug message and confirm which dtbo is loaded actually, here &amp;quot;1&amp;quot; means set idx=1 to apply wifi_bt_rtl8822cs dtbo.&lt;br /&gt;
&lt;br /&gt;
  load dtb from 0x1000000 ......&lt;br /&gt;
        Amlogic multi-dtb tool&lt;br /&gt;
        Single dtb detected&lt;br /&gt;
  find 2 dtbos&lt;br /&gt;
  dtbos to be applied: 1&lt;br /&gt;
  Apply dtbo 1&lt;br /&gt;
&lt;br /&gt;
:Unifykeys is stored in a specific emmc part, &amp;quot;Normal erase&amp;quot; selected in USB_Burning_Tool will not erase this data for next update, you must select &amp;quot;Erase all&amp;quot; if you want the default dtbo idx to be applied after image download.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_erase_all.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:'''Build Android image with a specific DTBO default'''.&lt;br /&gt;
&lt;br /&gt;
:1. Default build-in overlays are defined in device/amlogic/bananapi_m5/Kernel.mk, you can add a new overlay dtbo here.&lt;br /&gt;
  DTBO_DEVICETREE := android_p_overlay wifi_bt_rtl8822cs i2c2 i2c3 sdio uart1 uart1_cts_rts uart2 hifi_pcm5122&lt;br /&gt;
&lt;br /&gt;
:2. Default apply DTBO idx is defined in device/amlogic/bananapi_m5/BoardConfig.mk, you can change the idx value to set which overlay dtbo will be applied default.&lt;br /&gt;
  BOARD_KERNEL_CMDLINE += androidboot.dtbo_idx=0&lt;br /&gt;
&lt;br /&gt;
:3. DTS files are in common/arch/arm/boot/dts/amlogic/overlay/bananapi_m5/&lt;br /&gt;
&lt;br /&gt;
:More info about android device tree overlays, please refer to [https://source.android.com/devices/architecture/dto google android offical site]&lt;br /&gt;
&lt;br /&gt;
===Install OpenGapps===&lt;br /&gt;
&lt;br /&gt;
:1. Download install package from [https://opengapps.org/ OpenGapps], Android release image is arm/android 9.0 variant.&lt;br /&gt;
&lt;br /&gt;
[[File:opengapps.PNG]]&lt;br /&gt;
&lt;br /&gt;
:2. Download [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FTools%2Fapps%2Fdevice_id_v1.3.2.apk device_id.apk].&lt;br /&gt;
:3. Copy the OpenGapp package to a udisk or sdcard root directory.&lt;br /&gt;
:4. Create a txt file named '''factory_update_param.aml''' in udisk or sdcard root directory with the following android recovery parameter content, and replace the file name with the actual downloaded package.  &lt;br /&gt;
::udisk:&lt;br /&gt;
  --wipe_cache&lt;br /&gt;
  --update_package=/udisk/open_gapps-arm-9.0-pico-20210327.zip&lt;br /&gt;
&lt;br /&gt;
::sdcard:&lt;br /&gt;
  --wipe_cache&lt;br /&gt;
  --update_package=/sdcard/open_gapps-arm-9.0-pico-20210327.zip&lt;br /&gt;
&lt;br /&gt;
:5. Plugin the udisk or sdcard to the board and poweron.&lt;br /&gt;
&lt;br /&gt;
:6.OpenGapps install and certify.&lt;br /&gt;
:&amp;lt;youtube&amp;gt;fXOKmWfpqF8&amp;lt;/youtube&amp;gt;&lt;br /&gt;
:watch this video on [https://www.bilibili.com/video/BV13y4y1s77i/ bilibili]&lt;br /&gt;
&lt;br /&gt;
===IR Remote Control Custom===&lt;br /&gt;
:Before starting this work, some android basic concepts and knowledge need to be known.&lt;br /&gt;
&lt;br /&gt;
:*Linux kernel input key event.&lt;br /&gt;
:*Android keycode.&lt;br /&gt;
:*Linux keycode map to android keycode.&lt;br /&gt;
:*Android Adb function work on your PC&lt;br /&gt;
&lt;br /&gt;
:1. pull the remote files from device&lt;br /&gt;
  # adb pull /vendor/etc/remote.cfg&lt;br /&gt;
  # adb pull /vendor/etc/remote.tab &lt;br /&gt;
&lt;br /&gt;
:2. modify remote.cfg to enable remote debug message&lt;br /&gt;
:[[File:remotecfg.png]]&lt;br /&gt;
&lt;br /&gt;
:push remote.cfg back&lt;br /&gt;
&lt;br /&gt;
  # adb root&lt;br /&gt;
  # adb remount&lt;br /&gt;
  # adb push remote.cfg /vendor/etc/&lt;br /&gt;
  # adb shell&lt;br /&gt;
  m5_mbox:/ # chmod 644 /vendor/etc/remote.cfg&lt;br /&gt;
  m5_mbox:/ # remotecfg -c /vendor/etc/remote.cfg -d                                                  &lt;br /&gt;
  cfgdir = /vendor/etc/remote.cfg&lt;br /&gt;
  work_mode = 1&lt;br /&gt;
  repeat_enable = 0&lt;br /&gt;
  debug_enable = 1&lt;br /&gt;
  max_frame_time = 1000&lt;br /&gt;
&lt;br /&gt;
:3. Get the remote keycode&lt;br /&gt;
:Press your remote key one by one and then print the dmesg to get the remote custom_code and each remote key code.&lt;br /&gt;
&lt;br /&gt;
  # adb shell dmesg | grep framecode=&lt;br /&gt;
:[[File:keycode.png]]&lt;br /&gt;
&lt;br /&gt;
:custom_code = 0xfe01&lt;br /&gt;
:keycode = 0x00, 0x01, 0x09, 0x02, 0x0a, 0x05, 0x04 0x06, 0x03, 0x0b, 0x40, 0x48, 0x44&lt;br /&gt;
&lt;br /&gt;
:4. Modify remote.tab to map the scancode to android keycode&lt;br /&gt;
:[[File:remotetab.png]]&lt;br /&gt;
&lt;br /&gt;
:push remote.tab and test each key whether works&lt;br /&gt;
&lt;br /&gt;
  # adb root&lt;br /&gt;
  # adb remount&lt;br /&gt;
  # adb push remote.tab1 /vendor/etc/&lt;br /&gt;
  # adb shell&lt;br /&gt;
  m5_mbox:/ # chmod 644 /vendor/etc/remote.tab&lt;br /&gt;
  m5_mbox:/ # remotecfg -c /vendor/etc/remote.cfg -t /vendor/etc/remote.tab -d                                                                                                                               &lt;br /&gt;
  cfgdir = /vendor/etc/remote.cfg&lt;br /&gt;
  work_mode = 1&lt;br /&gt;
  repeat_enable = 0&lt;br /&gt;
  debug_enable = 1&lt;br /&gt;
  max_frame_time = 1000&lt;br /&gt;
  tabdir = /vendor/etc/remote.tab&lt;br /&gt;
  custom_name = nec-test&lt;br /&gt;
  fn_key_scancode = 0xffff&lt;br /&gt;
  cursor_left_scancode = 0xffff&lt;br /&gt;
  cursor_right_scancode = 0xffff&lt;br /&gt;
  cursor_up_scancode = 0xffff&lt;br /&gt;
  cursor_down_scancode = 0xffff&lt;br /&gt;
  cursor_ok_scancode = 0xffff&lt;br /&gt;
  custom_code = 0xfe01&lt;br /&gt;
  release_delay = 80&lt;br /&gt;
  map_size = 13&lt;br /&gt;
  key[0] = 0x74&lt;br /&gt;
  key[1] = 0x1008b&lt;br /&gt;
  key[2] = 0x90066&lt;br /&gt;
  key[3] = 0x20069&lt;br /&gt;
  key[4] = 0xa006a&lt;br /&gt;
  key[5] = 0x50067&lt;br /&gt;
  key[6] = 0x4006c&lt;br /&gt;
  key[7] = 0x6001c&lt;br /&gt;
  key[8] = 0x30072&lt;br /&gt;
  key[9] = 0xb0073&lt;br /&gt;
  key[10] = 0x40009e&lt;br /&gt;
  key[11] = 0x4800a4&lt;br /&gt;
  key[12] = 0x440071&lt;br /&gt;
&lt;br /&gt;
:5. Reboot the board&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare===&lt;br /&gt;
:1. Linux image support SDcard or EMMC bootup, but you should read the [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Boot_Sequence boot sequence] at first.&lt;br /&gt;
&lt;br /&gt;
:2. It’s recommended to use A1 rated cards, 8GB at least.&lt;br /&gt;
&lt;br /&gt;
:3. M5 and M2pro are compatiable with same Linux image.&lt;br /&gt;
&lt;br /&gt;
:4. Make sure bootable EMMC is formatted if you want bootup from SDcard, more info refer to [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Erase_EMMC_for_SDcard_Bootup Erase EMMC for SDcard Bootup]&lt;br /&gt;
&lt;br /&gt;
:5. Make sure SDcard is formatted without Linux image flashed if you want bootup from EMMC and use Sdcard as storage.&lt;br /&gt;
&lt;br /&gt;
:6. Install bpi-tools on your Linux PC(if [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Install_Image_to_SDcard flash image] with other tools, ignore this step). If you can't access this URL or any other install problem, please go to [https://github.com/bpi-sinovoip/bpi-tools bpi-tools] source repo, download and install this tools manually.&lt;br /&gt;
  $ apt-get install pv&lt;br /&gt;
  $ curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
&lt;br /&gt;
:7. Download latest [http://wiki.banana-pi.org/Banana_Pi_BPI-M5#Linux Linux Image], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
:8. Default login: pi/bananapi or root/bananapi&lt;br /&gt;
&lt;br /&gt;
:9. The wiki guide is only for [https://wiki.banana-pi.org/Banana_Pi_BPI-M5#Linux bananapi 4.9 bsp ubuntu/debian images].&lt;br /&gt;
&lt;br /&gt;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with Balena Etcher on Windows, Linux and MacOS.&lt;br /&gt;
:[https://balena.io/etcher Balena Etcher] is an opensource GUI flash tool by Balena, Flash OS images to SDcard or USB drive&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. Install Image with Balena Cli on Windows, Linux and MacOS.&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] is a Command Line Interface for balenaCloud or openBalena. It can be used to flash linux image. Download the installer or standalone package from [https://github.com/balena-io/balena-cli/releases balena-io] and [https://github.com/balena-io/balena-cli/blob/master/INSTALL.md install] it correctly to your PC, then you can use the &amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot; command option of balena to flash a linux image to sdcard or usb drive.&lt;br /&gt;
&lt;br /&gt;
  $ sudo balena local flash path/to/xxx-bpi-m5-xxx.img.zip&lt;br /&gt;
  $ sudo balena local flash path/to/xxx-bpi-m5-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  $ sudo balena local flash path/to/xxx-bpi-m5-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. Install Image with dd command on Linux, umount SDcard device /dev/sdX partition if mounted automatically. Actually bpi-copy is the same as this dd command.&lt;br /&gt;
  $ sudo apt-get install pv unzip&lt;br /&gt;
  $ sudo unzip -p xxx-bpi-m5-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. Install image with bpi-tools on Linux, plug SDcard to Linux PC and run&lt;br /&gt;
  $ sudo apt-get install pv unzip&lt;br /&gt;
  $ sudo bpi-copy xxx-bpi-m5-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Install Image to EMMC===&lt;br /&gt;
:1. Prepare a [https://wiki.banana-pi.org/Getting_Started_with_BPI-M5/M2Pro#Install_Image_to_SDcard SDcard with Linux image] flashed and bootup board with this SDcard.&lt;br /&gt;
&lt;br /&gt;
:2. Copy Linux image to udisk, plug the udisk to board and mount it.&lt;br /&gt;
&lt;br /&gt;
:3. There are two ways to install the linux image to board.&lt;br /&gt;
  3.1 Install with dd command, umount mmcblk0p1 and mmcblk0p2 partition if mounted automatically. Actually bpi-copy is the same as this dd command.&lt;br /&gt;
  $ sudo apt-get install pv unzip&lt;br /&gt;
  $ sudo unzip -p xxx-bpi-m5-xxx.img.zip | pv | dd of=/dev/mmcblk0 bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
  3.2 Install the linux image in udisk with bpi-tools command&lt;br /&gt;
  $ sudo apt-get install pv unzip&lt;br /&gt;
  $ sudo bpi-copy xxx-bpi-m5-xxx.img.zip /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
:4. After download complete, power off safely and eject the SDcard.&lt;br /&gt;
&lt;br /&gt;
===Build Linux Source Code===&lt;br /&gt;
:1. Get the Linux bsp source code&lt;br /&gt;
  $  git clone https://github.com/BPI-SINOVOIP/BPI-M5-bsp&lt;br /&gt;
:2. Build the bsp source code&lt;br /&gt;
&lt;br /&gt;
::Please read the source code [https://github.com/BPI-SINOVOIP/BPI-M5-bsp/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
:3. If you want build uboot and kernel separately, please download the [https://github.com/Dangku/amlogic-u-boot/tree/odroidg12-v2015.01-c4-m5 u-boot] the [https://github.com/Dangku/amlogic-linux/tree/odroidg12-4.9.y-c4-m5 kernel] only, get the toolchains, boot script and other configuration files from [https://github.com/BPI-SINOVOIP/BPI-M5-bsp BPI-M5-bsp]&lt;br /&gt;
&lt;br /&gt;
===DTB overlay===&lt;br /&gt;
:1. DTB overlay is used for 40pin gpios multi-function configuration and install in vfat boot partition, you can check the mount point with mount command.&lt;br /&gt;
  root@bananapi:~# ls /boot/overlays/&lt;br /&gt;
  custom_ir.dtbo      pwm_b-backlight.dtbo  spi0.dtbo&lt;br /&gt;
  ds3231.dtbo         pwm_c-beeper.dtbo     uart1_cts_rts.dtbo&lt;br /&gt;
  hifi_pcm5102a.dtbo  pwm_cd-c.dtbo         uart1.dtbo&lt;br /&gt;
  hifi_pcm5122.dtbo   pwm_cd.dtbo           uart2.dtbo&lt;br /&gt;
  i2c0.dtbo           pwm_ef.dtbo           waveshare_tft24_lcd.dtbo&lt;br /&gt;
  i2c1.dtbo           pwm_ef-f.dtbo         waveshare_tft35c_lcd.dtbo&lt;br /&gt;
  pwm_ab.dtbo         sdio.dtbo             waveshare_tft35c_rtp.dtbo&lt;br /&gt;
&lt;br /&gt;
:2. Update the overlays env in vfat /boot/boot.ini to enable what you want. Default i2c0, spi0 and uart1 enabled.&lt;br /&gt;
&lt;br /&gt;
  # Overlays to load&lt;br /&gt;
  # Example combinations:&lt;br /&gt;
  #   spi0 i2c0 i2c1 uart0&lt;br /&gt;
  #   hktft32&lt;br /&gt;
  #   hktft35&lt;br /&gt;
  setenv overlays &amp;quot;i2c0 spi0 uart1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:3. Must be restart the board for overlay dtb loaded.&lt;br /&gt;
&lt;br /&gt;
===WiringPi===&lt;br /&gt;
: Note: This WiringPi only support set 40pin gpio to output, input or software pwm, for io functions as i2c, spi, pwm..., you must enable dtb overlay in boot.ini&lt;br /&gt;
&lt;br /&gt;
:1. Build and install wiringPi, for debian, you must [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Enable_sudo_for_Debian install sudo] before build&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install build-essential git&lt;br /&gt;
  $ git clone https://github.com/BPI-SINOVOIP/amlogic-wiringPi&lt;br /&gt;
  $ cd amlogic-wiringPi&lt;br /&gt;
  $ chmod a+x build&lt;br /&gt;
  $ sudo ./build&lt;br /&gt;
&lt;br /&gt;
:2. Run '''gpio readall''' to show all 40pins status.&lt;br /&gt;
[[File:m5_wiringpi.png]]&lt;br /&gt;
&lt;br /&gt;
:3. BPI GPIO Extend board and examples in [https://github.com/BPI-SINOVOIP/amlogic-wiringPi/tree/master/examples amlogic-wiringPi/examples]&lt;br /&gt;
&lt;br /&gt;
:blinkall, blink all pin header gpios, no extend board.&lt;br /&gt;
:lcd-bpi, [http://wiki.banana-pi.org/BPI_LCD_1602_display_module BPI LCD 1602 display module] example.&lt;br /&gt;
:52pi-bpi, [http://wiki.banana-pi.org/BPI_OLED_Display_Module BPI OLED Display Module] example.&lt;br /&gt;
:matrixled-bpi, [http://wiki.banana-pi.org/BPI_RGB_LED_Matrix_Expansion_Module BPI RGB LED Matrix Expansion Module] example.&lt;br /&gt;
:berryclip-bpi, [http://wiki.banana-pi.org/BPI_BerryClip_Module BPI BerryClip Module]&lt;br /&gt;
&lt;br /&gt;
===RPi.GPIO===&lt;br /&gt;
&lt;br /&gt;
: Build and install, for debian, you must [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Enable_sudo_for_Debian install sudo] before build&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install build-essential python3 python3-pip python3-dev python3-setuptools git&lt;br /&gt;
  $ git clone https://github.com/Dangku/RPi.GPIO-Amlogic.git&lt;br /&gt;
  $ cd RPi.GPIO-Amlogic&lt;br /&gt;
  $ sudo python3 setup.py clean --all&lt;br /&gt;
  $ sudo python3 setup.py install&lt;br /&gt;
&lt;br /&gt;
: Create and install wheel package&lt;br /&gt;
  $ sudo python3 setup.py bdist_wheel&lt;br /&gt;
  $ sudo pip3 install dist/RPi.GPIO-XXX.whl&lt;br /&gt;
&lt;br /&gt;
: Install from git source directly without development&lt;br /&gt;
  $ sudo pip3 install git+https://github.com/Dangku/RPi.GPIO-Amlogic.git&lt;br /&gt;
&lt;br /&gt;
: If the package is already installed, it should be uninstalled before installing the new one, or installing the new one with --force-reinstall option.&lt;br /&gt;
&lt;br /&gt;
===WiringPi2-Python===&lt;br /&gt;
&lt;br /&gt;
: Build and install, for debian, you must [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Enable_sudo_for_Debian install sudo] before build&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install build-essential python3 python3-dev python3-setuptools swig git&lt;br /&gt;
  $ git clone --recursive  https://github.com/Dangku/WiringPi2-Python-Amlogic.git&lt;br /&gt;
  $ cd WiringPi2-Python-Amlogic&lt;br /&gt;
  $ sudo python3 setup.py install&lt;br /&gt;
&lt;br /&gt;
===Luma.Examples===&lt;br /&gt;
:[https://github.com/rm-hull/luma.examples luma.examples] use GPIO.BCM gpio mode default, so you should map 40pin header pins to bcm gpio number and connect the hardware correctly.&lt;br /&gt;
&lt;br /&gt;
:1. build and install RPi.GPIO&lt;br /&gt;
&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install build-essential python3 python3-dev python3-setuptools git&lt;br /&gt;
  $ git clone https://github.com/Dangku/RPi.GPIO-Amlogic.git&lt;br /&gt;
  $ cd RPi.GPIO-Amlogic&lt;br /&gt;
  $ sudo python3 setup.py clean --all&lt;br /&gt;
  $ sudo python3 setup.py install&lt;br /&gt;
&lt;br /&gt;
:you can change the bcmledpin variable in test/led.py to your hardware backlight gpio and run it to check RPi.GPIO works well.&lt;br /&gt;
&lt;br /&gt;
  $ sudo python3 test/led.py&lt;br /&gt;
&lt;br /&gt;
:hardware backlight will repeat on and off&lt;br /&gt;
&lt;br /&gt;
:2. luma.examples libs install&lt;br /&gt;
&lt;br /&gt;
  $ sudo usermod -a -G i2c,spi,gpio pi&lt;br /&gt;
&lt;br /&gt;
:if group does not exist, the following command will create it:&lt;br /&gt;
&lt;br /&gt;
  $ sudo groupadd --system xxx&lt;br /&gt;
&lt;br /&gt;
  $ sudo apt-get install python3-dev python3-pip libfreetype6-dev libjpeg-dev build-essential&lt;br /&gt;
  $ sudo apt-get install libsdl-dev libportmidi-dev libsdl-ttf2.0-dev libsdl-mixer1.2-dev libsdl-image1.2-dev&lt;br /&gt;
  $ git clone https://github.com/rm-hull/luma.examples.git&lt;br /&gt;
  $ cd luma.examples&lt;br /&gt;
&lt;br /&gt;
:install luma.core, luma.emulator, luma.lcd, luma.le-matrix, luma.oled pip libs, make sure this step without error or downloading interrupted, try again if get errors&lt;br /&gt;
  $ sudo -H pip install -e .&lt;br /&gt;
:or&lt;br /&gt;
  $ sudo -H pip3 install -e .&lt;br /&gt;
&lt;br /&gt;
:for debian buster(python 3.7) which does not include /usr/bin/pip in package python3-pip, and will get the following errors when install luma packages with pip3&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
  WARNING, No &amp;quot;Setup&amp;quot; File Exists, Running &amp;quot;buildconfig/config.py&amp;quot;&lt;br /&gt;
  Using UNIX configuration...&lt;br /&gt;
  &lt;br /&gt;
  /bin/sh: 1: sdl2-config: not found&lt;br /&gt;
  /bin/sh: 1: sdl2-config: not found&lt;br /&gt;
  /bin/sh: 1: sdl2-config: not found&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
:install sdl2 related packages to fix this issue, then install luma libs again with pip3&lt;br /&gt;
  $ sudo apt-get install libsdl2-dev libsdl2-ttf-dev libsdl2-mixer-dev libsdl2-image-dev&lt;br /&gt;
  $ sudo -H pip3 install -e .&lt;br /&gt;
&lt;br /&gt;
:check installed luma pip libs&lt;br /&gt;
  $ pip3 list | grep luma&lt;br /&gt;
    &lt;br /&gt;
    luma.core          2.4.0&lt;br /&gt;
    luma.emulator      1.4.0&lt;br /&gt;
    luma.lcd           2.10.0&lt;br /&gt;
    luma.led-matrix    1.7.0&lt;br /&gt;
    luma.oled          3.11.0&lt;br /&gt;
&lt;br /&gt;
:3. examples test&lt;br /&gt;
:Enable i2c or spi [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#DTB_overlay overlays] before running test examples&lt;br /&gt;
  $ cd examples&lt;br /&gt;
  $ sudo python3 bounce.py --config ../conf/ili9341.conf&lt;br /&gt;
&lt;br /&gt;
===HDMI LCD===&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Bananapi M5/M2pro Tested HDMI LCD'''&lt;br /&gt;
|-&lt;br /&gt;
|panel || /boot/boot.ini&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/3.5inch-hdmi-lcd.htm Waveshare 3.5inch 480x320] || setenv display_autodetect &amp;quot;false&amp;quot;&lt;br /&gt;
setenv hdmimode &amp;quot;480x320p60hz&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/3.5inch-hdmi-lcd-e.htm Waveshare 3.5inch 640x480] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/4inch-hdmi-lcd-c.htm Waveshare 4inch 720x720]&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/5inch-hdmi-amoled.htm Waveshare 5inch 960x544] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/5inch-hdmi-lcd-h.htm Waveshare 5inch 800x480] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/5.5inch-1440x2560-lcd.htm Waveshare 5.5inch 1440x2560] || setenv display_autodetect &amp;quot;false&amp;quot;&lt;br /&gt;
setenv hdmimode &amp;quot;1440x2560p60hz&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/7inch-hdmi-lcd-b.htm Waveshare 7inch 800x480] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/7inch-hdmi-lcd-c.htm Waveshare 7inch 1024x600] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/7.9inch-HDMI-LCD.htm Waveshare 7.9inch 400x1280] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/8inch-1536x2048-LCD.htm Waveshare 8inch 1536x2048] || setenv display_autodetect &amp;quot;false&amp;quot;&lt;br /&gt;
setenv hdmimode &amp;quot;1536x2048p60hz&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/8.8inch-Side-Monitor.htm Waveshare 8.8inch 480x1920] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/9inch-2560x1600-Monitor.htm Waveshare 9inch 2560x1600] || setenv display_autodetect &amp;quot;false&amp;quot;&lt;br /&gt;
setenv hdmimode &amp;quot;2560x1600p60hz&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/10.1inch-HDMI-LCD-E.htm Waveshare 10.1inch 1024x600] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/10.1inch-hdmi-lcd-b-with-case.htm Waveshare 10.1inch 1280x800] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/11.9inch-HDMI-LCD.htm Waveshare 11.9inch 320x1480] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/12.3inch-hdmi-lcd.htm Waveshare 12.3inch 1920x720] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/13.3inch-HDMI-LCD-H.htm Waveshare 13.3inch 1920x1080] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/15.6inch-hdmi-lcd-h-with-case.htm Waveshare 15.6inch 1920x1080] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: backlight control&lt;br /&gt;
&lt;br /&gt;
  https://github.com/Dangku/Waveshare-USB-Brightness&lt;br /&gt;
&lt;br /&gt;
===Boot Linux from USB drive===&lt;br /&gt;
&lt;br /&gt;
:S905x3 is not support usb boot in soc rom, so the only way for booting linux from usb drive is create a bootable sdcard or emmc with bootloader flashed, then load boot and rootfs from usb drive. After bootup, everything will run from usb drive.&lt;br /&gt;
&lt;br /&gt;
:1. The simple way is [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Install_Image_to_SDcard flash the M5/M2Pro Linux image to sdcard or emmc] for bootable and also flash it to the usb drive for loading boot and rootfs.&lt;br /&gt;
:2. Bootup the M5/M2pro board with [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Boot_Sequence sdcard or emmc], copy /boot/boot.ini to /boot/boot.ini.org so that bootloader load boot.ini fail and then try to load it from usb drive boot partition.&lt;br /&gt;
:3. Reboot the system, bootscript and rootfs will load from usb drive.&lt;br /&gt;
:[[File:m5_boot_from_usb.png]]&lt;br /&gt;
&lt;br /&gt;
:4. Test performance&lt;br /&gt;
:You can verify the performance of your usb drive on Pi Benchmarks using the following command:&lt;br /&gt;
  sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash&lt;br /&gt;
&lt;br /&gt;
:Test results for sd, emmc and usb drive&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Category || Test || Sdcard Test Result || Emmc Test Result || Usb Drive Test Result&lt;br /&gt;
|-&lt;br /&gt;
| HDParm || Disk Read || 67.91 MB/s || 156.64 MB/s || 253.40 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| HDParm || Cached Disk Read || 57.39 MB/s || 126.53 MB/s || 253.52 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| DD || Disk Write || 13.0 MB/s || 48.8 MB/s || 149 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| FIO || 4k random read || 2456 IOPS (9826 KB/s) || 9701 IOPS (38806 KB/s) || 5474 IOPS (21897 KB/s)&lt;br /&gt;
|-&lt;br /&gt;
| FIO || 4k random write || 938 IOPS (3753 KB/s) || 12888 IOPS (51554 KB/s) || 6980 IOPS (27920 KB/s)&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k read || 10615 KB/s || 29568 KB/s || 23770 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k write || 4276 KB/s || 33585 KB/s || 18598 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k random read || 8661 KB/s || 29637 KB/s || 19982 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k random write || 4795 KB/s || 38177 KB/s || 22134 KB/s&lt;br /&gt;
|-&lt;br /&gt;
|  ||  || Score: 1300 || Score: 7811 || Score: 5879&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Other Development==&lt;br /&gt;
&lt;br /&gt;
===Custom Linux Boot Logo===&lt;br /&gt;
:Linux uboot limit boot logo fb size to 1080p60hz/1920x1080 default, so oversize resolution will not be supported by default image, but you can modify uboot source code to support it.&lt;br /&gt;
&lt;br /&gt;
:1. Prepare a 24bit bmp file and named boot-logo.bmp&lt;br /&gt;
:2. Compress the bmp file to boot-logo.bmp.gz&lt;br /&gt;
  $ gzip boot-logo.bmp&lt;br /&gt;
:3. copy the target file to BPI-BOOT partition of linux image&lt;br /&gt;
  $ cp boot-logo.bmp.gz /media/xxx/BPI-BOOT/&lt;br /&gt;
&lt;br /&gt;
===Custom Android Boot Logo===&lt;br /&gt;
:Android bootloader limit boot logo fb display size is 1080p60hz/1920x1080 default, and android kernel dtb partition table limit boot logo partition size to 16MB default .&lt;br /&gt;
&lt;br /&gt;
:1. Prepare a 24bit bmp file and named boot-logo.bmp&lt;br /&gt;
&lt;br /&gt;
:2. Compress the bmp file to boot-logo.bmp.gz&lt;br /&gt;
  $ gzip boot-logo.bmp&lt;br /&gt;
&lt;br /&gt;
:3. Download [https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FTools%2Flogo_create_tools%2Fm5_android_bootlogo_tool.zip m5_android_bootlogo_tool.zip]&lt;br /&gt;
&lt;br /&gt;
:4. Extract this tool&lt;br /&gt;
  $ unzip m5_android_bootlogo_tool.zip&lt;br /&gt;
  $ cd m5_android_bootlogo_tool/&lt;br /&gt;
  $ cp -a logo_img_files logo               //logo_img_files is the origin bootlogo resource in android source and copy from &amp;lt;android-source-dir&amp;gt;/devices/amlogic/bananapi_m5/log_img_files&lt;br /&gt;
  $ ls -l logo/&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 525054 Sep 25 16:54 bootup.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 525054 Sep 25 16:54 bootup_X3.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku    184 May 19  2020 upgrade_bar.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_error.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_fail.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_logo.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_success.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku    184 May 19  2020 upgrade_unfocus.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_upgrading.bmp&lt;br /&gt;
&lt;br /&gt;
:5. Copy the boot-logo.bmp.gz&lt;br /&gt;
  $ cp boot-logo.bmp.gz logo/bootup.bmp&lt;br /&gt;
  $ cp boot-logo.bmp.gz logo/bootup_X3.bmp&lt;br /&gt;
&lt;br /&gt;
:6. Create target logo.img with img pack tool, the binary and related libs of m5_android_bootlogo_tool are copy from &amp;lt;android-source-dir&amp;gt;/out/host/linux-x86&lt;br /&gt;
  $ ./logo_img_packer -r logo logo.img&lt;br /&gt;
&lt;br /&gt;
:7. Flash boot logo with fastboot&lt;br /&gt;
  $ adb root&lt;br /&gt;
  $ adb remount&lt;br /&gt;
  $ adb reboot fastboot&lt;br /&gt;
:Wait few seconds and check whether fastboot connected&lt;br /&gt;
  $ fastboot device&lt;br /&gt;
  1234567890      fastboot&lt;br /&gt;
  $ fastboot flashing unlock_critical&lt;br /&gt;
  $ fastboot flashing unlock&lt;br /&gt;
  $ fastboot flash logo logo.img&lt;br /&gt;
  $ fastboot reboot&lt;br /&gt;
&lt;br /&gt;
===Boot Sequence===&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_linux_boot_squence.png]]&lt;br /&gt;
&lt;br /&gt;
:Check bootloader loaded from SDcard or EMMC at the beginning of the console debug messages&lt;br /&gt;
&lt;br /&gt;
:1. Rom load bootloader from SDcard (Linux log example)&lt;br /&gt;
  ...&lt;br /&gt;
  &lt;br /&gt;
  BL2 Built : 15:21:42, Mar 26 2020. g12a g486bc38 - gongwei.chen@droid11-sz&lt;br /&gt;
  &lt;br /&gt;
  Board ID = 1&lt;br /&gt;
  Set cpu clk to 24M&lt;br /&gt;
  Set clk81 to 24M&lt;br /&gt;
  Use GP1_pll as DSU clk.&lt;br /&gt;
  DSU clk: 1200 Mhz&lt;br /&gt;
  CPU clk: 1200 MHz&lt;br /&gt;
  Set clk81 to 166.6M&lt;br /&gt;
  board id: 1&lt;br /&gt;
  '''Load FIP HDR DDR from SD''', src: 0x00010200, des: 0xfffd0000, size: 0x00004000, part: 0&lt;br /&gt;
  fw parse done&lt;br /&gt;
  PIEI prepare done&lt;br /&gt;
  fastboot data verify&lt;br /&gt;
  result: 255&lt;br /&gt;
  Cfg max: 12, cur: 1. Board id: 255. Force loop cfg&lt;br /&gt;
  DDR4 probe&lt;br /&gt;
  &lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
:2. Rom load bootloader from EMMC(Android Log example)&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
  &lt;br /&gt;
  Board ID = 1&lt;br /&gt;
  Set cpu clk to 24M&lt;br /&gt;
  Set clk81 to 24M&lt;br /&gt;
  Use GP1_pll as DSU clk.&lt;br /&gt;
  DSU clk: 1200 Mhz&lt;br /&gt;
  CPU clk: 1200 MHz&lt;br /&gt;
  Set clk81 to 166.6M&lt;br /&gt;
  eMMC boot @ 0&lt;br /&gt;
  sw8 s&lt;br /&gt;
  board id: 1&lt;br /&gt;
  '''Load FIP HDR DDR from eMMC''', src: 0x00010200, des: 0xfffd0000, size: 0x00004000, part: 0&lt;br /&gt;
  fw parse done&lt;br /&gt;
  PIEI prepare done&lt;br /&gt;
  00000000&lt;br /&gt;
  emmc switch 1 ok&lt;br /&gt;
  ddr saved addr:00016000&lt;br /&gt;
  Load ddr parameter from eMMC, src: 0x02c00000, des: 0xfffd0000, size: 0x00001000, part: 0&lt;br /&gt;
  00000000&lt;br /&gt;
  &lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
===Erase EMMC for SDcard Bootup===&lt;br /&gt;
:There are four possible scenarios should be pay attention to, EMMC already flashed Android image, EMMC already flashed Linux image, boot process hangup in BL2 and EMMC empty.&lt;br /&gt;
&lt;br /&gt;
:1. Bootable EMMC with Android image flashed&lt;br /&gt;
&lt;br /&gt;
::a). Using usb burning tool, unplug the download usb cable while the download process at '''7% formatting'''&lt;br /&gt;
&lt;br /&gt;
::[[File:m5_android_format.png]]&lt;br /&gt;
&lt;br /&gt;
::b). Using Android Fastboot tool, make sure the adb/fastboot tools is work on your PC before doing this.&lt;br /&gt;
&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb root'''&lt;br /&gt;
    adbd is already running as root&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb remount'''&lt;br /&gt;
    remount succeeded&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb shell'''&lt;br /&gt;
    bananapi_m5:/ # '''reboot fastboot'''&lt;br /&gt;
::Wait a few seconds for board reboot to fastboot mode&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot devices'''&lt;br /&gt;
    1234567890	fastboot&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot flashing unlock_critical'''&lt;br /&gt;
    ...&lt;br /&gt;
    OKAY [  0.044s]&lt;br /&gt;
    finished. total time: 0.044s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot flashing unlock'''&lt;br /&gt;
    ...&lt;br /&gt;
    OKAY [  0.047s]&lt;br /&gt;
    finished. total time: 0.047s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader'''&lt;br /&gt;
    erasing 'bootloader'...&lt;br /&gt;
    OKAY [  0.059s]&lt;br /&gt;
    finished. total time: 0.059s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader-boot0'''&lt;br /&gt;
    erasing 'bootloader-boot0'...&lt;br /&gt;
    OKAY [  0.036s]&lt;br /&gt;
    finished. total time: 0.036s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader-boot1'''&lt;br /&gt;
    erasing 'bootloader-boot1'...&lt;br /&gt;
    OKAY [  0.035s]&lt;br /&gt;
    finished. total time: 0.035s&lt;br /&gt;
&lt;br /&gt;
::c). Using uboot command, connect a debug console cable and press ESC while power on to enter uboot command line&lt;br /&gt;
&lt;br /&gt;
    bananapi_m5_v1#'''amlmmc erase 1'''&lt;br /&gt;
    emmckey_is_protected(): protect&lt;br /&gt;
    start = 0,end = 57343&lt;br /&gt;
    start = 221184,end = 30535679&lt;br /&gt;
    Erasing blocks 0 to 8192 @ boot0&lt;br /&gt;
    start = 0,end = 8191&lt;br /&gt;
    Erasing blocks 0 to 8192 @ boot1&lt;br /&gt;
    start = 0,end = 8191&lt;br /&gt;
    bananapi_m5_v1#'''reset'''&lt;br /&gt;
    resetting ...&lt;br /&gt;
    SM1:BL:511f6b:81ca2f;FEAT:A0F83180:20282000;POC:F;RCY:0;EMMC:0;READ:0;CHK:1F;READ:0;CHK:1F;READ:0;CHK;&lt;br /&gt;
&lt;br /&gt;
::These two ways actually erase the bootloader part of EMMC android, After bootup from SDcard Linux, You'd better [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Erase_Emmc_Android_by_dd_command format the whole EMMC by dd command].&lt;br /&gt;
&lt;br /&gt;
::d). The simplest way is insert the SDcard with Linux image flashed before power on, the Android bootloader will check boot.ini file whether exist in SDcard vfat partition, so that the SDcard Linux will bootup. After bootup, you can [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Erase_Emmc_Android_by_dd_command format the whole EMMC by dd command] and then flash the Linux image to EMMC.&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
    BPI: try boot from sdcard&lt;br /&gt;
    reading boot.ini&lt;br /&gt;
    5699 bytes read in 3 ms (1.8 MiB/s)&lt;br /&gt;
    ## Executing script at 01b00000&lt;br /&gt;
    ...&lt;br /&gt;
    reading Image.gz&lt;br /&gt;
    9143358 bytes read in 510 ms (17.1 MiB/s)&lt;br /&gt;
    reading meson64_bananapi_m5.dtb&lt;br /&gt;
    70850 bytes read in 8 ms (8.4 MiB/s)&lt;br /&gt;
    reading uInitrd&lt;br /&gt;
    11704481 bytes read in 655 ms (17 MiB/s)&lt;br /&gt;
    reading overlays/i2c0.dtbo&lt;br /&gt;
    223 bytes read in 6 ms (36.1 KiB/s)&lt;br /&gt;
    reading overlays/spi0.dtbo&lt;br /&gt;
    516 bytes read in 6 ms (84 KiB/s)&lt;br /&gt;
    reading overlays/uart1.dtbo&lt;br /&gt;
    225 bytes read in 5 ms (43.9 KiB/s)&lt;br /&gt;
&lt;br /&gt;
:2. Bootable EMMC with Linux image flashed&lt;br /&gt;
&lt;br /&gt;
::a). Using uboot command, connect a debug console cable and press ESC while power on to enter uboot command line&lt;br /&gt;
&lt;br /&gt;
    bananapi_m5# mmc erase 0 1000&lt;br /&gt;
&lt;br /&gt;
::b). Linux u-boot also check boot.ini file whether exist in SDcard vfat partition so that the SDcard Linux will bootup. After bootup, you can format the whole EMMC by dd command or flash the Linux image directly to EMMC.&lt;br /&gt;
&lt;br /&gt;
:3. A extreme situation is bootloader or uboot corrupted, Rom load it from EMMC but hangup in u-boot or BL2, for example the boot process will hangup in BL2 of EMMC if dram init failed,  The only way is format the EMMC with usb burning tool, or download the Android image completely and then try other ways to erase EMMC or flash Linux image to EMMC.&lt;br /&gt;
&lt;br /&gt;
:4. Rom will try to load bootloader from SDcard directly if EMMC is empty.&lt;br /&gt;
&lt;br /&gt;
===Erase Emmc Android by dd command===&lt;br /&gt;
:If the board is flashed android before, the whole emmc must be erased by these commands if you want bootup it with SDcard Linux image.&lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0boot0 bs=1M status=noxfer &lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0boot1 bs=1M status=noxfer&lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0 bs=1M status=noxfer &lt;br /&gt;
  $ sync&lt;br /&gt;
&lt;br /&gt;
===Wifi/BT support===&lt;br /&gt;
&lt;br /&gt;
:1. Android test and support.&lt;br /&gt;
  rtl8723bu wifi/bt(usb)&lt;br /&gt;
  rtl8188eu wifi(usb)&lt;br /&gt;
  [http://forum.banana-pi.org/t/banana-pi-wifi-bt-4-2-expansion-board-standard-usb-interface/12162 rtl8821cu wifi/bt(usb)]&lt;br /&gt;
  [http://forum.banana-pi.org/t/bpi-m5-wifi-bt-board-sdio-interface-802-11-a-b-g-n-ac-2t2r-wifi-and-bluectooch-5-0/11846 rtl8822cs wifi/bt(sdio/uart)]&lt;br /&gt;
  rtl8814au wifi(usb), please get the [https://github.com/aircrack-ng/rtl8814au aircrack-ng] driver and install.&lt;br /&gt;
&lt;br /&gt;
:'''How to enable Android Wifi/BT'''&lt;br /&gt;
&lt;br /&gt;
:USB type: Plug-in the usb dongle to usb host port and reboot the system, After bootup, you can enable or disable wifi and bluetooth in Settings app.&lt;br /&gt;
:SDIO/UART type: Connect the hardware module to 40pin header correctly and [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5/M2Pro#Android_DTB_overlay configure the Android DTB overlay] to enable it.&lt;br /&gt;
&lt;br /&gt;
:'''Note''': Android is not support that ethernet and wifi are both connected at the same time, Ethernet have a higher prioprity than wifi, it means wifi can't connect network if ethernet already connected, and wifi will drop connection if ethernet cable plugin.&lt;br /&gt;
&lt;br /&gt;
:2. Linux test and support.&lt;br /&gt;
  rtl8188eu wifi(usb)&lt;br /&gt;
  rtl8192eu wifi(usb)&lt;br /&gt;
  rtl8723bu wifi/bt(usb)&lt;br /&gt;
  rtl8811au wifi(usb)&lt;br /&gt;
  rtl8812au wifi(usb)&lt;br /&gt;
  rtl8812bu wifi(usb)&lt;br /&gt;
  [http://forum.banana-pi.org/t/banana-pi-wifi-bt-4-2-expansion-board-standard-usb-interface/12162 rtl8821cu wifi/bt(usb)]&lt;br /&gt;
  [http://forum.banana-pi.org/t/bpi-m5-wifi-bt-board-sdio-interface-802-11-a-b-g-n-ac-2t2r-wifi-and-bluectooch-5-0/11846 rtl8822cs wifi/bt(sdio/uart)]&lt;br /&gt;
&lt;br /&gt;
:'''How to enable Linux Wifi'''&lt;br /&gt;
&lt;br /&gt;
:Wifi module drivers are already prebuild in the release images.&lt;br /&gt;
&lt;br /&gt;
:USB type: Plug-in the usb dongle to usb host port and driver will be loaded automatically.&lt;br /&gt;
:SDIO/UART type:&lt;br /&gt;
::1). Connect the hardware module to 40pin header correctly.&lt;br /&gt;
::2). Configure the [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5/M2Pro#DTB_overlay dtb overlay]&lt;br /&gt;
   # Overlays to load&lt;br /&gt;
   # Example combinations:&lt;br /&gt;
   #   spi0 i2c0 i2c1 uart0&lt;br /&gt;
   #   hktft32&lt;br /&gt;
   #   hktft35&lt;br /&gt;
   setenv overlays &amp;quot;wifi_bt_rtl8822cs&amp;quot;&lt;br /&gt;
::3). Add the wifi module name to /etc/modules for loaded automatically next boot.&lt;br /&gt;
  # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
  # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
  88x2cs&lt;br /&gt;
&lt;br /&gt;
:'''How to enable Linux Bluetooth'''&lt;br /&gt;
&lt;br /&gt;
::1). Please download [https://github.com/Dangku/m5-rtk-linux-bt-driver rtk-linux-bt-driver] source code, build and install usb or uart rtk linux bluetooth drivers/firmwares to your image.&lt;br /&gt;
::2). For USB type, plug-in the usb dongle to usb host port and driver will be loaded automatically.&lt;br /&gt;
::3). For UART type, Configure the dtb overlay as the same as wifi before install the bluetooth drivers/firmwares. hci_uart driver will be loaded when rtk-hciuart.service start.&lt;br /&gt;
&lt;br /&gt;
===Linux Server Image Network Configuration===&lt;br /&gt;
&lt;br /&gt;
:[https://netplan.io Netplan]&lt;br /&gt;
&lt;br /&gt;
:'''Linux Wifi STA mode'''&lt;br /&gt;
&lt;br /&gt;
:A sample wifi sta mode netplan configuration file, 01-wlan0-sta.yaml&lt;br /&gt;
 network:&lt;br /&gt;
   version: 2&lt;br /&gt;
   renderer: networkd&lt;br /&gt;
   wifis:&lt;br /&gt;
     wlan0:&lt;br /&gt;
       dhcp4: true&lt;br /&gt;
       access-points:&lt;br /&gt;
         &amp;quot;bananapi&amp;quot;:&lt;br /&gt;
            password: &amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:'''Linux Wifi AP mode'''&lt;br /&gt;
&lt;br /&gt;
:1. Prepare the setup the [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Wifi.2FBT_support wifi adater] correctly.&lt;br /&gt;
&lt;br /&gt;
:2. Get the wifi adapter Band, Frequencies, Channel, HT Capability, VHT Capability or other properties&lt;br /&gt;
 $ iw list&lt;br /&gt;
&lt;br /&gt;
:3. Manage wifi access point mode with [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Linux_Server_Image_Network_Configuration Netplan] and Network-Manager.&lt;br /&gt;
&lt;br /&gt;
:Install NetworkManager because ap is only supported with NetworkManager renderer&lt;br /&gt;
 $ sudo apt install network-manager&lt;br /&gt;
&lt;br /&gt;
:A sample 2.4G wifi ap mode netplan configuration file, 01-wlan0-ap-2.4g.yaml&lt;br /&gt;
 network:&lt;br /&gt;
 version: 2&lt;br /&gt;
 renderer: NetworkManager&lt;br /&gt;
 wifis:&lt;br /&gt;
   wlan0:&lt;br /&gt;
     dhcp4: no&lt;br /&gt;
     access-points:&lt;br /&gt;
       &amp;quot;bananapi&amp;quot;:&lt;br /&gt;
          mode: ap&lt;br /&gt;
          band: 2.4GHz&lt;br /&gt;
          channel: 6&lt;br /&gt;
          auth:&lt;br /&gt;
            key-management: psk&lt;br /&gt;
            password: &amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:A sample 5G wifi ap mode netplan configuration file, 01-wlan0-ap-5g.yaml&lt;br /&gt;
 network:&lt;br /&gt;
 version: 2&lt;br /&gt;
 renderer: NetworkManager&lt;br /&gt;
 wifis:&lt;br /&gt;
   wlan0:&lt;br /&gt;
     dhcp4: no&lt;br /&gt;
     access-points:&lt;br /&gt;
       &amp;quot;bananapi&amp;quot;:&lt;br /&gt;
          mode: ap&lt;br /&gt;
          band: 5GHz&lt;br /&gt;
          channel: 36&lt;br /&gt;
          auth:&lt;br /&gt;
            key-management: psk&lt;br /&gt;
            password: &amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:4. Manage wifi access point mode with [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Linux_Server_Image_Network_Configuration Netplan] and Hostapd.&lt;br /&gt;
&lt;br /&gt;
:1). Create a netplan configuration file, 01-wlan0-ap-hostapd.yaml&lt;br /&gt;
 network:&lt;br /&gt;
 version: 2&lt;br /&gt;
 renderer: networkd&lt;br /&gt;
 ethernets:&lt;br /&gt;
   wlan0:&lt;br /&gt;
     dhcp4: no&lt;br /&gt;
     addresses:&lt;br /&gt;
       - 192.168.11.1/24&lt;br /&gt;
&lt;br /&gt;
:2). Install hostapd&lt;br /&gt;
 $ sudo apt install hostapd&lt;br /&gt;
&lt;br /&gt;
:Create hostapd configuration file /etc/hostapd/hostapd.conf, for example&lt;br /&gt;
 interface=wlan0&lt;br /&gt;
 ssid=bananapi&lt;br /&gt;
 &lt;br /&gt;
 driver=nl80211&lt;br /&gt;
 &lt;br /&gt;
 auth_algs=1&lt;br /&gt;
 wpa=2&lt;br /&gt;
 wpa_passphrase=123456789&lt;br /&gt;
 wpa_key_mgmt=WPA-PSK&lt;br /&gt;
 rsn_pairwise=CCMP&lt;br /&gt;
 &lt;br /&gt;
 #bridge=br0&lt;br /&gt;
 beacon_int=500&lt;br /&gt;
 #SSID not hidden&lt;br /&gt;
 ignore_broadcast_ssid=0&lt;br /&gt;
 &lt;br /&gt;
 hw_mode=a&lt;br /&gt;
 channel=36&lt;br /&gt;
 max_num_sta=8&lt;br /&gt;
 &lt;br /&gt;
 ### IEEE 802.11n&lt;br /&gt;
 ieee80211n=1&lt;br /&gt;
 #require_vht=0&lt;br /&gt;
 ht_capab=[HT20][HT40+][SHORT-GI-20][SHORT-GI-40][SHORT-GI-80][DSSS_CCK-40]&lt;br /&gt;
 &lt;br /&gt;
 ### IEEE 802.11ac&lt;br /&gt;
 ieee80211ac=1&lt;br /&gt;
 #require_vht=0&lt;br /&gt;
 #vht_capab=[MAX-MPDU-3895][SHORT-GI-80][SU-BEAMFORMEE]&lt;br /&gt;
 #vht_oper_chwidth=1&lt;br /&gt;
 #vht_oper_centr_freq_seg0_idx=42&lt;br /&gt;
 &lt;br /&gt;
 ### WMM&lt;br /&gt;
 wmm_enabled=1&lt;br /&gt;
&lt;br /&gt;
:3). To support 80MHz channel width you need load driver with '''rtw_vht_enable=2''' option, Or you can create /etc/modprobe.d/8822cs.conf with content&lt;br /&gt;
 options 88x2cs rtw_vht_enable=2&lt;br /&gt;
&lt;br /&gt;
:4). Install and configure dhcp server service, use isc-dhcp-server for example&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
:Configure dhcp server interface in /etc/default/isc-dhcp-server&lt;br /&gt;
 # On what interfaces should the DHCP server (dhcpd) serve DHCP requests?&lt;br /&gt;
 #       Separate multiple interfaces with spaces, e.g. &amp;quot;eth0 eth1&amp;quot;.&lt;br /&gt;
 INTERFACESv4=&amp;quot;wlan0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:Configure dhcp subnet and dns in /etc/dhcp/dhcpd.conf&lt;br /&gt;
 ...&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option domain-name-servers 8.8.8.8, 114.114.114.114;&lt;br /&gt;
 ...&lt;br /&gt;
 # No service will be given on this subnet, but declaring it helps the &lt;br /&gt;
 # DHCP server to understand the network topology.&lt;br /&gt;
 subnet 192.168.11.0 netmask 255.255.255.0 {&lt;br /&gt;
   range dynamic-bootp 192.168.11.1 192.168.11.100;&lt;br /&gt;
   option broadcast-address 192.168.11.255;&lt;br /&gt;
   option routers 192.168.11.1;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
:5). Start Service&lt;br /&gt;
 $ sudo hostapd /etc/hostapd/hostapd.conf -B&lt;br /&gt;
 $ sudo systemctl restart isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
:6). Routing configuration.&lt;br /&gt;
 sysctl net.ipv4.ip_forward=1&lt;br /&gt;
 iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o eth0 -j MASQUERADE&lt;br /&gt;
&lt;br /&gt;
===Disable Cloud-init&amp;amp;Snap===&lt;br /&gt;
:Cloud-init and Snap service are enabled default, you can disable or remove them.&lt;br /&gt;
&lt;br /&gt;
:1. disable or remove cloud-init&lt;br /&gt;
  $ sudo touch /etc/cloud/cloud-init.disabled&lt;br /&gt;
:or&lt;br /&gt;
  $ sudo apt purge cloud-init&lt;br /&gt;
&lt;br /&gt;
:2. disable or remove snap&lt;br /&gt;
  $ sudo apt purge snapd&lt;br /&gt;
&lt;br /&gt;
===Enable rc-local===&lt;br /&gt;
:The systemd service rc-local.service already exists in release image, but there is no [Install] part in the unit file. As a result, Systemd is unable to enable it. First, we must update the file.&lt;br /&gt;
&lt;br /&gt;
  $ sudo nano /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
  [Unit]&lt;br /&gt;
  Description=/etc/rc.local Compatibility&lt;br /&gt;
  Documentation=man:systemd-rc-local-generator(8)&lt;br /&gt;
  ConditionFileIsExecutable=/etc/rc.local&lt;br /&gt;
  After=network.target&lt;br /&gt;
  &lt;br /&gt;
  [Service]&lt;br /&gt;
  Type=forking&lt;br /&gt;
  ExecStart=/etc/rc.local start&lt;br /&gt;
  TimeoutSec=0&lt;br /&gt;
  RemainAfterExit=yes&lt;br /&gt;
  GuessMainPID=no&lt;br /&gt;
  &lt;br /&gt;
  [Install]&lt;br /&gt;
  WantedBy=multi-user.target&lt;br /&gt;
  Alias=rc-local.service&lt;br /&gt;
&lt;br /&gt;
:Create /etc/rc.local file.&lt;br /&gt;
&lt;br /&gt;
  sudo nano /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  #&lt;br /&gt;
  # rc.local&lt;br /&gt;
  #&lt;br /&gt;
  # This script is executed at the end of each multiuser runlevel.&lt;br /&gt;
  # Make sure that the script will &amp;quot;exit 0&amp;quot; on success or any other&lt;br /&gt;
  # value on error.&lt;br /&gt;
  #&lt;br /&gt;
  # In order to enable or disable this script just change the execution&lt;br /&gt;
  # bits.&lt;br /&gt;
  #&lt;br /&gt;
  # By default this script does nothing.&lt;br /&gt;
  &lt;br /&gt;
  exit 0&lt;br /&gt;
&lt;br /&gt;
:Add executable permission to /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
  $ sudo chmod +x /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
:Enable rc-local.service and reboot&lt;br /&gt;
&lt;br /&gt;
  $ sudo systemctl enable rc-local.service&lt;br /&gt;
  $ sudo reboot&lt;br /&gt;
&lt;br /&gt;
===Enable sudo for Debian===&lt;br /&gt;
:The release Debian image do not install sudo default, with &amp;quot;su -&amp;quot; command, user can change to root. If you like sudo, you can install it.&lt;br /&gt;
&lt;br /&gt;
  $ su root&lt;br /&gt;
  Password:(enter bananapi)&lt;br /&gt;
  &lt;br /&gt;
  # apt-get update&lt;br /&gt;
  # apt-get install sudo&lt;br /&gt;
  # adduser pi sudo&lt;br /&gt;
&lt;br /&gt;
: Then please do logout and login again&lt;br /&gt;
&lt;br /&gt;
===Install Docker Engine===&lt;br /&gt;
:Install Docker Engine on Ubuntu 20.04 Server&lt;br /&gt;
  &lt;br /&gt;
:1. Set up the repository&lt;br /&gt;
&lt;br /&gt;
:Update the apt package index and install packages to allow apt to use a repository over HTTPS:&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release&lt;br /&gt;
&lt;br /&gt;
:Add Docker’s official GPG key:&lt;br /&gt;
  $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
:Set up the stable repository&lt;br /&gt;
  $  echo \&lt;br /&gt;
     &amp;quot;deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \&lt;br /&gt;
     $(lsb_release -cs) stable&amp;quot; | sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
:2. Install Docker Engine&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install docker-ce docker-ce-cli containerd.io&lt;br /&gt;
&lt;br /&gt;
:3. Verify the Docker Engine is installed correctly by running the hello-world image.&lt;br /&gt;
  $ sudo docker run hello-world&lt;br /&gt;
&lt;br /&gt;
:[[File:docker-test.png]]&lt;br /&gt;
&lt;br /&gt;
Install docker with a simple command&lt;br /&gt;
&lt;br /&gt;
  $ curl -sSL get.docker.com | sudo sh&lt;br /&gt;
&lt;br /&gt;
[https://docs.docker.com/engine/install/ Install Docker Engine] on other Linux distributions&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M5/M2Pro&amp;diff=15459</id>
		<title>Getting Started with M5/M2Pro</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M5/M2Pro&amp;diff=15459"/>
				<updated>2023-08-04T07:14:00Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* Wifi/BT support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_4.JPG|thumb|[[Banana Pi BPI-M5]]]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|Amlogic S905X3 Processor]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_2.jpg|thumb|Amlogic S905X3 Processor]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi M5 is a new generation single board computer design , use Amlogic S905X3 Quad-Core Cortex-A55 (2.0xxGHz) Processor. Mali-G31 MP2 GPU with 4 x Execution Engines (650Mhz). support 4GB LPDDR4 and 16G eMMC flash. it have 4 USB 3.0 port,1GbE LAN port, IR Reciver, Audio Jack, 1 HDMI Out and USB type-c power supply.&lt;br /&gt;
&lt;br /&gt;
Banana Pi M2Pro is the same SOC with M5, but different board layout. 2GB LPDDR4 and 16G eMMC flash, 2 USB 3.0 port,1GbE LAN port, rtl8821cu usb wifi/bt onboard, IR Reciver, 1 HDMI Out, 1 MicroUSB port,  DC power supply.&lt;br /&gt;
&lt;br /&gt;
=specifications=&lt;br /&gt;
&lt;br /&gt;
*SoC – Amlogic S905X3 quad-core Cortex-A55 processor @ up to 2.0 GHz with&lt;br /&gt;
*Mali-G31 MP2 GPU @ 650Mhz&lt;br /&gt;
*System Memory – 4GB LPDDR4&lt;br /&gt;
*Storage – 16GB eMMC flash (option up to 64GB), MicroSD slot up to 2TB&lt;br /&gt;
*Video Output – HDMI 2.1 up to 4Kp60 with HDR, CEC, EDID&lt;br /&gt;
*Audio – 3.5mm audio jack, digital HDMI audio&lt;br /&gt;
*Connectivity – Gigabit Ethernet&lt;br /&gt;
*USB – 4x USB 3.0 ports via VL817 hub controller, 1x USB-C port (for power only?)&lt;br /&gt;
*Expansion – 40-pin Raspberry Pi header with 28x GPIO, UART, I2C, SPI, PWM, and power signal (+5V, +3.3V, GND).&lt;br /&gt;
*Debugging – 3-pin debug header&lt;br /&gt;
*Misc – Reset, Power, and U-boot button; power and activity LED’s; IR receiver&lt;br /&gt;
*Power Supply – 5V @3A via USB Type-C port&lt;br /&gt;
*Dimensions – 92x60mm (Not the same as Raspberry Pi PCB size, but they probably included the connectors during measurement)&lt;br /&gt;
*Weight – 48grams&lt;br /&gt;
&lt;br /&gt;
=development=&lt;br /&gt;
&lt;br /&gt;
==Prepare==&lt;br /&gt;
:1. Prepare a usb-serial cable, a 5V/3A adaptor type-c power supply. The serial cable is used for console debug and type-c cable is used for android image download and ADB debug. M2pro is used Micro-usb port for android image download and ADB debug.&lt;br /&gt;
:2. Prepare a SDcard at least 8GB for linux development, android only support emmc boot.&lt;br /&gt;
:3. The SOC rom first boot media is emmc, so board can't bootup from SDcard if the emmc is bootable with any image flashed, more info please refer to board [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Boot_Sequence boot sequence].&lt;br /&gt;
:4. In Android SDcard is mmc0, emmc is mmc1, but in Linux SDcard is mmc1, emmc is mmc0.&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
===Prepare===&lt;br /&gt;
&lt;br /&gt;
:1. Download and install the [https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FTools%2Fimage_download_tools%2Faml_usb_burning_tool_V2_setup_v2.2.3.3.zip AML Usb Burning Tool] for android image download via USB type-c on M5 and Micro-usb on M2pro, only support windows.&lt;br /&gt;
:2. Download the latest [http://wiki.banana-pi.org/Banana_Pi_BPI-M5#Android_2 android image], and confirm that the md5 checksum is correct.&lt;br /&gt;
:3. M5 and M2pro are compatiable with same android image.&lt;br /&gt;
&lt;br /&gt;
===Install Image with Usb Burning Tool===&lt;br /&gt;
&lt;br /&gt;
:1. Open USB_Burning_Tool.exe, select menu File-&amp;gt;Import image, choose the android image file aml_upgrade_package.img.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:2. M5/M2pro board disconnect power, press and hold SW4 button beside 40pin header, plugin type-c usb cable(microUSB on m2pro) to PC&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:3. Click the Start button and wait for upgrade complete.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_3.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:4. After Burning successfull, Unplug the usb and connect to power supply adaptor to startup.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_install_4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:5. Click the Stop button to cancel the upgrade process and close the USB Buring Tool.&lt;br /&gt;
&lt;br /&gt;
===Install Image with Aml Flash Tool===&lt;br /&gt;
:[https://github.com/Dangku/aml-flash-tool aml-flash-tool] is a linux platform opensource image flash util for Amlogic android.&lt;br /&gt;
&lt;br /&gt;
  $ ./flash-tool.sh --img=/path/to/aml_upgrade_package.img --parts=all --wipe --soc=g12a --reset=y&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_linux_flash.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Build Android Source Code===&lt;br /&gt;
:1. Get Android 9.0 source code&lt;br /&gt;
&lt;br /&gt;
  $ git clone https://github.com/BPI-SINOVOIP/BPI-S905X3-Android9&lt;br /&gt;
&lt;br /&gt;
:or you can get the source code tar archive from [https://pan.baidu.com/s/1TmmR_075b49lPSt1Phq0ag?pwd=8888  Baidu Pan(pincode: 8888)] or [https://drive.google.com/drive/folders/1RuvazYcr46HKMvNBxSqQftdyWa0tK9f7?usp=share_link  Google Drive]&lt;br /&gt;
&lt;br /&gt;
:2. Build the Android 9.0 Source code&lt;br /&gt;
&lt;br /&gt;
:Please read the source code [https://github.com/BPI-SINOVOIP/BPI-S905X3-Android9/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
===Android DTB overlay===&lt;br /&gt;
&lt;br /&gt;
:Bananapi M5/M2Pro DTBO idx value table, default idx value is 0 in release image.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Bananapi M5/M2pro DTBO idx value table'''&lt;br /&gt;
|-&lt;br /&gt;
|idx value|| device tree overlay || description&lt;br /&gt;
|-&lt;br /&gt;
| 0|| android_p_overlay|| default dtbo, no use&lt;br /&gt;
|-&lt;br /&gt;
| 1|| wifi_bt_rtl8822cs|| enable bpi rtl8822cs wifi/bt module&lt;br /&gt;
|-&lt;br /&gt;
| 2|| i2c2|| enable i2c 2&lt;br /&gt;
|-&lt;br /&gt;
| 3|| i2c3|| enable i2c 3&lt;br /&gt;
|-&lt;br /&gt;
| 4|| sdio|| enable sdio&lt;br /&gt;
|-&lt;br /&gt;
| 5|| uart1|| enable 2 pins uart 1&lt;br /&gt;
|-&lt;br /&gt;
| 6|| uart1_cts_rts|| enable 4 pins uart 1&lt;br /&gt;
|-&lt;br /&gt;
| 7|| uart2|| enable 2 pins uart 2&lt;br /&gt;
|-&lt;br /&gt;
| 8|| hifi_pcm5122|| enable i2s [https://shumeipai.nxez.com/hifidac-hat-for-raspberry-pi pcm5122 HiFi DAC]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:'''How to apply a new dtbo'''&lt;br /&gt;
&lt;br /&gt;
:1. ADB command via sysfs&lt;br /&gt;
&lt;br /&gt;
  root@dangku-desktop:/tmp# adb root&lt;br /&gt;
  restarting adbd as root&lt;br /&gt;
  root@dangku-desktop:/tmp# adb remount&lt;br /&gt;
  remount succeeded&lt;br /&gt;
  root@dangku-desktop:/tmp# adb shell&lt;br /&gt;
  bananapi_m5:/ # echo dtbo &amp;gt; /sys/class/unifykeys/name                                                &lt;br /&gt;
  bananapi_m5:/ # echo &amp;quot;1&amp;quot; &amp;gt; /sys/class/unifykeys/write                                                &lt;br /&gt;
  bananapi_m5:/ # reboot&lt;br /&gt;
&lt;br /&gt;
:2. Uart console command via sysfs&lt;br /&gt;
&lt;br /&gt;
  console:/ $ &lt;br /&gt;
  console:/ $ su&lt;br /&gt;
  console:/ # echo dtbo &amp;gt; /sys/class/unifykeys/name                              &lt;br /&gt;
  [  115.702781@0] unifykey: name_store() 1302, name dtbo, 4&lt;br /&gt;
  [  115.702856@0] unifykey: name_store() 1311&lt;br /&gt;
  console:/ #&lt;br /&gt;
  console:/ # echo &amp;quot;1&amp;quot; &amp;gt; /sys/class/unifykeys/write                              &lt;br /&gt;
  [  129.262659@0] unifykey: write_store()  is a string&lt;br /&gt;
  [  129.262733@0] unifykey: dtbo, 1, 1&lt;br /&gt;
  [  129.265312@0] unifykey: amlkey_write 393&lt;br /&gt;
  [  129.292347@1] emmc_key_write:149, write ok&lt;br /&gt;
  console:/ # &lt;br /&gt;
  console:/ # reboot&lt;br /&gt;
&lt;br /&gt;
:3. Settings App(To-Do)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Check the bootup uart debug message and confirm which dtbo is loaded actually, here &amp;quot;1&amp;quot; means set idx=1 to apply wifi_bt_rtl8822cs dtbo.&lt;br /&gt;
&lt;br /&gt;
  load dtb from 0x1000000 ......&lt;br /&gt;
        Amlogic multi-dtb tool&lt;br /&gt;
        Single dtb detected&lt;br /&gt;
  find 2 dtbos&lt;br /&gt;
  dtbos to be applied: 1&lt;br /&gt;
  Apply dtbo 1&lt;br /&gt;
&lt;br /&gt;
:Unifykeys is stored in a specific emmc part, &amp;quot;Normal erase&amp;quot; selected in USB_Burning_Tool will not erase this data for next update, you must select &amp;quot;Erase all&amp;quot; if you want the default dtbo idx to be applied after image download.&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_android_erase_all.png]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:'''Build Android image with a specific DTBO default'''.&lt;br /&gt;
&lt;br /&gt;
:1. Default build-in overlays are defined in device/amlogic/bananapi_m5/Kernel.mk, you can add a new overlay dtbo here.&lt;br /&gt;
  DTBO_DEVICETREE := android_p_overlay wifi_bt_rtl8822cs i2c2 i2c3 sdio uart1 uart1_cts_rts uart2 hifi_pcm5122&lt;br /&gt;
&lt;br /&gt;
:2. Default apply DTBO idx is defined in device/amlogic/bananapi_m5/BoardConfig.mk, you can change the idx value to set which overlay dtbo will be applied default.&lt;br /&gt;
  BOARD_KERNEL_CMDLINE += androidboot.dtbo_idx=0&lt;br /&gt;
&lt;br /&gt;
:3. DTS files are in common/arch/arm/boot/dts/amlogic/overlay/bananapi_m5/&lt;br /&gt;
&lt;br /&gt;
:More info about android device tree overlays, please refer to [https://source.android.com/devices/architecture/dto google android offical site]&lt;br /&gt;
&lt;br /&gt;
===Install OpenGapps===&lt;br /&gt;
&lt;br /&gt;
:1. Download install package from [https://opengapps.org/ OpenGapps], Android release image is arm/android 9.0 variant.&lt;br /&gt;
&lt;br /&gt;
[[File:opengapps.PNG]]&lt;br /&gt;
&lt;br /&gt;
:2. Download [https://download.banana-pi.dev/d/ca025d76afd448aabc63/files/?p=%2FTools%2Fapps%2Fdevice_id_v1.3.2.apk device_id.apk].&lt;br /&gt;
:3. Copy the OpenGapp package to a udisk or sdcard root directory.&lt;br /&gt;
:4. Create a txt file named '''factory_update_param.aml''' in udisk or sdcard root directory with the following android recovery parameter content, and replace the file name with the actual downloaded package.  &lt;br /&gt;
::udisk:&lt;br /&gt;
  --wipe_cache&lt;br /&gt;
  --update_package=/udisk/open_gapps-arm-9.0-pico-20210327.zip&lt;br /&gt;
&lt;br /&gt;
::sdcard:&lt;br /&gt;
  --wipe_cache&lt;br /&gt;
  --update_package=/sdcard/open_gapps-arm-9.0-pico-20210327.zip&lt;br /&gt;
&lt;br /&gt;
:5. Plugin the udisk or sdcard to the board and poweron.&lt;br /&gt;
&lt;br /&gt;
:6.OpenGapps install and certify.&lt;br /&gt;
:&amp;lt;youtube&amp;gt;fXOKmWfpqF8&amp;lt;/youtube&amp;gt;&lt;br /&gt;
:watch this video on [https://www.bilibili.com/video/BV13y4y1s77i/ bilibili]&lt;br /&gt;
&lt;br /&gt;
===IR Remote Control Custom===&lt;br /&gt;
:Before starting this work, some android basic concepts and knowledge need to be known.&lt;br /&gt;
&lt;br /&gt;
:*Linux kernel input key event.&lt;br /&gt;
:*Android keycode.&lt;br /&gt;
:*Linux keycode map to android keycode.&lt;br /&gt;
:*Android Adb function work on your PC&lt;br /&gt;
&lt;br /&gt;
:1. pull the remote files from device&lt;br /&gt;
  # adb pull /vendor/etc/remote.cfg&lt;br /&gt;
  # adb pull /vendor/etc/remote.tab &lt;br /&gt;
&lt;br /&gt;
:2. modify remote.cfg to enable remote debug message&lt;br /&gt;
:[[File:remotecfg.png]]&lt;br /&gt;
&lt;br /&gt;
:push remote.cfg back&lt;br /&gt;
&lt;br /&gt;
  # adb root&lt;br /&gt;
  # adb remount&lt;br /&gt;
  # adb push remote.cfg /vendor/etc/&lt;br /&gt;
  # adb shell&lt;br /&gt;
  m5_mbox:/ # chmod 644 /vendor/etc/remote.cfg&lt;br /&gt;
  m5_mbox:/ # remotecfg -c /vendor/etc/remote.cfg -d                                                  &lt;br /&gt;
  cfgdir = /vendor/etc/remote.cfg&lt;br /&gt;
  work_mode = 1&lt;br /&gt;
  repeat_enable = 0&lt;br /&gt;
  debug_enable = 1&lt;br /&gt;
  max_frame_time = 1000&lt;br /&gt;
&lt;br /&gt;
:3. Get the remote keycode&lt;br /&gt;
:Press your remote key one by one and then print the dmesg to get the remote custom_code and each remote key code.&lt;br /&gt;
&lt;br /&gt;
  # adb shell dmesg | grep framecode=&lt;br /&gt;
:[[File:keycode.png]]&lt;br /&gt;
&lt;br /&gt;
:custom_code = 0xfe01&lt;br /&gt;
:keycode = 0x00, 0x01, 0x09, 0x02, 0x0a, 0x05, 0x04 0x06, 0x03, 0x0b, 0x40, 0x48, 0x44&lt;br /&gt;
&lt;br /&gt;
:4. Modify remote.tab to map the scancode to android keycode&lt;br /&gt;
:[[File:remotetab.png]]&lt;br /&gt;
&lt;br /&gt;
:push remote.tab and test each key whether works&lt;br /&gt;
&lt;br /&gt;
  # adb root&lt;br /&gt;
  # adb remount&lt;br /&gt;
  # adb push remote.tab1 /vendor/etc/&lt;br /&gt;
  # adb shell&lt;br /&gt;
  m5_mbox:/ # chmod 644 /vendor/etc/remote.tab&lt;br /&gt;
  m5_mbox:/ # remotecfg -c /vendor/etc/remote.cfg -t /vendor/etc/remote.tab -d                                                                                                                               &lt;br /&gt;
  cfgdir = /vendor/etc/remote.cfg&lt;br /&gt;
  work_mode = 1&lt;br /&gt;
  repeat_enable = 0&lt;br /&gt;
  debug_enable = 1&lt;br /&gt;
  max_frame_time = 1000&lt;br /&gt;
  tabdir = /vendor/etc/remote.tab&lt;br /&gt;
  custom_name = nec-test&lt;br /&gt;
  fn_key_scancode = 0xffff&lt;br /&gt;
  cursor_left_scancode = 0xffff&lt;br /&gt;
  cursor_right_scancode = 0xffff&lt;br /&gt;
  cursor_up_scancode = 0xffff&lt;br /&gt;
  cursor_down_scancode = 0xffff&lt;br /&gt;
  cursor_ok_scancode = 0xffff&lt;br /&gt;
  custom_code = 0xfe01&lt;br /&gt;
  release_delay = 80&lt;br /&gt;
  map_size = 13&lt;br /&gt;
  key[0] = 0x74&lt;br /&gt;
  key[1] = 0x1008b&lt;br /&gt;
  key[2] = 0x90066&lt;br /&gt;
  key[3] = 0x20069&lt;br /&gt;
  key[4] = 0xa006a&lt;br /&gt;
  key[5] = 0x50067&lt;br /&gt;
  key[6] = 0x4006c&lt;br /&gt;
  key[7] = 0x6001c&lt;br /&gt;
  key[8] = 0x30072&lt;br /&gt;
  key[9] = 0xb0073&lt;br /&gt;
  key[10] = 0x40009e&lt;br /&gt;
  key[11] = 0x4800a4&lt;br /&gt;
  key[12] = 0x440071&lt;br /&gt;
&lt;br /&gt;
:5. Reboot the board&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
===Prepare===&lt;br /&gt;
:1. Linux image support SDcard or EMMC bootup, but you should read the [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Boot_Sequence boot sequence] at first.&lt;br /&gt;
&lt;br /&gt;
:2. It’s recommended to use A1 rated cards, 8GB at least.&lt;br /&gt;
&lt;br /&gt;
:3. M5 and M2pro are compatiable with same Linux image.&lt;br /&gt;
&lt;br /&gt;
:4. Make sure bootable EMMC is formatted if you want bootup from SDcard, more info refer to [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Erase_EMMC_for_SDcard_Bootup Erase EMMC for SDcard Bootup]&lt;br /&gt;
&lt;br /&gt;
:5. Make sure SDcard is formatted without Linux image flashed if you want bootup from EMMC and use Sdcard as storage.&lt;br /&gt;
&lt;br /&gt;
:6. Install bpi-tools on your Linux PC(if [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Install_Image_to_SDcard flash image] with other tools, ignore this step). If you can't access this URL or any other install problem, please go to [https://github.com/bpi-sinovoip/bpi-tools bpi-tools] source repo, download and install this tools manually.&lt;br /&gt;
  $ apt-get install pv&lt;br /&gt;
  $ curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
&lt;br /&gt;
:7. Download latest [http://wiki.banana-pi.org/Banana_Pi_BPI-M5#Linux Linux Image], and confirm that the md5 checksum is correct.&lt;br /&gt;
&lt;br /&gt;
:8. Default login: pi/bananapi or root/bananapi&lt;br /&gt;
&lt;br /&gt;
:9. The wiki guide is only for [https://wiki.banana-pi.org/Banana_Pi_BPI-M5#Linux bananapi 4.9 bsp ubuntu/debian images].&lt;br /&gt;
&lt;br /&gt;
===Install Image to SDcard===&lt;br /&gt;
:1. Install Image with Balena Etcher on Windows, Linux and MacOS.&lt;br /&gt;
:[https://balena.io/etcher Balena Etcher] is an opensource GUI flash tool by Balena, Flash OS images to SDcard or USB drive&lt;br /&gt;
&lt;br /&gt;
:[[File:m2s_linux_flash.png]]&lt;br /&gt;
&lt;br /&gt;
:2. Install Image with Balena Cli on Windows, Linux and MacOS.&lt;br /&gt;
:[https://github.com/balena-io/balena-cli Balena CLI] is a Command Line Interface for balenaCloud or openBalena. It can be used to flash linux image. Download the installer or standalone package from [https://github.com/balena-io/balena-cli/releases balena-io] and [https://github.com/balena-io/balena-cli/blob/master/INSTALL.md install] it correctly to your PC, then you can use the &amp;quot;[https://docs.balena.io/reference/balena-cli/#local-flash-image local flash]&amp;quot; command option of balena to flash a linux image to sdcard or usb drive.&lt;br /&gt;
&lt;br /&gt;
  $ sudo balena local flash path/to/xxx-bpi-m5-xxx.img.zip&lt;br /&gt;
  $ sudo balena local flash path/to/xxx-bpi-m5-xxx.img.zip --drive /dev/disk2&lt;br /&gt;
  $ sudo balena local flash path/to/xxx-bpi-m5-xxx.img.zip --drive /dev/disk2 --yes&lt;br /&gt;
&lt;br /&gt;
:3. Install Image with dd command on Linux, umount SDcard device /dev/sdX partition if mounted automatically. Actually bpi-copy is the same as this dd command.&lt;br /&gt;
  $ sudo apt-get install pv unzip&lt;br /&gt;
  $ sudo unzip -p xxx-bpi-m5-xxx.img.zip | pv | dd of=/dev/sdX bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
:4. Install image with bpi-tools on Linux, plug SDcard to Linux PC and run&lt;br /&gt;
  $ sudo apt-get install pv unzip&lt;br /&gt;
  $ sudo bpi-copy xxx-bpi-m5-xxx.img.zip /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Install Image to EMMC===&lt;br /&gt;
:1. Prepare a [https://wiki.banana-pi.org/Getting_Started_with_BPI-M5/M2Pro#Install_Image_to_SDcard SDcard with Linux image] flashed and bootup board with this SDcard.&lt;br /&gt;
&lt;br /&gt;
:2. Copy Linux image to udisk, plug the udisk to board and mount it.&lt;br /&gt;
&lt;br /&gt;
:3. There are two ways to install the linux image to board.&lt;br /&gt;
  3.1 Install with dd command, umount mmcblk0p1 and mmcblk0p2 partition if mounted automatically. Actually bpi-copy is the same as this dd command.&lt;br /&gt;
  $ sudo apt-get install pv unzip&lt;br /&gt;
  $ sudo unzip -p xxx-bpi-m5-xxx.img.zip | pv | dd of=/dev/mmcblk0 bs=10M status=noxfer&lt;br /&gt;
&lt;br /&gt;
  3.2 Install the linux image in udisk with bpi-tools command&lt;br /&gt;
  $ sudo apt-get install pv unzip&lt;br /&gt;
  $ sudo bpi-copy xxx-bpi-m5-xxx.img.zip /dev/mmcblk0&lt;br /&gt;
&lt;br /&gt;
:4. After download complete, power off safely and eject the SDcard.&lt;br /&gt;
&lt;br /&gt;
===Build Linux Source Code===&lt;br /&gt;
:1. Get the Linux bsp source code&lt;br /&gt;
  $  git clone https://github.com/BPI-SINOVOIP/BPI-M5-bsp&lt;br /&gt;
:2. Build the bsp source code&lt;br /&gt;
&lt;br /&gt;
::Please read the source code [https://github.com/BPI-SINOVOIP/BPI-M5-bsp/blob/master/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
:3. If you want build uboot and kernel separately, please download the [https://github.com/Dangku/amlogic-u-boot/tree/odroidg12-v2015.01-c4-m5 u-boot] the [https://github.com/Dangku/amlogic-linux/tree/odroidg12-4.9.y-c4-m5 kernel] only, get the toolchains, boot script and other configuration files from [https://github.com/BPI-SINOVOIP/BPI-M5-bsp BPI-M5-bsp]&lt;br /&gt;
&lt;br /&gt;
===DTB overlay===&lt;br /&gt;
:1. DTB overlay is used for 40pin gpios multi-function configuration and install in vfat boot partition, you can check the mount point with mount command.&lt;br /&gt;
  root@bananapi:~# ls /boot/overlays/&lt;br /&gt;
  custom_ir.dtbo      pwm_b-backlight.dtbo  spi0.dtbo&lt;br /&gt;
  ds3231.dtbo         pwm_c-beeper.dtbo     uart1_cts_rts.dtbo&lt;br /&gt;
  hifi_pcm5102a.dtbo  pwm_cd-c.dtbo         uart1.dtbo&lt;br /&gt;
  hifi_pcm5122.dtbo   pwm_cd.dtbo           uart2.dtbo&lt;br /&gt;
  i2c0.dtbo           pwm_ef.dtbo           waveshare_tft24_lcd.dtbo&lt;br /&gt;
  i2c1.dtbo           pwm_ef-f.dtbo         waveshare_tft35c_lcd.dtbo&lt;br /&gt;
  pwm_ab.dtbo         sdio.dtbo             waveshare_tft35c_rtp.dtbo&lt;br /&gt;
&lt;br /&gt;
:2. Update the overlays env in vfat /boot/boot.ini to enable what you want. Default i2c0, spi0 and uart1 enabled.&lt;br /&gt;
&lt;br /&gt;
  # Overlays to load&lt;br /&gt;
  # Example combinations:&lt;br /&gt;
  #   spi0 i2c0 i2c1 uart0&lt;br /&gt;
  #   hktft32&lt;br /&gt;
  #   hktft35&lt;br /&gt;
  setenv overlays &amp;quot;i2c0 spi0 uart1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:3. Must be restart the board for overlay dtb loaded.&lt;br /&gt;
&lt;br /&gt;
===WiringPi===&lt;br /&gt;
: Note: This WiringPi only support set 40pin gpio to output, input or software pwm, for io functions as i2c, spi, pwm..., you must enable dtb overlay in boot.ini&lt;br /&gt;
&lt;br /&gt;
:1. Build and install wiringPi, for debian, you must [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Enable_sudo_for_Debian install sudo] before build&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install build-essential git&lt;br /&gt;
  $ git clone https://github.com/BPI-SINOVOIP/amlogic-wiringPi&lt;br /&gt;
  $ cd amlogic-wiringPi&lt;br /&gt;
  $ chmod a+x build&lt;br /&gt;
  $ sudo ./build&lt;br /&gt;
&lt;br /&gt;
:2. Run '''gpio readall''' to show all 40pins status.&lt;br /&gt;
[[File:m5_wiringpi.png]]&lt;br /&gt;
&lt;br /&gt;
:3. BPI GPIO Extend board and examples in [https://github.com/BPI-SINOVOIP/amlogic-wiringPi/tree/master/examples amlogic-wiringPi/examples]&lt;br /&gt;
&lt;br /&gt;
:blinkall, blink all pin header gpios, no extend board.&lt;br /&gt;
:lcd-bpi, [http://wiki.banana-pi.org/BPI_LCD_1602_display_module BPI LCD 1602 display module] example.&lt;br /&gt;
:52pi-bpi, [http://wiki.banana-pi.org/BPI_OLED_Display_Module BPI OLED Display Module] example.&lt;br /&gt;
:matrixled-bpi, [http://wiki.banana-pi.org/BPI_RGB_LED_Matrix_Expansion_Module BPI RGB LED Matrix Expansion Module] example.&lt;br /&gt;
:berryclip-bpi, [http://wiki.banana-pi.org/BPI_BerryClip_Module BPI BerryClip Module]&lt;br /&gt;
&lt;br /&gt;
===RPi.GPIO===&lt;br /&gt;
&lt;br /&gt;
: Build and install, for debian, you must [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Enable_sudo_for_Debian install sudo] before build&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install build-essential python3 python3-pip python3-dev python3-setuptools git&lt;br /&gt;
  $ git clone https://github.com/Dangku/RPi.GPIO-Amlogic.git&lt;br /&gt;
  $ cd RPi.GPIO-Amlogic&lt;br /&gt;
  $ sudo python3 setup.py clean --all&lt;br /&gt;
  $ sudo python3 setup.py install&lt;br /&gt;
&lt;br /&gt;
: Create and install wheel package&lt;br /&gt;
  $ sudo python3 setup.py bdist_wheel&lt;br /&gt;
  $ sudo pip3 install dist/RPi.GPIO-XXX.whl&lt;br /&gt;
&lt;br /&gt;
: Install from git source directly without development&lt;br /&gt;
  $ sudo pip3 install git+https://github.com/Dangku/RPi.GPIO-Amlogic.git&lt;br /&gt;
&lt;br /&gt;
: If the package is already installed, it should be uninstalled before installing the new one, or installing the new one with --force-reinstall option.&lt;br /&gt;
&lt;br /&gt;
===WiringPi2-Python===&lt;br /&gt;
&lt;br /&gt;
: Build and install, for debian, you must [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Enable_sudo_for_Debian install sudo] before build&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install build-essential python3 python3-dev python3-setuptools swig git&lt;br /&gt;
  $ git clone --recursive  https://github.com/Dangku/WiringPi2-Python-Amlogic.git&lt;br /&gt;
  $ cd WiringPi2-Python-Amlogic&lt;br /&gt;
  $ sudo python3 setup.py install&lt;br /&gt;
&lt;br /&gt;
===Luma.Examples===&lt;br /&gt;
:[https://github.com/rm-hull/luma.examples luma.examples] use GPIO.BCM gpio mode default, so you should map 40pin header pins to bcm gpio number and connect the hardware correctly.&lt;br /&gt;
&lt;br /&gt;
:1. build and install RPi.GPIO&lt;br /&gt;
&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install build-essential python3 python3-dev python3-setuptools git&lt;br /&gt;
  $ git clone https://github.com/Dangku/RPi.GPIO-Amlogic.git&lt;br /&gt;
  $ cd RPi.GPIO-Amlogic&lt;br /&gt;
  $ sudo python3 setup.py clean --all&lt;br /&gt;
  $ sudo python3 setup.py install&lt;br /&gt;
&lt;br /&gt;
:you can change the bcmledpin variable in test/led.py to your hardware backlight gpio and run it to check RPi.GPIO works well.&lt;br /&gt;
&lt;br /&gt;
  $ sudo python3 test/led.py&lt;br /&gt;
&lt;br /&gt;
:hardware backlight will repeat on and off&lt;br /&gt;
&lt;br /&gt;
:2. luma.examples libs install&lt;br /&gt;
&lt;br /&gt;
  $ sudo usermod -a -G i2c,spi,gpio pi&lt;br /&gt;
&lt;br /&gt;
:if group does not exist, the following command will create it:&lt;br /&gt;
&lt;br /&gt;
  $ sudo groupadd --system xxx&lt;br /&gt;
&lt;br /&gt;
  $ sudo apt-get install python3-dev python3-pip libfreetype6-dev libjpeg-dev build-essential&lt;br /&gt;
  $ sudo apt-get install libsdl-dev libportmidi-dev libsdl-ttf2.0-dev libsdl-mixer1.2-dev libsdl-image1.2-dev&lt;br /&gt;
  $ git clone https://github.com/rm-hull/luma.examples.git&lt;br /&gt;
  $ cd luma.examples&lt;br /&gt;
&lt;br /&gt;
:install luma.core, luma.emulator, luma.lcd, luma.le-matrix, luma.oled pip libs, make sure this step without error or downloading interrupted, try again if get errors&lt;br /&gt;
  $ sudo -H pip install -e .&lt;br /&gt;
:or&lt;br /&gt;
  $ sudo -H pip3 install -e .&lt;br /&gt;
&lt;br /&gt;
:for debian buster(python 3.7) which does not include /usr/bin/pip in package python3-pip, and will get the following errors when install luma packages with pip3&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
  WARNING, No &amp;quot;Setup&amp;quot; File Exists, Running &amp;quot;buildconfig/config.py&amp;quot;&lt;br /&gt;
  Using UNIX configuration...&lt;br /&gt;
  &lt;br /&gt;
  /bin/sh: 1: sdl2-config: not found&lt;br /&gt;
  /bin/sh: 1: sdl2-config: not found&lt;br /&gt;
  /bin/sh: 1: sdl2-config: not found&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
:install sdl2 related packages to fix this issue, then install luma libs again with pip3&lt;br /&gt;
  $ sudo apt-get install libsdl2-dev libsdl2-ttf-dev libsdl2-mixer-dev libsdl2-image-dev&lt;br /&gt;
  $ sudo -H pip3 install -e .&lt;br /&gt;
&lt;br /&gt;
:check installed luma pip libs&lt;br /&gt;
  $ pip3 list | grep luma&lt;br /&gt;
    &lt;br /&gt;
    luma.core          2.4.0&lt;br /&gt;
    luma.emulator      1.4.0&lt;br /&gt;
    luma.lcd           2.10.0&lt;br /&gt;
    luma.led-matrix    1.7.0&lt;br /&gt;
    luma.oled          3.11.0&lt;br /&gt;
&lt;br /&gt;
:3. examples test&lt;br /&gt;
:Enable i2c or spi [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#DTB_overlay overlays] before running test examples&lt;br /&gt;
  $ cd examples&lt;br /&gt;
  $ sudo python3 bounce.py --config ../conf/ili9341.conf&lt;br /&gt;
&lt;br /&gt;
===HDMI LCD===&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''Bananapi M5/M2pro Tested HDMI LCD'''&lt;br /&gt;
|-&lt;br /&gt;
|panel || /boot/boot.ini&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/3.5inch-hdmi-lcd.htm Waveshare 3.5inch 480x320] || setenv display_autodetect &amp;quot;false&amp;quot;&lt;br /&gt;
setenv hdmimode &amp;quot;480x320p60hz&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/3.5inch-hdmi-lcd-e.htm Waveshare 3.5inch 640x480] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/4inch-hdmi-lcd-c.htm Waveshare 4inch 720x720]&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/5inch-hdmi-amoled.htm Waveshare 5inch 960x544] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/5inch-hdmi-lcd-h.htm Waveshare 5inch 800x480] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/5.5inch-1440x2560-lcd.htm Waveshare 5.5inch 1440x2560] || setenv display_autodetect &amp;quot;false&amp;quot;&lt;br /&gt;
setenv hdmimode &amp;quot;1440x2560p60hz&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/7inch-hdmi-lcd-b.htm Waveshare 7inch 800x480] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/7inch-hdmi-lcd-c.htm Waveshare 7inch 1024x600] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/7.9inch-HDMI-LCD.htm Waveshare 7.9inch 400x1280] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/8inch-1536x2048-LCD.htm Waveshare 8inch 1536x2048] || setenv display_autodetect &amp;quot;false&amp;quot;&lt;br /&gt;
setenv hdmimode &amp;quot;1536x2048p60hz&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/8.8inch-Side-Monitor.htm Waveshare 8.8inch 480x1920] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/9inch-2560x1600-Monitor.htm Waveshare 9inch 2560x1600] || setenv display_autodetect &amp;quot;false&amp;quot;&lt;br /&gt;
setenv hdmimode &amp;quot;2560x1600p60hz&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/10.1inch-HDMI-LCD-E.htm Waveshare 10.1inch 1024x600] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/10.1inch-hdmi-lcd-b-with-case.htm Waveshare 10.1inch 1280x800] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/11.9inch-HDMI-LCD.htm Waveshare 11.9inch 320x1480] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/12.3inch-hdmi-lcd.htm Waveshare 12.3inch 1920x720] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/13.3inch-HDMI-LCD-H.htm Waveshare 13.3inch 1920x1080] ||&lt;br /&gt;
|-&lt;br /&gt;
| [https://www.waveshare.com/15.6inch-hdmi-lcd-h-with-case.htm Waveshare 15.6inch 1920x1080] ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: backlight control&lt;br /&gt;
&lt;br /&gt;
  https://github.com/Dangku/Waveshare-USB-Brightness&lt;br /&gt;
&lt;br /&gt;
===Boot Linux from USB drive===&lt;br /&gt;
&lt;br /&gt;
:S905x3 is not support usb boot in soc rom, so the only way for booting linux from usb drive is create a bootable sdcard or emmc with bootloader flashed, then load boot and rootfs from usb drive. After bootup, everything will run from usb drive.&lt;br /&gt;
&lt;br /&gt;
:1. The simple way is [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Install_Image_to_SDcard flash the M5/M2Pro Linux image to sdcard or emmc] for bootable and also flash it to the usb drive for loading boot and rootfs.&lt;br /&gt;
:2. Bootup the M5/M2pro board with [https://wiki.banana-pi.org/Getting_Started_with_M5/M2Pro#Boot_Sequence sdcard or emmc], copy /boot/boot.ini to /boot/boot.ini.org so that bootloader load boot.ini fail and then try to load it from usb drive boot partition.&lt;br /&gt;
:3. Reboot the system, bootscript and rootfs will load from usb drive.&lt;br /&gt;
:[[File:m5_boot_from_usb.png]]&lt;br /&gt;
&lt;br /&gt;
:4. Test performance&lt;br /&gt;
:You can verify the performance of your usb drive on Pi Benchmarks using the following command:&lt;br /&gt;
  sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash&lt;br /&gt;
&lt;br /&gt;
:Test results for sd, emmc and usb drive&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Category || Test || Sdcard Test Result || Emmc Test Result || Usb Drive Test Result&lt;br /&gt;
|-&lt;br /&gt;
| HDParm || Disk Read || 67.91 MB/s || 156.64 MB/s || 253.40 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| HDParm || Cached Disk Read || 57.39 MB/s || 126.53 MB/s || 253.52 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| DD || Disk Write || 13.0 MB/s || 48.8 MB/s || 149 MB/s&lt;br /&gt;
|-&lt;br /&gt;
| FIO || 4k random read || 2456 IOPS (9826 KB/s) || 9701 IOPS (38806 KB/s) || 5474 IOPS (21897 KB/s)&lt;br /&gt;
|-&lt;br /&gt;
| FIO || 4k random write || 938 IOPS (3753 KB/s) || 12888 IOPS (51554 KB/s) || 6980 IOPS (27920 KB/s)&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k read || 10615 KB/s || 29568 KB/s || 23770 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k write || 4276 KB/s || 33585 KB/s || 18598 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k random read || 8661 KB/s || 29637 KB/s || 19982 KB/s&lt;br /&gt;
|-&lt;br /&gt;
| IOZone || 4k random write || 4795 KB/s || 38177 KB/s || 22134 KB/s&lt;br /&gt;
|-&lt;br /&gt;
|  ||  || Score: 1300 || Score: 7811 || Score: 5879&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Other Development==&lt;br /&gt;
&lt;br /&gt;
===Custom Linux Boot Logo===&lt;br /&gt;
:Linux uboot limit boot logo fb size to 1080p60hz/1920x1080 default, so oversize resolution will not be supported by default image, but you can modify uboot source code to support it.&lt;br /&gt;
&lt;br /&gt;
:1. Prepare a 24bit bmp file and named boot-logo.bmp&lt;br /&gt;
:2. Compress the bmp file to boot-logo.bmp.gz&lt;br /&gt;
  $ gzip boot-logo.bmp&lt;br /&gt;
:3. copy the target file to BPI-BOOT partition of linux image&lt;br /&gt;
  $ cp boot-logo.bmp.gz /media/xxx/BPI-BOOT/&lt;br /&gt;
&lt;br /&gt;
===Custom Android Boot Logo===&lt;br /&gt;
:Android bootloader limit boot logo fb display size is 1080p60hz/1920x1080 default, and android kernel dtb partition table limit boot logo partition size to 16MB default .&lt;br /&gt;
&lt;br /&gt;
:1. Prepare a 24bit bmp file and named boot-logo.bmp&lt;br /&gt;
&lt;br /&gt;
:2. Compress the bmp file to boot-logo.bmp.gz&lt;br /&gt;
  $ gzip boot-logo.bmp&lt;br /&gt;
&lt;br /&gt;
:3. Download [https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FTools%2Flogo_create_tools%2Fm5_android_bootlogo_tool.zip m5_android_bootlogo_tool.zip]&lt;br /&gt;
&lt;br /&gt;
:4. Extract this tool&lt;br /&gt;
  $ unzip m5_android_bootlogo_tool.zip&lt;br /&gt;
  $ cd m5_android_bootlogo_tool/&lt;br /&gt;
  $ cp -a logo_img_files logo               //logo_img_files is the origin bootlogo resource in android source and copy from &amp;lt;android-source-dir&amp;gt;/devices/amlogic/bananapi_m5/log_img_files&lt;br /&gt;
  $ ls -l logo/&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 525054 Sep 25 16:54 bootup.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 525054 Sep 25 16:54 bootup_X3.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku    184 May 19  2020 upgrade_bar.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_error.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_fail.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_logo.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_success.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku    184 May 19  2020 upgrade_unfocus.bmp&lt;br /&gt;
  -rwxr--r-- 1 dangku dangku 180072 May 19  2020 upgrade_upgrading.bmp&lt;br /&gt;
&lt;br /&gt;
:5. Copy the boot-logo.bmp.gz&lt;br /&gt;
  $ cp boot-logo.bmp.gz logo/bootup.bmp&lt;br /&gt;
  $ cp boot-logo.bmp.gz logo/bootup_X3.bmp&lt;br /&gt;
&lt;br /&gt;
:6. Create target logo.img with img pack tool, the binary and related libs of m5_android_bootlogo_tool are copy from &amp;lt;android-source-dir&amp;gt;/out/host/linux-x86&lt;br /&gt;
  $ ./logo_img_packer -r logo logo.img&lt;br /&gt;
&lt;br /&gt;
:7. Flash boot logo with fastboot&lt;br /&gt;
  $ adb root&lt;br /&gt;
  $ adb remount&lt;br /&gt;
  $ adb reboot fastboot&lt;br /&gt;
:Wait few seconds and check whether fastboot connected&lt;br /&gt;
  $ fastboot device&lt;br /&gt;
  1234567890      fastboot&lt;br /&gt;
  $ fastboot flashing unlock_critical&lt;br /&gt;
  $ fastboot flashing unlock&lt;br /&gt;
  $ fastboot flash logo logo.img&lt;br /&gt;
  $ fastboot reboot&lt;br /&gt;
&lt;br /&gt;
===Boot Sequence===&lt;br /&gt;
&lt;br /&gt;
:[[File:m5_linux_boot_squence.png]]&lt;br /&gt;
&lt;br /&gt;
:Check bootloader loaded from SDcard or EMMC at the beginning of the console debug messages&lt;br /&gt;
&lt;br /&gt;
:1. Rom load bootloader from SDcard (Linux log example)&lt;br /&gt;
  ...&lt;br /&gt;
  &lt;br /&gt;
  BL2 Built : 15:21:42, Mar 26 2020. g12a g486bc38 - gongwei.chen@droid11-sz&lt;br /&gt;
  &lt;br /&gt;
  Board ID = 1&lt;br /&gt;
  Set cpu clk to 24M&lt;br /&gt;
  Set clk81 to 24M&lt;br /&gt;
  Use GP1_pll as DSU clk.&lt;br /&gt;
  DSU clk: 1200 Mhz&lt;br /&gt;
  CPU clk: 1200 MHz&lt;br /&gt;
  Set clk81 to 166.6M&lt;br /&gt;
  board id: 1&lt;br /&gt;
  '''Load FIP HDR DDR from SD''', src: 0x00010200, des: 0xfffd0000, size: 0x00004000, part: 0&lt;br /&gt;
  fw parse done&lt;br /&gt;
  PIEI prepare done&lt;br /&gt;
  fastboot data verify&lt;br /&gt;
  result: 255&lt;br /&gt;
  Cfg max: 12, cur: 1. Board id: 255. Force loop cfg&lt;br /&gt;
  DDR4 probe&lt;br /&gt;
  &lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
:2. Rom load bootloader from EMMC(Android Log example)&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
  &lt;br /&gt;
  Board ID = 1&lt;br /&gt;
  Set cpu clk to 24M&lt;br /&gt;
  Set clk81 to 24M&lt;br /&gt;
  Use GP1_pll as DSU clk.&lt;br /&gt;
  DSU clk: 1200 Mhz&lt;br /&gt;
  CPU clk: 1200 MHz&lt;br /&gt;
  Set clk81 to 166.6M&lt;br /&gt;
  eMMC boot @ 0&lt;br /&gt;
  sw8 s&lt;br /&gt;
  board id: 1&lt;br /&gt;
  '''Load FIP HDR DDR from eMMC''', src: 0x00010200, des: 0xfffd0000, size: 0x00004000, part: 0&lt;br /&gt;
  fw parse done&lt;br /&gt;
  PIEI prepare done&lt;br /&gt;
  00000000&lt;br /&gt;
  emmc switch 1 ok&lt;br /&gt;
  ddr saved addr:00016000&lt;br /&gt;
  Load ddr parameter from eMMC, src: 0x02c00000, des: 0xfffd0000, size: 0x00001000, part: 0&lt;br /&gt;
  00000000&lt;br /&gt;
  &lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
===Erase EMMC for SDcard Bootup===&lt;br /&gt;
:There are four possible scenarios should be pay attention to, EMMC already flashed Android image, EMMC already flashed Linux image, boot process hangup in BL2 and EMMC empty.&lt;br /&gt;
&lt;br /&gt;
:1. Bootable EMMC with Android image flashed&lt;br /&gt;
&lt;br /&gt;
::a). Using usb burning tool, unplug the download usb cable while the download process at '''7% formatting'''&lt;br /&gt;
&lt;br /&gt;
::[[File:m5_android_format.png]]&lt;br /&gt;
&lt;br /&gt;
::b). Using Android Fastboot tool, make sure the adb/fastboot tools is work on your PC before doing this.&lt;br /&gt;
&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb root'''&lt;br /&gt;
    adbd is already running as root&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb remount'''&lt;br /&gt;
    remount succeeded&lt;br /&gt;
    root@dangku-desktop:/tmp# '''adb shell'''&lt;br /&gt;
    bananapi_m5:/ # '''reboot fastboot'''&lt;br /&gt;
::Wait a few seconds for board reboot to fastboot mode&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot devices'''&lt;br /&gt;
    1234567890	fastboot&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot flashing unlock_critical'''&lt;br /&gt;
    ...&lt;br /&gt;
    OKAY [  0.044s]&lt;br /&gt;
    finished. total time: 0.044s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot flashing unlock'''&lt;br /&gt;
    ...&lt;br /&gt;
    OKAY [  0.047s]&lt;br /&gt;
    finished. total time: 0.047s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader'''&lt;br /&gt;
    erasing 'bootloader'...&lt;br /&gt;
    OKAY [  0.059s]&lt;br /&gt;
    finished. total time: 0.059s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader-boot0'''&lt;br /&gt;
    erasing 'bootloader-boot0'...&lt;br /&gt;
    OKAY [  0.036s]&lt;br /&gt;
    finished. total time: 0.036s&lt;br /&gt;
    root@dangku-desktop:/tmp# '''fastboot erase bootloader-boot1'''&lt;br /&gt;
    erasing 'bootloader-boot1'...&lt;br /&gt;
    OKAY [  0.035s]&lt;br /&gt;
    finished. total time: 0.035s&lt;br /&gt;
&lt;br /&gt;
::c). Using uboot command, connect a debug console cable and press ESC while power on to enter uboot command line&lt;br /&gt;
&lt;br /&gt;
    bananapi_m5_v1#'''amlmmc erase 1'''&lt;br /&gt;
    emmckey_is_protected(): protect&lt;br /&gt;
    start = 0,end = 57343&lt;br /&gt;
    start = 221184,end = 30535679&lt;br /&gt;
    Erasing blocks 0 to 8192 @ boot0&lt;br /&gt;
    start = 0,end = 8191&lt;br /&gt;
    Erasing blocks 0 to 8192 @ boot1&lt;br /&gt;
    start = 0,end = 8191&lt;br /&gt;
    bananapi_m5_v1#'''reset'''&lt;br /&gt;
    resetting ...&lt;br /&gt;
    SM1:BL:511f6b:81ca2f;FEAT:A0F83180:20282000;POC:F;RCY:0;EMMC:0;READ:0;CHK:1F;READ:0;CHK:1F;READ:0;CHK;&lt;br /&gt;
&lt;br /&gt;
::These two ways actually erase the bootloader part of EMMC android, After bootup from SDcard Linux, You'd better [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Erase_Emmc_Android_by_dd_command format the whole EMMC by dd command].&lt;br /&gt;
&lt;br /&gt;
::d). The simplest way is insert the SDcard with Linux image flashed before power on, the Android bootloader will check boot.ini file whether exist in SDcard vfat partition, so that the SDcard Linux will bootup. After bootup, you can [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Erase_Emmc_Android_by_dd_command format the whole EMMC by dd command] and then flash the Linux image to EMMC.&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
    BPI: try boot from sdcard&lt;br /&gt;
    reading boot.ini&lt;br /&gt;
    5699 bytes read in 3 ms (1.8 MiB/s)&lt;br /&gt;
    ## Executing script at 01b00000&lt;br /&gt;
    ...&lt;br /&gt;
    reading Image.gz&lt;br /&gt;
    9143358 bytes read in 510 ms (17.1 MiB/s)&lt;br /&gt;
    reading meson64_bananapi_m5.dtb&lt;br /&gt;
    70850 bytes read in 8 ms (8.4 MiB/s)&lt;br /&gt;
    reading uInitrd&lt;br /&gt;
    11704481 bytes read in 655 ms (17 MiB/s)&lt;br /&gt;
    reading overlays/i2c0.dtbo&lt;br /&gt;
    223 bytes read in 6 ms (36.1 KiB/s)&lt;br /&gt;
    reading overlays/spi0.dtbo&lt;br /&gt;
    516 bytes read in 6 ms (84 KiB/s)&lt;br /&gt;
    reading overlays/uart1.dtbo&lt;br /&gt;
    225 bytes read in 5 ms (43.9 KiB/s)&lt;br /&gt;
&lt;br /&gt;
:2. Bootable EMMC with Linux image flashed&lt;br /&gt;
&lt;br /&gt;
::a). Using uboot command, connect a debug console cable and press ESC while power on to enter uboot command line&lt;br /&gt;
&lt;br /&gt;
    bananapi_m5# mmc erase 0 1000&lt;br /&gt;
&lt;br /&gt;
::b). Linux u-boot also check boot.ini file whether exist in SDcard vfat partition so that the SDcard Linux will bootup. After bootup, you can format the whole EMMC by dd command or flash the Linux image directly to EMMC.&lt;br /&gt;
&lt;br /&gt;
:3. A extreme situation is bootloader or uboot corrupted, Rom load it from EMMC but hangup in u-boot or BL2, for example the boot process will hangup in BL2 of EMMC if dram init failed,  The only way is format the EMMC with usb burning tool, or download the Android image completely and then try other ways to erase EMMC or flash Linux image to EMMC.&lt;br /&gt;
&lt;br /&gt;
:4. Rom will try to load bootloader from SDcard directly if EMMC is empty.&lt;br /&gt;
&lt;br /&gt;
===Erase Emmc Android by dd command===&lt;br /&gt;
:If the board is flashed android before, the whole emmc must be erased by these commands if you want bootup it with SDcard Linux image.&lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0boot0 bs=1M status=noxfer &lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0boot1 bs=1M status=noxfer&lt;br /&gt;
  $ sudo dd if=/dev/zero of=/dev/mmcblk0 bs=1M status=noxfer &lt;br /&gt;
  $ sync&lt;br /&gt;
&lt;br /&gt;
===Wifi/BT support===&lt;br /&gt;
&lt;br /&gt;
:1. Android test and support.&lt;br /&gt;
  rtl8723bu wifi/bt(usb)&lt;br /&gt;
  rtl8188eu wifi(usb)&lt;br /&gt;
  [http://forum.banana-pi.org/t/banana-pi-wifi-bt-4-2-expansion-board-standard-usb-interface/12162 rtl8821cu wifi/bt(usb)]&lt;br /&gt;
  [http://forum.banana-pi.org/t/bpi-m5-wifi-bt-board-sdio-interface-802-11-a-b-g-n-ac-2t2r-wifi-and-bluectooch-5-0/11846 rtl8822cs wifi/bt(sdio/uart)]&lt;br /&gt;
  rtl8814au wifi(usb), please get the [https://github.com/aircrack-ng/rtl8814au aircrack-ng] driver and install.&lt;br /&gt;
&lt;br /&gt;
:'''How to enable Android Wifi/BT'''&lt;br /&gt;
&lt;br /&gt;
:USB type: Plug-in the usb dongle to usb host port and reboot the system, After bootup, you can enable or disable wifi and bluetooth in Settings app.&lt;br /&gt;
:SDIO/UART type: Connect the hardware module to 40pin header correctly and [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5/M2Pro#Android_DTB_overlay configure the Android DTB overlay] to enable it.&lt;br /&gt;
&lt;br /&gt;
:'''Note''': Android is not support that ethernet and wifi are both connected at the same time, Ethernet have a higher prioprity than wifi, it means wifi can't connect network if ethernet already connected, and wifi will drop connection if ethernet cable plugin.&lt;br /&gt;
&lt;br /&gt;
:2. Linux test and support.&lt;br /&gt;
  rtl8188eu wifi(usb)&lt;br /&gt;
  rtl8192eu wifi(usb)&lt;br /&gt;
  rtl8723bu wifi/bt(usb)&lt;br /&gt;
  rtl8811au wifi(usb)&lt;br /&gt;
  rtl8812au wifi(usb)&lt;br /&gt;
  rtl8812bu wifi(usb)&lt;br /&gt;
  [http://forum.banana-pi.org/t/banana-pi-wifi-bt-4-2-expansion-board-standard-usb-interface/12162 rtl8821cu wifi/bt(usb)]&lt;br /&gt;
  [http://forum.banana-pi.org/t/bpi-m5-wifi-bt-board-sdio-interface-802-11-a-b-g-n-ac-2t2r-wifi-and-bluectooch-5-0/11846 rtl8822cs wifi/bt(sdio/uart)]&lt;br /&gt;
&lt;br /&gt;
:'''How to enable Linux Wifi'''&lt;br /&gt;
&lt;br /&gt;
:Wifi module drivers are already prebuild in the release images.&lt;br /&gt;
&lt;br /&gt;
:USB type: Plug-in the usb dongle to usb host port and driver will be loaded automatically.&lt;br /&gt;
:SDIO/UART type:&lt;br /&gt;
::1). Connect the hardware module to 40pin header correctly.&lt;br /&gt;
::2). Configure the [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#DTB_overlay dtb overlay]&lt;br /&gt;
   # Overlays to load&lt;br /&gt;
   # Example combinations:&lt;br /&gt;
   #   spi0 i2c0 i2c1 uart0&lt;br /&gt;
   #   hktft32&lt;br /&gt;
   #   hktft35&lt;br /&gt;
   setenv overlays &amp;quot;wifi_bt_rtl8822cs&amp;quot;&lt;br /&gt;
::3). Add the wifi module name to /etc/modules for loaded automatically next boot.&lt;br /&gt;
  # This file contains the names of kernel modules that should be loaded&lt;br /&gt;
  # at boot time, one per line. Lines beginning with &amp;quot;#&amp;quot; are ignored.&lt;br /&gt;
  88x2cs&lt;br /&gt;
&lt;br /&gt;
:'''How to enable Linux Bluetooth'''&lt;br /&gt;
&lt;br /&gt;
::1). Please download [https://github.com/Dangku/m5-rtk-linux-bt-driver rtk-linux-bt-driver] source code, build and install usb or uart rtk linux bluetooth drivers/firmwares to your image.&lt;br /&gt;
::2). For USB type, plug-in the usb dongle to usb host port and driver will be loaded automatically.&lt;br /&gt;
::3). For UART type, Configure the dtb overlay as the same as wifi before install the bluetooth drivers/firmwares. hci_uart driver will be loaded when rtk-hciuart.service start.&lt;br /&gt;
&lt;br /&gt;
===Linux Server Image Network Configuration===&lt;br /&gt;
&lt;br /&gt;
:[https://netplan.io Netplan]&lt;br /&gt;
&lt;br /&gt;
:'''Linux Wifi STA mode'''&lt;br /&gt;
&lt;br /&gt;
:A sample wifi sta mode netplan configuration file, 01-wlan0-sta.yaml&lt;br /&gt;
 network:&lt;br /&gt;
   version: 2&lt;br /&gt;
   renderer: networkd&lt;br /&gt;
   wifis:&lt;br /&gt;
     wlan0:&lt;br /&gt;
       dhcp4: true&lt;br /&gt;
       access-points:&lt;br /&gt;
         &amp;quot;bananapi&amp;quot;:&lt;br /&gt;
            password: &amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:'''Linux Wifi AP mode'''&lt;br /&gt;
&lt;br /&gt;
:1. Prepare the setup the [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Wifi.2FBT_support wifi adater] correctly.&lt;br /&gt;
&lt;br /&gt;
:2. Get the wifi adapter Band, Frequencies, Channel, HT Capability, VHT Capability or other properties&lt;br /&gt;
 $ iw list&lt;br /&gt;
&lt;br /&gt;
:3. Manage wifi access point mode with [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Linux_Server_Image_Network_Configuration Netplan] and Network-Manager.&lt;br /&gt;
&lt;br /&gt;
:Install NetworkManager because ap is only supported with NetworkManager renderer&lt;br /&gt;
 $ sudo apt install network-manager&lt;br /&gt;
&lt;br /&gt;
:A sample 2.4G wifi ap mode netplan configuration file, 01-wlan0-ap-2.4g.yaml&lt;br /&gt;
 network:&lt;br /&gt;
 version: 2&lt;br /&gt;
 renderer: NetworkManager&lt;br /&gt;
 wifis:&lt;br /&gt;
   wlan0:&lt;br /&gt;
     dhcp4: no&lt;br /&gt;
     access-points:&lt;br /&gt;
       &amp;quot;bananapi&amp;quot;:&lt;br /&gt;
          mode: ap&lt;br /&gt;
          band: 2.4GHz&lt;br /&gt;
          channel: 6&lt;br /&gt;
          auth:&lt;br /&gt;
            key-management: psk&lt;br /&gt;
            password: &amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:A sample 5G wifi ap mode netplan configuration file, 01-wlan0-ap-5g.yaml&lt;br /&gt;
 network:&lt;br /&gt;
 version: 2&lt;br /&gt;
 renderer: NetworkManager&lt;br /&gt;
 wifis:&lt;br /&gt;
   wlan0:&lt;br /&gt;
     dhcp4: no&lt;br /&gt;
     access-points:&lt;br /&gt;
       &amp;quot;bananapi&amp;quot;:&lt;br /&gt;
          mode: ap&lt;br /&gt;
          band: 5GHz&lt;br /&gt;
          channel: 36&lt;br /&gt;
          auth:&lt;br /&gt;
            key-management: psk&lt;br /&gt;
            password: &amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:4. Manage wifi access point mode with [http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Linux_Server_Image_Network_Configuration Netplan] and Hostapd.&lt;br /&gt;
&lt;br /&gt;
:1). Create a netplan configuration file, 01-wlan0-ap-hostapd.yaml&lt;br /&gt;
 network:&lt;br /&gt;
 version: 2&lt;br /&gt;
 renderer: networkd&lt;br /&gt;
 ethernets:&lt;br /&gt;
   wlan0:&lt;br /&gt;
     dhcp4: no&lt;br /&gt;
     addresses:&lt;br /&gt;
       - 192.168.11.1/24&lt;br /&gt;
&lt;br /&gt;
:2). Install hostapd&lt;br /&gt;
 $ sudo apt install hostapd&lt;br /&gt;
&lt;br /&gt;
:Create hostapd configuration file /etc/hostapd/hostapd.conf, for example&lt;br /&gt;
 interface=wlan0&lt;br /&gt;
 ssid=bananapi&lt;br /&gt;
 &lt;br /&gt;
 driver=nl80211&lt;br /&gt;
 &lt;br /&gt;
 auth_algs=1&lt;br /&gt;
 wpa=2&lt;br /&gt;
 wpa_passphrase=123456789&lt;br /&gt;
 wpa_key_mgmt=WPA-PSK&lt;br /&gt;
 rsn_pairwise=CCMP&lt;br /&gt;
 &lt;br /&gt;
 #bridge=br0&lt;br /&gt;
 beacon_int=500&lt;br /&gt;
 #SSID not hidden&lt;br /&gt;
 ignore_broadcast_ssid=0&lt;br /&gt;
 &lt;br /&gt;
 hw_mode=a&lt;br /&gt;
 channel=36&lt;br /&gt;
 max_num_sta=8&lt;br /&gt;
 &lt;br /&gt;
 ### IEEE 802.11n&lt;br /&gt;
 ieee80211n=1&lt;br /&gt;
 #require_vht=0&lt;br /&gt;
 ht_capab=[HT20][HT40+][SHORT-GI-20][SHORT-GI-40][SHORT-GI-80][DSSS_CCK-40]&lt;br /&gt;
 &lt;br /&gt;
 ### IEEE 802.11ac&lt;br /&gt;
 ieee80211ac=1&lt;br /&gt;
 #require_vht=0&lt;br /&gt;
 #vht_capab=[MAX-MPDU-3895][SHORT-GI-80][SU-BEAMFORMEE]&lt;br /&gt;
 #vht_oper_chwidth=1&lt;br /&gt;
 #vht_oper_centr_freq_seg0_idx=42&lt;br /&gt;
 &lt;br /&gt;
 ### WMM&lt;br /&gt;
 wmm_enabled=1&lt;br /&gt;
&lt;br /&gt;
:3). To support 80MHz channel width you need load driver with '''rtw_vht_enable=2''' option, Or you can create /etc/modprobe.d/8822cs.conf with content&lt;br /&gt;
 options 88x2cs rtw_vht_enable=2&lt;br /&gt;
&lt;br /&gt;
:4). Install and configure dhcp server service, use isc-dhcp-server for example&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt install isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
:Configure dhcp server interface in /etc/default/isc-dhcp-server&lt;br /&gt;
 # On what interfaces should the DHCP server (dhcpd) serve DHCP requests?&lt;br /&gt;
 #       Separate multiple interfaces with spaces, e.g. &amp;quot;eth0 eth1&amp;quot;.&lt;br /&gt;
 INTERFACESv4=&amp;quot;wlan0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:Configure dhcp subnet and dns in /etc/dhcp/dhcpd.conf&lt;br /&gt;
 ...&lt;br /&gt;
 option domain-name &amp;quot;example.org&amp;quot;;&lt;br /&gt;
 option domain-name-servers 8.8.8.8, 114.114.114.114;&lt;br /&gt;
 ...&lt;br /&gt;
 # No service will be given on this subnet, but declaring it helps the &lt;br /&gt;
 # DHCP server to understand the network topology.&lt;br /&gt;
 subnet 192.168.11.0 netmask 255.255.255.0 {&lt;br /&gt;
   range dynamic-bootp 192.168.11.1 192.168.11.100;&lt;br /&gt;
   option broadcast-address 192.168.11.255;&lt;br /&gt;
   option routers 192.168.11.1;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
:5). Start Service&lt;br /&gt;
 $ sudo hostapd /etc/hostapd/hostapd.conf -B&lt;br /&gt;
 $ sudo systemctl restart isc-dhcp-server&lt;br /&gt;
&lt;br /&gt;
:6). Routing configuration.&lt;br /&gt;
 sysctl net.ipv4.ip_forward=1&lt;br /&gt;
 iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o eth0 -j MASQUERADE&lt;br /&gt;
&lt;br /&gt;
===Disable Cloud-init&amp;amp;Snap===&lt;br /&gt;
:Cloud-init and Snap service are enabled default, you can disable or remove them.&lt;br /&gt;
&lt;br /&gt;
:1. disable or remove cloud-init&lt;br /&gt;
  $ sudo touch /etc/cloud/cloud-init.disabled&lt;br /&gt;
:or&lt;br /&gt;
  $ sudo apt purge cloud-init&lt;br /&gt;
&lt;br /&gt;
:2. disable or remove snap&lt;br /&gt;
  $ sudo apt purge snapd&lt;br /&gt;
&lt;br /&gt;
===Enable rc-local===&lt;br /&gt;
:The systemd service rc-local.service already exists in release image, but there is no [Install] part in the unit file. As a result, Systemd is unable to enable it. First, we must update the file.&lt;br /&gt;
&lt;br /&gt;
  $ sudo nano /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
  [Unit]&lt;br /&gt;
  Description=/etc/rc.local Compatibility&lt;br /&gt;
  Documentation=man:systemd-rc-local-generator(8)&lt;br /&gt;
  ConditionFileIsExecutable=/etc/rc.local&lt;br /&gt;
  After=network.target&lt;br /&gt;
  &lt;br /&gt;
  [Service]&lt;br /&gt;
  Type=forking&lt;br /&gt;
  ExecStart=/etc/rc.local start&lt;br /&gt;
  TimeoutSec=0&lt;br /&gt;
  RemainAfterExit=yes&lt;br /&gt;
  GuessMainPID=no&lt;br /&gt;
  &lt;br /&gt;
  [Install]&lt;br /&gt;
  WantedBy=multi-user.target&lt;br /&gt;
  Alias=rc-local.service&lt;br /&gt;
&lt;br /&gt;
:Create /etc/rc.local file.&lt;br /&gt;
&lt;br /&gt;
  sudo nano /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  #&lt;br /&gt;
  # rc.local&lt;br /&gt;
  #&lt;br /&gt;
  # This script is executed at the end of each multiuser runlevel.&lt;br /&gt;
  # Make sure that the script will &amp;quot;exit 0&amp;quot; on success or any other&lt;br /&gt;
  # value on error.&lt;br /&gt;
  #&lt;br /&gt;
  # In order to enable or disable this script just change the execution&lt;br /&gt;
  # bits.&lt;br /&gt;
  #&lt;br /&gt;
  # By default this script does nothing.&lt;br /&gt;
  &lt;br /&gt;
  exit 0&lt;br /&gt;
&lt;br /&gt;
:Add executable permission to /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
  $ sudo chmod +x /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
:Enable rc-local.service and reboot&lt;br /&gt;
&lt;br /&gt;
  $ sudo systemctl enable rc-local.service&lt;br /&gt;
  $ sudo reboot&lt;br /&gt;
&lt;br /&gt;
===Enable sudo for Debian===&lt;br /&gt;
:The release Debian image do not install sudo default, with &amp;quot;su -&amp;quot; command, user can change to root. If you like sudo, you can install it.&lt;br /&gt;
&lt;br /&gt;
  $ su root&lt;br /&gt;
  Password:(enter bananapi)&lt;br /&gt;
  &lt;br /&gt;
  # apt-get update&lt;br /&gt;
  # apt-get install sudo&lt;br /&gt;
  # adduser pi sudo&lt;br /&gt;
&lt;br /&gt;
: Then please do logout and login again&lt;br /&gt;
&lt;br /&gt;
===Install Docker Engine===&lt;br /&gt;
:Install Docker Engine on Ubuntu 20.04 Server&lt;br /&gt;
  &lt;br /&gt;
:1. Set up the repository&lt;br /&gt;
&lt;br /&gt;
:Update the apt package index and install packages to allow apt to use a repository over HTTPS:&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release&lt;br /&gt;
&lt;br /&gt;
:Add Docker’s official GPG key:&lt;br /&gt;
  $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
:Set up the stable repository&lt;br /&gt;
  $  echo \&lt;br /&gt;
     &amp;quot;deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \&lt;br /&gt;
     $(lsb_release -cs) stable&amp;quot; | sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
:2. Install Docker Engine&lt;br /&gt;
  $ sudo apt-get update&lt;br /&gt;
  $ sudo apt-get install docker-ce docker-ce-cli containerd.io&lt;br /&gt;
&lt;br /&gt;
:3. Verify the Docker Engine is installed correctly by running the hello-world image.&lt;br /&gt;
  $ sudo docker run hello-world&lt;br /&gt;
&lt;br /&gt;
:[[File:docker-test.png]]&lt;br /&gt;
&lt;br /&gt;
Install docker with a simple command&lt;br /&gt;
&lt;br /&gt;
  $ curl -sSL get.docker.com | sudo sh&lt;br /&gt;
&lt;br /&gt;
[https://docs.docker.com/engine/install/ Install Docker Engine] on other Linux distributions&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M2_Zero&amp;diff=15008</id>
		<title>Getting Started with M2 Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Getting_Started_with_M2_Zero&amp;diff=15008"/>
				<updated>2023-07-11T08:58:07Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:快速上手 香蕉派 BPI-M2 Zero]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
[[File:BPI-M2_zero_11.JPG|thumb|Overview [[Banana Pi BPI-M2 ZERO]]]]&lt;br /&gt;
[[File:M2Zero_raspbian.png|thumb|Overview: BPI-M2Z raspbian]]&lt;br /&gt;
[[File:BPI-M2_zero_android_4.4.JPG|thumb|Android 4.4]]&lt;br /&gt;
[[File:BPI-M2_zero_ubuntu.JPG|thumb|Ubuntu Linux]]&lt;br /&gt;
&lt;br /&gt;
*Read more about : [[Banana_Pi_BPI-M2_ZERO]]&lt;br /&gt;
&lt;br /&gt;
==BPI-M2 Zero==&lt;br /&gt;
&lt;br /&gt;
Banana Pi M2 Zero is an ultra compact single board computer measures only 60mm*30mm. It uses quad-core Cortex A7 allwinner H2+ processor, with 512MB RAM memory. It's ideal for light-weight systems with some space-limited applications. Like other members of Banana Pi, it supports both linux and android operating system.&lt;br /&gt;
&lt;br /&gt;
===Key Features===&lt;br /&gt;
* Quad Core ARM Cortex A7 CPU H2+&lt;br /&gt;
* 512MB SDRAM.&lt;br /&gt;
* WiFi (AP6212) &amp;amp; Bluetooth onboard.&lt;br /&gt;
* Mini HDMI.&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Basic Development==&lt;br /&gt;
===Load your first Android image on M2 Zero===&lt;br /&gt;
  1.You could download latest image from our forum.&lt;br /&gt;
  &lt;br /&gt;
  2.Put your TF card into a TF-USB adapter, and then plug adapter in your Windows PC usb interface.&lt;br /&gt;
  &lt;br /&gt;
  3.Prepare your image, and download image burning tools PhoenixCard.exe.&lt;br /&gt;
  &lt;br /&gt;
  4.Use &amp;quot;PhoenixCard.exe&amp;quot; to burn android image to TF card.&lt;br /&gt;
  &lt;br /&gt;
  [[Image:M3_Android_Burning.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
  * Download PhoenixCard: https://pan.baidu.com/s/1-fjvPqtG_zewVzqnXf1AHw?pwd=eid9&lt;br /&gt;
&lt;br /&gt;
===Prepare to develop===&lt;br /&gt;
  * Prepare 8G/above TF card, USB-Serial interface, PC with Ubuntu System&lt;br /&gt;
  * Using your USB-Serial Connect debug console on M2 Zero&lt;br /&gt;
  &lt;br /&gt;
  [[Image:Debug_console_wire.png]]&lt;br /&gt;
&lt;br /&gt;
  [[Image:M2_Zero_debug_console.png]]&lt;br /&gt;
&lt;br /&gt;
===Install Linux Image on M2 Zero===&lt;br /&gt;
Download [http://wiki.banana-pi.org/Banana_Pi_BPI-M2_ZERO#Linux latest Linux image], default login user/password is pi/bananapi or root/bananapi.&lt;br /&gt;
 &lt;br /&gt;
Install Image to SDcard on Linux PC with bpi-tools&lt;br /&gt;
:1. Install bpi-tools on your system&lt;br /&gt;
    $ apt-get install pv&lt;br /&gt;
    $ curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash&lt;br /&gt;
:If you can't access this URL or any other problems, please go to [https://github.com/BPI-SINOVOIP/bpi-tools bpi-tools repo] and install this tools manually.&lt;br /&gt;
  &lt;br /&gt;
:2. Insert your SDcard into your PC&lt;br /&gt;
    $ bpi-copy xxx.img /dev/sdx&lt;br /&gt;
  &lt;br /&gt;
Install Image to SDcard with Ether on Windows, Linux and MacOS&lt;br /&gt;
:[https://www.balena.io/etcher/ Balena Etcher] is an open source project by Balena, Flash OS images to SD cards &amp;amp; USB drives&lt;br /&gt;
&lt;br /&gt;
Install Image to EMMC with SD Ubuntu&lt;br /&gt;
:1.Prepare a sd which is installed ubuntu image and bootup with sdcard&lt;br /&gt;
:2.Copy emmc image to udisk, plug in board, then mount udisk.&lt;br /&gt;
:3.After mount udisk, use command &amp;quot;bpi-copy xxx-emmc-xxx.img&amp;quot; to install image on Emmc.&lt;br /&gt;
:4.After success install, power off the board, eject the sdcard and poweron with emmc boot.&lt;br /&gt;
&lt;br /&gt;
===Update your image===&lt;br /&gt;
:1. Get the m2 zero bsp source code&lt;br /&gt;
    $ git clone https://github.com/BPI-SINOVOIP/BPI-M2P-bsp-4.4&lt;br /&gt;
&lt;br /&gt;
:2. Build the source code according to the README.md, and update the packages to the sdcard with bpi image flashed.&lt;br /&gt;
==Advanced Development==&lt;br /&gt;
&lt;br /&gt;
===How to create an image ===&lt;br /&gt;
* Prepare a SD card which have installed system(Ubuntu/Raspbian/..)&lt;br /&gt;
* Boot your SD card with M2 Zero, after M2 Zero finish starting, copy your files and config your system, then poweroff M2 Zero. [If you don't want to config your system, you can skip this step]&lt;br /&gt;
* Plug your SD card in PC(which is running Linux), &amp;quot;cd /media&amp;quot;, then &amp;quot;ln -s &amp;lt;your account&amp;gt; pi&amp;quot;&lt;br /&gt;
* Execute &amp;quot;bpi-migrate -c bpi-m2z.conf -c ubuntu-mate-from-sd.conf -d /dev/sdx&amp;quot;&lt;br /&gt;
* Then you could get your own image now&lt;br /&gt;
&lt;br /&gt;
===OTG===&lt;br /&gt;
1. On M2 Zero console:&lt;br /&gt;
* Execute &amp;quot;./adbd.sh&amp;quot;, then execute &amp;quot;ps -ax | grep adbd&amp;quot; to see if adbd is set up&lt;br /&gt;
&lt;br /&gt;
2. On PC terminal:&lt;br /&gt;
* If adbd was succeed to set up, insert OTG-USB interface to M2 Zero and PC(with Ubuntu system)&lt;br /&gt;
* Execute &amp;quot;adb devices&amp;quot; to see if PC has recognised M2 ZeroP OTG&lt;br /&gt;
* If yes, we could execute &amp;quot;adb shell&amp;quot; to connect M2 Zero by adb now&lt;br /&gt;
&lt;br /&gt;
===USB Ethernet===&lt;br /&gt;
* Prepare a USB to OTG wire, usb ethernet adapter &lt;br /&gt;
&lt;br /&gt;
[[Image:M2Zero_usb_network_wire.png]]&lt;br /&gt;
&lt;br /&gt;
* Use iperf3 to test network&lt;br /&gt;
[[Image:M2Zero_network.png]]&lt;br /&gt;
&lt;br /&gt;
===Bluetooth===&lt;br /&gt;
* Use bluetoothctl tool to operate BT&lt;br /&gt;
* Execute &amp;quot;bluetoothctl&amp;quot;&lt;br /&gt;
* If you don't know how to use bluetoothctl, type &amp;quot;help&amp;quot;, you will see more commands&lt;br /&gt;
* Execute these commands: &lt;br /&gt;
[[Image:M2Zero_bluetooth.png]]&lt;br /&gt;
&lt;br /&gt;
===WiFi Client===&lt;br /&gt;
'''You have two ways to setup WiFi Client'''&lt;br /&gt;
&lt;br /&gt;
1. Use commands to setup WiFi client&lt;br /&gt;
* ip link set wlan0 up&lt;br /&gt;
* iw dev wlan0 scan | grep SSID&lt;br /&gt;
* vim /etc/wpa_supplicant/wpa_supplicant.conf &lt;br /&gt;
 network={    &lt;br /&gt;
 ssid=&amp;quot;ssid&amp;quot;    &lt;br /&gt;
 psk=&amp;quot;password&amp;quot;    &lt;br /&gt;
 priority=1 &lt;br /&gt;
 }&lt;br /&gt;
* wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
* dhclient wlan0&lt;br /&gt;
&lt;br /&gt;
2. Use UI interface to setup WiFi Client&lt;br /&gt;
&lt;br /&gt;
===Clear boot===&lt;br /&gt;
* git clone https://github.com/BPI-SINOVOIP/BPI-files/tree/master/SD/100MB&lt;br /&gt;
* bpi-bootsel BPI-cleanboot-8k.img.gz /dev/sdX&lt;br /&gt;
&lt;br /&gt;
===Camara function===&lt;br /&gt;
We use HDF5640 camara.&lt;br /&gt;
&lt;br /&gt;
[[Image:ov5640_camara.png]]&lt;br /&gt;
====Guvcview====&lt;br /&gt;
* Use your UI interface to operate camara&lt;br /&gt;
* Applications -&amp;gt; Sound &amp;amp; Video -&amp;gt; guvcview&lt;br /&gt;
====Shell====&lt;br /&gt;
* We also have built-in command in /usr/local/bin to test camara&lt;br /&gt;
* &amp;quot;./test_ov5640_image_mode.sh&amp;quot; to test picture taking function&lt;br /&gt;
* &amp;quot;./cameratest.sh&amp;quot; to test video recording function&lt;br /&gt;
&lt;br /&gt;
===Display===&lt;br /&gt;
====How to change display resolution====&lt;br /&gt;
For Example： we change M2Z HDMI display 1080P.&lt;br /&gt;
&lt;br /&gt;
1. First, mount /dev/mmcblk0p1  /mnt, then enter to /mnt/bananapi/bpi-m2z/linux, find &amp;quot;sys_config.fex&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
2. &amp;quot;vim sys_config.fex&amp;quot;, change &amp;quot;screen0_output_mode = 5&amp;quot; to &amp;quot;screen0_output_mode = 10&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Image: display_output.png]]&lt;br /&gt;
&lt;br /&gt;
3. After save changed, use &amp;quot;fex2bin&amp;quot; command to transfer sys_config.fex to bin file, &amp;quot;fex2bin sys_config.fex script.bin &amp;quot;, reboot.&lt;br /&gt;
&lt;br /&gt;
parameters meaning：&lt;br /&gt;
&lt;br /&gt;
[[Image: display_mode.png]]&lt;br /&gt;
&lt;br /&gt;
===BPI-Tools===&lt;br /&gt;
====Install Bpi-tools====&lt;br /&gt;
* Execute &amp;quot;curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash - &amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Update Bpi-tools====&lt;br /&gt;
* Execute &amp;quot;bpi-tools&amp;quot;&lt;br /&gt;
[[Image: Bpi-tools.png]]&lt;br /&gt;
&lt;br /&gt;
===RPi.GPIO===&lt;br /&gt;
====Install RPi.GPIO====&lt;br /&gt;
* Execute &amp;quot;git clone https://github.com/BPI-SINOVOIP/RPi.GPIO&amp;quot;&lt;br /&gt;
* after clone the repo, cd RPi,GPIO&lt;br /&gt;
* Execute &amp;quot;sudo apt-get update&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo apt-get install python-dev python3-dev&amp;quot;&lt;br /&gt;
* Execute &amp;quot;sudo python setup.py install&amp;quot; or &amp;quot;sudo python3 setup.py install&amp;quot; to install the module&lt;br /&gt;
&lt;br /&gt;
====Using RPi.GPIO====&lt;br /&gt;
* cd /usr/local/bin&lt;br /&gt;
* Execute &amp;quot;./bpi_test_g40.py&amp;quot; to test RPi.GPIO&lt;br /&gt;
&lt;br /&gt;
[[Image: RPi_GPIO.png]]&lt;br /&gt;
&lt;br /&gt;
===WiringPi===&lt;br /&gt;
* GitHub: https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git&lt;br /&gt;
* We also have built-in test command in &amp;quot;/usr/local/bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====How to Update WiringPi====&lt;br /&gt;
* Execute &amp;quot;bpi-update -c pkglist.conf&amp;quot;&lt;br /&gt;
[[Image: Update_Pkglist.png]]&lt;br /&gt;
&lt;br /&gt;
* Execute &amp;quot;bpi-update -c bpi-pkg-bpi-wiringpi.conf&amp;quot;&lt;br /&gt;
[[Image: Update_WringPi.png]]&lt;br /&gt;
&lt;br /&gt;
====RGB 1602 LCD====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_lcd1602.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====0.96 Inch OLED Display====&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_52pi.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====8x8 RGB LED Martix====&lt;br /&gt;
* Firstly you need a GPIO Extend Board for 8x8 LED Martix&lt;br /&gt;
[[Image: WringPi_LED_Martix_Extend_Board.png]]&lt;br /&gt;
&lt;br /&gt;
* Execute &amp;quot;/usr/local/bin/bpi_test_gpio40.sh&amp;quot;&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-P2_Zero&amp;diff=15002</id>
		<title>Banana Pi BPI-P2 Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-P2_Zero&amp;diff=15002"/>
				<updated>2023-07-06T01:59:37Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* Getting Start */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-P2_Zero]]&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-F2_zero_1.JPG|thumb|Overview BPI-P2 Zero with Allwinner H2+ chip]]&lt;br /&gt;
[[File:BPI-F2_zero_2.JPG|thumb|Overview BPI-P2 zero PoE support]]&lt;br /&gt;
[[File:Banana_Pi_BPI-P2_Pro_1.jpg|thumb|[[Banana Pi BPI-P2 Pro]] with Rockchip RK3308]]&lt;br /&gt;
[[File:BPI-M2_zero_11.JPG|thumb|[[Banana Pi BPI-M2 ZERO]] with Allwinner H2+ chip]]&lt;br /&gt;
[[File:BPI-9600_POE_4.JPG|thumb|Banana Pi BPI-P2 Zero with BPI-9600 POE module]]&lt;br /&gt;
[[File:BPi-9600 Poe 4.jpg|thumb|[[BPI-9600 IEEE 802.3af PoE module]]]]&lt;br /&gt;
[[File:Newwork_scu.JPG|thumb|BPI-4.0 OEM&amp;amp;ODM [[Successful case]] H3 for Network security information analysis instrument]]&lt;br /&gt;
[[File:BPI-P2_Zero_case.JPG|thumb|BPI-P2 Zero Case]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-P2 Zero is an ultra compact single board computer measures only 65mm*52.5mm. It uses quad-core Cortex A7 allwinner H3/H2+ processor(Option : H5), with 512MB RAM memory.8G eMMC flash,100M LAN,add PoE function support , It's ideal for light-weight systems with some space-limited applications. Like other members of Banana Pi, it supports both linux and android operating system. &lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-P2 Maker, base on BPI-P2 ZERO, without 8GB eMMC/ Wifi &amp;amp; Bluetooth/40PIN GPIO, all other functions are same as BPI-P2 ZERO.&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_BPI-P2_zero.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
&lt;br /&gt;
* CPU: Allwinner H3/H2+, Quad-core Cortex-A7.&lt;br /&gt;
* 512MB DDR 3 SDRAM.&lt;br /&gt;
* WiFi (AP6212/K016) &amp;amp; BT onboard.&lt;br /&gt;
* Mini HDMI.&lt;br /&gt;
* 40 PIN GPIO,It includes UART, SPI, I2C, IO etc&lt;br /&gt;
* 100M LAN &lt;br /&gt;
* IEEE 802.3af PoE standard PoE module support&lt;br /&gt;
* 8G eMMC flash onboard.&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
::Quick strart your BPI-M2 zero : [[Quick Start Banana pi SBC]]&lt;br /&gt;
::How to development : [[Getting Started with P2-Zero]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
&lt;br /&gt;
BPI-P2 Zero, just 3 change on BPI-M2 Zero . other hadware design same as BPI-M2 Zero.so all software is same .&lt;br /&gt;
&lt;br /&gt;
* 1,add 8G eMMC flash support onboard, easy to do IoT gateway.&lt;br /&gt;
* 2,BPI-P2 Zero with 100M LAN interface ,BPI-M2 Zero with PIN define for 100M lan , use way is same.&lt;br /&gt;
* 3,PoE function support on board.&lt;br /&gt;
&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-P2_zero_interface.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Hardware spec==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''HardWare  Specification of Banana pi BPI-P2 Zero VS BPI-M2 zero  VS Raspberry Pi Zero W'''&lt;br /&gt;
|-&lt;br /&gt;
|Module||'''Banana Pi BPI-P2 Zero'''|| '''Banana Pi BPI-M2 Zero''' || '''Raspberry Pi Zero W'''&lt;br /&gt;
|-&lt;br /&gt;
|CPU ||Allwinner H3/H2+ Quad-core Cortex-A7 H265/HEVC 1080P  ||Allwinner H3/H2+ Quad-core Cortex-A7 H265/HEVC 1080P ||Broadcom BCM2835 32 Bit 1 GHz ARM1176JZF-S single-core&lt;br /&gt;
|-&lt;br /&gt;
|GPU || Mali400MP2 GPU @600MHz,Supports OpenGL ES 2.0|| Mali400MP2 GPU @600MHz,Supports OpenGL ES 2.0 ||VideoCore IV&lt;br /&gt;
|-&lt;br /&gt;
| Memory \(SDRAM\) || 512M DDR3(shared with GPU)||512M DDR3(shared with GPU) ||512 MB DDR2&lt;br /&gt;
|-&lt;br /&gt;
| Onboard Storage ||TF card \(Max. 64GB\)  ||TF card \(Max. 64GB\) ||TF card \(Max. 64GB\)&lt;br /&gt;
|-&lt;br /&gt;
| Onboard Network || 100M LAN||NOPE (but can extension with PIN define) ||NOPE&lt;br /&gt;
|-&lt;br /&gt;
| PoE power || PoE function support ||NOPE ||NOPE&lt;br /&gt;
|-&lt;br /&gt;
| Onboard flash || 8G eMMC||NOPE||NOPE&lt;br /&gt;
|-&lt;br /&gt;
| Onboard WIFI ||K016/SDIO AP6212（option AP6181、AP6335） ||K016/SDIO AP6212（option AP6181、AP6335） ||802.11n wireless, Bluetooth 4.1&lt;br /&gt;
|-&lt;br /&gt;
|Video decoding ||1080p@60fps,H.264 Video encoding 1080p@30fps,H.264|| 1080p@60fps,H.264 Video encoding 1080p@30fps,H.264 || 1080p30 H.264/MPEG-4 AVC high-profile decoder and encoder&lt;br /&gt;
|-&lt;br /&gt;
| Video input ||  A CSI input connector Camera||A CSI input connector Camera || CSI camera connector &lt;br /&gt;
|-&lt;br /&gt;
| Video Outputs || mini HDMI 1.4,1080P@30fps, DHCP||mini HDMI 1.4,1080P@30fps, DHCP ||Mini HDMI and USB On-The-Go ports&lt;br /&gt;
|-&lt;br /&gt;
| Audio Output || Mini HDMI ||Mini HDMI ||Mini HDMI&lt;br /&gt;
|-&lt;br /&gt;
| Power Source ||  Micro USB with 5V/2A or PoE power||Micro USB with 5V/2A ||5V/2A&lt;br /&gt;
|-&lt;br /&gt;
| USB 2.0 Ports || one USB 2.0 OTG ||one USB 2.0 OTG ||one USB 2.0 OTG &lt;br /&gt;
|-&lt;br /&gt;
| Buttons || Power Button, Reset Button ||Power Button, Reset Button ||Composite video and reset headers&lt;br /&gt;
|-&lt;br /&gt;
| Low-level peripherals ||  40 Pins Header,compatible with Raspberry Pi 3 ||40 Pins Header,compatible with Raspberry Pi 3 ||40 PIN &lt;br /&gt;
|-&lt;br /&gt;
| uart GPIO\(1x3\) pin ||  UART, ground ||UART, ground ||UART&lt;br /&gt;
|-&lt;br /&gt;
| LED ||Power led &amp;amp; Status led|| Power led &amp;amp; Status led  ||Power Status LED&lt;br /&gt;
|-&lt;br /&gt;
| IR ||N/A|| N/A ||N/A&lt;br /&gt;
|-&lt;br /&gt;
| Supported OS ||android linux|| android linx|| Linux&lt;br /&gt;
|-&lt;br /&gt;
| Product size || 65mm X 52.5mm||65mm × 30mm ||65mm x 30mm&lt;br /&gt;
|-&lt;br /&gt;
| Weight ||30g|| 15g ||9g&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GPIO PIN define ==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-P2 zero GPIO same as BPI-M2 Zero ,it has a 40-pin GPIO header that matches that of the Model Raspberry Pi 3. Following is the Banana Pi GPIO Pinout:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''40 PIN GPIO of Banana pi BPI-P2 Zero'''&lt;br /&gt;
|-&lt;br /&gt;
| GPIO Pin Name || Default Function || Function2：GPIO || Function3 &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P01 || VCC-3V3 || ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P02 || VCC-5V ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P03 || TWI0-SDA || PA12-EINT12 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P04 || VCC-5V || ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P05 || TWI0-SCK || PA11-EINT11|| &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P06 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P07 || PWM1 || PA6-EINT6|| &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P08 || UART3-TX || PA13-EINT13 || SPI1-CS &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P09 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P10 || UART3-RX || PA14-EINT14 || SPI1-CLK &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P11 || UART2-RX || PA1-EINT1 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P12 || UART3-CTS || PA16-EINT16 || SPI1-MISO &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P13 || UART2-TX || PA0-EINT0 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P14 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P15 || UART2-CTS || PA3-EINT3 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P16 || UART3-RTS || PA15-EINT15 || SPI1-MOSI &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P17 || VCC-3V3 || ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P18 || PC4 || PC4 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P19 || SPI0-MOSI || PC0 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P20 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P21 || SPI0-MISO || PC1 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P22 || UART2-RTS || PA2-EINT2 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P23 || SPI0-CLK || PC2 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P24 || SPI0-CS || PC3 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P25 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P26 || PC7 || PC7 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P27 || TWI1-SDA || PA19-EINT19 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P28 || TWI1-SCK || PA18-EINT18 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P29 || PA7-EINT7 || PA7-EINT7 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P30 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P31 || PA8-EINT8 || PA8-EINT8 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P32 || PL2-S-EINT2 || PL2-S-EINT2 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P33 || PA9-EINT9 || PA9-EINT9 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P34 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P35 || PA10-EINT10 || PA10-EINT10 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P36 || PL4-S-EINT4 || PL4-S-EINT4 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P37 || PA17-EINT17 || PA17-EINT17 || SPDIF-OUT&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P38 || PA21-EINT21 || PA21-EINT21 ||&lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P39 || GND || || &lt;br /&gt;
|-&lt;br /&gt;
|  CON2-P40 || PA20-EINT20 || PA20-EINT20 ||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''CSI Camera Connector specification:'''&lt;br /&gt;
&lt;br /&gt;
The CSI Camera Connector is a 24-pin FPC connector which can connect external camera module with proper signal pin mappings. The pin definitions of the CSI interface are shown as below. This is marked on the Banana Pi board as “CSI″.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''24 PIN CSI Camera connector of Banana pi BPI-P2 Zero'''&lt;br /&gt;
|-&lt;br /&gt;
| CSI Pin Name || Default Function || Function2：GPIO &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P01 || NC ||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P02 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P03 || CSI0-SDA || PE13 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P04 || CSI0-AVDD ||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P05 || CSI0-SCK || PE12 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P06 || CSI0-Reset || PE14 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P07 || CSI0-VSYNC || PE3 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P08 || CSI0-PWDN || PE15 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P09 || CSI0-HSYNC || PE2 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P10 || CSI0-DVDD ||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P11 || CSI0-DOVDD||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P12 || CSI0-D7 || PE11 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P13 || CSI0-MCLK || PE1 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P14 || CSI0-D6 || PE10 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P15 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P16 || CSI0-D5 || PE9 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P17 || CSI0-PCLK || PE0 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P18 || CSI0-D4 || PE8 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P19 || CSI0-D0 || PE4 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P20 || CSI0-D3 || PE7 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P21 || CSI0-D1 || PE5 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P22 || CSI0-D2 || PE6 &lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P23 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
|  CN3-P24 || CSI0-DOVDD ||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''UART specification:'''&lt;br /&gt;
&lt;br /&gt;
The jumper CON3 is the UART interface. For developers of Banana Pi, this is an easy way to get the UART console output to check the system status and log message.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''jumper CON3 of Banana pi BPI-P2 Zero'''&lt;br /&gt;
|-&lt;br /&gt;
| CON3 Pin Name || Default Function || GPIO &lt;br /&gt;
|-&lt;br /&gt;
| CON3 P03 || UART0-TXD || PA4 &lt;br /&gt;
|-&lt;br /&gt;
| CON3 P02 || UART0-RXD || PA5 &lt;br /&gt;
|-&lt;br /&gt;
| CON3 P01 || GND || &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==PoE support ==&lt;br /&gt;
&lt;br /&gt;
we deign a IEEE 802.3af PoE module for BPI-P2 Zero ,easy to support PoE function,more spec ,please check BPI-9600 PoE module spec&lt;br /&gt;
&lt;br /&gt;
*[[BPI-9600 IEEE 802.3af PoE module]]&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
&lt;br /&gt;
== Documents==&lt;br /&gt;
*Because of the Google security update some of the old links will not work if the images you want to use cannot be downloaded from the [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
** allwinner H3 chip doc baidu link: https://pan.baidu.com/s/1qTULll2CR02d0Hw9itq1rw&lt;br /&gt;
** Allwinner H2+ chip doc baidu link: https://pan.baidu.com/s/1TGMYr3rhizfhlg5hl6hLyg&lt;br /&gt;
*BPI-P2 Zero schematic diagram :https://drive.google.com/drive/folders/0B4PAo2nW2KfnflVqbjJGTFlFTTd1b1o1OUxDNk5ackVDM0RNUjBpZ0FQU19SbDk1MngzZWM?resourcekey=0-ZRCiv304nGzvq-w7lwnpjg&amp;amp;usp=sharing&lt;br /&gt;
*BPI-P2 zero CE,FCC,RoHS Certification : http://forum.banana-pi.org/t/banana-pi-bpi-p2-zero-ce-fcc-rohs-certification/9788&lt;br /&gt;
*Banana pi BPI-P2 Zero IEEE 802.3af PoE function test: https://www.youtube.com/watch?v=RCrDmhjxfCU&amp;amp;feature=youtu.be&lt;br /&gt;
*BPI-P2 Zero DXF file: https://drive.google.com/file/d/1NBenPRf6Pngsio930PKuzj6IqyUK5qyr/view?usp=sharing&lt;br /&gt;
*magazinmehatronika BPI-P2 zero and maker review: https://www.magazinmehatronika.com/banana-pi-bpi-p2-recenzija/&lt;br /&gt;
&lt;br /&gt;
==Source code==&lt;br /&gt;
* Android 4.4 source code &lt;br /&gt;
::download link: https://drive.google.com/open?id=0B_YnvHgh2rwjdWNEQzg1UDl1bUE &lt;br /&gt;
::forum pthread: http://forum.banana-pi.org/t/bpi-m2-android-4-4-source-code-download-link/3159&lt;br /&gt;
&lt;br /&gt;
*Linux source code&lt;br /&gt;
:: kernel 4.4 source code : https://github.com/BPI-SINOVOIP/BPI-M2P-bsp-4.4&lt;br /&gt;
:: kernel 3.4 source code : https://github.com/BPI-SINOVOIP/BPI-M2Z-bsp&lt;br /&gt;
&lt;br /&gt;
=Image Release=&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
&lt;br /&gt;
*2022-10-12 Armbian_22.11.0-trunk_Bananapip2zero_jammy_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
:: Google Drive:https://drive.google.com/file/d/1vP_047mfuAhSjBkZvb3w-iTGktd_BZbu/view?usp=sharing&lt;br /&gt;
:: Baidu Cloud: https://pan.baidu.com/s/1uhbUMYeplPybxTn_Cybpvw?pwd=8888 (pincode: 8888) &lt;br /&gt;
:: Discuss on Forum: https://forum.banana-pi.org/t/bananapi-bpi-p2-zero-new-image-release-armbian-jammy/14026&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*2022-10-12 Armbian_22.11.0-trunk_Bananapip2zero_bullseye_edge_5.19.6_xfce_desktop.img&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1YSaM1ob80EPcNoeVKYPjtCeMItBlTMET/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1CrZQhN3BR6bx7uMTZYVeMQ?pwd=8888 (pincode: 8888)&lt;br /&gt;
::Discuss on Forum: https://forum.banana-pi.org/t/bananapi-bpi-p2-zero-new-image-release-armbian-bullseye/14025&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*2022-09-27-Armbian_22.11.0-trunk_jammy_edge_lubuntu_5.19.6-qt5-swap-bpi-P2z-M2Z-10804MB&lt;br /&gt;
::Google Drive: https://drive.google.com/file/d/1_rsQthyCU4HaN8tcGsPMvzt6dMwaRI-A/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1RKJzzpMOHnFW0nj8I-NJIA?pwd=rk22 (pincode: rk22) &lt;br /&gt;
::MD5:f4dfbe234c21a6038f50f699780d4e03&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*2020-04-28 update,  Debian 9, Rasbian Stretch, Ubuntu 16.04 Mate Desktop and Ubuntu 16.04 Server images, base on kernel 4.4，Images for m2z and p2z board are compatible. &lt;br /&gt;
::google driver: https://drive.google.com/drive/folders/1uRE8BppgDjK2TXH5kUIJ1_YrbAAW3HKF&lt;br /&gt;
::baidu cloud ： https://pan.baidu.com/s/1pJfJbhIcU52uaR4mkWc-4A Pincode：5e3E&lt;br /&gt;
::discuss on forum: http://forum.banana-pi.org/t/banana-pi-bpi-m2-zero-new-image-2020-04-28-debian-rasbian-ubuntu/11068&lt;br /&gt;
&lt;br /&gt;
*2019-4-30 update BPI-M2 Zero &amp;amp; BPI-P2 Zero Ubuntu Server 16.04 &lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M2Z_Image_Map#Kernel_3.4&lt;br /&gt;
::Image Links：&lt;br /&gt;
::::HDMI-Version&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=1nTrali0w7GgcGatu-jxyJR-sF06rMN39&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/100LiQcD7V2_AJ3EmYN8p0g ( PinCode: q379 ) &lt;br /&gt;
::::Md5sum : f8aa74511677a0543d2af65115d7d0d0&lt;br /&gt;
::::Forum pthread: http://forum.banana-pi.org/t/bananapi-bpi-m2z-bpi-p2-zero-h2-new-images-reapbian9-4-ubuntu16-04-release-2019-04-30/9166&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*2018-4-30 update BPI-M2 Zero &amp;amp; P2Zero Ubuntu Desktop 16.04&lt;br /&gt;
::Features Map:http://wiki.banana-pi.org/M2Z_Image_Map#Kernel_3.4&lt;br /&gt;
::Image Links：&lt;br /&gt;
::::HDMI-Version&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=14_qm7Nk3FIycIC95ghVyeFz2xEbKjuSx&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1LZmkxRnszlhfdLD0Ngg18g ( PinCode: dqe1 ) &lt;br /&gt;
::::Md5sum : 25daaac1e678a5cc98259a82ea5ce53c&lt;br /&gt;
::::Forum pthread: http://forum.banana-pi.org/t/bananapi-bpi-m2z-bpi-p2-zero-h2-new-images-reapbian9-4-ubuntu16-04-release-2019-04-30/9166&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*2018-08-17 update Ubuntu image V1.0 release This release is for BPI-P2 Zero board which is based on Allwinner H2+, We have one demo image release，Ubuntu 16.04 is based on kernel 3.4.&lt;br /&gt;
::BPI-P2 Zero image Features Map : http://wiki.banana-pi.org/P2Z_Image_Map &lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=1izY4ib2roA4I9s4psbXqZq5sBXLkCgBE&lt;br /&gt;
::Baidu Drive : https://pan.baidu.com/s/1-pAplB8_j_W5mUsYsinavg&lt;br /&gt;
::Forum pthread : http://forum.banana-pi.org/t/bananapi-bpi-p2-zero-h2-with-poe-ubuntu-image-release-2018-08-17/6533&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E9%A6%99%E8%95%89%E6%B4%BE_BPI-M2_Berry&amp;diff=14956</id>
		<title>香蕉派 BPI-M2 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E9%A6%99%E8%95%89%E6%B4%BE_BPI-M2_Berry&amp;diff=14956"/>
				<updated>2023-06-27T06:35:03Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* 硬件规格表 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Banana_Pi_BPI-M2_Berry]]&lt;br /&gt;
&lt;br /&gt;
=产品介绍=&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|Overview]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_4.jpg|thumb|Overview:front]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_3.JPG|thumb|Overview:back]]&lt;br /&gt;
[[File:R40_for_vehicle_license_plate_recognition.JPG|thumb|BPI-M2 Berry for BPI 4.0 [[Successful case]] ：R40 for vehicle license plate recognition ]]&lt;br /&gt;
[[File:R40_for_IoT_gateway.JPG|thumb|BPI-M2 Berry for BPI 4.0 [[Successful case]] ：R40 for IoT gateway with Z-wave, zigbee,WiFI]]&lt;br /&gt;
&lt;br /&gt;
香蕉派 BPI-M2 Berry 四核单板计算机采用全志 R40/V40芯片开发。支持板载Wifi与蓝牙，支持SATA接口，可以直接接硬盘。板上有SD卡插座，可以从SD卡启动系统镜像。&lt;br /&gt;
&lt;br /&gt;
Banana PI BPI-M2 Berry 兼容性强大,可以跑android系统,Debian linux,Ubuntu linux, Raspberry Pi系统和全志TinaLinux系统.&lt;br /&gt;
&lt;br /&gt;
Banana PI BPI-M2 Berry硬件：全志R40/V40四核处理器，1GB LPDDR3内存，千兆以太网口，4 USB 接口 流畅运行Android5.1。Banana PI BPI-M2 Berry尺寸与树莓派 3完全一样，可以直接使用树莓派3的外壳。GPIO兼容Raspberry Pi 3并能运行rasbian 系统。&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_BPI-M2_Berry.jpg]]&lt;br /&gt;
&lt;br /&gt;
作为香蕉派家族的一员，BPI-M2 Berry是香蕉皮M1/M1+的直接升级版，支持SATA。&lt;br /&gt;
 &lt;br /&gt;
板子的尺寸与接口都和树莓派3一样，所以你可以用树莓派3的外壳等配件直接用在BPI-M2 Berry &lt;br /&gt;
&lt;br /&gt;
==主要特点==&lt;br /&gt;
&lt;br /&gt;
* Allwinner R40/V40 Quad Core ARM Cortex A7 CPU &lt;br /&gt;
* 1GB DDR3 SDRAM.&lt;br /&gt;
* WiFi (AP6212) &amp;amp; Bluetooth onboard.&lt;br /&gt;
* SATA Interface.&lt;br /&gt;
* 4*USB 2.0&lt;br /&gt;
* MIPI DSI ingerface&lt;br /&gt;
* CSI camera interface&lt;br /&gt;
&lt;br /&gt;
==如何开始使用==&lt;br /&gt;
*镜像烧录及快速开始使用 : [[快速上手 香蕉派镜像烧录与系统启动]]&lt;br /&gt;
&lt;br /&gt;
*开发快速入门:[[快速上手 香蕉派 BPI-M2 Ultra / BPI-M2 Berry]]&lt;br /&gt;
&lt;br /&gt;
=硬件介绍=&lt;br /&gt;
==硬件接口==&lt;br /&gt;
[[File:M2ubinterface.jpg]]&lt;br /&gt;
&lt;br /&gt;
==硬件规格表==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''HardWare  Specification of Banana pi BPI-M2 Berry'''&lt;br /&gt;
|-&lt;br /&gt;
|Soc || Allwinner A40I/R40/V40 &lt;br /&gt;
|-&lt;br /&gt;
| CPU || quad-core cortex -A7,the most power efficient CPU core ARM's ever development &lt;br /&gt;
|-&lt;br /&gt;
| GPU || dual-core MALI-400 MP2 and runs at 500MHz, capable of 1.1 Gpixel/s throughput. Graphics capabilities are slightly higher than the original Xbox’s level of performance. The GPU provides OpenGL ES 2.0, hardware-accelerated OpenVG, 1080p45 H.264 high-profile encode and decode. &lt;br /&gt;
|-&lt;br /&gt;
| SDRAM || 1GB DDR3 with 733MHz\(shared with GPU\) &lt;br /&gt;
|-&lt;br /&gt;
| SATA || suppoort SATA interface &lt;br /&gt;
|-&lt;br /&gt;
| GPIO || 40 Pins Header, 28×GPIO, some of which can be used for specific functions including UART, I2C, SPI, PWM, I2S. &lt;br /&gt;
|-&lt;br /&gt;
| On board Network || 10/100/1000Mbps Ethernet \(Realtek RTL8211E/D\) &lt;br /&gt;
|-&lt;br /&gt;
| Wifi Module || WiFi 802.11 b/g/n \(AP 6212 module on board\) &lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || BT4.0 &lt;br /&gt;
|-&lt;br /&gt;
| On board Storage || MicroSD \(TF\) card,No eMMC onboard &lt;br /&gt;
|-&lt;br /&gt;
| Display || 4-lane MIPI DSI display,or RGB panel or LVDS panel,TV-out on HDMI V1.4 &lt;br /&gt;
|-&lt;br /&gt;
| Video || Multi-format FHD video decoding, including Mpeg1/2, Mpeg4, H.263, H.264, etc H.264 decode up to 1080P60,support video encodeing:High-deinition\(HD\)H.264 video encoder is up to 1080P@45fps &lt;br /&gt;
|-&lt;br /&gt;
| Audio outputs || HDMI, analog audio \(via 3.5 mm TRRS jack\), I2S audio \(also potentially for audio input\) &lt;br /&gt;
|-&lt;br /&gt;
| Camera || A CSI input connector Camera:Supports 8-bit YUV422 CMOS sensor interface,Supports CCIR656 protocol for NTSC and PAL,Supports 5M pixel camera sensor ,Supports video capture solution up to 1080p@30fps &lt;br /&gt;
|-&lt;br /&gt;
| Audio input || On board microphone &lt;br /&gt;
|-&lt;br /&gt;
| USB || 4 USB 2.0 host, 1 USB 2.0 OTG &lt;br /&gt;
|-&lt;br /&gt;
| Buttons || Reset button, Power button, U-boot button &lt;br /&gt;
|-&lt;br /&gt;
| Leds || Power status Led and RJ45 Led &lt;br /&gt;
|-&lt;br /&gt;
| IR || No onboard IR receiver&lt;br /&gt;
|-&lt;br /&gt;
| DC Power || 5V/2A with micro USB port &lt;br /&gt;
|-&lt;br /&gt;
| battery || No 3.7V lithium battery power support&lt;br /&gt;
|-&lt;br /&gt;
| Sizes || 85mmX56mm,same size as raspberry pi 3 &lt;br /&gt;
|-&lt;br /&gt;
| Weight || 40g &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GPIO PIN 定义 ==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M2 Ultra has a 40-pin GPIO header that matches that of the Model Raspberry Pi 3. Following is the Banana Pi GPIO Pinout:&lt;br /&gt;
&lt;br /&gt;
[[File:Gpio define.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''40 PIN GPIO of Banana pi BPI-M2 Ultra'''&lt;br /&gt;
|-&lt;br /&gt;
|GPIO Pin Name || Default Function || Function2：GPIO || Function3 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P01 || VCC-3V3 || || &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P02 || DCIN || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P03 || TWI2-SDA || PB21 || PWM5 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P04 || DCIN || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P05 || TWI2-SCK || PB20 || PWM4 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P06 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P07 || PB3 || PB3 || PWM1 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P08 || UART2-TX || PI18 || SPI1\_MOSI &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P09 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P10 || UART2-RX || PI19 || SPI1\_MISO &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P11 || UART7-TX || PI20 || PWM2 |&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P12 || UART2-CTS || PI17 || SPI1\_CLK &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P13 || UART7-RX || PI21 || PWM3 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P14 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P15 || PH25 || PH25 || CSI1-FIELD &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P16 || UART2-RTS || PI16 || SPI1\_CS0 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P17 || VCC-3V3 || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P18 || PH26 || PH26 || CSI1-HSYNC &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P19 || SPI0\_MOSI || PC0 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P20 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P21 || SPI0\_MISO || PC1 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P22 || PH27 || PH27 || CSI1-VSYNC &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P23 || SPI0\_CLK || PC2 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P24 || SPI0\_CS || PC23 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P25 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P26 || PH24 || PH24 || CSI1-PCLK &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P27 || TWI3-SDA || PI1 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P28 || TWI3-SCK || PI0 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P29 || PH0 || PH0 || CSI1-D0 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P30 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P31 || PH1 || PH1 || CSI1-D1 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P32 || PD20 || PD20 || CSI1-MCLK &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P33 || PH2 || PH2 || CSI1-D2 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P34 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P35 || PH3 || PH3 || CSI1-D3 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P36 || UART5-RX || PH7 || CSI1-D7 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P37 || UART4-TX || PH4 || CSI1-D4 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P38 || UART5-TX || PH6 || CSI1-D6 &lt;br /&gt;
|-&lt;br /&gt;
| ON1-P39 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P40 || UART4-RX || PH5 || CSI1-D5 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''CSI Camera Connector specification:'''&lt;br /&gt;
&lt;br /&gt;
The CSI Camera Connector is a 24-pin FPC connector which can connect external camera module with proper signal pin mappings. The pin definitions of the CSI interface are shown as below. This is marked on the Banana Pi board as “Camera”.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''CSi Camera connector GPIO of Banana pi BPI-M2 Ultra'''&lt;br /&gt;
|-&lt;br /&gt;
| CSI Pin Name || Default Function || Function2：GPIO &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P01 || NC || &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P02 || GND || &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P03 || CSI0-SDA || PI3 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P04 || CSI0-AVDD ||&lt;br /&gt;
|-&lt;br /&gt;
| CN5-P05 || CSI0-SCK || PI2 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P06 || CSI0-Reset || PI7 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P07 || CSI0-VSYNC || PE3 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P08 || CSI0-PWDN || PI6 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P09 || CSI0-HSYNC || PE2 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P10 || CSI0-DVDD ||&lt;br /&gt;
|-&lt;br /&gt;
| CN5-P11 || CSI0-DOVDD ||&lt;br /&gt;
|-&lt;br /&gt;
| CN5-P12 || CSI0-D7 || PE11 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P13 || CSI0-MCLK || PE1 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P14 || CSI0-D6 || PE10 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P15 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN5-P16 || CSI0-D5 || PE9 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P17 || CSI0-PCLK || PE0 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P18 || CSI0-D4 || PE8 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P19 || CSI0-D0 || PE4&lt;br /&gt;
|-&lt;br /&gt;
| CN5-P20 || CSI0-D3 || PE7 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P21 || CSI0-D1 || PE5 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P22 || CSI0-D2 || PE6 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P23 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN5-P24 || CSI0-AFVCC ||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Display specification'''&lt;br /&gt;
&lt;br /&gt;
MIPI DSI \(Display Serial Interface\)&lt;br /&gt;
&lt;br /&gt;
The display Connector is a 40-pin FPC connector which can connect external LCD panel \(MIPI DSI\) and touch screen \(I2C\) module as well. The pin definitions of this connector are shown as below. This is marked on the Banana Pi board as “DSI”.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''40 PIN GPIO of Banana pi BPI-M2 Ultra'''&lt;br /&gt;
|-&lt;br /&gt;
| DSI Pin Name || Default Function || Function2：GPIO &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P01 || VCC-3V3 ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P02 || IPSOUT ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P03 || VCC-3V3 ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P04 || IPSOUT ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P05 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P06 || IPSOUT ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P07 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P08 || IPSOUT ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P09 || NC ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P10 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P11 || NC ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P12 || DSI-D0N ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P13 || NC ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P14 || DSI-D0P ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P15 || NC ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P16 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P17 || TWI0-SDA || PB19&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P18 || DSI-D1N ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P19 || TWI0-SCK || PB18 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P20 || DSI-D1P ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P21 || CTP-INT || PI10 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P22 || GND || &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P23 || CTP-RST || PI11 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P24 || DSI-CKN ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P25 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P26 || DSI-CKP ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P27 || LCD-BL-EN || PH16 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P28 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P29 || LCD-RST || PH17 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P30 || DSI-D2N ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P31 || LCD-PWR-EN || PH18 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P32 || DSI-D2P ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P33 ||GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P34 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P35 || LCD-PWM || PB2 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P36 || DSI-D3N ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P37 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P38 || DSI-D3P ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P39 || NC || &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P40 || GND || &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''UART specification:'''&lt;br /&gt;
&lt;br /&gt;
The header CON4 is the UART interface. For developers of Banana Pi, this is an easy way to get the UART console output to check the system status and log message.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''CON4 Uart GPIO of Banana pi BPI-M2 Ultra'''&lt;br /&gt;
|-&lt;br /&gt;
| CON2 Pin Name || Default Function || GPIO &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P03 || UART0-TXD ||&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P02 || UART0-RXD|| &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P01 || GND|| &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=软件=&lt;br /&gt;
&lt;br /&gt;
==TinaLinux==&lt;br /&gt;
Allwinner Tina-IoT os for BPI-M2 Ultra/BPI-M2 Berry&lt;br /&gt;
&lt;br /&gt;
=软件开发=&lt;br /&gt;
&lt;br /&gt;
==Basic Development==&lt;br /&gt;
&lt;br /&gt;
=开发资源=&lt;br /&gt;
&lt;br /&gt;
* 原理图下载 [https://drive.google.com/file/d/0B4PAo2nW2KfnTEMtNXpJWEJDTmc/view?usp=sharing BPI-M2 Berry Schematics]&lt;br /&gt;
* DXF结构文档下载 [https://drive.google.com/file/d/0B4PAo2nW2Kfnci1xaHd5eWtseEU/view?usp=sharing BPI-M2 Berry dxf file]&lt;br /&gt;
* Allwinner R40/V40 规格书&lt;br /&gt;
::[https://drive.google.com/file/d/0B4PAo2nW2KfneE54VzVOdHpITzA/view?usp=sharing  Allwinner V40 芯片规格书]&lt;br /&gt;
::[https://drive.google.com/file/d/0B4PAo2nW2KfnbVp2TmRMYUdPUGM/view?usp=sharing  Allwinner R40 芯片规格书]&lt;br /&gt;
::[https://github.com/tinalinux/docs/blob/r40-v1.y/Allwinner\_R40\_User\_Manual\_V1.0.pdf   Allwinner R40 芯片用户使用手册 v1.0]&lt;br /&gt;
::[https://drive.google.com/file/d/0B4PAo2nW2KfnM2pnT19zZW5qOTA/view?usp=sharing  axp221s PMU datasheet]&lt;br /&gt;
* Banana pi BPI-M2 Berry CE,FCC,RoHS 认证证书&lt;br /&gt;
::[https://bananapi.gitbooks.io/bpi-m2-ultra-open-source-single-board-computer/content/bpi-m2-berry-cefcc-rohs-certification.html  CE FCC RoHS 证书]&lt;br /&gt;
&lt;br /&gt;
=镜像发布=&lt;br /&gt;
== Android 6.0==&lt;br /&gt;
*2017-08-25 update &lt;br /&gt;
*HDMI-Version&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=0B_YnvHgh2rwjMlVUN2ZGcHIwdUE&lt;br /&gt;
::Baidu Cloud : MD5: c65fa4c20b8a6d2d05bfd32b090c3570&lt;br /&gt;
*LCD5-Version&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=0B_YnvHgh2rwjWGRVay1va1oyWDg&lt;br /&gt;
::Baidu Cloud : MD5:f664e5fe0af20ebfc06ddc50bac1845b&lt;br /&gt;
*LCD7-Version&lt;br /&gt;
::google Drive : https://drive.google.com/open?id=0B_YnvHgh2rwjSHduUmRhSXR2Wlk&lt;br /&gt;
::baidu Cloud : MD5: 6cda3453d9524643c8f92fcdc8deb32f&lt;br /&gt;
*forum pthread : http://forum.banana-pi.org/t/bpi-m2-ultra-bpi-m2-berry-new-image-android-6-0-version-v1-2017-08-25/3731&lt;br /&gt;
&lt;br /&gt;
==Ubuntu==&lt;br /&gt;
===3.10 kernel===&lt;br /&gt;
*2019-05-13 update banana pi M2U board which is based on A40I, R40, V40, and it is based on Ubuntu 16.04 &amp;amp; Raspbian 9 &amp;amp; Debian 9 Operation system with kernel 3.10.108&lt;br /&gt;
::BPI-M2U Ubuntu 16.04 Features Map:http://wiki.banana-pi.org/M2U/Berry_Image_Map#Ubuntu_16.04&lt;br /&gt;
::Desktop images:&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=1TpRMMcm50kQTXOOLXp65npTWovd7jCYc&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1-8nAN7RXVqVbJg3CUQnRzQ (PinCode:fnpt) &lt;br /&gt;
::::MD5 : cde8fd1165b54c633bcc5288e8447c2b&lt;br /&gt;
::Server  images:&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=1vcuIpQ7O2SFB3cZ4UemOqR2hQkxHy3RF&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/18Cp7zeuHxa82z5OU_tV_oQ (PinCode：qat4)&lt;br /&gt;
::::MD5 : 07981887a7a21f5cda72ab8a1e37a834&lt;br /&gt;
::Forum pthread : http://forum.banana-pi.org/t/bpi-m2u-berry-new-image-release-ubuntu-16-04-raspbian-9-4-debian-9-4-2019-05-13/9225&lt;br /&gt;
&lt;br /&gt;
*2018-01-04 update BPI-M2 Ultra/Berry Ubuntu 16.04 image&lt;br /&gt;
::Google Drive : https://drive.google.com/file/d/1G4Ggkne63ofD51Yt2c-x5-qy9h7BgY4_/view?usp=sharing&lt;br /&gt;
::baidu cloud : https://pan.baidu.com/s/1cFHYGY1&lt;br /&gt;
::MD5: a61e6f66a5ea2288fff0c3acff12d633&lt;br /&gt;
*2017-11-13 update&lt;br /&gt;
::Google Drive : https://drive.google.com/file/d/19PI9yuL9iFa4bU6dh7ym3tcCHhjAh-cM/view?usp=sharing &lt;br /&gt;
::baidu cloud : http://pan.baidu.com/s/1nvccOlz &lt;br /&gt;
::MD5: 4655b896a3c4e1958a15bb8ca45ac4fe&lt;br /&gt;
::forum pthread : http://forum.banana-pi.org/t/bpi-m2-ultra-bpi-m2-berry-new-image-2017-11-13-ubuntu-16-04-mate-desktop-beta2-bpi-m2u-sd-emmc-img/4182&lt;br /&gt;
&lt;br /&gt;
==Debian==&lt;br /&gt;
*2019-05-13 update banana pi M2U board which is based on A40I, R40, V40, and it is based on Ubuntu 16.04 &amp;amp; Raspbian 9 &amp;amp; Debian 9 Operation system with kernel 3.10.108&lt;br /&gt;
::BPI-M2U Debian 9 Features Map:http://wiki.banana-pi.org/M2U/Berry_Image_Map#Debian_9&lt;br /&gt;
::Desktop images :&lt;br /&gt;
::::Google Drive : &lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1ZqDZT4dOQNyvsu0nT4oMTg (PinCode:kshd) &lt;br /&gt;
::::MD5 : 7e5d848f804bc5ffb8854a93d7488694&lt;br /&gt;
::Server  images:&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=1aoB8mGwSveNztB-EO_fBKLOr-GdzcMNV&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1V0djGvUR7QJFMeAgZV86zg (PinCode:e0t6) &lt;br /&gt;
::::MD5 : b7314d444dc13a40e1dd7b1602436f40&lt;br /&gt;
::Forum pthread : http://forum.banana-pi.org/t/bpi-m2u-berry-new-image-release-ubuntu-16-04-raspbian-9-4-debian-9-4-2019-05-13/9225&lt;br /&gt;
&lt;br /&gt;
*2017-11-13 update debian-9-stretch-mate-desktop&lt;br /&gt;
::Google Drive : https://drive.google.com/file/d/0B_YnvHgh2rwjeTh4TmlnMGl5X3M/view?usp=sharing &lt;br /&gt;
::baidu cloud : http://pan.baidu.com/s/1c1LvS1y &lt;br /&gt;
::MD5: 0a1fad281c24902148b16276a79bac12&lt;br /&gt;
*2017-11-13 update debian-9-stretch-lite&lt;br /&gt;
::Google Drive: https://drive.google.com/file/d/0B_YnvHgh2rwjOWg1OW9heWZsYm8/view?usp=sharing &lt;br /&gt;
::baidu cloud: http://pan.baidu.com/s/1c3zxCy 13&lt;br /&gt;
::MD5: cff677aa94ca5345fc6e26379cfe4e95&lt;br /&gt;
*forum pthread : http://forum.banana-pi.org/t/bpi-m2-ultra-bpi-m2-berry-new-image-2017-08-28-debian-sd-emmc-img/3745/2&lt;br /&gt;
&lt;br /&gt;
==Rasbian==&lt;br /&gt;
*2019-05-13 update banana pi M2U board which is based on A40I, R40, V40, and it is based on Ubuntu 16.04 &amp;amp; Raspbian 9 &amp;amp; Debian 9 Operation system with kernel 3.10.108&lt;br /&gt;
::BPI-M2U Raspbian 9 Features Map:http://wiki.banana-pi.org/M2U/Berry_Image_Map#Raspbian_9.4&lt;br /&gt;
::Desktop image : &lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=16bDXcoKycZSGQgzh-L3bQYBpEs8HtRZF&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/115a-o-qKxI3YDkEAdmGevQ (PinCode:6hxx) &lt;br /&gt;
::::MD5 : f7ee24ff15654724e2c7ec3bf72c8506&lt;br /&gt;
::Forum pthread : http://forum.banana-pi.org/t/bpi-m2u-berry-new-image-release-ubuntu-16-04-raspbian-9-4-debian-9-4-2019-05-13/9225&lt;br /&gt;
&lt;br /&gt;
*2018-05-24 update Raspbian jessie 8.0 V1.1&lt;br /&gt;
::Google Drive : https://drive.google.com/file/d/0B_YnvHgh2rwjRGlUMUdqZk5ETDg/view?usp=sharing&lt;br /&gt;
::baidu cloud : https://pan.baidu.com/s/1UnMPtGBNp3-8KHDZPhVOUg &lt;br /&gt;
::forum pthread : http://forum.banana-pi.org/t/banana-pi-bpi-m2u-berry-new-image-release-raspbian-jessie-8-0-2018-5-24/5812&lt;br /&gt;
&lt;br /&gt;
*2017-05-25 update raspbian jessie&lt;br /&gt;
::Google Drive : https://drive.google.com/file/d/0B_YnvHgh2rwjRGlUMUdqZk5ETDg/view?usp=sharing&lt;br /&gt;
::baidu cloud : https://pan.baidu.com/s/1civq4e &lt;br /&gt;
::MD5: 60e19ea9138d6841fa6852ece4727b0a&lt;br /&gt;
::forum pthread : http://forum.banana-pi.org/t/banana-pi-bpi-m2-ultra-bpi-m2-berry-new-image-2017-05-25-raspbian-jessie-preview3-bpi-m2u-sd-emmc-img/3306&lt;br /&gt;
&lt;br /&gt;
==Armbian==&lt;br /&gt;
&lt;br /&gt;
*Armbain have support BPI-M2 Ultra/BPI-M2 Berry，Armbian Bionic btea and Armbian Stretch beta version&lt;br /&gt;
::image download ： https://www.armbian.com/bananapi-m2u/&lt;br /&gt;
::Boot logs : http://ix.io/1kVQ&lt;br /&gt;
::Forum pthread : http://forum.banana-pi.org/t/armbian-bionic-and-stretch/6573&lt;br /&gt;
&lt;br /&gt;
==Tina IoT Linux ==&lt;br /&gt;
*BPI-M2 Ultra / BPI-M2 Berry support Allwinner TinaLinux . &lt;br /&gt;
::more please see : [[Tina Linux]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RPiTC v3 1.12==&lt;br /&gt;
*2017-11-28 updtae&lt;br /&gt;
*RPiTC v3 1.12 for Banana Pi (BPI-M2U/BPI-M2B/BPI-M2P/BPI-M3/BPI-M64/BPI-R2): [http://forum.banana-pi.org/t/rpitc-v3-1-12-for-banana-pi-bpi-m2u-bpi-m2b-bpi-m2p-bpi-m3-bpi-m64-bpi-r2/4292 download link]&lt;br /&gt;
&lt;br /&gt;
==其他==&lt;br /&gt;
* kali linux,crux linux,archlinux,centos linux for BPI-M2 Ultra &amp;amp; BPI-M2 Berry : [http://forum.banana-pi.org/t/bpi-m2-ultra-bpi-m2-berry-new-image-2017-8-28-kali-linux-crux-linux-archlinux-centos-linux-image/3750 kali linux,crux linux,archlinux,centos linux 2017-08-25]&lt;br /&gt;
&lt;br /&gt;
* please download here:  http://forum.banana-pi.org/c/Banana-pi-BPI-M2-Ultra/M2Uimage&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=%E9%A6%99%E8%95%89%E6%B4%BE_BPI-M2_Berry&amp;diff=14955</id>
		<title>香蕉派 BPI-M2 Berry</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=%E9%A6%99%E8%95%89%E6%B4%BE_BPI-M2_Berry&amp;diff=14955"/>
				<updated>2023-06-27T06:34:34Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* 硬件规格表 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:Banana_Pi_BPI-M2_Berry]]&lt;br /&gt;
&lt;br /&gt;
=产品介绍=&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_5.JPG|thumb|Overview]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_4.jpg|thumb|Overview:front]]&lt;br /&gt;
[[File:Banana_pi_BPI-M2_Berry_3.JPG|thumb|Overview:back]]&lt;br /&gt;
[[File:R40_for_vehicle_license_plate_recognition.JPG|thumb|BPI-M2 Berry for BPI 4.0 [[Successful case]] ：R40 for vehicle license plate recognition ]]&lt;br /&gt;
[[File:R40_for_IoT_gateway.JPG|thumb|BPI-M2 Berry for BPI 4.0 [[Successful case]] ：R40 for IoT gateway with Z-wave, zigbee,WiFI]]&lt;br /&gt;
&lt;br /&gt;
香蕉派 BPI-M2 Berry 四核单板计算机采用全志 R40/V40芯片开发。支持板载Wifi与蓝牙，支持SATA接口，可以直接接硬盘。板上有SD卡插座，可以从SD卡启动系统镜像。&lt;br /&gt;
&lt;br /&gt;
Banana PI BPI-M2 Berry 兼容性强大,可以跑android系统,Debian linux,Ubuntu linux, Raspberry Pi系统和全志TinaLinux系统.&lt;br /&gt;
&lt;br /&gt;
Banana PI BPI-M2 Berry硬件：全志R40/V40四核处理器，1GB LPDDR3内存，千兆以太网口，4 USB 接口 流畅运行Android5.1。Banana PI BPI-M2 Berry尺寸与树莓派 3完全一样，可以直接使用树莓派3的外壳。GPIO兼容Raspberry Pi 3并能运行rasbian 系统。&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_BPI-M2_Berry.jpg]]&lt;br /&gt;
&lt;br /&gt;
作为香蕉派家族的一员，BPI-M2 Berry是香蕉皮M1/M1+的直接升级版，支持SATA。&lt;br /&gt;
 &lt;br /&gt;
板子的尺寸与接口都和树莓派3一样，所以你可以用树莓派3的外壳等配件直接用在BPI-M2 Berry &lt;br /&gt;
&lt;br /&gt;
==主要特点==&lt;br /&gt;
&lt;br /&gt;
* Allwinner R40/V40 Quad Core ARM Cortex A7 CPU &lt;br /&gt;
* 1GB DDR3 SDRAM.&lt;br /&gt;
* WiFi (AP6212) &amp;amp; Bluetooth onboard.&lt;br /&gt;
* SATA Interface.&lt;br /&gt;
* 4*USB 2.0&lt;br /&gt;
* MIPI DSI ingerface&lt;br /&gt;
* CSI camera interface&lt;br /&gt;
&lt;br /&gt;
==如何开始使用==&lt;br /&gt;
*镜像烧录及快速开始使用 : [[快速上手 香蕉派镜像烧录与系统启动]]&lt;br /&gt;
&lt;br /&gt;
*开发快速入门:[[快速上手 香蕉派 BPI-M2 Ultra / BPI-M2 Berry]]&lt;br /&gt;
&lt;br /&gt;
=硬件介绍=&lt;br /&gt;
==硬件接口==&lt;br /&gt;
[[File:M2ubinterface.jpg]]&lt;br /&gt;
&lt;br /&gt;
==硬件规格表==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''HardWare  Specification of Banana pi BPI-M2 Berry'''&lt;br /&gt;
|-&lt;br /&gt;
|Soc || Allwinner R40/V40/A40I &lt;br /&gt;
|-&lt;br /&gt;
| CPU || quad-core cortex -A7,the most power efficient CPU core ARM's ever development &lt;br /&gt;
|-&lt;br /&gt;
| GPU || dual-core MALI-400 MP2 and runs at 500MHz, capable of 1.1 Gpixel/s throughput. Graphics capabilities are slightly higher than the original Xbox’s level of performance. The GPU provides OpenGL ES 2.0, hardware-accelerated OpenVG, 1080p45 H.264 high-profile encode and decode. &lt;br /&gt;
|-&lt;br /&gt;
| SDRAM || 1GB DDR3 with 733MHz\(shared with GPU\) &lt;br /&gt;
|-&lt;br /&gt;
| SATA || suppoort SATA interface &lt;br /&gt;
|-&lt;br /&gt;
| GPIO || 40 Pins Header, 28×GPIO, some of which can be used for specific functions including UART, I2C, SPI, PWM, I2S. &lt;br /&gt;
|-&lt;br /&gt;
| On board Network || 10/100/1000Mbps Ethernet \(Realtek RTL8211E/D\) &lt;br /&gt;
|-&lt;br /&gt;
| Wifi Module || WiFi 802.11 b/g/n \(AP 6212 module on board\) &lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth || BT4.0 &lt;br /&gt;
|-&lt;br /&gt;
| On board Storage || MicroSD \(TF\) card,No eMMC onboard &lt;br /&gt;
|-&lt;br /&gt;
| Display || 4-lane MIPI DSI display,or RGB panel or LVDS panel,TV-out on HDMI V1.4 &lt;br /&gt;
|-&lt;br /&gt;
| Video || Multi-format FHD video decoding, including Mpeg1/2, Mpeg4, H.263, H.264, etc H.264 decode up to 1080P60,support video encodeing:High-deinition\(HD\)H.264 video encoder is up to 1080P@45fps &lt;br /&gt;
|-&lt;br /&gt;
| Audio outputs || HDMI, analog audio \(via 3.5 mm TRRS jack\), I2S audio \(also potentially for audio input\) &lt;br /&gt;
|-&lt;br /&gt;
| Camera || A CSI input connector Camera:Supports 8-bit YUV422 CMOS sensor interface,Supports CCIR656 protocol for NTSC and PAL,Supports 5M pixel camera sensor ,Supports video capture solution up to 1080p@30fps &lt;br /&gt;
|-&lt;br /&gt;
| Audio input || On board microphone &lt;br /&gt;
|-&lt;br /&gt;
| USB || 4 USB 2.0 host, 1 USB 2.0 OTG &lt;br /&gt;
|-&lt;br /&gt;
| Buttons || Reset button, Power button, U-boot button &lt;br /&gt;
|-&lt;br /&gt;
| Leds || Power status Led and RJ45 Led &lt;br /&gt;
|-&lt;br /&gt;
| IR || No onboard IR receiver&lt;br /&gt;
|-&lt;br /&gt;
| DC Power || 5V/2A with micro USB port &lt;br /&gt;
|-&lt;br /&gt;
| battery || No 3.7V lithium battery power support&lt;br /&gt;
|-&lt;br /&gt;
| Sizes || 85mmX56mm,same size as raspberry pi 3 &lt;br /&gt;
|-&lt;br /&gt;
| Weight || 40g &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GPIO PIN 定义 ==&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M2 Ultra has a 40-pin GPIO header that matches that of the Model Raspberry Pi 3. Following is the Banana Pi GPIO Pinout:&lt;br /&gt;
&lt;br /&gt;
[[File:Gpio define.png]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''40 PIN GPIO of Banana pi BPI-M2 Ultra'''&lt;br /&gt;
|-&lt;br /&gt;
|GPIO Pin Name || Default Function || Function2：GPIO || Function3 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P01 || VCC-3V3 || || &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P02 || DCIN || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P03 || TWI2-SDA || PB21 || PWM5 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P04 || DCIN || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P05 || TWI2-SCK || PB20 || PWM4 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P06 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P07 || PB3 || PB3 || PWM1 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P08 || UART2-TX || PI18 || SPI1\_MOSI &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P09 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P10 || UART2-RX || PI19 || SPI1\_MISO &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P11 || UART7-TX || PI20 || PWM2 |&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P12 || UART2-CTS || PI17 || SPI1\_CLK &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P13 || UART7-RX || PI21 || PWM3 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P14 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P15 || PH25 || PH25 || CSI1-FIELD &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P16 || UART2-RTS || PI16 || SPI1\_CS0 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P17 || VCC-3V3 || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P18 || PH26 || PH26 || CSI1-HSYNC &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P19 || SPI0\_MOSI || PC0 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P20 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P21 || SPI0\_MISO || PC1 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P22 || PH27 || PH27 || CSI1-VSYNC &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P23 || SPI0\_CLK || PC2 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P24 || SPI0\_CS || PC23 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P25 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P26 || PH24 || PH24 || CSI1-PCLK &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P27 || TWI3-SDA || PI1 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P28 || TWI3-SCK || PI0 ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P29 || PH0 || PH0 || CSI1-D0 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P30 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P31 || PH1 || PH1 || CSI1-D1 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P32 || PD20 || PD20 || CSI1-MCLK &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P33 || PH2 || PH2 || CSI1-D2 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P34 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P35 || PH3 || PH3 || CSI1-D3 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P36 || UART5-RX || PH7 || CSI1-D7 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P37 || UART4-TX || PH4 || CSI1-D4 &lt;br /&gt;
|-&lt;br /&gt;
| CON1-P38 || UART5-TX || PH6 || CSI1-D6 &lt;br /&gt;
|-&lt;br /&gt;
| ON1-P39 || GND || ||&lt;br /&gt;
|-&lt;br /&gt;
| CON1-P40 || UART4-RX || PH5 || CSI1-D5 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''CSI Camera Connector specification:'''&lt;br /&gt;
&lt;br /&gt;
The CSI Camera Connector is a 24-pin FPC connector which can connect external camera module with proper signal pin mappings. The pin definitions of the CSI interface are shown as below. This is marked on the Banana Pi board as “Camera”.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''CSi Camera connector GPIO of Banana pi BPI-M2 Ultra'''&lt;br /&gt;
|-&lt;br /&gt;
| CSI Pin Name || Default Function || Function2：GPIO &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P01 || NC || &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P02 || GND || &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P03 || CSI0-SDA || PI3 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P04 || CSI0-AVDD ||&lt;br /&gt;
|-&lt;br /&gt;
| CN5-P05 || CSI0-SCK || PI2 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P06 || CSI0-Reset || PI7 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P07 || CSI0-VSYNC || PE3 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P08 || CSI0-PWDN || PI6 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P09 || CSI0-HSYNC || PE2 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P10 || CSI0-DVDD ||&lt;br /&gt;
|-&lt;br /&gt;
| CN5-P11 || CSI0-DOVDD ||&lt;br /&gt;
|-&lt;br /&gt;
| CN5-P12 || CSI0-D7 || PE11 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P13 || CSI0-MCLK || PE1 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P14 || CSI0-D6 || PE10 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P15 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN5-P16 || CSI0-D5 || PE9 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P17 || CSI0-PCLK || PE0 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P18 || CSI0-D4 || PE8 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P19 || CSI0-D0 || PE4&lt;br /&gt;
|-&lt;br /&gt;
| CN5-P20 || CSI0-D3 || PE7 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P21 || CSI0-D1 || PE5 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P22 || CSI0-D2 || PE6 &lt;br /&gt;
|-&lt;br /&gt;
| CN5-P23 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN5-P24 || CSI0-AFVCC ||&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Display specification'''&lt;br /&gt;
&lt;br /&gt;
MIPI DSI \(Display Serial Interface\)&lt;br /&gt;
&lt;br /&gt;
The display Connector is a 40-pin FPC connector which can connect external LCD panel \(MIPI DSI\) and touch screen \(I2C\) module as well. The pin definitions of this connector are shown as below. This is marked on the Banana Pi board as “DSI”.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''40 PIN GPIO of Banana pi BPI-M2 Ultra'''&lt;br /&gt;
|-&lt;br /&gt;
| DSI Pin Name || Default Function || Function2：GPIO &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P01 || VCC-3V3 ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P02 || IPSOUT ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P03 || VCC-3V3 ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P04 || IPSOUT ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P05 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P06 || IPSOUT ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P07 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P08 || IPSOUT ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P09 || NC ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P10 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P11 || NC ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P12 || DSI-D0N ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P13 || NC ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P14 || DSI-D0P ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P15 || NC ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P16 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P17 || TWI0-SDA || PB19&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P18 || DSI-D1N ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P19 || TWI0-SCK || PB18 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P20 || DSI-D1P ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P21 || CTP-INT || PI10 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P22 || GND || &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P23 || CTP-RST || PI11 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P24 || DSI-CKN ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P25 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P26 || DSI-CKP ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P27 || LCD-BL-EN || PH16 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P28 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P29 || LCD-RST || PH17 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P30 || DSI-D2N ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P31 || LCD-PWR-EN || PH18 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P32 || DSI-D2P ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P33 ||GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P34 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P35 || LCD-PWM || PB2 &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P36 || DSI-D3N ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P37 || GND ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P38 || DSI-D3P ||&lt;br /&gt;
|-&lt;br /&gt;
| CN6-P39 || NC || &lt;br /&gt;
|-&lt;br /&gt;
| CN6-P40 || GND || &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''UART specification:'''&lt;br /&gt;
&lt;br /&gt;
The header CON4 is the UART interface. For developers of Banana Pi, this is an easy way to get the UART console output to check the system status and log message.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''CON4 Uart GPIO of Banana pi BPI-M2 Ultra'''&lt;br /&gt;
|-&lt;br /&gt;
| CON2 Pin Name || Default Function || GPIO &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P03 || UART0-TXD ||&lt;br /&gt;
|-&lt;br /&gt;
| CON2 P02 || UART0-RXD|| &lt;br /&gt;
|-&lt;br /&gt;
| CON2 P01 || GND|| &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=软件=&lt;br /&gt;
&lt;br /&gt;
==TinaLinux==&lt;br /&gt;
Allwinner Tina-IoT os for BPI-M2 Ultra/BPI-M2 Berry&lt;br /&gt;
&lt;br /&gt;
=软件开发=&lt;br /&gt;
&lt;br /&gt;
==Basic Development==&lt;br /&gt;
&lt;br /&gt;
=开发资源=&lt;br /&gt;
&lt;br /&gt;
* 原理图下载 [https://drive.google.com/file/d/0B4PAo2nW2KfnTEMtNXpJWEJDTmc/view?usp=sharing BPI-M2 Berry Schematics]&lt;br /&gt;
* DXF结构文档下载 [https://drive.google.com/file/d/0B4PAo2nW2Kfnci1xaHd5eWtseEU/view?usp=sharing BPI-M2 Berry dxf file]&lt;br /&gt;
* Allwinner R40/V40 规格书&lt;br /&gt;
::[https://drive.google.com/file/d/0B4PAo2nW2KfneE54VzVOdHpITzA/view?usp=sharing  Allwinner V40 芯片规格书]&lt;br /&gt;
::[https://drive.google.com/file/d/0B4PAo2nW2KfnbVp2TmRMYUdPUGM/view?usp=sharing  Allwinner R40 芯片规格书]&lt;br /&gt;
::[https://github.com/tinalinux/docs/blob/r40-v1.y/Allwinner\_R40\_User\_Manual\_V1.0.pdf   Allwinner R40 芯片用户使用手册 v1.0]&lt;br /&gt;
::[https://drive.google.com/file/d/0B4PAo2nW2KfnM2pnT19zZW5qOTA/view?usp=sharing  axp221s PMU datasheet]&lt;br /&gt;
* Banana pi BPI-M2 Berry CE,FCC,RoHS 认证证书&lt;br /&gt;
::[https://bananapi.gitbooks.io/bpi-m2-ultra-open-source-single-board-computer/content/bpi-m2-berry-cefcc-rohs-certification.html  CE FCC RoHS 证书]&lt;br /&gt;
&lt;br /&gt;
=镜像发布=&lt;br /&gt;
== Android 6.0==&lt;br /&gt;
*2017-08-25 update &lt;br /&gt;
*HDMI-Version&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=0B_YnvHgh2rwjMlVUN2ZGcHIwdUE&lt;br /&gt;
::Baidu Cloud : MD5: c65fa4c20b8a6d2d05bfd32b090c3570&lt;br /&gt;
*LCD5-Version&lt;br /&gt;
::Google Drive : https://drive.google.com/open?id=0B_YnvHgh2rwjWGRVay1va1oyWDg&lt;br /&gt;
::Baidu Cloud : MD5:f664e5fe0af20ebfc06ddc50bac1845b&lt;br /&gt;
*LCD7-Version&lt;br /&gt;
::google Drive : https://drive.google.com/open?id=0B_YnvHgh2rwjSHduUmRhSXR2Wlk&lt;br /&gt;
::baidu Cloud : MD5: 6cda3453d9524643c8f92fcdc8deb32f&lt;br /&gt;
*forum pthread : http://forum.banana-pi.org/t/bpi-m2-ultra-bpi-m2-berry-new-image-android-6-0-version-v1-2017-08-25/3731&lt;br /&gt;
&lt;br /&gt;
==Ubuntu==&lt;br /&gt;
===3.10 kernel===&lt;br /&gt;
*2019-05-13 update banana pi M2U board which is based on A40I, R40, V40, and it is based on Ubuntu 16.04 &amp;amp; Raspbian 9 &amp;amp; Debian 9 Operation system with kernel 3.10.108&lt;br /&gt;
::BPI-M2U Ubuntu 16.04 Features Map:http://wiki.banana-pi.org/M2U/Berry_Image_Map#Ubuntu_16.04&lt;br /&gt;
::Desktop images:&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=1TpRMMcm50kQTXOOLXp65npTWovd7jCYc&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1-8nAN7RXVqVbJg3CUQnRzQ (PinCode:fnpt) &lt;br /&gt;
::::MD5 : cde8fd1165b54c633bcc5288e8447c2b&lt;br /&gt;
::Server  images:&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=1vcuIpQ7O2SFB3cZ4UemOqR2hQkxHy3RF&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/18Cp7zeuHxa82z5OU_tV_oQ (PinCode：qat4)&lt;br /&gt;
::::MD5 : 07981887a7a21f5cda72ab8a1e37a834&lt;br /&gt;
::Forum pthread : http://forum.banana-pi.org/t/bpi-m2u-berry-new-image-release-ubuntu-16-04-raspbian-9-4-debian-9-4-2019-05-13/9225&lt;br /&gt;
&lt;br /&gt;
*2018-01-04 update BPI-M2 Ultra/Berry Ubuntu 16.04 image&lt;br /&gt;
::Google Drive : https://drive.google.com/file/d/1G4Ggkne63ofD51Yt2c-x5-qy9h7BgY4_/view?usp=sharing&lt;br /&gt;
::baidu cloud : https://pan.baidu.com/s/1cFHYGY1&lt;br /&gt;
::MD5: a61e6f66a5ea2288fff0c3acff12d633&lt;br /&gt;
*2017-11-13 update&lt;br /&gt;
::Google Drive : https://drive.google.com/file/d/19PI9yuL9iFa4bU6dh7ym3tcCHhjAh-cM/view?usp=sharing &lt;br /&gt;
::baidu cloud : http://pan.baidu.com/s/1nvccOlz &lt;br /&gt;
::MD5: 4655b896a3c4e1958a15bb8ca45ac4fe&lt;br /&gt;
::forum pthread : http://forum.banana-pi.org/t/bpi-m2-ultra-bpi-m2-berry-new-image-2017-11-13-ubuntu-16-04-mate-desktop-beta2-bpi-m2u-sd-emmc-img/4182&lt;br /&gt;
&lt;br /&gt;
==Debian==&lt;br /&gt;
*2019-05-13 update banana pi M2U board which is based on A40I, R40, V40, and it is based on Ubuntu 16.04 &amp;amp; Raspbian 9 &amp;amp; Debian 9 Operation system with kernel 3.10.108&lt;br /&gt;
::BPI-M2U Debian 9 Features Map:http://wiki.banana-pi.org/M2U/Berry_Image_Map#Debian_9&lt;br /&gt;
::Desktop images :&lt;br /&gt;
::::Google Drive : &lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1ZqDZT4dOQNyvsu0nT4oMTg (PinCode:kshd) &lt;br /&gt;
::::MD5 : 7e5d848f804bc5ffb8854a93d7488694&lt;br /&gt;
::Server  images:&lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=1aoB8mGwSveNztB-EO_fBKLOr-GdzcMNV&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/1V0djGvUR7QJFMeAgZV86zg (PinCode:e0t6) &lt;br /&gt;
::::MD5 : b7314d444dc13a40e1dd7b1602436f40&lt;br /&gt;
::Forum pthread : http://forum.banana-pi.org/t/bpi-m2u-berry-new-image-release-ubuntu-16-04-raspbian-9-4-debian-9-4-2019-05-13/9225&lt;br /&gt;
&lt;br /&gt;
*2017-11-13 update debian-9-stretch-mate-desktop&lt;br /&gt;
::Google Drive : https://drive.google.com/file/d/0B_YnvHgh2rwjeTh4TmlnMGl5X3M/view?usp=sharing &lt;br /&gt;
::baidu cloud : http://pan.baidu.com/s/1c1LvS1y &lt;br /&gt;
::MD5: 0a1fad281c24902148b16276a79bac12&lt;br /&gt;
*2017-11-13 update debian-9-stretch-lite&lt;br /&gt;
::Google Drive: https://drive.google.com/file/d/0B_YnvHgh2rwjOWg1OW9heWZsYm8/view?usp=sharing &lt;br /&gt;
::baidu cloud: http://pan.baidu.com/s/1c3zxCy 13&lt;br /&gt;
::MD5: cff677aa94ca5345fc6e26379cfe4e95&lt;br /&gt;
*forum pthread : http://forum.banana-pi.org/t/bpi-m2-ultra-bpi-m2-berry-new-image-2017-08-28-debian-sd-emmc-img/3745/2&lt;br /&gt;
&lt;br /&gt;
==Rasbian==&lt;br /&gt;
*2019-05-13 update banana pi M2U board which is based on A40I, R40, V40, and it is based on Ubuntu 16.04 &amp;amp; Raspbian 9 &amp;amp; Debian 9 Operation system with kernel 3.10.108&lt;br /&gt;
::BPI-M2U Raspbian 9 Features Map:http://wiki.banana-pi.org/M2U/Berry_Image_Map#Raspbian_9.4&lt;br /&gt;
::Desktop image : &lt;br /&gt;
::::Google Drive : https://drive.google.com/open?id=16bDXcoKycZSGQgzh-L3bQYBpEs8HtRZF&lt;br /&gt;
::::Baidu Drive : https://pan.baidu.com/s/115a-o-qKxI3YDkEAdmGevQ (PinCode:6hxx) &lt;br /&gt;
::::MD5 : f7ee24ff15654724e2c7ec3bf72c8506&lt;br /&gt;
::Forum pthread : http://forum.banana-pi.org/t/bpi-m2u-berry-new-image-release-ubuntu-16-04-raspbian-9-4-debian-9-4-2019-05-13/9225&lt;br /&gt;
&lt;br /&gt;
*2018-05-24 update Raspbian jessie 8.0 V1.1&lt;br /&gt;
::Google Drive : https://drive.google.com/file/d/0B_YnvHgh2rwjRGlUMUdqZk5ETDg/view?usp=sharing&lt;br /&gt;
::baidu cloud : https://pan.baidu.com/s/1UnMPtGBNp3-8KHDZPhVOUg &lt;br /&gt;
::forum pthread : http://forum.banana-pi.org/t/banana-pi-bpi-m2u-berry-new-image-release-raspbian-jessie-8-0-2018-5-24/5812&lt;br /&gt;
&lt;br /&gt;
*2017-05-25 update raspbian jessie&lt;br /&gt;
::Google Drive : https://drive.google.com/file/d/0B_YnvHgh2rwjRGlUMUdqZk5ETDg/view?usp=sharing&lt;br /&gt;
::baidu cloud : https://pan.baidu.com/s/1civq4e &lt;br /&gt;
::MD5: 60e19ea9138d6841fa6852ece4727b0a&lt;br /&gt;
::forum pthread : http://forum.banana-pi.org/t/banana-pi-bpi-m2-ultra-bpi-m2-berry-new-image-2017-05-25-raspbian-jessie-preview3-bpi-m2u-sd-emmc-img/3306&lt;br /&gt;
&lt;br /&gt;
==Armbian==&lt;br /&gt;
&lt;br /&gt;
*Armbain have support BPI-M2 Ultra/BPI-M2 Berry，Armbian Bionic btea and Armbian Stretch beta version&lt;br /&gt;
::image download ： https://www.armbian.com/bananapi-m2u/&lt;br /&gt;
::Boot logs : http://ix.io/1kVQ&lt;br /&gt;
::Forum pthread : http://forum.banana-pi.org/t/armbian-bionic-and-stretch/6573&lt;br /&gt;
&lt;br /&gt;
==Tina IoT Linux ==&lt;br /&gt;
*BPI-M2 Ultra / BPI-M2 Berry support Allwinner TinaLinux . &lt;br /&gt;
::more please see : [[Tina Linux]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RPiTC v3 1.12==&lt;br /&gt;
*2017-11-28 updtae&lt;br /&gt;
*RPiTC v3 1.12 for Banana Pi (BPI-M2U/BPI-M2B/BPI-M2P/BPI-M3/BPI-M64/BPI-R2): [http://forum.banana-pi.org/t/rpitc-v3-1-12-for-banana-pi-bpi-m2u-bpi-m2b-bpi-m2p-bpi-m3-bpi-m64-bpi-r2/4292 download link]&lt;br /&gt;
&lt;br /&gt;
==其他==&lt;br /&gt;
* kali linux,crux linux,archlinux,centos linux for BPI-M2 Ultra &amp;amp; BPI-M2 Berry : [http://forum.banana-pi.org/t/bpi-m2-ultra-bpi-m2-berry-new-image-2017-8-28-kali-linux-crux-linux-archlinux-centos-linux-image/3750 kali linux,crux linux,archlinux,centos linux 2017-08-25]&lt;br /&gt;
&lt;br /&gt;
* please download here:  http://forum.banana-pi.org/c/Banana-pi-BPI-M2-Ultra/M2Uimage&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-R2_Pro&amp;diff=14954</id>
		<title>Banana Pi BPI-R2 Pro</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-R2_Pro&amp;diff=14954"/>
				<updated>2023-06-26T08:45:05Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* kernel linux-4.19.xx Release image */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派 BPI-R2 Pro]]&lt;br /&gt;
&lt;br /&gt;
=Summary=&lt;br /&gt;
[[File:Banana_Pi_BPI-R2_Pro_1_750.jpg|thumb|[[Banana Pi BPI-R2 Pro]] Rockchip RK3568 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-R2_Pro_3.jpg|thumb|[[Banana Pi BPI-R2 Pro]] Rockchip RK3568 design]]&lt;br /&gt;
[[File:Rockchip_RC3568.jpg|thumb|Rockchip RK3568 chip]]&lt;br /&gt;
[[File:BPI-R2_case_.jpg|thumb| BPI-R2 Pro case same as BPI-R2]]&lt;br /&gt;
[[File:BPI-RK3588_board_kit_2.jpg|thumb|[[BPI-RK3588 Core board and development Kit]]]]&lt;br /&gt;
[[File:Banana Pi BPI-W3 LGA 1.jpg|thumb|[[Banana Pi BPI-W3]] with Rockchip RK3588 chip design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-R3_Router_2.jpg|thumb|[[Banana Pi BPI-R3]] with MediaTek MT7986(Filogic 830)]]&lt;br /&gt;
[[File:Banana_Pi_BPI-R3_Mini__1.jpg|thumb|[[Banana Pi BPI-R3 Mini]] with  MediaTek MT7986(Filogic 830)]]&lt;br /&gt;
[[File:Banana_Pi_BPI-R3_Mini__case_1.jpg|thumb|[[Banana Pi BPI-R3 Mini]] with MediaTek MT7986(Filogic 830)]]&lt;br /&gt;
[[File:BPI-R64_3.JPG|thumb|[[Banana Pi BPI-R64]] with MediaTek MT7622]]&lt;br /&gt;
[[File:BPI-R2_3.JPG|thumb|[[Banana Pi BPI-R2]] with MTK MT7623N chip design]]&lt;br /&gt;
[[File:O2A0500.jpg|thumb|[[Banana Pi BPI-W2]] with Realtek RTK1296 chip design]]&lt;br /&gt;
[[File:Banana_pi_BPI-R1_1.JPG|thumb|[[Banana Pi BPI-R1]] with allwinner A20 chip design]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
Banana Pi BPI-R2 Pro is the next generation smart router developement board from Banana Pi in 2021. It is powered by Rockchip RK 3568 processor.Onboard 2GB LPDDR4 memory and 16GB eMMC storage, and supports 2 USB 3.0 interface, 5 gigabit network port. M.2 key-E and mini PCIe interface, 2 mipi DSI interface(one can change to LVDS by software), 1 CSI camera interface,1 HDMI output,&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_BPI-R2_Pro_ban_.jpg]]&lt;br /&gt;
&lt;br /&gt;
BPI-R2 Pro same size as [[Banana Pi BPI-R2]] , and interface is also same .so can use BPI-R2 case.&lt;br /&gt;
&lt;br /&gt;
==Key Features==&lt;br /&gt;
* Rockchip RK3568 Quad-core ARM Cortex-A55 CPU&lt;br /&gt;
* Mali-G52 1-Core-2EE&lt;br /&gt;
* 2G LPDDR4 SDRAM (option 4G)&lt;br /&gt;
* Mini PCIE interface and M.2 key-e interface&lt;br /&gt;
* support 1 SATA interface&lt;br /&gt;
* MicroSD slot supports up to 256GB expansion&lt;br /&gt;
* 16G eMMC flash (option 16/32/64G)&lt;br /&gt;
* 2 MIPI display interface support &lt;br /&gt;
* 1 CSI camera interface&lt;br /&gt;
* 5 port 10/100/1000 Mb Ethernet port&lt;br /&gt;
* (2) USB 3.0 and (1) USB 2.0 otg port&lt;br /&gt;
&lt;br /&gt;
==Rockchip RK3568==&lt;br /&gt;
&lt;br /&gt;
RK3568 has built-in MICRO-research NPU of Rockchip, 0.8Tops computing power and integrated high performance AI accelerator RKNN NPU.  Rockchip also provides developers with an easy-to-use model transformation tool, RKNN-Toolkit, which supports one-click transformation of Caffe/TensorFlow/TF-Lite/ONNX/PyTorch/Keras/Darknet mainstream architecture models.  &lt;br /&gt;
&lt;br /&gt;
RK3568 has rich interface expansion capabilities.  Supports a variety of peripheral high-speed interfaces, supporting four USB2.0 ports, 4xUSB2.0 HOST+ 1xUSB3.0 HOST+ 1xusB3.0 OTG.  Support gigabit Ethernet *2, multi-camera support, support MIPI CSI 4Lanes, can be divided into 2x2Lanes two groups of independent use support 16bit DVP interface, support BT1120 input, support VC mode.  RK3568 has a complete display interface, support HDMI 2.0 output support dual channel MIPI DSI, dual channel LVDS, can drive 2.5K LCD screen, can directly drive ink screen, support eDp.  RK3568 has plenty of peripherals, supporting 10x UART, 6x I2C, 16x PWM, 4x SPI, 8xSARADC and MINI PCIE.  &lt;br /&gt;
&lt;br /&gt;
Rockchip RK3568 chip is a general PURPOSE SoC designed for consumer industry applications.  The CPU uses 4-core A55 architecture processor, integrated G52 GRAPHICS processor, built-in independent NPU, and runs Android 11 and Linux.  RK3568 is mainly customized for tablet PC, speaker with screen, Android pen, dictionary pen and other consumer products, as well as face payment POS machine, e-book, cloud terminal, video phone, NAS storage and other industry products&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
[[Getting Started with R2PRO]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:Banana_Pi_BPI-R2_Pro_int_750.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Hardware spec ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &lt;br /&gt;
! Banana Pi R2 Pro&lt;br /&gt;
|-&lt;br /&gt;
! CPU&lt;br /&gt;
| Rockchip RK3568 Quad-core ARM Cortex-A55 CPU 2GHz&lt;br /&gt;
|-&lt;br /&gt;
! GPU&lt;br /&gt;
| Mali-G52 1-Core-2EE OpenGL ES3.2 Vu1kn 1.1 OpenCL 2.0&lt;br /&gt;
|-&lt;br /&gt;
! Memory&lt;br /&gt;
| 2G DDR3 SDRAM (option 4G)&lt;br /&gt;
|-&lt;br /&gt;
! Storage&lt;br /&gt;
| Onboard 16GB eMMC Flash, Micro SD-Card slot, SATA 3.0 Port,SPI flash&lt;br /&gt;
|-&lt;br /&gt;
! Network&lt;br /&gt;
| 5 x 10/100/1000 Mbit/s Ethernet &lt;br /&gt;
|-&lt;br /&gt;
! Display(s)&lt;br /&gt;
| 1 HDMI port, 2 DSI interface(1 DSI can change to LVDS by software)&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! Camera&lt;br /&gt;
| 1 CSI camera interfact&lt;br /&gt;
|-&lt;br /&gt;
! Video decoder(s)&lt;br /&gt;
| H.265 HEVC/MVC Main10 Profile yuv420@L5.1 up to 4096x2304@60fps,H.264 AVC/MVC Main10 Profile yuv400/yuv420/yuv422/@L5.1 up to 4096x2304@60fps&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! Video encoder(s)&lt;br /&gt;
| H.264/AVC BP/MP/HP@level4.2，up to 1920x1080@100fps, H.265/HEVC MP@level4.1, up to 1920x1080@100fps (4096x4096@10fps with TILE)&lt;br /&gt;
|-&lt;br /&gt;
! Audio Output(s)&lt;br /&gt;
| HDMI &amp;amp; I2S &amp;amp; Speaker &amp;amp; Headphone&lt;br /&gt;
|-&lt;br /&gt;
! USB port&lt;br /&gt;
| USB 3.0 PORT (x2), micro USB OTG (x1)&lt;br /&gt;
|-&lt;br /&gt;
! mini PCIE&lt;br /&gt;
| 1 mini pcie interface &amp;amp; 1 M.2 key-e interface&lt;br /&gt;
|-&lt;br /&gt;
! Remote&lt;br /&gt;
| IR Receiver (x1)&lt;br /&gt;
|-&lt;br /&gt;
! GPIO&lt;br /&gt;
| 40 Pin Header : GPIO (x28) and Power (+5V, +3.3V and GND). Some of I/O Pin can be used for specific functions as UART, I2C, SPI or PWM &lt;br /&gt;
|-&lt;br /&gt;
! Switches&lt;br /&gt;
| Reset button, Power button, U-boot button&lt;br /&gt;
|-&lt;br /&gt;
! LED&lt;br /&gt;
| Power Status and 8P8C&lt;br /&gt;
|-&lt;br /&gt;
! Power Source&lt;br /&gt;
| 12 volt @2A via DC Power and/or Micro USB (OTG)&lt;br /&gt;
|-&lt;br /&gt;
! Size &amp;amp; Weight&lt;br /&gt;
| 148&amp;amp;nbsp;mm × 100.5mm 100g&lt;br /&gt;
|-&lt;br /&gt;
! OS&lt;br /&gt;
| OpenWRT, Linux and others OS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GPIO PIN define==&lt;br /&gt;
BPI-R2 40 PIN GPIO, Debug Uart PIN,MIPI camera ,MIPI LCD0，MIPI LCD1,eDP LCD PIN define.&lt;br /&gt;
&lt;br /&gt;
[[BPI-R2 Pro all GPIO PIN define]]&lt;br /&gt;
&lt;br /&gt;
Running on android11 system, connecting with 2x dsi panel + 1x eDP panel:https://www.youtube.com/watch?v=HpDAmNVDwXI&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
*linux-4.19.xx kernel BSP Source code on github ：https://github.com/BPI-SINOVOIP/BPI-R2PRO-BSP/&lt;br /&gt;
*linux-5.10.66 kernel BSP Source code on github ：https://github.com/BPI-SINOVOIP/BPI-R2PRO-BSP-5.10.x/&lt;br /&gt;
*BPI-R2 PRO Android11 Source Code&lt;br /&gt;
:Baidu Cloud:https://pan.baidu.com/s/1c2vw-df4hh55VB3gSsM6Uw?pwd=8888 (提取码: 8888)&lt;br /&gt;
:Google Drive:&lt;br /&gt;
&lt;br /&gt;
==Documents==&lt;br /&gt;
*Because of the Google security update some of the old links will not work if the images you want to use cannot be downloaded from the [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
*BPI-R2 Pro schematic diagram : https://drive.google.com/file/d/1aDOL8U6-4bxn7iB_MzCOgHoDhUu0wuQu/view?usp=sharing&lt;br /&gt;
*BPI-R2 Pro DXF file ：https://drive.google.com/file/d/1N9AWJVHC4fZEko5_RIkc3pI0gK1I0XiV/view?usp=sharing&lt;br /&gt;
*MT7531 switch chip datasheet: https://drive.google.com/file/d/1aVdQz3rbKWjkvdga8-LQ-VFXjmHR8yf9/view?usp=sharing&lt;br /&gt;
*RTL8367RB-VB-CG Switch chip datasheet:https://drive.google.com/file/d/1Rua-SRJLPoV0NLnvwJg-fopsD178KIts/view?usp=sharing&lt;br /&gt;
*BPI-R2 Pro CE,FCC,RoHS certificate : https://banana-pi.org/en/bpi-honor/&lt;br /&gt;
*Install google play on Bananapi BPI-R2 pro Android 11/12:https://www.youtube.com/watch?v=pMKBVcJhsx4&lt;br /&gt;
&lt;br /&gt;
=Release image=&lt;br /&gt;
Note: the network disk include linux-4.19.xx and linux-5.10.66 kernel version, linux-5.10.66 kernel version can support DSA feature.&lt;br /&gt;
*All image for BPI-R2 Pro google ： https://drive.google.com/drive/folders/1gHNGVL_uq8L4t987k-nzg6MKWDSmDcfC&lt;br /&gt;
*All image for BPI-R2 Pro : Baidu ： https://pan.baidu.com/s/1u5bIp0fMJPre-j0bXGfDWA?pwd=i8q6 Pincode: i8q6 &lt;br /&gt;
&lt;br /&gt;
==kernel linux-5.10.66 Release image, support DSA feature==&lt;br /&gt;
Supported OS Note: OpenWRT, Debian10, Ubuntu 16.04. Ubuntu 20.04, Ubunutu 22.04, Ubunut OS support server version, desktop version, mate desktop version. &lt;br /&gt;
*kernel linux-5.10.66 image for BPI-R2 Pro : Baidu : https://pan.baidu.com/s/19B6AYrHfbIFgRytTpW8Mbg?pwd=6me6  Pincode: 6me6&lt;br /&gt;
&lt;br /&gt;
==AltLinux for Banana Pi BPI R2 pro==&lt;br /&gt;
*kernel 5.18.9 : https://forum.banana-pi.org/t/altlinux-for-bpi-r2-pro-rk3568/13363&lt;br /&gt;
&lt;br /&gt;
==Armbian and LibreELEC for BPI-R2-pro==&lt;br /&gt;
*https://forum.banana-pi.org/t/armbian-and-libreelec-for-bpi-r2-pro-rk3568/13308&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
:[https://wiki.banana-pi.org/Getting_Started_with_R2PRO#Android How to flash Android Image]&lt;br /&gt;
*All Android image can find here:&lt;br /&gt;
::Google Drive: https://drive.google.com/drive/folders/1Bs0lhnukZ4A_BmbY-QPiJsFguPXh6imh?usp=share_link&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/19_nZls-1tzAsIB3_B-PWrg?pwd=6zw8 (pincode: 6zw8)&lt;br /&gt;
&lt;br /&gt;
* 2023-03-17-Android11-atv-bpi-r2pro.img&lt;br /&gt;
::Google Drive:https://drive.google.com/drive/folders/1TZMsaeg99bC8WwxEb8zOMTOAA0TurQ_E?usp=share_link&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1_Hb0dB_4mHhTXiWP6TAzDA?pwd=bdxa (pincode: bdxa) &lt;br /&gt;
&lt;br /&gt;
*2023-03-17-Android11-bpi-r2pro.img&lt;br /&gt;
::Google Drive:https://drive.google.com/drive/folders/108SbohEB8OsWYaxvFeYhGDzxHaUJ1OcW?usp=share_link&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1FKdN2b3qA2Cc4syO15zbng?pwd=rnxd (pincode: rnxd) &lt;br /&gt;
&lt;br /&gt;
* 2022-11-16 release, Android12-bpi-r2pro.img&lt;br /&gt;
::Google Drive: https://drive.google.com/file/d/1UZ-e6QJIB8ZU-rdGsCnDNaNR2pYHHvxA/view?usp=share_link&lt;br /&gt;
::Baidu Cloud:  https://pan.baidu.com/s/1tQ5Fg47R0fpUajYpNIsJ3g?pwd=8888 (pincode: 8888)&lt;br /&gt;
::MD5:a7b5faf7818f1ab2d36253a5d3ca1d18&lt;br /&gt;
::Forum pthread:https://forum.banana-pi.org/t/bananapi-bpi-r2-pro-2022-11-16-android-12/14264&lt;br /&gt;
&lt;br /&gt;
* 2022-06-10 release, Android 11 with kernel 4.19.219, tablet variant image&lt;br /&gt;
::Google Drive: https://drive.google.com/file/d/1qiLZKU8_2O0hHgP25F0CRxv9MnSJlXpv/view?usp=sharing&lt;br /&gt;
::Baidu Cloud:https://pan.baidu.com/s/1EUiGaXuPxAkR69g7EOnVaw?pwd=4n6c (pincode: 4n6c) &lt;br /&gt;
::MD5: ebd336bad0c27c66ae65a4d38103bced&lt;br /&gt;
&lt;br /&gt;
* 2022-06-10 release, Android 11 with kernel 4.19.219, atv variant image&lt;br /&gt;
::Google Drive: https://drive.google.com/file/d/104K7W1PX4OFvUtqNGHOnx6RZO49BrTZp/view?usp=sharing&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1RbNf1dFqMxy1Dx_ysym82w?pwd=v4u8 (pincode: v4u8)&lt;br /&gt;
::MD5: 49506a8a3183ab189046b5e2e2833b87&lt;br /&gt;
&lt;br /&gt;
=Easy to buy sample=&lt;br /&gt;
*Aliexpress shop : https://www.aliexpress.com/item/1005004224551525.html?spm=a2g0o.store_pc_newArrival.8148356.1.2d8330d9Jco2ZH&lt;br /&gt;
*Taobao shop : https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.282d1debCwvgH0&amp;amp;ft=t&amp;amp;id=673191560298&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-Leaf-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=13464</id>
		<title>BPI-Leaf-S3 开发板</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-Leaf-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=13464"/>
				<updated>2022-12-19T02:08:09Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* 硬件规格 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:BPI-Leaf-S3]]&lt;br /&gt;
&lt;br /&gt;
= 介绍 =&lt;br /&gt;
[[File:BPI-Leaf-S3_banner.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:Leaf-S3-incline-front.jpg|thumb|[[BPI-Leaf-S3]] with ESP32-S3]]&lt;br /&gt;
&lt;br /&gt;
[[File:Leaf-S3-incline-back.jpg|thumb|[[BPI-Leaf-S3]] with ESP32-S3]]&lt;br /&gt;
&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
香蕉派Leaf系列是专为物联网设计的低功耗微控制器开发板。&lt;br /&gt;
&lt;br /&gt;
BPI-Leaf-S3板载ESP32-S3芯片，支持 2.4 GHz Wi-Fi 和低功耗蓝牙 (Bluetooth® LE) 双模无线通信，外围兼容低功耗硬件设计，深度睡眠模式下功耗仅为10uA。&lt;br /&gt;
&lt;br /&gt;
支持USB和外接3.7V锂电池两种供电方式，可实现双电源下自动切换电源功能，并支持USB充电方式。体积小巧，接口方便，上手简单，可直接应用于物联网低功耗项目。 &lt;br /&gt;
&lt;br /&gt;
BPI-Leaf-S3开发板在软件方面支持ESP-IDF、Arduino、MicroPython等多种方式进行编程开发 。&lt;br /&gt;
&lt;br /&gt;
BPI-Leaf-S3开发板上标记了与芯片对应的所有IO管脚，且IO管脚顺序与Espressif ESP32-S3-DevKitC-1开发板一致，开发者可根据实际需求，可将DevKitC-1支持的外围设备添加到BPI-Leaf-S3上，也可将开发板插在面包板上使用。&lt;br /&gt;
&lt;br /&gt;
== 关键特性 ==&lt;br /&gt;
&lt;br /&gt;
* ESP32-S3，Xtensa® 32 bit LX7&lt;br /&gt;
* 片外 PSRAM , FLASH&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI ，Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD，CAMERA ，USB , JTAG&lt;br /&gt;
* 1* JST SH 1mm 4-Pin I2C连接座&lt;br /&gt;
* 1 * USB Type-C&lt;br /&gt;
* 1 * 2pin 电池连接座，支持充电&lt;br /&gt;
* 1 * 全彩色LED&lt;br /&gt;
&lt;br /&gt;
== BPI-Leaf-S3 与 ESP32-S3-DevKitC-1开发板对比 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! 开发板&lt;br /&gt;
! BPI-Leaf-S3&lt;br /&gt;
! ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| 引出GPIO&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v管脚&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 5v管脚&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND管脚&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| 全彩LED灯&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| 芯片直连USB&lt;br /&gt;
| Type-C USB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL转USB&lt;br /&gt;
| 无&lt;br /&gt;
| CP2102-MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| 外接电池连接座&lt;br /&gt;
| 3.7v锂电池供电接口&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| 电池充电&lt;br /&gt;
| 500mA充电&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| I²C JST SH 1mm 4-Pin连接座&lt;br /&gt;
| 1&lt;br /&gt;
| 无&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
BPI-Leaf-S3开发板IO管脚数量，顺序，间距都与Espressif ESP32-S3-DevKitC-1开发板一致。&lt;br /&gt;
&lt;br /&gt;
BPI-Leaf-S3开发板不再具备传统的UART TTL转USB转接芯片及其USB接口，这是因为ESP32-S3芯片的内置USB功能已经足够完善，支持CDC-ACM 虚拟串口及 JTAG 适配器功能，不再需要外部的转接芯片就可以实现软件开发调试，固件下载等功能。&lt;br /&gt;
&lt;br /&gt;
相较于ESP32-S3-DevKitC-1开发板，BPI-Leaf-S3开发板增加了外接电池连接座并搭配了充电电路，可直接通过USB给电池充电，且可实现自动切换供电，即在有接3.7v锂电池的条件下，插拔USB不会导致程序中断，适应更多应用场景。&lt;br /&gt;
&lt;br /&gt;
BPI-Leaf-S3开发板上还增加了一个I²C 4pin连接座，使开发板连接一些I²C设备更加便捷稳固。其实此接口并不局限于连接I²C设备，所有可以通过一根3.3v线，一根GND线，一或两根信号线控制的设备都可以通过此4pin连接座与开发板建立通信。&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP32-S3 ==&lt;br /&gt;
&lt;br /&gt;
ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片，支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器，主频高达 240 MHz，内置 512 KB SRAM (TCM)，具有 45 个可编程 GPIO 管脚和丰富的通信接口。ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM，支持用户配置数据缓存与指令缓存。&lt;br /&gt;
&lt;br /&gt;
以下是ESP32-S3芯片重要功能的描述。&lt;br /&gt;
&lt;br /&gt;
* '''支持Wi-Fi + Bluetooth 5 (LE) 无线连接''': ESP32-S3 集成 2.4 GHz Wi-Fi (802.11 b/g/n)，支持 40 MHz 带宽；其低功耗蓝牙子系统支持 Bluetooth 5 (LE) 和 Bluetooth Mesh，可通过 Coded PHY 与广播扩展实现远距离通信。它还支持 2 Mbps PHY，用于提高传输速度和数据吞吐量。ESP32-S3 的 Wi-Fi 和 Bluetooth LE 射频性能优越，在高温下也能稳定工作。&lt;br /&gt;
&lt;br /&gt;
* '''支持 AI 加速''': ESP32-S3 MCU 增加了用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions)。AI 开发者们通过 ESP-DSP 和 ESP-NN 库使用这些向量指令，可以实现高性能的图像识别、语音唤醒和识别等应用。&lt;br /&gt;
&lt;br /&gt;
* '''丰富的 IO 接口''': ESP32-S3 拥有 45 个可编程 GPIO 以及 SPI、I2S、I2C、PWM、RMT、ADC、UART、SD/MMC 主机控制器和 TWAITM 控制器等常用外设接口。其中的 14 个 GPIO 可被配置为 HMI 交互的电容触摸输入端。此外，ESP32-S3 搭载了超低功耗协处理器 (ULP)，支持多种低功耗模式，广泛适用于各类低功耗应用场景。&lt;br /&gt;
&lt;br /&gt;
* '''完善的安全机制''': ESP32-S3 为物联网设备提供了完善的安全机制和保护措施，防止各类恶意攻击和威胁。它支持基于 AES-XTS 算法的 flash 加密、基于 RSA 算法的安全启动、数字签名和 HMAC。ESP32-S3 还新增了一个“世界控制器 (World Controller)”模块，提供了两个互不干扰的执行环境，实现可信执行环境或权限分离机制。&lt;br /&gt;
&lt;br /&gt;
= 硬件 =&lt;br /&gt;
&lt;br /&gt;
== 硬件接口示意图 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Leaf-S3_board.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== 硬件规格 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 规格表&lt;br /&gt;
|-&lt;br /&gt;
| SoC主控芯片&lt;br /&gt;
| ESP32-S3，Xtensa® 32 位 LX7 双核处理器&lt;br /&gt;
|-&lt;br /&gt;
| 主频&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| 工作温度&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| 片上 ROM&lt;br /&gt;
| 384 KB &lt;br /&gt;
|-&lt;br /&gt;
| 片上 SRAM&lt;br /&gt;
| 320 KB&lt;br /&gt;
|-&lt;br /&gt;
| 板载 FLASH ROM&lt;br /&gt;
| 8MB&lt;br /&gt;
|-&lt;br /&gt;
| 片上外设PSRAM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n ，2.4Ghz频带，150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| 蓝牙&lt;br /&gt;
| Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-Leaf-S3已引出36个可用GPIO&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
| 2 × 12 位 SAR ADC，支持 20 个模拟通道输入&lt;br /&gt;
|-&lt;br /&gt;
| TOUCH 电容式触摸传感器&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2，支持主机或从机模式&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2，串行立体声数据的输入输出&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1，支持 8 位 ~16 位并行 RGB、I8080、MOTO6800 接口&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1，支持 8 位 ~16 位 DVP 图像传感器接口&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3 ，支持异步通信（RS232 和RS485）和 IrDA&lt;br /&gt;
|-&lt;br /&gt;
| PWM &lt;br /&gt;
| 8 路独立通道，14位精度&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM &lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × 全速USB 2.0 OTG，Type-C母口&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG 控制器&lt;br /&gt;
| 1，USB 全速标准，CDC-ACM ，JTAG&lt;br /&gt;
|-&lt;br /&gt;
| 温度传感器&lt;br /&gt;
| 1，测量范围为–20 °C 到 110 °C，用于监测芯片内部温度&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO主机接口，具有2个卡槽，支持SD卡3.0和3.01，SDIO 3.0，CE-ATA 1.1，MMC 4.41，eMMC 4.5和4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® 控制器&lt;br /&gt;
| 1 ，兼容 ISO11898-1（CAN 规范 2.0）&lt;br /&gt;
|-&lt;br /&gt;
| 通用 DMA 控制器&lt;br /&gt;
| 5 个接收通道和 5 个发送通道&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4 通道发射，4通道接收，共享 384 x 32-bit 的 RAM&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| 4个脉冲计数控制器（单元），每个单元有2个独立的通道&lt;br /&gt;
|-&lt;br /&gt;
| 定时器&lt;br /&gt;
| 4 × 54 位通用定时器，16 位时钟预分频器，1 × 52 位系统定时器，3 × 看门狗定时器&lt;br /&gt;
|-&lt;br /&gt;
| 外部晶振&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC 和低功耗管理&lt;br /&gt;
| 电源管理单元 (PMU)+ 超低功耗协处理器 (ULP)&lt;br /&gt;
|-&lt;br /&gt;
| 低功耗电流&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| 工作电压&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| 输入电压&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| 最大放电电流&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| USB充电&lt;br /&gt;
| 支持&lt;br /&gt;
|-&lt;br /&gt;
| 最大充电电流&lt;br /&gt;
| 500mA&lt;br /&gt;
|-&lt;br /&gt;
| 可控全彩色LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 硬件尺寸 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Leaf-S3_board_dimension.png | 700px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 尺寸表&lt;br /&gt;
|-&lt;br /&gt;
| 管脚间距&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔间距&lt;br /&gt;
| 23mm/ 62.25mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔尺寸&lt;br /&gt;
| 内径2mm/外径3mm&lt;br /&gt;
|-&lt;br /&gt;
| 主板尺寸&lt;br /&gt;
| 26 × 65.25(mm)/1.02 x 2.57(inches)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
管脚间距兼容万能板（洞洞板、点阵板），面包板，便于调试应用。&lt;br /&gt;
&lt;br /&gt;
== 外设GPIO管脚分配 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 外设GPIO管脚分配&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| 外设接口&lt;br /&gt;
| 信号&lt;br /&gt;
| 管脚&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| 触摸传感器&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | 默认分配管脚，可重定义为任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| 任意GPIO &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 已用于FLASH与PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 彩色LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 软件 =&lt;br /&gt;
&lt;br /&gt;
== ESP-IDF ==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF 是乐鑫官方推出的物联网开发框架，支持 Windows、Linux 和 macOS 操作系统。&lt;br /&gt;
&lt;br /&gt;
建议开发者通过集成开发环境 (IDE) 安装 ESP-IDF:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README_CN.md GitHub: ESP-IDF Eclipse 插件安装与使用指南]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode 插件] | [https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/toc.md GitHub: 安装与使用指南] | [https://www.bilibili.com/video/BV17p4y167uN bilibili：ESP-IDF VSCode 插件快速操作指南]&lt;br /&gt;
&lt;br /&gt;
或者根据操作系统选择对应的手动安装流程:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/windows-setup.html Windows 平台工具链的标准设置]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/linux-macos-setup.html Linux 和 macOS 平台工具链的标准设置]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-reference/index.html#api API 参考]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-guides/index.html#api API 指南]&lt;br /&gt;
&lt;br /&gt;
为了使你的BPI-Leaf-S3开发板可以通过USB-CDC刷写FLASH，需要设置开发板为固件下载模式。&lt;br /&gt;
&lt;br /&gt;
有两种操作方法：&lt;br /&gt;
&lt;br /&gt;
1.通过USB连接到电脑，按住BOOT键，再按一下RESET键并松开，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
2.在断开供电的条件下按住BOOT键，再通过USB连接到电脑，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
需要在设备管理器中确认接口，固件下载模式与普通模式下的接口序号可能是不一样的。&lt;br /&gt;
&lt;br /&gt;
== MicroPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
MicroPython实现了大部分Python 3 特性和语法，易学易上手，验证程序效果无需编译直接下载进芯片运行。&lt;br /&gt;
&lt;br /&gt;
无论是否有编程基础，MicroPython的上手难度绝对远低于其他编程语言，其代码易读性高，且开源社区有多年积累的丰富资源，就如同Python一样拥有极强的生命力与应用价值。&lt;br /&gt;
&lt;br /&gt;
* '''[https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/tree/main/Example/MicroPython-zh#1%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B GitHub: MicroPython快速上手]'''&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_运行环境搭建 | MicroPython运行环境搭建(Thonny IDE) ]]&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_固件下载与烧录 | MicroPython固件下载与烧录 ]]&lt;br /&gt;
&lt;br /&gt;
== CircuitPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:CircuitPython_Repo_header_logo.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
CircuitPython是旨在简化在单片机开发板上进行编程实验和学习的一种编程语言。&lt;br /&gt;
&lt;br /&gt;
配合Mu编辑器进行CircuitPython编程是最低难度的上手方法，安装软件，连接设备即可开始使用。&lt;br /&gt;
&lt;br /&gt;
[https://circuitpython.org/board/bpi_leaf_s3/ BPI-Leaf-S3 CircuitPython 下载页面]&lt;br /&gt;
&lt;br /&gt;
[https://codewith.mu/ Mu编辑器 下载页面]&lt;br /&gt;
&lt;br /&gt;
'''安装tinyUF2固件：'''&lt;br /&gt;
&lt;br /&gt;
为了使你的BPI-Leaf-S3开发板可以通过USB-CDC刷写FLASH，需要设置开发板为固件下载模式。&lt;br /&gt;
&lt;br /&gt;
通过USB连接到电脑，按住BOOT键，再按一下RESET键并松开，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
在BPI-Leaf-S3 CircuitPython 下载页面底部的 Install, Repair, or Update UF2 Bootloader 栏目中，参考其说明下载安装tinyUF2固件。&lt;br /&gt;
&lt;br /&gt;
'''安装CircuitPython固件：'''&lt;br /&gt;
&lt;br /&gt;
在BPI-Leaf-S3 CircuitPython 下载页面右侧点击 DOWNLOAD .UF2 NOW 按钮下载固件到本地，随后拷贝至BPI-Leaf-S3 UF2 Bootloader模式下的磁盘中，自动复位后即可使用。&lt;br /&gt;
&lt;br /&gt;
'''已得到adafruit/circuitpython GitHub存储库支持'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/adafruit/circuitpython/pull/6904&lt;br /&gt;
&lt;br /&gt;
'''已得到adafruit/tinyuf2 GitHub存储库支持'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/adafruit/tinyuf2/pull/196&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino 是一个开源嵌入式软硬件开发平台，用来供用户制作可交互式的嵌入式项目。&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino快速上手]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
'''已得到 arduino-esp32 GitHub 存储库支持'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/espressif/arduino-esp32/pull/7345&lt;br /&gt;
&lt;br /&gt;
该板已合并到主分支。&lt;br /&gt;
&lt;br /&gt;
= 资料与资源 =&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/sch/BPI-Leaf-S3-Chip-V0.1A.pdf GitHub: BPI-Leaf-S3 开发板原理图PDF]&lt;br /&gt;
&lt;br /&gt;
* [https://www.espressif.com/sites/default/files/documentation/esp32-s3_datasheet_cn.pdf ESP32-S3 技术规格书]&lt;br /&gt;
&lt;br /&gt;
* [https://www.espressif.com/sites/default/files/documentation/esp32-s3_technical_reference_manual_cn.pdf ESP32-S3 技术参考手册]&lt;br /&gt;
&lt;br /&gt;
=样品购买=&lt;br /&gt;
&lt;br /&gt;
* 官方速卖通: https://www.aliexpress.com/item/1005004428945296.html?spm=5261.ProductManageOnline.0.0.48af4edfYbyEoI&lt;br /&gt;
* 官方淘宝: https://item.taobao.com/item.htm?spm=a2126o.success.0.0.29034831FGnLQW&amp;amp;id=677287234553&lt;br /&gt;
* OEM&amp;amp;OEM 定制服务 ： sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-Leaf-S3&amp;diff=13463</id>
		<title>BPI-Leaf-S3</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-Leaf-S3&amp;diff=13463"/>
				<updated>2022-12-19T02:07:52Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* Hardware Spec */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:BPI-Leaf-S3 开发板]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
[[File:BPI-Leaf-S3_banner.jpg]]&lt;br /&gt;
[[File:Leaf-S3-incline-front.jpg|thumb|[[BPI-Leaf-S3]] with ESP32-S3]]&lt;br /&gt;
[[File:Leaf-S3-incline-back.jpg|thumb|[[BPI-Leaf-S3]] with ESP32-S3]]&lt;br /&gt;
[[File:PICO-1000-7.jpg|thumb|[[BPI-PicoW-S3 ]]with ESP32-S3]]&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
The Banana Pi BPI-Leaf-S3 is a series of low-powered microcontrollers designed for IoT development and Maker DIY board.It supports 2.4 GHz Wi-Fi and Bluetooth® LE dual-mode wireless communication, the peripheral is compatible with low-power hardware design, and the power consumption is only 10uA in deep sleep mode.&lt;br /&gt;
&lt;br /&gt;
The main controller supports two power supply inputs: USB and external 3.7V lithium battery, both can be interchangable freely.  The battery could also be charged while USB is plugged in.  Compact size, various interface, easy to use, and can be directly applied to low-power IoT projects.&lt;br /&gt;
&lt;br /&gt;
In terms of programming, the Leaf-S3 supports ESP-IDF, Arduino, micropython and other methods.&lt;br /&gt;
&lt;br /&gt;
The IO pins on BPI-Leaf-S3 are identical to the Espressif ESP32-S3-DevKitC-1, developers can add peripherals that are supported by DevKitC-1 onto the BPI-Leaf-S3, and can also combine it onto a breadboard.&lt;br /&gt;
&lt;br /&gt;
== Key Features ==&lt;br /&gt;
&lt;br /&gt;
* ESP32-S3，Xtensa® 32 bit LX7&lt;br /&gt;
* External PSRAM , FLASH&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI ，Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD，CAMERA ，USB , JTAG&lt;br /&gt;
* 1* JST SH 1mm 4-Pin Socket, support I2C&lt;br /&gt;
* 1 * USB Type-C&lt;br /&gt;
* 1 * MX 1.25mm 2-Pin Socket，support charging&lt;br /&gt;
* 1 * Neopixel LED&lt;br /&gt;
&lt;br /&gt;
== ESP32-S3-DevKitC-1, BPI-Leaf-S3 Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! Dev Board&lt;br /&gt;
! BPI-Leaf-S3&lt;br /&gt;
! ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| GPIO Pins&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v Pins&lt;br /&gt;
| 3&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| 5v Pins&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND Pins&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| ARGB LEDs&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| Chip Internal USB&lt;br /&gt;
| USB-C Connector x 1&lt;br /&gt;
| MicroUSB Connector x 1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL to USB&lt;br /&gt;
| None&lt;br /&gt;
| CP2102-MicroUSB Connector x 1&lt;br /&gt;
|-&lt;br /&gt;
| External Battery Socket&lt;br /&gt;
| 3.7v Li-ion Battery dock&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| Battery Charging&lt;br /&gt;
| 500mA Charging Current&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| JST SH 1mm 4-Pin Socket&lt;br /&gt;
| 1&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The amount, numeric order, and spacing of IO pins on BPI-Leaf-S3 are identical to the Espressif ESP32-S3-DevKitC-1.&lt;br /&gt;
&lt;br /&gt;
The BPI-Leaf-S3 dev board no longer equips traditional UART TTL to USB converter chip and its dedicated USB port.  This is due to the ESP32-S3 chip's internal USB function were improved, supporting CDC-ACM virtual serial port and JTAG interface, which is capable of software development and firmware management feature, that makes the external converter chip redundant. &lt;br /&gt;
&lt;br /&gt;
Compared to ESP32-S3-DevKitC-1 dev board, the BPI-Leaf-S3 adds an external battery socket and a charging circuit, capable of charging the battery via USB. When a 3.7v battery is connected, unplugging the USB will not cause the program to break, making it fit for multiple applications.&lt;br /&gt;
&lt;br /&gt;
BPI-Leaf-S3 dev board is equipped with an I²C 4 pin dock, this stabalizes connection to other I²C peripherals.  This dock is not only restricted to I²C connection, any module that requires a 3.3v pin, a GND pin, one or two data pin can also be connected to the Leaf-S3 via this 4 pin dock.&lt;br /&gt;
&lt;br /&gt;
==Espressif ESP32-S3==&lt;br /&gt;
&lt;br /&gt;
ESP32-S3 is a dual-core XTensa LX7 MCU, capable of running at 240 MHz. Apart from its 512 KB of internal SRAM, it also comes with integrated 2.4 GHz, 802.11 b/g/n Wi-Fi and Bluetooth 5 (LE) connectivity that provides long-range support. It has 45 programmable GPIOs and supports a rich set of peripherals. Compared with ESP32, it supports larger, high-speed octal SPI flash, and PSRAM with configurable data and instruction cache.&lt;br /&gt;
&lt;br /&gt;
What follows is a description of the most important features of ESP32-S3.&lt;br /&gt;
&lt;br /&gt;
* Wi-Fi + Bluetooth 5 (LE) Wireless Connectivity: ESP32-S3 supports a 2.4 GHz Wi-Fi (802.11 b/g/n) with 40 MHz of bandwidth support. The Bluetooth Low Energy subsystem supports long range through Coded PHY and advertisement extension. It also supports higher transmission speed and data throughput, with 2 Mbps PHY. Both Wi-Fi and BLE have superior RF performance that is maintained even at high temperatures.&lt;br /&gt;
&lt;br /&gt;
* AI Acceleration Support: ESP32-S3 has additional support for vector instructions in the MCU, which provides acceleration for neural network computing and signal processing workloads. The software libraries for the above-mentioned optimized functions will become available very soon, in the form of updates to ESP-WHO and ESP-Skainet.&lt;br /&gt;
&lt;br /&gt;
* Rich Set of IO Peripherals: ESP32-S3 has 44 programmable GPIOs, namely 10 more GPIOs than those of ESP32. ESP32-S3 supports all the commonly-used peripherals, such as SPI, I2S, I2C, PWM, RMT, ADC and UART, SD/MMC host and TWAITM. In total, 14 GPIOs can be configured as capacitive touch input for HMI applications. Apart from all these peripherals, however, ESP32-S3 is also equipped with an ultra-low-power (ULP) core that supports multiple low-power modes in a variety of such use-cases.&lt;br /&gt;
&lt;br /&gt;
* Security:ESP32-S3 provides all the necessary security requirements for building securely connected devices, without requiring any external components. It supports AES-XTS-based flash encryption and RSA-based secure boot. In addition, ESP32-S3 has a digital signature peripheral and an HMAC module, which provide functionality that is similar to the hardware secure element, thus protecting the private or symmetric key from software attacks and identity theft. ESP32-S3 also has a “World Controller” peripheral that provides two fully-isolated execution environments, which enable the implementation of a trusted-execution environment or a privilege-separation scheme.&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
== Hardware sketch map ==&lt;br /&gt;
&lt;br /&gt;
[[File:Leaf-S3_board.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Hardware Spec ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 Spec&lt;br /&gt;
|-&lt;br /&gt;
| SoC&lt;br /&gt;
| ESP32-S3，Xtensa® dual-core 32-bit LX7 microprocessor&lt;br /&gt;
|-&lt;br /&gt;
| Clock Frequency&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| Operating Temperature&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| Internal ROM&lt;br /&gt;
| 384 KB &lt;br /&gt;
|-&lt;br /&gt;
| Internal SRAM&lt;br /&gt;
| 320 KB&lt;br /&gt;
|-&lt;br /&gt;
| Onboard FLASH ROM&lt;br /&gt;
| 8MB&lt;br /&gt;
|-&lt;br /&gt;
| On-chip PSRAM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n ，2.4Ghz，150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth&lt;br /&gt;
| Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-Leaf-S3 has led out 36 available gpios&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
|  2 × 12-bit SAR ADCs, up to 20 channels&lt;br /&gt;
|-&lt;br /&gt;
| Touch Sensor&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1 × LCD interface (8-bit ~16-bit parallel RGB, I8080 and MOTO6800)&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1 × DVP 8-bit ~16-bit camera interface&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3 &lt;br /&gt;
|-&lt;br /&gt;
| PWM &lt;br /&gt;
| 8 channels 14 bits&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM &lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × full-speed USB OTG，female Type-C socket&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG controller&lt;br /&gt;
| 1，CDC-ACM ，JTAG&lt;br /&gt;
|-&lt;br /&gt;
| Temperature Sensor&lt;br /&gt;
| 1，ranging from -20 °C to 110 °C&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO host controller with 2 slots,SD 3.0,SD 3.01,SDIO 3.0,CE-ATA 1.1,MMC 4.41,eMMC 4.5,eMMC 4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® controller&lt;br /&gt;
| 1 ，compatible with ISO 11898-1 (CAN Specification 2.0)&lt;br /&gt;
|-&lt;br /&gt;
| General DMA controller (GDMA)&lt;br /&gt;
| 5 transmit channels and 5 receive channels&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4 TX channels,4RX channels.Eight channels share a 384 x 32-bit RAM&lt;br /&gt;
|-&lt;br /&gt;
| Pulse Count Controller&lt;br /&gt;
| 4 independent pulse counters (units).Each unit consists of two independent channels&lt;br /&gt;
|-&lt;br /&gt;
| Timers&lt;br /&gt;
| 4 × 54-bit general-purpose timers. 1 × 52-bit system timer. 3 × watchdog timers&lt;br /&gt;
|-&lt;br /&gt;
| External crystal oscillator&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC and Low­Power Management&lt;br /&gt;
| Power Management Unit (PMU) + Ultra-­Low-­Power Coprocessor(ULP)&lt;br /&gt;
|-&lt;br /&gt;
| Deep-sleep consumption current&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| Operating Voltage&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| Input Voltage&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| Maximum discharge current&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| USB charge&lt;br /&gt;
| Support&lt;br /&gt;
|-&lt;br /&gt;
| Maximum charging current&lt;br /&gt;
| 500mA&lt;br /&gt;
|-&lt;br /&gt;
| Neopixel LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hardware Dimensions ==&lt;br /&gt;
&lt;br /&gt;
[[File:Leaf-S3_board_dimension.png | 700px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 Dimensions&lt;br /&gt;
|-&lt;br /&gt;
| Pin spacing&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| Mounting hole spacing&lt;br /&gt;
| 23mm/ 62.25mm&lt;br /&gt;
|-&lt;br /&gt;
| Mounting hole size&lt;br /&gt;
| bore 2mm/outside 3mm&lt;br /&gt;
|-&lt;br /&gt;
| Motherboard size&lt;br /&gt;
| 26 × 65.25(mm)/1.02 x 2.57(inches)&lt;br /&gt;
|-&lt;br /&gt;
| board thickness&lt;br /&gt;
| 1.2mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin spacing is breadboard compatible for easy application debugging.&lt;br /&gt;
&lt;br /&gt;
== Peripheral Pin Configurations ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 GPIO Pin define&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| Peripheral Interface&lt;br /&gt;
| Signal&lt;br /&gt;
| Pin&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| Touch sensor&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | The pins are assigned by default, and can be redefined to any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| any GPIO &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Used for FLASH and PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| Pulse counter&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（on-chip PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（on-chip PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（on-chip PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（on-chip PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（external PHY）&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| Neopixel LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP-IDF ==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF is the development framework for Espressif SoCs supported on Windows, Linux and macOS.&lt;br /&gt;
&lt;br /&gt;
It is recommend that developers install ESP-IDF via IDE.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README.md GitHub: ESP-IDF Eclipse Plugin README]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode Extension] | [https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/toc.md GitHub: README ] | [https://www.youtube.com/watch?v=Lc6ausiKvQM youtube: Quick User Guide for the ESP-IDF VSCode Extension]&lt;br /&gt;
&lt;br /&gt;
Or install manually based on operating system:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/get-started/windows-setup.html Standard Setup of Toolchain for Windows]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/get-started/linux-macos-setup.html Standard Toolchain Setup for Linux and macOS]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-reference/index.html#api-reference ESP-IDF API Reference Docs]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-guides/index.html#api-guides ESP-IDF API Guides]&lt;br /&gt;
&lt;br /&gt;
To enable your BPI-Leaf-S3 device to flash via USB-CDC.&lt;br /&gt;
&lt;br /&gt;
There are two ways to enter Bootloader mode:&lt;br /&gt;
&lt;br /&gt;
# Connect it to the computer via USB, hold BOOT button, press RST button once, then release BOOT button.&lt;br /&gt;
# Hold BOOT button while disconnected to power, connect to PC via USB, then release BOOT button.&lt;br /&gt;
&lt;br /&gt;
The chip controls GPIO0 via BOOT button to choose between reset or cold boot.&lt;br /&gt;
&lt;br /&gt;
Confirm the port of your BPI-Leaf-S3 device via device manager, it might display different port if you are on different modes.&lt;br /&gt;
&lt;br /&gt;
== MicroPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Regardless of the programmer is a beginner or not, MicroPython is considered to be less difficult to develop than other MCU programming languages.&lt;br /&gt;
&lt;br /&gt;
Its code is easy to understand compared to other programming languages, and it has various resources accumulated over the years by the open source community.&lt;br /&gt;
&lt;br /&gt;
Just like Python, it has strong vitality and application value. &lt;br /&gt;
&lt;br /&gt;
* [[ micropython_operating_env | Building MicroPython Operating Environment ]]&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_firmware | MicroPython Firmware Download]]&lt;br /&gt;
&lt;br /&gt;
'''Forum resources'''&lt;br /&gt;
&lt;br /&gt;
* [https://forum.banana-pi.org/t/bpi-leaf-s3-oled-displays-potentiometer-voltage-and-progress-bar/13718 BPI-Leaf-S3 OLED displays potentiometer voltage and progress bar]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-with-esp32-s3-use-potentiometer-to-control-neopixel-steplessly/13703 BPI-Leaf-S3 with ESP32-S3, use potentiometer to control neopixel steplessly]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-with-esp32-s3-use-key-interrupts-to-control-neopixel/13660 BPI-Leaf-S3 with ESP32-S3, use key interrupts to control neopixel]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-with-esp32-s3-micropython-neopixel-show/13661 BPI-Leaf-S3 with ESP32-S3 &amp;amp; microPython Neopixel show]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-micropython-getting-started-blink-led-on-bread-board/13634 BPI-Leaf-S3 microPython getting started, blink LED on bread board]&lt;br /&gt;
* [https://forum.banana-pi.org/t/bpi-leaf-s3-micropython-display-web-clock-on-oled-screen/13324 BPI-Leaf-S3+MicroPython: Display Web Clock on OLED screen]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-micropython-use-adc-measuring-potentiometer-to-control-the-motor/13273 BPI-Leaf-S3+MicroPython:Use ADC measuring potentiometer to control the motor]&lt;br /&gt;
* [https://forum.banana-pi.org/t/banana-pi-bpi-leaf-s3-micropython-with-tb6612fng-pwm-motor/13259 Banana Pi BPI-Leaf-S3 MicroPython with TB6612FNG PWM Motor]&lt;br /&gt;
* [https://forum.banana-pi.org/t/making-iot-programming-easy-using-micropython-on-bpi-leaf-s3/13248 Making IoT programming easy，using MicroPython on BPI-Leaf-S3]&lt;br /&gt;
&lt;br /&gt;
== CircuitPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:CircuitPython_Repo_header_logo.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
CircuitPython is a programming language designed to simplify experimenting and learning to code on low-cost microcontroller boards.&lt;br /&gt;
&lt;br /&gt;
CircuitPython programming with Mu editor is the easiest way to get started. Install the software and connect the device to start using it.&lt;br /&gt;
&lt;br /&gt;
[https://circuitpython.org/board/bpi_leaf_s3/ BPI-Leaf-S3 CircuitPython Download Page]&lt;br /&gt;
&lt;br /&gt;
[https://codewith.mu/ Mu Editor]&lt;br /&gt;
&lt;br /&gt;
'''How to install tinyUF2 firmware:'''&lt;br /&gt;
&lt;br /&gt;
To enable your BPI-Leaf-S3 device to flash via USB-CDC.&lt;br /&gt;
&lt;br /&gt;
Connect it to the computer via USB, hold BOOT button, press RST button once, then release BOOT button.&lt;br /&gt;
&lt;br /&gt;
In the Install, Repair, or Update UF2 Bootloader section at the bottom of the page, follow its instructions to download and install tinyUF2 firmware.&lt;br /&gt;
&lt;br /&gt;
'''How to install CircuitPython firmware：'''&lt;br /&gt;
&lt;br /&gt;
Click the DOWNLOAD .UF2 NOW button on the right side of the page to download the firmware to the local, and then copy it to the disk in BPI-Leaf-S3 UF2 Bootloader mode, and it can be used after automatic reset.&lt;br /&gt;
&lt;br /&gt;
'''Supported by the adafruit/circuitpython GitHub repository'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/adafruit/circuitpython/pull/6904&lt;br /&gt;
&lt;br /&gt;
'''Supported by the adafruit/tinyuf2 GitHub repository'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/adafruit/tinyuf2/pull/196&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino is an open source embedded software and hardware development platform for users to create interactive embedded projects.&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE download link] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing Install and configure the Arduino-ESP32 runtime environment]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino Getting Started]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
'''Supported by the arduino-esp32 GitHub repository'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/espressif/arduino-esp32/pull/7345&lt;br /&gt;
&lt;br /&gt;
The board has been merged into the master branch.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/sch/BPI-Leaf-S3-Chip-V0.1A.pdf BPI-Leaf-S3 schematic diagram PDF]&lt;br /&gt;
&lt;br /&gt;
* [https://www.espressif.com/sites/default/files/documentation/esp32-s3_datasheet_en.pdf ESP32-S3 Datasheet]&lt;br /&gt;
&lt;br /&gt;
* [https://www.espressif.com/sites/default/files/documentation/esp32-s3_technical_reference_manual_en.pdf ESP32-S3 Technical Reference Manual]&lt;br /&gt;
&lt;br /&gt;
=Easy to buy sample=&lt;br /&gt;
&lt;br /&gt;
* Aliexpress shop : https://www.aliexpress.com/item/1005004428945296.html?spm=5261.ProductManageOnline.0.0.48af4edfYbyEoI&lt;br /&gt;
* Taobao shop : https://item.taobao.com/item.htm?spm=a2126o.success.0.0.29034831FGnLQW&amp;amp;id=677287234553&lt;br /&gt;
* OEM&amp;amp;OEM customized service ： sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3&amp;diff=13181</id>
		<title>BPI-PicoW-S3</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3&amp;diff=13181"/>
				<updated>2022-11-17T09:16:23Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* BPI-PicoW-S3 VS Rraspberry Pi PicoW, BPI-Leaf-S3, ESP32-S3-DevKitC-1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:BPI-PicoW-S3_开发板]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
[[File:BPI-PicoW-S3 banner.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[File:PICO-1000-7.jpg|thumb|[[BPI-PicoW-S3 ]]with ESP32-S3]]&lt;br /&gt;
[[File:PICO-1000-5.png|thumb|[[BPI-PicoW-S3 ]]with ESP32-S3]]&lt;br /&gt;
[[File:Leaf-S3-incline-front.jpg|thumb|[[BPI-Leaf-S3]] with ESP32-S3]]&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
The Banana Pi BPI-PicoW-S3 is a series of low-powered microcontrollers designed for IoT development and Maker DIY board.same size as Raspberry Pi Pico board,It supports 2.4 GHz Wi-Fi and Bluetooth® LE dual-mode wireless communication, the peripheral is compatible with low-power hardware design, and the power consumption is only 10uA in deep sleep mode.In terms of programming, the PicoW-S3 supports ESP-IDF, Arduino, micropython and other methods.&lt;br /&gt;
&lt;br /&gt;
== key features ==&lt;br /&gt;
&lt;br /&gt;
*ESP32-S3, Xtensa® 32 bit LX7&lt;br /&gt;
* External PSRAM, FLASH&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI, Bluetooth 5, Bluetooth mesh&lt;br /&gt;
* GPIO, ADC, TOUCH, PWM, I2C, SPI, RMT, I2S, UART, LCD, CAMERA, USB, JTAG&lt;br /&gt;
*1*microUSB&lt;br /&gt;
*1*Full color LED&lt;br /&gt;
&lt;br /&gt;
== BPI-PicoW-S3 VS Raspberry Pi PicoW, BPI-Leaf-S3, ESP32-S3-DevKitC-1 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! Development board&lt;br /&gt;
!BPI-PicoW-S3&lt;br /&gt;
!Raspberry Pi PicoW&lt;br /&gt;
!BPI-Leaf-S3&lt;br /&gt;
!ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| GPIO pinout&lt;br /&gt;
| 27&lt;br /&gt;
| 27&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v pin&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 5v pin&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND pin&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| Full color LED&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| None&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| Chip directly connected to USB&lt;br /&gt;
| MicroUSB port x1&lt;br /&gt;
| MicroUSB port x1&lt;br /&gt;
| Type-C USB port x1&lt;br /&gt;
| MicroUSB port x1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL to USB&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| CP2102-MicroUSB interface x1&lt;br /&gt;
|-&lt;br /&gt;
| External battery socket&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| 3.7v lithium battery power supply interface&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| Battery charging&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| 500mA charging&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| I²C 4pin connector&lt;br /&gt;
| None&lt;br /&gt;
| None&lt;br /&gt;
| 1&lt;br /&gt;
| None&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP32-S3 ==&lt;br /&gt;
&lt;br /&gt;
Esp32-S3 is an MCU chip that integrates 2.4 GHz Wi-Fi and Bluetooth 5 (LE) and supports Long Range mode. The ESP32-S3 runs on an Xtensa® 32-bit LX7 dual-core processor with a high frequency of 240 MHz, 512 KB built-in SRAM (TCM), 45 programmable GPIO pins, and a rich communication interface. Esp32-s3 supports larger capacity of high-speed Octal SPI flash and off-chip RAM, and supports user-configured data caching and instruction caching.&lt;br /&gt;
&lt;br /&gt;
What follows is a description of the most important features of ESP32-S3.&lt;br /&gt;
&lt;br /&gt;
* Wi-Fi + Bluetooth 5 (LE) Wireless Connectivity: ESP32-S3 supports a 2.4 GHz Wi-Fi (802.11 b/g/n) with 40 MHz of bandwidth support. The Bluetooth Low Energy subsystem supports long range through Coded PHY and advertisement extension. It also supports higher transmission speed and data throughput, with 2 Mbps PHY. Both Wi-Fi and BLE have superior RF performance that is maintained even at high temperatures.&lt;br /&gt;
&lt;br /&gt;
* AI Acceleration Support: ESP32-S3 has additional support for vector instructions in the MCU, which provides acceleration for neural network computing and signal processing workloads. The software libraries for the above-mentioned optimized functions will become available very soon, in the form of updates to ESP-DSP and ESP-NN.&lt;br /&gt;
&lt;br /&gt;
* Rich IO interfaces: ESP32-S3 has 45 programmable GPIOs and common peripheral interfaces such as SPI, I2S, I2C, PWM, RMT, ADC, UART, SD/MMC host controller and TWAITM controller. Fourteen of the GPIOs can be configured as capacitive touch inputs for HMI interaction. In addition, ESP32-S3 is equipped with an ultra-low power coprocessor (ULP) and supports multiple low-power modes, making it widely applicable to various low-power application scenarios.&lt;br /&gt;
&lt;br /&gt;
* Security mechanism: ESP32-S3 provides comprehensive security mechanism and protection measures for iot devices to prevent all kinds of malicious attacks and threats. It supports Flash encryption based on AES-XTS algorithm, secure startup based on RSA algorithm, digital signature and HMAC. Esp32-s3 also includes a new &amp;quot;World Controller&amp;quot; module, which provides two non-interfering execution environments to implement a trusted execution environment or permission separation mechanism.&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
== Hardware interface ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-PicoW-S3-V0.4-IO.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Hardware spec ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 Spec Sheet&lt;br /&gt;
|-&lt;br /&gt;
| SoC&lt;br /&gt;
| ESP32-S3, Xtensa® 32-bit LX7 dual core&lt;br /&gt;
|-&lt;br /&gt;
| Basic frequency&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| Operating temperature&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| On-chip ROM&lt;br /&gt;
| 384KB&lt;br /&gt;
|-&lt;br /&gt;
| On-chip SRAM&lt;br /&gt;
| 320KB&lt;br /&gt;
|-&lt;br /&gt;
| Extereal FLASH&lt;br /&gt;
| 8MB&lt;br /&gt;
|-&lt;br /&gt;
| In-packge PSRAM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n, 2.4Ghz band, 150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth&lt;br /&gt;
| Bluetooth 5, Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-PicoW-S3 has led out 27 available GPIOs&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
| 2 × 12-bit SAR ADC supporting 18 analog channel inputs&lt;br /&gt;
|-&lt;br /&gt;
| TOUCH Capacitive Touch Sensor&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2. Support master or slave mode&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2, input and output of serial stereo data&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1, support 8-bit ~16-bit parallel RGB, I8080, MOTO6800 interface&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1, supports 8-bit ~16-bit DVP image sensor interface&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3, supports asynchronous communication (RS232 and RS485) and IrDA&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| 8 independent channels, 14-bit precision&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × Full Speed ​​USB 2.0 OTG, MicroUSB Female&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG Controller&lt;br /&gt;
| 1, USB full speed standard, CDC-ACM, JTAG&lt;br /&gt;
|-&lt;br /&gt;
| Temperature sensor&lt;br /&gt;
| 1, the measurement range is –20 °C to 110 °C, for monitoring the internal temperature of the chip&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO host interface, with 2 card slots, supports SD card 3.0 and 3.01, SDIO 3.0, CE-ATA 1.1, MMC 4.41, eMMC 4.5 and 4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® Controller&lt;br /&gt;
| 1, compatible with ISO11898-1 (CAN specification 2.0)&lt;br /&gt;
|-&lt;br /&gt;
| Generic DMA Controller&lt;br /&gt;
| 5 receive channels and 5 transmit channels&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4-channel transmit, 4-channel receive, shared 384 x 32-bit RAM&lt;br /&gt;
|-&lt;br /&gt;
| Pulse Counter&lt;br /&gt;
| 4 pulse count controllers (units), each unit has 2 independent channels&lt;br /&gt;
|-&lt;br /&gt;
| Timer&lt;br /&gt;
| 4 × 54-bit general-purpose timers, 16-bit clock prescaler, 1 × 52-bit system timer, 3 × watchdog timers&lt;br /&gt;
|-&lt;br /&gt;
| External crystal&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC and Low Power Management&lt;br /&gt;
| Power Management Unit (PMU) + Ultra Low Power Coprocessor (ULP)&lt;br /&gt;
|-&lt;br /&gt;
| Low power consumption current&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| Working Voltage&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| Input voltage&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| Maximum discharge current&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| Controllable full color LED&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| Controllable monochrome LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hardware Size ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-Pico-S3-board-dimension.png|800px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 size chart&lt;br /&gt;
|-&lt;br /&gt;
| Pin spacing&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| Hole Spacing&lt;br /&gt;
| 11.4mm/ 47mm&lt;br /&gt;
|-&lt;br /&gt;
| Hole size&lt;br /&gt;
| Inner diameter 2.1mm/Outer diameter 3.4mm&lt;br /&gt;
|-&lt;br /&gt;
| Mainboard size&lt;br /&gt;
| 21 × 51.88(mm)/0.83 x 2.04(inches)&lt;br /&gt;
|-&lt;br /&gt;
| Thickness&lt;br /&gt;
| 1.2mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The pin spacing is compatible with universal boards (hole boards, dot matrix boards) and breadboards, which is convenient for debugging applications.&lt;br /&gt;
&lt;br /&gt;
==GPIO define ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 peripheral GPIO pin assignment&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| Peripheral Interface&lt;br /&gt;
| Signal&lt;br /&gt;
| Pins&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| Touch Sensor&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | Default assigned pins, can be redefined as any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| Any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| Any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| Any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| Any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | Any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Used for FLASH and PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| Pulse Counter&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19 (internal PHY)&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20 (internal PHY)&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42 (External PHY)&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41 (External PHY)&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21 (External PHY)&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40 (External PHY)&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39 (External PHY)&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38 (External PHY)&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19 (internal PHY)&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20 (internal PHY)&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42 (External PHY)&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41 (External PHY)&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40 (External PHY)&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39 (External PHY)&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38 (External PHY)&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Any GPIO&lt;br /&gt;
|-&lt;br /&gt;
| Full Color LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|-&lt;br /&gt;
| Monochrome LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 46&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
&lt;br /&gt;
== CircuitPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:CircuitPython_Repo_header_logo.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
CircuitPython is a programming language designed to simplify experimenting and learning to code on low-cost microcontroller boards.&lt;br /&gt;
&lt;br /&gt;
CircuitPython programming with Mu editor is the easiest way to get started. Install the software and connect the device to start using it.&lt;br /&gt;
&lt;br /&gt;
* [https://codewith.mu/ Mu Editor Download Page]&lt;br /&gt;
&lt;br /&gt;
* [[ code_circuitpython_with_mu_en | Getting Started: Code CircuitPython with Mu Editor ]]&lt;br /&gt;
&lt;br /&gt;
'''Supported by the adafruit/circuitpython GitHub repository'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/adafruit/circuitpython/pull/7031&lt;br /&gt;
&lt;br /&gt;
'''Supported by the adafruit/tinyuf2 GitHub repository'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/adafruit/tinyuf2/pull/250&lt;br /&gt;
&lt;br /&gt;
'''Reference Resources''' :&lt;br /&gt;
&lt;br /&gt;
* [https://learn.adafruit.com/welcome-to-circuitpython Adafruit: Welcome To CircuitPython]&lt;br /&gt;
&lt;br /&gt;
* [https://learn.adafruit.com/getting-started-with-web-workflow-using-the-code-editor/overview Adafruit:CircuitPython Web Workflow Code Editor Quick Start]&lt;br /&gt;
&lt;br /&gt;
* [https://circuitpython.readthedocs.io/ Adafruit:CircuitPython Docs]&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/todbot/circuitpython-tricks GitHub:CircuitPython-tricks]&lt;br /&gt;
&lt;br /&gt;
* [https://forum.banana-pi.org/t/bpi-pico-s3-getting-started-code-circuitpython-with-mu-editor/13969 BPI-Pico-S3 Getting Started, Code CircuitPython with Mu Editor]&lt;br /&gt;
&lt;br /&gt;
==ESP-IDF==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF is an IoT development framework officially launched by Espressif, supporting Windows, Linux and macOS operating systems.&lt;br /&gt;
&lt;br /&gt;
It is recommended that developers install ESP-IDF via an integrated development environment (IDE):&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README_CN.md GitHub: ESP-IDF Eclipse Plugin Installation and Usage Guide]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode plugin] | [https://github.com/espressif/vscode-esp-idf-extension/blob /master/docs/tutorial/toc.md GitHub: Installation and Usage Guide] | [https://www.bilibili.com/video/BV17p4y167uN bilibili: ESP-IDF VSCode Plugin Quick Operation Guide]&lt;br /&gt;
&lt;br /&gt;
Or select the corresponding manual installation process according to the operating system:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/en_US/latest/esp32s3/get-started/windows-setup.html Standard setup for Windows platform toolchain]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/en_US/latest/esp32s3/get-started/linux-macos-setup.html Standard setup for Linux and macOS platform toolchains]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/en_US/latest/esp32s3/api-reference/index.html#api API Reference]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/en_US/latest/esp32s3/api-guides/index.html#api API Guide]&lt;br /&gt;
&lt;br /&gt;
In order to enable your BPI-Leaf-S3 development board to flash FLASH through USB-CDC, you need to set the development board to firmware download mode.&lt;br /&gt;
&lt;br /&gt;
There are two methods of operation:&lt;br /&gt;
&lt;br /&gt;
1. Connect to the computer via USB, press and hold the BOOT button, then press the RESET button and release it, and finally release the BOOT button.&lt;br /&gt;
&lt;br /&gt;
2. Press and hold the BOOT button when the power supply is disconnected, then connect to the computer via USB, and finally release the BOOT button.&lt;br /&gt;
&lt;br /&gt;
You need to confirm the interface in the device manager. The serial number of the interface in the firmware download mode and the normal mode may be different.&lt;br /&gt;
&lt;br /&gt;
==MicroPython==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
MicroPython implements most of the features and syntax of Python 3, which is easy to learn and use, and can be downloaded directly into the chip to run the verification program without compiling.&lt;br /&gt;
&lt;br /&gt;
Regardless of whether you have a programming foundation or not, MicroPython is far less difficult to get started with than other programming languages. Its code is easy to read, and the open source community has accumulated rich resources over the years. Just like Python, it has strong vitality and application value.&lt;br /&gt;
&lt;br /&gt;
==Arduino==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino is an open source embedded software and hardware development platform for users to create interactive embedded projects.&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE download address] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing Install and configure Arduino-ESP32 operating environment]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino Quick Start]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
=Resources=&lt;br /&gt;
BPI-PicoW-S3 schematic : https://github.com/BPI-STEAM/BPI-PicoW-Doc/blob/main/sch/BPI-PicoW-V0.4.pdf&lt;br /&gt;
&lt;br /&gt;
=Easy to buy sample=&lt;br /&gt;
&lt;br /&gt;
* Official AliExpress:https://www.aliexpress.com/item/1005004775634442.html&lt;br /&gt;
* SinoVoip Aliexpress : https://www.aliexpress.com/item/1005004775859077.html&lt;br /&gt;
* Official Taobao: https://item.taobao.com/item.htm?spm=a2126o.success.0.0.25b04831CHV1Nc&amp;amp;id=684134360199&lt;br /&gt;
* OEM&amp;amp;OEM customized service: sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=13180</id>
		<title>BPI-PicoW-S3 开发板</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=13180"/>
				<updated>2022-11-17T09:16:06Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* BPI-PicoW-S3 与 Rraspberry Pi PicoW、BPI-Leaf-S3、ESP32-S3-DevKitC-1 开发板对比 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:BPI-PicoW-S3]]&lt;br /&gt;
&lt;br /&gt;
= 介绍 =&lt;br /&gt;
[[File:BPI-PicoW-S3 banner.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[File:PICO-1000-7.jpg|thumb|[[BPI-PicoW-S3_开发板 ]]with ESP32-S3]]&lt;br /&gt;
[[File:PICO-1000-5.png|thumb|[[BPI-PicoW-S3_开发板 ]]with ESP32-S3]]&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-PicoW-S3 是一系列低功耗微控制器，专为物联网开发和Maker DIY设计的开发板。与 Raspberry Pi Pico 板尺寸相同，支持 2.4 GHz Wi-Fi 和 Bluetooth® LE 双模无线通信， 外设兼容低功耗硬件设计，深度睡眠模式下功耗仅为10uA。编程方面，PicoW-S3支持ESP-IDF、Arduino、micropython、CircuitPython 等多种方式&lt;br /&gt;
&lt;br /&gt;
== 关键特性 ==&lt;br /&gt;
&lt;br /&gt;
* ESP32-S3，Xtensa® 32 bit LX7&lt;br /&gt;
* 片外 PSRAM , FLASH&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI ，Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD，CAMERA ，USB , JTAG&lt;br /&gt;
* 1 * microUSB&lt;br /&gt;
* 1 * 全彩色LED&lt;br /&gt;
&lt;br /&gt;
== BPI-PicoW-S3 与 Raspberry Pi PicoW、BPI-Leaf-S3、ESP32-S3-DevKitC-1 开发板对比 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! 开发板&lt;br /&gt;
! BPI-PicoW-S3&lt;br /&gt;
! Raspberry Pi PicoW&lt;br /&gt;
! BPI-Leaf-S3&lt;br /&gt;
! ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| 引出GPIO&lt;br /&gt;
| 27&lt;br /&gt;
| 27&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v管脚&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 5v管脚&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND管脚&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| 全彩LED灯&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 无&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| 芯片直连USB&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
| Type-C USB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL转USB&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| CP2102-MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| 外接电池连接座&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 3.7v锂电池供电接口&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| 电池充电&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 500mA充电&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| I²C 4pin连接座&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 1&lt;br /&gt;
| 无&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP32-S3 ==&lt;br /&gt;
&lt;br /&gt;
ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片，支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器，主频高达 240 MHz，内置 512 KB SRAM (TCM)，具有 45 个可编程 GPIO 管脚和丰富的通信接口。ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM，支持用户配置数据缓存与指令缓存。&lt;br /&gt;
&lt;br /&gt;
以下是ESP32-S3芯片重要功能的描述。&lt;br /&gt;
&lt;br /&gt;
* '''支持Wi-Fi + Bluetooth 5 (LE) 无线连接''': ESP32-S3 集成 2.4 GHz Wi-Fi (802.11 b/g/n)，支持 40 MHz 带宽；其低功耗蓝牙子系统支持 Bluetooth 5 (LE) 和 Bluetooth Mesh，可通过 Coded PHY 与广播扩展实现远距离通信。它还支持 2 Mbps PHY，用于提高传输速度和数据吞吐量。ESP32-S3 的 Wi-Fi 和 Bluetooth LE 射频性能优越，在高温下也能稳定工作。&lt;br /&gt;
&lt;br /&gt;
* '''支持 AI 加速''': ESP32-S3 MCU 增加了用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions)。AI 开发者们通过 ESP-DSP 和 ESP-NN 库使用这些向量指令，可以实现高性能的图像识别、语音唤醒和识别等应用。&lt;br /&gt;
&lt;br /&gt;
* '''丰富的 IO 接口''': ESP32-S3 拥有 45 个可编程 GPIO 以及 SPI、I2S、I2C、PWM、RMT、ADC、UART、SD/MMC 主机控制器和 TWAITM 控制器等常用外设接口。其中的 14 个 GPIO 可被配置为 HMI 交互的电容触摸输入端。此外，ESP32-S3 搭载了超低功耗协处理器 (ULP)，支持多种低功耗模式，广泛适用于各类低功耗应用场景。&lt;br /&gt;
&lt;br /&gt;
* '''完善的安全机制''': ESP32-S3 为物联网设备提供了完善的安全机制和保护措施，防止各类恶意攻击和威胁。它支持基于 AES-XTS 算法的 flash 加密、基于 RSA 算法的安全启动、数字签名和 HMAC。ESP32-S3 还新增了一个“世界控制器 (World Controller)”模块，提供了两个互不干扰的执行环境，实现可信执行环境或权限分离机制。&lt;br /&gt;
&lt;br /&gt;
= 硬件 =&lt;br /&gt;
&lt;br /&gt;
== 硬件接口示意图 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-PicoW-S3-V0.4-IO.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== 硬件规格 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 规格表&lt;br /&gt;
|-&lt;br /&gt;
| SoC主控芯片&lt;br /&gt;
| ESP32-S3，Xtensa® 32 位 LX7 双核处理器&lt;br /&gt;
|-&lt;br /&gt;
| 主频&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| 工作温度&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| 片上 ROM&lt;br /&gt;
| 384 KB &lt;br /&gt;
|-&lt;br /&gt;
| 片上 SRAM&lt;br /&gt;
| 320 KB&lt;br /&gt;
|-&lt;br /&gt;
| 外置FLASH&lt;br /&gt;
| 8MB&lt;br /&gt;
|-&lt;br /&gt;
| 封装内PSRAM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n ，2.4Ghz频带，150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| 蓝牙&lt;br /&gt;
| Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-PicoW-S3已引出27个可用GPIO&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
| 2 × 12 位 SAR ADC，支持 18 个模拟通道输入&lt;br /&gt;
|-&lt;br /&gt;
| TOUCH 电容式触摸传感器&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2，支持主机或从机模式&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2，串行立体声数据的输入输出&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1，支持 8 位 ~16 位并行 RGB、I8080、MOTO6800 接口&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1，支持 8 位 ~16 位 DVP 图像传感器接口&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3 ，支持异步通信（RS232 和RS485）和 IrDA&lt;br /&gt;
|-&lt;br /&gt;
| PWM &lt;br /&gt;
| 8 路独立通道，14位精度&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM &lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × 全速USB 2.0 OTG，MicroUSB母口&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG 控制器&lt;br /&gt;
| 1，USB 全速标准，CDC-ACM ，JTAG&lt;br /&gt;
|-&lt;br /&gt;
| 温度传感器&lt;br /&gt;
| 1，测量范围为–20 °C 到 110 °C，用于监测芯片内部温度&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO主机接口，具有2个卡槽，支持SD卡3.0和3.01，SDIO 3.0，CE-ATA 1.1，MMC 4.41，eMMC 4.5和4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® 控制器&lt;br /&gt;
| 1 ，兼容 ISO11898-1（CAN 规范 2.0）&lt;br /&gt;
|-&lt;br /&gt;
| 通用 DMA 控制器&lt;br /&gt;
| 5 个接收通道和 5 个发送通道&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4 通道发射，4通道接收，共享 384 x 32-bit 的 RAM&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| 4个脉冲计数控制器（单元），每个单元有2个独立的通道&lt;br /&gt;
|-&lt;br /&gt;
| 定时器&lt;br /&gt;
| 4 × 54 位通用定时器，16 位时钟预分频器，1 × 52 位系统定时器，3 × 看门狗定时器&lt;br /&gt;
|-&lt;br /&gt;
| 外部晶振&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC 和低功耗管理&lt;br /&gt;
| 电源管理单元 (PMU)+ 超低功耗协处理器 (ULP)&lt;br /&gt;
|-&lt;br /&gt;
| 低功耗电流&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| 工作电压&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| 输入电压&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| 最大放电电流&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| 可控全彩色LED&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| 可控单色LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 硬件尺寸 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-Pico-S3-board-dimension.png|800px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 尺寸表&lt;br /&gt;
|-&lt;br /&gt;
| 管脚间距&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔间距&lt;br /&gt;
| 11.4mm/ 47mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔尺寸&lt;br /&gt;
| 内径2.1mm/外径3.4mm&lt;br /&gt;
|-&lt;br /&gt;
| 主板尺寸&lt;br /&gt;
| 21 × 51.88(mm)/0.83 x 2.04(inches)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
管脚间距兼容万能板（洞洞板、点阵板），面包板，便于调试应用。&lt;br /&gt;
&lt;br /&gt;
== 外设GPIO管脚分配 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 外设GPIO管脚分配&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| 外设接口&lt;br /&gt;
| 信号&lt;br /&gt;
| 管脚&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| 触摸传感器&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | 默认分配管脚，可重定义为任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| 任意GPIO &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 已用于FLASH与PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 全彩色LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|-&lt;br /&gt;
| 单色LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 46&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 软件 =&lt;br /&gt;
&lt;br /&gt;
== CircuitPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:CircuitPython_Repo_header_logo.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
CircuitPython是旨在简化在单片机开发板上进行编程实验和学习的一种编程语言。&lt;br /&gt;
&lt;br /&gt;
配合Mu编辑器进行CircuitPython编程是最低难度的上手方法，安装软件，连接设备即可开始使用。&lt;br /&gt;
&lt;br /&gt;
* [https://codewith.mu/ Mu编辑器官方下载页面]&lt;br /&gt;
&lt;br /&gt;
* [[ code_circuitpython_with_mu_ch | 快速上手: 在Mu编辑器中进行CircuitPython编程 ]]&lt;br /&gt;
&lt;br /&gt;
'''已得到adafruit/circuitpython GitHub存储库支持'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/adafruit/circuitpython/pull/7031&lt;br /&gt;
&lt;br /&gt;
'''已得到adafruit/tinyuf2 GitHub存储库支持'''&lt;br /&gt;
&lt;br /&gt;
https://github.com/adafruit/tinyuf2/pull/250&lt;br /&gt;
&lt;br /&gt;
'''参考资源''':&lt;br /&gt;
&lt;br /&gt;
* [https://learn.adafruit.com/welcome-to-circuitpython Adafruit:CircuitPython入门教程]&lt;br /&gt;
&lt;br /&gt;
* [https://learn.adafruit.com/getting-started-with-web-workflow-using-the-code-editor/overview Adafruit:上手CircuitPython网页代码编辑器]&lt;br /&gt;
&lt;br /&gt;
* [https://circuitpython.readthedocs.io/ Adafruit:CircuitPython文档]&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/todbot/circuitpython-tricks GitHub:CircuitPython技巧与例程]&lt;br /&gt;
&lt;br /&gt;
== ESP-IDF ==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF 是乐鑫官方推出的物联网开发框架，支持 Windows、Linux 和 macOS 操作系统。&lt;br /&gt;
&lt;br /&gt;
建议开发者通过集成开发环境 (IDE) 安装 ESP-IDF:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README_CN.md GitHub: ESP-IDF Eclipse 插件安装与使用指南]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode 插件] | [https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/toc.md GitHub: 安装与使用指南] | [https://www.bilibili.com/video/BV17p4y167uN bilibili：ESP-IDF VSCode 插件快速操作指南]&lt;br /&gt;
&lt;br /&gt;
或者根据操作系统选择对应的手动安装流程:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/windows-setup.html Windows 平台工具链的标准设置]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/linux-macos-setup.html Linux 和 macOS 平台工具链的标准设置]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-reference/index.html#api API 参考]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-guides/index.html#api API 指南]&lt;br /&gt;
&lt;br /&gt;
为了使你的BPI-Leaf-S3开发板可以通过USB-CDC刷写FLASH，需要设置开发板为固件下载模式。&lt;br /&gt;
&lt;br /&gt;
有两种操作方法：&lt;br /&gt;
&lt;br /&gt;
1.通过USB连接到电脑，按住BOOT键，再按一下RESET键并松开，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
2.在断开供电的条件下按住BOOT键，再通过USB连接到电脑，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
需要在设备管理器中确认接口，固件下载模式与普通模式下的接口序号可能是不一样的。&lt;br /&gt;
&lt;br /&gt;
== MicroPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
MicroPython实现了大部分Python 3 特性和语法，易学易上手，验证程序效果无需编译直接下载进芯片运行。&lt;br /&gt;
&lt;br /&gt;
无论是否有编程基础，MicroPython的上手难度绝对远低于其他编程语言，其代码易读性高，且开源社区有多年积累的丰富资源，就如同Python一样拥有极强的生命力与应用价值。&lt;br /&gt;
&lt;br /&gt;
* '''[https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/tree/main/Example/MicroPython-zh#1%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B GitHub: MicroPython快速上手]'''&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_运行环境搭建 | MicroPython运行环境搭建(Thonny IDE) ]]&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_固件下载与烧录 | MicroPython固件下载与烧录 ]]&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino 是一个开源嵌入式软硬件开发平台，用来供用户制作可交互式的嵌入式项目。&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino快速上手]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
= 资料与资源 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=样品购买=&lt;br /&gt;
&lt;br /&gt;
* 比派科技官方速卖通店:https://www.aliexpress.com/item/1005004775634442.html&lt;br /&gt;
* SinoVoip 官方速卖通店 : https://www.aliexpress.com/item/1005004775859077.html&lt;br /&gt;
* 官方淘宝店: https://item.taobao.com/item.htm?spm=a2126o.success.0.0.25b04831CHV1Nc&amp;amp;id=684134360199&lt;br /&gt;
* OEM&amp;amp;OEM 定制服务: sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M5&amp;diff=13118</id>
		<title>Banana Pi BPI-M5</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=Banana_Pi_BPI-M5&amp;diff=13118"/>
				<updated>2022-10-21T03:01:24Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* BPI-M5 40PIN GPIO (CON2) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[zh:香蕉派_BPI-M5]]&lt;br /&gt;
=BPI-M5 Introduction=&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_4.JPG|thumb|[[Banana Pi BPI-M5]] with S905x3 design]]&lt;br /&gt;
[[File:BPI-M2_Pro_2.jpg|thumb|[[Banana Pi BPI-M2 Pro]] S905x3 design]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M2S_1.jpg|thumb|[[Banana Pi BPI-M2S]] Amlogic A311D/S922 chip]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_1.JPG|thumb|Amlogic S905X3 Processor]]&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_2.jpg|thumb|Amlogic S905X3 Processor]]&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-M5_case_1.jpg|thumb|BPI-M5 case design]]&lt;br /&gt;
[[File:Wifibt_module_1.jpeg|thumb|WiFi&amp;amp;BT board, 802.11 a/b/g/n/ac 2T2R WiFi and Bluectooch 5.0]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-M5 is the next generation single board computer from Banana Pi in 2020. It is powered by Amlogic S905X3 quad-core Cortex-A55 (2.0 XXGHz) processor.Onboard 4GB LPDDR4 memory and 16GB EMMC storage, and supports 4 USB 3.0 interface, a gigabit network port.&lt;br /&gt;
&lt;br /&gt;
[[File:Banana_Pi_BPI-M5.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Key Features=&lt;br /&gt;
* Amlogic S905X3 quad core Cortex-A55 (2.0xxGHz)&lt;br /&gt;
* Mali-G31 GPU &lt;br /&gt;
* 4GB LPDDR4&lt;br /&gt;
* 16GB eMMC flash&lt;br /&gt;
* 4 USB 3.0 &lt;br /&gt;
* 1 GbE ethernet&lt;br /&gt;
* HDMI output&lt;br /&gt;
&lt;br /&gt;
==Getting Start==&lt;br /&gt;
*[[Getting Started with M5/M2Pro]]&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Hardware interface==&lt;br /&gt;
[[File:Banana_Pi_BPI-M5_interface1.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Hardware spec==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''HardWare  Specification of Banana pi BPI-M5'''&lt;br /&gt;
|-&lt;br /&gt;
|CPU|| Amlogic S905X3 Quad-Core Cortex-A55 (2.0xxGHz) &lt;br /&gt;
|-&lt;br /&gt;
| GPU||Mali-G31 MP2 GPU with 4 x Execution Engines (650Mhz)&lt;br /&gt;
|-&lt;br /&gt;
| Memory|| 4 GB LPDDR4 &lt;br /&gt;
|-&lt;br /&gt;
| Storage|| MicroSD slot with support for up to 256GB expansion and 16G eMMC flash with support for up to 64GB&lt;br /&gt;
|-&lt;br /&gt;
| Network|| 10/100/1000 Mbit/s Ethernet ,Optional WiFi USB dongle&lt;br /&gt;
|-&lt;br /&gt;
|Video Output(s)|| 1 x HDMI 2.1 (up to 4K@60Hz with HDR, CEC, EDID)&lt;br /&gt;
|-&lt;br /&gt;
| Audio Output(s)|| 3.5mm jack and 1 x HDMI digital output&lt;br /&gt;
|-&lt;br /&gt;
| USB ports|| USB 3.0 PORT (x4)&lt;br /&gt;
|-&lt;br /&gt;
|GPIO|| 40 Pin Header : GPIO (x28) and Power (+5V, +3.3V and GND). GPIO pins can be used for UART, I2C, SPI or PWM &lt;br /&gt;
|-&lt;br /&gt;
|Switches|| Reset, Power and U-boot &lt;br /&gt;
|-&lt;br /&gt;
| LED|| Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
| Power Source|| 5 volt @3A via Micro USB (TYPE C) &lt;br /&gt;
|-&lt;br /&gt;
|Size &amp;amp; Weight|| 92x60mm, 48g&lt;br /&gt;
|-&lt;br /&gt;
|OS|| Android and Linux&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Wifi &amp;amp; BT support via expansion board==&lt;br /&gt;
&lt;br /&gt;
===SDIO interface Wifi&amp;amp;BT===&lt;br /&gt;
&lt;br /&gt;
* WiFi&amp;amp;BT board, 802.11 a/b/g/n/ac 2T2R WiFi and Bluetooth 5.0 , support BPI-M5 and BPI-F2P&lt;br /&gt;
&lt;br /&gt;
[[File:Wifibt_module1_.jpeg]]&lt;br /&gt;
&lt;br /&gt;
*how to use : http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Wifi.2FBT_support&lt;br /&gt;
*discuss on forum : http://forum.banana-pi.org/t/bpi-m5-wifi-bt-board-sdio-interface-802-11-a-b-g-n-ac-2t2r-wifi-and-bluectooch-5-0/11846&lt;br /&gt;
*RT8822CS Bluetooth and WiFi adapter for Banana Pi BPI-M5：https://www.magazinmehatronika.com/en/rt8822cs-bluetooth-and-wifi-adapter-for-banana-pi-m5/?fbclid=IwAR0Oqm4TCa2SAXBTMJgRmWMJI-VQREqFxLh1-LnT_XzA5MAvYh_BL9-L7Xk&lt;br /&gt;
*easy to buy sample : https://www.aliexpress.com/item/1005002550783568.html?spm=5261.ProductManageOnline.0.0.34ed4edfgdV59j&lt;br /&gt;
&lt;br /&gt;
===standard USB interface Wifi&amp;amp;BT===&lt;br /&gt;
&lt;br /&gt;
*Banana Pi Wifi&amp;amp;BT 4.2 expansion Board, standard USB interface, so support all open source boards via USB port.IEEE 802.11b/g/n/ac(1T1R) USB WLANAnd BT Module&lt;br /&gt;
&lt;br /&gt;
[[File:Usb_wifi_bt_board_3.jpg]]&lt;br /&gt;
&lt;br /&gt;
*how to use : http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Wifi.2FBT_support&lt;br /&gt;
*discuss on forum : http://forum.banana-pi.org/t/banana-pi-wifi-bt-4-2-expansion-board-standard-usb-interface/12162&lt;br /&gt;
&lt;br /&gt;
==BPI-M2 Pro VS BPI-M5 VS Odroid C4 VS RPI 4 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background: PaleTurquoise; color: black&amp;quot; colspan=&amp;quot;4&amp;quot;| '''BPI-M2 Pro VS BPI-M5 VS Odroid C4 VS RPI 4'''&lt;br /&gt;
|-&lt;br /&gt;
|||[[Banana Pi BPI-M2 Pro]]||[[Banana Pi BPI-M5]]|| Odroid C4|| Raspberry Pi 4||&lt;br /&gt;
|-&lt;br /&gt;
|Processor||Amlogic S905X3 Quad-Core Cortex-A55 ARMv8.2-A 64-bit 1.5GHz	 ||Amlogic S905X3 Quad-Core Cortex-A55 ARMv8.2-A 64-bit 1.5GHz ||	Amlogic S905X3 Quad-Core Cortex-A55 ARMv8.2-A 64-bit 1.5GHz || 	Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz&lt;br /&gt;
|-&lt;br /&gt;
|GPU	||Mali-G31 MP2 GPU ||Mali-G31 MP2 GPU ||	Mali-G31 MP2 GPU ||	Broadcom VideoCore VI&lt;br /&gt;
|-&lt;br /&gt;
|RAM	||2GB LPDDR4	 ||4GB LPDDR4	 ||DDR4 4GiB with 32-bit bus width ||2GB, 4GB or 8GB LPDDR4-3200 SDRAM&lt;br /&gt;
|-&lt;br /&gt;
|Storage ||	micro SD card slot &amp;amp; 16GB eMMC flash on board||	micro SD card slot &amp;amp; 16GB eMMC flash on board	 ||micro SD card slot , eMMC connector for option ||micro SD card slot, non EMMC &lt;br /&gt;
|-&lt;br /&gt;
|Network ||1 GbE ,WiFi&amp;amp;BT5.0 onbard||	GbE ,Optional WiFi USB dongle ||	GbE	 ||GbE, 2.4 GHz and 5.0 GHz IEEE 802.11ac wireless, Bluetooth 5.0, BLE&lt;br /&gt;
|-&lt;br /&gt;
|Video Output ||	1 x HDMI 2.1 (up to 4K@60Hz with HDR, CEC, EDID)||	1 x HDMI 2.1 (up to 4K@60Hz with HDR, CEC, EDID) ||	1 x HDMI 2.1 (up to 4K@60Hz with HDR, CEC, EDID) ||	2 × micro-HDMI 2.0&lt;br /&gt;
|-&lt;br /&gt;
|Audio Output	|| 1 x HDMI digital output ||3.5mm jack and 1 x HDMI digital output ||	Optional SPDIF optical output || 3.5 mm analogue audio-video jack&lt;br /&gt;
|-&lt;br /&gt;
|DSI	 ||N/A	||N/A	 ||N/A ||	2-lane MIPI DSI display port&lt;br /&gt;
|-&lt;br /&gt;
|CSI	 ||N/A	||N/A	 ||N/A	 ||2-lane MIPI CSI camera port&lt;br /&gt;
|-&lt;br /&gt;
|USB	 ||USB 3.0 x 2	1 Micro USB 2.0||USB 3.0 x 4	TYPE C ||USB 3.0 x 4, 1 x Micro USB 2.0 port (OTG) ||	2 USB 3.0 ports; 2 USB 2.0 ports;&lt;br /&gt;
|-&lt;br /&gt;
|Power	 ||5 volt @3A via DC power	||5 volt @3A via Micro USB (TYPE C)	 ||1 x DC power jack (Outer diameter : 5.5mm, inner diameter : 2.1mm) ||	5V DC via USB-C connector (minimum 3A*)&lt;br /&gt;
|-&lt;br /&gt;
|IR	 ||Yes||Yes	 ||Yes	 ||N/A&lt;br /&gt;
|-&lt;br /&gt;
|GPIO	 ||40 Pin Header : GPIO (x28) and Power (+5V, +3.3V and GND).||40 Pin Header : GPIO (x28) and Power (+5V, +3.3V and GND). ||	40 x GPIO pins	 ||40-pin GPIO header, populated&lt;br /&gt;
|-&lt;br /&gt;
|Button	 ||Reset, user and U-boot ||Reset, user and U-boot ||	N/A ||	N/A ||&lt;br /&gt;
|-&lt;br /&gt;
|LED	 || Power Status and Activity status|| Power Status and Activity status ||	 Power Status and Activity status ||	 Power Status and Activity status&lt;br /&gt;
|-&lt;br /&gt;
|Dimensions &amp;amp; weight||65mm x 65mm,58g	 ||85mm x 56mm, 48g	 ||85mm x 56mm 59g	 ||88 mm × 58 mm, 46 g&lt;br /&gt;
|-&lt;br /&gt;
|System Support||	Linux &amp;amp; Android	 ||	Linux &amp;amp; Android	 ||Linux &amp;amp; Android ||Linux &amp;amp; Android&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GPIO PIN define ==&lt;br /&gt;
&lt;br /&gt;
===BPI-M5 40PIN GPIO (CON2)===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-		&lt;br /&gt;
|GPIO Pin Name	||Default Function	||Function2||	Function3&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P01	||VCC-3V3||	||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P02||	VCC5V	||	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P03||	GPIOX_17	||I2C_M2_SDA||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P04||	VCC5V	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P05||	GPIOX_18||	I2C_M2_SCL	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P06||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P07||	GPIOX_5	SDIO_CMD||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P08||	GPIOX_12||	UART_A_TX	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P09||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P10||	GPIOX_13	||UART_A_RX	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P11||	GPIOX_3	SDIO_D3	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P12||	GPIOAO_8||	TDMB_SCLK	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P13||	GPIOX_4	SDIO_CLK||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P14||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P15||	GPIOX_7	PWM_F	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P16||	GPIOX_0	SDIO_D0	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P17||	VCC-3V3		||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P18||	GPIOX_1	SDIO_D1	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P19||	GPIOX_8	PCM_DIN	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P20||	GND		||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P21||	GPIOX_9	PCM_DOUT||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P22||	GPIOX_2	SDIO_D2	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P23||	GPIOX_11||	PCM_CLK	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P24||	GPIOX_10	||PCM_SYNC	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P25||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P26||	GPIOX_16	||PWM_E	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P27||	GPIOA_14||	I2C_M3_SDA	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P28||	GPIOA_15||	I2C_M3_SCL||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P29||	GPIOX_14||	UART_A_CTS	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P30||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P31||	GPIOX_15	||UART_A_RTS	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P32||	GPIOX_19||	PWM_B	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P33||	GPIOX_6	PWM_A	||||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P34||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P35||	GPIOAO_7||	TDMB_FS	||&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P36||	GPIOH_5	SPDIF_IN||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P37||	GPIOAO_9||	I2S_MCLK||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P38||	GPIOAO_10||	TDMB_DIN||	SPDIF_OUT&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P39||	GND	||||	&lt;br /&gt;
|-&lt;br /&gt;
|CON1-P40||	GPIOAO_4||	TDMB_DOUT||	&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BPI-M5 Debug UART(CON1)	===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P1||	GND&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P2||	UART0-RX&lt;br /&gt;
|-&lt;br /&gt;
|CON2-P3||	UART0-TX&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Development=&lt;br /&gt;
==Source code==&lt;br /&gt;
===Android===&lt;br /&gt;
android 9 source code: https://github.com/BPI-SINOVOIP/BPI-S905X3-Android9&lt;br /&gt;
&lt;br /&gt;
[http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Build_Android_Source_Code How to build the Android Source Code]&lt;br /&gt;
&lt;br /&gt;
===Linux BSP source code===&lt;br /&gt;
Linux BSP source code: https://github.com/BPI-SINOVOIP/BPI-M5-bsp&lt;br /&gt;
&lt;br /&gt;
[http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Build_Linux_Source_Code How to build the Linux BSP Source Code]&lt;br /&gt;
&lt;br /&gt;
== Resources==&lt;br /&gt;
*Because of the Google security update some of the old links will not work if the images you want to use cannot be downloaded from the [https://drive.google.com/drive/folders/0B_YnvHgh2rwjVjNyS2pheEtWQlk?resourcekey=0-U4TI84zIBdId7bHHjf2qKA new link bpi-image Files]&lt;br /&gt;
*All banana pi [https://drive.google.com/drive/folders/0B4PAo2nW2Kfndjh6SW9MS2xKSWs?resourcekey=0-qXGFXKmd7AVy0S81OXM1RA&amp;amp;usp=sharing  docement(SCH file,DXF file,and doc)]&lt;br /&gt;
*[https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FDocuments%2FBPI-M5%2FBPI-M5-SCH-V10-Release.pdf BPI-M5 schematic diagram]&lt;br /&gt;
*[https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FDocuments%2FBPI-M5%2FBPI-M5-PCB-V10-DXF.rar BPI-M5 PCB DXF file]&lt;br /&gt;
*[https://download.banana-pi.dev/d/3ebbfa04265d4dddb81b/files/?p=%2FDocuments%2FBPI-M5%2FS905X3_Public_Datasheet_Hardkernel.pdf Amlogic S905x3 datasheet]&lt;br /&gt;
*[http://wiki.banana-pi.org/Product_certification Banana Pi BPI-M5 CE,FCC,RoHS Certification]&lt;br /&gt;
*Install OpenGapps on Bananapi BPI-M5 Android 9.0:https://www.youtube.com/watch?v=fXOKmWfpqF8&lt;br /&gt;
*BANANA PI BPI-M5 REVIEW &amp;amp; BENCHMARKS：https://bret.dk/banana-pi-m5-review/&lt;br /&gt;
&lt;br /&gt;
=System image=&lt;br /&gt;
&lt;br /&gt;
==Android==&lt;br /&gt;
:[http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Android How to flash Android Image]&lt;br /&gt;
&lt;br /&gt;
* 2022-09-07 release, BPI-M2 PRO/M5-Mbox-Android9&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1vqFGBDzY0gdqIIkX8ap5GA?pwd=uex1 (pincode: uex1)&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1qmVfN-ocQJ2WqTdFw3vk1f5_kDnRGZeM/view?usp=sharing&lt;br /&gt;
::MD5: ac9ac49c3b37b9cd85de65bd64f9552f&lt;br /&gt;
&lt;br /&gt;
* 2022-09-07 release, BPI-M2 PRO/M5-Tablet-Android9&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1vrmPlyPttoKU-FkPZZE-Jg?pwd=ds7a (pincode: ds7a)&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1m-b5wYWazMM_QgnQ5iQZiPRRD6AmF-Ao/view?usp=sharing&lt;br /&gt;
::MD5: 84d60f44761a4d4958a50e47eee7a62a&lt;br /&gt;
&lt;br /&gt;
*2021-05-20 release, Android 9.0 with kernel 4.9.113, mbox variant ui image&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1C-EiB4UcjuSYCfjFNlVL0g?pwd=8gqg   (pincode: 8gqg)&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1SkFY9Zoc5NY_wNXkzw514-DnN_TBy0K6/view?usp=sharing&lt;br /&gt;
::MD5: dda75a075a5d7572756f57e4a256dffa&lt;br /&gt;
&lt;br /&gt;
*2021-05-20 release, Android 9.0 with kernel 4.9.113, tablet variant ui image&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1Z8KmmvvA8Bc-JwR4nbBOWA?pwd=dtk8 (pincode: dtk8)&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1U3wLxouH2-IBBYQmHngWErLCwIJgLA7G/view?usp=sharing&lt;br /&gt;
::MD5: 27381d5e307034e5c5456b167f67ef75&lt;br /&gt;
&lt;br /&gt;
==Linux==&lt;br /&gt;
:[http://wiki.banana-pi.org/Getting_Started_with_BPI-M5#Linux How to flash Linux Image]&lt;br /&gt;
&lt;br /&gt;
===Raspbian===&lt;br /&gt;
*BPI-M5 BPI-M2 Pro new image:Raspbian image, 2022-4-09 update, Raspbian image for linux kernel 4.9 and 5.17. support 32bit and 64 bit,please choose the right image&lt;br /&gt;
::google driver: https://drive.google.com/drive/folders/1oqamIMl5Kmb3LVYMPFw-1tilvwKQI6n-&lt;br /&gt;
::discuss on forum : https://forum.banana-pi.org/t/bpi-m5-bpi-m2-pro-new-image-rasbian-image-2022-4-09-update/13246&lt;br /&gt;
&lt;br /&gt;
===Ubuntu===&lt;br /&gt;
&lt;br /&gt;
* 2022-09-06 release Ubuntu Mate Desktop 20.04 with Kernel 4.9&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1XE2K_KlVwP0hvjv_AChVgg?pwd=38vx (pincode: 38vx) &lt;br /&gt;
::Google drive: https://drive.google.com/file/d/1OGNaEylMR-VlfY6ynRkGQNuljLcvxoqe/view?usp=sharing&lt;br /&gt;
::MD5: 4b0528065ddcf634e9a43b6b7a6363b1&lt;br /&gt;
&lt;br /&gt;
*2022-09-06 release, Ubuntu server 20.04 with Kernel 4.9&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/15g52JerxZejcwywH7zZOlg?pwd=jtv5 (pincode: jtv5)&lt;br /&gt;
::Google drive:https://drive.google.com/file/d/15Y80CDT07HfEgo2YVjTkLSeIUGk8GQUo/view?usp=sharing&lt;br /&gt;
::MD5: f377dc5246f9ed7133db95c9d34b5201&lt;br /&gt;
&lt;br /&gt;
*2021-06-21 release, Ubuntu Server 20.04 with kernel 4.9.241&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1IAugHTujzkTV9zfQoLw-iA?pwd=a37k  (pincode: a37k) &lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1ASyBYkQmv6RMg_NSf2KQTpd87PosyeW-/view?usp=sharing&lt;br /&gt;
::MD5: 5c896c37eaa590cfbb8a6c7a5ba433a0&lt;br /&gt;
&lt;br /&gt;
===Debian===&lt;br /&gt;
*2022-09-06 release, Debian-10-buster with Kernel 4.9&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1BEdv5AWEYgkMcUX_ju4DPQ?pwd=2cw4 (pincode: 2cw4)&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1IZ7IEFeb21ZnaAuknz9lr00jo95UX6ml/view?usp=sharing&lt;br /&gt;
::MD5: f6cbe3518e8a02267224a0aa0256ce11 &lt;br /&gt;
&lt;br /&gt;
*2021-06-21 release, Debian Buster with kernel 4.9.241&lt;br /&gt;
::Baidu Cloud: https://pan.baidu.com/s/1xqk9wJ7o7aNCqa8k8Y4zGw?pwd=u5pu (pincode: u5pu)&lt;br /&gt;
::Google Drive:https://drive.google.com/file/d/1Ej-vYN98KZ0D17cjdtdZeDQjnkqEJ_wb/view?usp=sharing&lt;br /&gt;
::MD5: 4ea1d71a5ba1a8fa743e4c8abbe7569b&lt;br /&gt;
&lt;br /&gt;
==Third part image==&lt;br /&gt;
===EmuELEC===&lt;br /&gt;
*This is a porting of EmuELEC v4.5 for BPI-M5. I ported from odroid c4 official EmuELEC image. PS3 a XBOX ONE S gamepad controllers were tested and work fine.&lt;br /&gt;
*https://forum.banana-pi.org/t/emuelec-for-bpi-m5/12095&lt;br /&gt;
===CoreELEC===&lt;br /&gt;
* CoreELEC 19.2&lt;br /&gt;
:[https://coreelec.org/ CoreELEC] official support Bananapi M5 and M2Pro since 19.2-Matrix_rc1&lt;br /&gt;
::Download: https://coreelec.org/#download&lt;br /&gt;
::Install Guide: https://coreelec.org/#install&lt;br /&gt;
::Source Code: https://github.com/CoreELEC/CoreELEC&lt;br /&gt;
::how to install: https://wiki.coreelec.org/coreelec:bpim2pro&lt;br /&gt;
&lt;br /&gt;
===Armbian===&lt;br /&gt;
:Armbian unstable legacy and current build for Bananapi M5 and M2Pro&lt;br /&gt;
::Google Drive: https://drive.google.com/drive/folders/1Cx_DA90Tbr8_M_8eQd-NwFUOp3UTwhYt&lt;br /&gt;
::Baidu Cloud : https://pan.baidu.com/s/15y4LNg4K-w0vrwMTcg5VGQ Pincode: j9aj&lt;br /&gt;
&lt;br /&gt;
===Volumio===&lt;br /&gt;
:Download:&lt;br /&gt;
::Google drive: https://drive.google.com/drive/folders/1B7nsy4Jxt2lBgXoA6XEnaamEQvZyHI8f&lt;br /&gt;
::Baidu cloud : https://pan.baidu.com/s/1mj9OC8P2VSI5GAMnIKGBqA PinCode: mrrb &lt;br /&gt;
:User Guide: https://cdn.volumio.org/wp-content/uploads/2019/01/Quick-Start-Guide-Volumio.pdf&lt;br /&gt;
:Source code: https://github.com/Dangku/volumio-build&lt;br /&gt;
:Platform prebuild package: https://github.com/Dangku/volumio-platform-bananapi&lt;br /&gt;
:Development guilde: https://volumio.github.io/docs/User_Manual/Quick_Start_Guide.html&lt;br /&gt;
&lt;br /&gt;
===Odroid Android image===&lt;br /&gt;
*Base on Odroid android source code and build for bananapi m5/m2pro&lt;br /&gt;
:Download: &lt;br /&gt;
::Google Drive: https://drive.google.com/drive/folders/1u_CddlHvpAMu2VZJfIfUKTsFFyigCWig&lt;br /&gt;
:Install Guide: https://forum.odroid.com/viewtopic.php?f=204&amp;amp;t=38579&lt;br /&gt;
&lt;br /&gt;
*Odroid ubuntu IMG for BPI-M5：&lt;br /&gt;
::https://forum.banana-pi.org/t/odroid-ubuntu-img-for-bpi-m5/12169&lt;br /&gt;
&lt;br /&gt;
===Ubuntu Core 20===&lt;br /&gt;
:Ubuntu Core 20 demo image for bananapi m5/m2pro.&lt;br /&gt;
:Download:&lt;br /&gt;
::Google drive: https://drive.google.com/drive/folders/1TdAQ-HdggKrOPmWi0chpHDJY0SMWlUaC&lt;br /&gt;
::Baidu cloud :&lt;br /&gt;
:Install Guide: https://ubuntu.com/core/docs/uc20/install&lt;br /&gt;
&lt;br /&gt;
===Archlinux===&lt;br /&gt;
*Archlinux xfce and minimal demo image, kernel 4.9, image build refer to [https://archdroid.org/ Archdroid]&lt;br /&gt;
:login: alarm/alarm, or root/root&lt;br /&gt;
:Download:&lt;br /&gt;
::Google drive:https://drive.google.com/drive/folders/1rSSNgbseY2mwTMIauGR1yrXN8RPKzuk6&lt;br /&gt;
::Baidu link :  https://pan.baidu.com/s/1Ck_H51jPUyAv98o73I8oAw Pincode: rbv2&lt;br /&gt;
::discuss on forum : https://forum.banana-pi.org/t/bpi-m5-bpi-m2-pro-new-image-archlinux-2021-9-14/12595&lt;br /&gt;
&lt;br /&gt;
===HuaWei OpenEuler===&lt;br /&gt;
*OpenEuler demo image, bpi kernel 4.9&lt;br /&gt;
:Download:&lt;br /&gt;
::Baidu link ：https://pan.baidu.com/s/12b7q3y-m3YRyD7GwhKE0QA Pincode：lv50 &lt;br /&gt;
:SIG gitee link :  https://gitee.com/openeuler/raspberrypi&lt;br /&gt;
:Discuss on fourm : http://forum.banana-pi.org/&lt;br /&gt;
&lt;br /&gt;
===Manjaro for BPI-M5===&lt;br /&gt;
&lt;br /&gt;
Manjaro porting for BPI-M5 from Official Image for Odroid C4, the ported image use kernel 5.10. If anyone is interested on give it a try, the download link is below.&lt;br /&gt;
*Download Link: https://mega.nz/folder/BuZWkLhC#phC9KSsassB4bmkAegYykA&lt;br /&gt;
*discuss on forum : https://forum.banana-pi.org/t/manjaro-for-bpi-m5/12726&lt;br /&gt;
&lt;br /&gt;
=Easy to buy=&lt;br /&gt;
&lt;br /&gt;
*[https://pt.aliexpress.com/item/1005001871842695.html?spm=a2g0o.productlist.0.0.59976fff0GL35q&amp;amp;algo_pvid=24dfc96b-f6c1-4850-9ff4-fd177ee36648&amp;amp;algo_expid=24dfc96b-f6c1-4850-9ff4-fd177ee36648-0&amp;amp;btsid=0bb47a2216147586025791703e886c&amp;amp;ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_ buy it form aliexpress ]&lt;br /&gt;
&lt;br /&gt;
*easy to buy RTL8822 wifi module sample : https://www.aliexpress.com/item/1005002550783568.html?spm=5261.ProductManageOnline.0.0.34ed4edfgdV59j&lt;br /&gt;
&lt;br /&gt;
* Mass order,please contact : judyhuang@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-Leaf-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=13028</id>
		<title>BPI-Leaf-S3 开发板</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-Leaf-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=13028"/>
				<updated>2022-09-27T08:11:51Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* 硬件尺寸 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:BPI-Leaf-S3]]&lt;br /&gt;
&lt;br /&gt;
= 介绍 =&lt;br /&gt;
[[File:BPI-Leaf-S3_banner.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[File:Leaf-S3-incline-front.jpg|thumb|[[BPI-Leaf-S3]] with ESP32-S3]]&lt;br /&gt;
&lt;br /&gt;
[[File:Leaf-S3-incline-back.jpg|thumb|[[BPI-Leaf-S3]] with ESP32-S3]]&lt;br /&gt;
&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
香蕉派Leaf系列是专为物联网设计的低功耗微控制器开发板。&lt;br /&gt;
&lt;br /&gt;
BPI-Leaf-S3板载ESP32-S3芯片，支持 2.4 GHz Wi-Fi 和低功耗蓝牙 (Bluetooth® LE) 双模无线通信，外围兼容低功耗硬件设计，深度睡眠模式下功耗仅为10uA。&lt;br /&gt;
&lt;br /&gt;
支持USB和外接3.7V锂电池两种供电方式，可实现双电源下自动切换电源功能，并支持USB充电方式。体积小巧，接口方便，上手简单，可直接应用于物联网低功耗项目。 &lt;br /&gt;
&lt;br /&gt;
BPI-Leaf-S3开发板在软件方面支持ESP-IDF、Arduino、MicroPython等多种方式进行编程开发 。&lt;br /&gt;
&lt;br /&gt;
BPI-Leaf-S3开发板上标记了与芯片对应的所有IO管脚，且IO管脚顺序与Espressif ESP32-S3-DevKitC-1开发板一致，开发者可根据实际需求，可将DevKitC-1支持的外围设备添加到BPI-Leaf-S3上，也可将开发板插在面包板上使用。&lt;br /&gt;
&lt;br /&gt;
== 关键特性 ==&lt;br /&gt;
&lt;br /&gt;
* ESP32-S3，Xtensa® 32 bit LX7&lt;br /&gt;
* 片外 PSRAM , FLASH&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI ，Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD，CAMERA ，USB , JTAG&lt;br /&gt;
* 1* JST SH 1mm 4-Pin I2C连接座&lt;br /&gt;
* 1 * USB Type-C&lt;br /&gt;
* 1 * 2pin 电池连接座，支持充电&lt;br /&gt;
* 1 * 全彩色LED&lt;br /&gt;
&lt;br /&gt;
== BPI-Leaf-S3 与 ESP32-S3-DevKitC-1开发板对比 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! 开发板&lt;br /&gt;
! BPI-Leaf-S3&lt;br /&gt;
! ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| 引出GPIO&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v管脚&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 5v管脚&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND管脚&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| 全彩LED灯&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| 芯片直连USB&lt;br /&gt;
| Type-C USB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL转USB&lt;br /&gt;
| 无&lt;br /&gt;
| CP2102-MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| 外接电池连接座&lt;br /&gt;
| 3.7v锂电池供电接口&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| 电池充电&lt;br /&gt;
| 500mA充电&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| I²C JST SH 1mm 4-Pin连接座&lt;br /&gt;
| 1&lt;br /&gt;
| 无&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
BPI-Leaf-S3开发板IO管脚数量，顺序，间距都与Espressif ESP32-S3-DevKitC-1开发板一致。&lt;br /&gt;
&lt;br /&gt;
BPI-Leaf-S3开发板不再具备传统的UART TTL转USB转接芯片及其USB接口，这是因为ESP32-S3芯片的内置USB功能已经足够完善，支持CDC-ACM 虚拟串口及 JTAG 适配器功能，不再需要外部的转接芯片就可以实现软件开发调试，固件下载等功能。&lt;br /&gt;
&lt;br /&gt;
相较于ESP32-S3-DevKitC-1开发板，BPI-Leaf-S3开发板增加了外接电池连接座并搭配了充电电路，可直接通过USB给电池充电，且可实现自动切换供电，即在有接3.7v锂电池的条件下，插拔USB不会导致程序中断，适应更多应用场景。&lt;br /&gt;
&lt;br /&gt;
BPI-Leaf-S3开发板上还增加了一个I²C 4pin连接座，使开发板连接一些I²C设备更加便捷稳固。其实此接口并不局限于连接I²C设备，所有可以通过一根3.3v线，一根GND线，一或两根信号线控制的设备都可以通过此4pin连接座与开发板建立通信。&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP32-S3 ==&lt;br /&gt;
&lt;br /&gt;
ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片，支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器，主频高达 240 MHz，内置 512 KB SRAM (TCM)，具有 45 个可编程 GPIO 管脚和丰富的通信接口。ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM，支持用户配置数据缓存与指令缓存。&lt;br /&gt;
&lt;br /&gt;
以下是ESP32-S3芯片重要功能的描述。&lt;br /&gt;
&lt;br /&gt;
* '''支持Wi-Fi + Bluetooth 5 (LE) 无线连接''': ESP32-S3 集成 2.4 GHz Wi-Fi (802.11 b/g/n)，支持 40 MHz 带宽；其低功耗蓝牙子系统支持 Bluetooth 5 (LE) 和 Bluetooth Mesh，可通过 Coded PHY 与广播扩展实现远距离通信。它还支持 2 Mbps PHY，用于提高传输速度和数据吞吐量。ESP32-S3 的 Wi-Fi 和 Bluetooth LE 射频性能优越，在高温下也能稳定工作。&lt;br /&gt;
&lt;br /&gt;
* '''支持 AI 加速''': ESP32-S3 MCU 增加了用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions)。AI 开发者们通过 ESP-DSP 和 ESP-NN 库使用这些向量指令，可以实现高性能的图像识别、语音唤醒和识别等应用。&lt;br /&gt;
&lt;br /&gt;
* '''丰富的 IO 接口''': ESP32-S3 拥有 45 个可编程 GPIO 以及 SPI、I2S、I2C、PWM、RMT、ADC、UART、SD/MMC 主机控制器和 TWAITM 控制器等常用外设接口。其中的 14 个 GPIO 可被配置为 HMI 交互的电容触摸输入端。此外，ESP32-S3 搭载了超低功耗协处理器 (ULP)，支持多种低功耗模式，广泛适用于各类低功耗应用场景。&lt;br /&gt;
&lt;br /&gt;
* '''完善的安全机制''': ESP32-S3 为物联网设备提供了完善的安全机制和保护措施，防止各类恶意攻击和威胁。它支持基于 AES-XTS 算法的 flash 加密、基于 RSA 算法的安全启动、数字签名和 HMAC。ESP32-S3 还新增了一个“世界控制器 (World Controller)”模块，提供了两个互不干扰的执行环境，实现可信执行环境或权限分离机制。&lt;br /&gt;
&lt;br /&gt;
= 硬件 =&lt;br /&gt;
&lt;br /&gt;
== 硬件接口示意图 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Leaf-S3_board.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== 硬件规格 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 规格表&lt;br /&gt;
|-&lt;br /&gt;
| SoC主控芯片&lt;br /&gt;
| ESP32-S3，Xtensa® 32 位 LX7 双核处理器&lt;br /&gt;
|-&lt;br /&gt;
| 主频&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| 工作温度&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| 片上 ROM&lt;br /&gt;
| 384 KB &lt;br /&gt;
|-&lt;br /&gt;
| 片上 SRAM&lt;br /&gt;
| 320 KB&lt;br /&gt;
|-&lt;br /&gt;
| 板载 FLASH ROM&lt;br /&gt;
| 4MB&lt;br /&gt;
|-&lt;br /&gt;
| 片上外设PSRAM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n ，2.4Ghz频带，150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| 蓝牙&lt;br /&gt;
| Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-Leaf-S3已引出36个可用GPIO&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
| 2 × 12 位 SAR ADC，支持 20 个模拟通道输入&lt;br /&gt;
|-&lt;br /&gt;
| TOUCH 电容式触摸传感器&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2，支持主机或从机模式&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2，串行立体声数据的输入输出&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1，支持 8 位 ~16 位并行 RGB、I8080、MOTO6800 接口&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1，支持 8 位 ~16 位 DVP 图像传感器接口&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3 ，支持异步通信（RS232 和RS485）和 IrDA&lt;br /&gt;
|-&lt;br /&gt;
| PWM &lt;br /&gt;
| 8 路独立通道，14位精度&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM &lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × 全速USB 2.0 OTG，Type-C母口&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG 控制器&lt;br /&gt;
| 1，USB 全速标准，CDC-ACM ，JTAG&lt;br /&gt;
|-&lt;br /&gt;
| 温度传感器&lt;br /&gt;
| 1，测量范围为–20 °C 到 110 °C，用于监测芯片内部温度&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO主机接口，具有2个卡槽，支持SD卡3.0和3.01，SDIO 3.0，CE-ATA 1.1，MMC 4.41，eMMC 4.5和4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® 控制器&lt;br /&gt;
| 1 ，兼容 ISO11898-1（CAN 规范 2.0）&lt;br /&gt;
|-&lt;br /&gt;
| 通用 DMA 控制器&lt;br /&gt;
| 5 个接收通道和 5 个发送通道&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4 通道发射，4通道接收，共享 384 x 32-bit 的 RAM&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| 4个脉冲计数控制器（单元），每个单元有2个独立的通道&lt;br /&gt;
|-&lt;br /&gt;
| 定时器&lt;br /&gt;
| 4 × 54 位通用定时器，16 位时钟预分频器，1 × 52 位系统定时器，3 × 看门狗定时器&lt;br /&gt;
|-&lt;br /&gt;
| 外部晶振&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC 和低功耗管理&lt;br /&gt;
| 电源管理单元 (PMU)+ 超低功耗协处理器 (ULP)&lt;br /&gt;
|-&lt;br /&gt;
| 低功耗电流&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| 工作电压&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| 输入电压&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| 最大放电电流&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| USB充电&lt;br /&gt;
| 支持&lt;br /&gt;
|-&lt;br /&gt;
| 最大充电电流&lt;br /&gt;
| 500mA&lt;br /&gt;
|-&lt;br /&gt;
| 可控全彩色LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 硬件尺寸 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Leaf-S3_board_dimension.png | 700px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 尺寸表&lt;br /&gt;
|-&lt;br /&gt;
| 管脚间距&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔间距&lt;br /&gt;
| 23mm/ 62.25mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔尺寸&lt;br /&gt;
| 内径2mm/外径3mm&lt;br /&gt;
|-&lt;br /&gt;
| 主板尺寸&lt;br /&gt;
| 26 × 65.25(mm)/1.02 x 2.57(inches)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
管脚间距兼容万能板（洞洞板、点阵板），面包板，便于调试应用。&lt;br /&gt;
&lt;br /&gt;
== 外设GPIO管脚分配 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 外设GPIO管脚分配&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| 外设接口&lt;br /&gt;
| 信号&lt;br /&gt;
| 管脚&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| 触摸传感器&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | 默认分配管脚，可重定义为任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| 任意GPIO &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 已用于FLASH与PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 彩色LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 软件 =&lt;br /&gt;
&lt;br /&gt;
== ESP-IDF ==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF 是乐鑫官方推出的物联网开发框架，支持 Windows、Linux 和 macOS 操作系统。&lt;br /&gt;
&lt;br /&gt;
建议开发者通过集成开发环境 (IDE) 安装 ESP-IDF:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README_CN.md GitHub: ESP-IDF Eclipse 插件安装与使用指南]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode 插件] | [https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/toc.md GitHub: 安装与使用指南] | [https://www.bilibili.com/video/BV17p4y167uN bilibili：ESP-IDF VSCode 插件快速操作指南]&lt;br /&gt;
&lt;br /&gt;
或者根据操作系统选择对应的手动安装流程:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/windows-setup.html Windows 平台工具链的标准设置]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/linux-macos-setup.html Linux 和 macOS 平台工具链的标准设置]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-reference/index.html#api API 参考]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-guides/index.html#api API 指南]&lt;br /&gt;
&lt;br /&gt;
为了使你的BPI-Leaf-S3开发板可以通过USB-CDC刷写FLASH，需要设置开发板为固件下载模式。&lt;br /&gt;
&lt;br /&gt;
有两种操作方法：&lt;br /&gt;
&lt;br /&gt;
1.通过USB连接到电脑，按住BOOT键，再按一下RESET键并松开，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
2.在断开供电的条件下按住BOOT键，再通过USB连接到电脑，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
需要在设备管理器中确认接口，固件下载模式与普通模式下的接口序号可能是不一样的。&lt;br /&gt;
&lt;br /&gt;
== MicroPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
MicroPython实现了大部分Python 3 特性和语法，易学易上手，验证程序效果无需编译直接下载进芯片运行。&lt;br /&gt;
&lt;br /&gt;
无论是否有编程基础，MicroPython的上手难度绝对远低于其他编程语言，其代码易读性高，且开源社区有多年积累的丰富资源，就如同Python一样拥有极强的生命力与应用价值。&lt;br /&gt;
&lt;br /&gt;
* '''[https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/tree/main/Example/MicroPython-zh#1%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B GitHub: MicroPython快速上手]'''&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_运行环境搭建 | MicroPython运行环境搭建(Thonny IDE) ]]&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_固件下载与烧录 | MicroPython固件下载与烧录 ]]&lt;br /&gt;
&lt;br /&gt;
== CircuitPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:CircuitPython_Repo_header_logo.jpg | 800px]]&lt;br /&gt;
&lt;br /&gt;
[https://circuitpython.org/board/bpi_leaf_s3/ BPI-Leaf-S3 CircuitPython Download 页面]&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino 是一个开源嵌入式软硬件开发平台，用来供用户制作可交互式的嵌入式项目。&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino快速上手]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
= 资料与资源 =&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/sch/BPI-Leaf-S3-Chip-V0.1A.pdf GitHub: BPI-Leaf-S3 开发板原理图PDF]&lt;br /&gt;
&lt;br /&gt;
* [https://www.espressif.com/sites/default/files/documentation/esp32-s3_datasheet_cn.pdf ESP32-S3 技术规格书]&lt;br /&gt;
&lt;br /&gt;
* [https://www.espressif.com/sites/default/files/documentation/esp32-s3_technical_reference_manual_cn.pdf ESP32-S3 技术参考手册]&lt;br /&gt;
&lt;br /&gt;
=样品购买=&lt;br /&gt;
&lt;br /&gt;
* 官方速卖通: https://www.aliexpress.com/item/1005004428945296.html?spm=5261.ProductManageOnline.0.0.48af4edfYbyEoI&lt;br /&gt;
* 官方淘宝: https://item.taobao.com/item.htm?spm=a2126o.success.0.0.29034831FGnLQW&amp;amp;id=677287234553&lt;br /&gt;
* OEM&amp;amp;OEM 定制服务 ： sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=13027</id>
		<title>BPI-PicoW-S3 开发板</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=13027"/>
				<updated>2022-09-27T08:11:22Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* 硬件尺寸 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:BPI-PicoW-S3]]&lt;br /&gt;
&lt;br /&gt;
= 介绍 =&lt;br /&gt;
[[File:BPI-PicoW-S3 banner.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[File:PICO-1000-7.jpg|thumb|[[BPI-PicoW-S3_开发板 ]]with ESP32-S3]]&lt;br /&gt;
[[File:PICO-1000-5.png|thumb|[[BPI-PicoW-S3_开发板 ]]with ESP32-S3]]&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-PicoW-S3 是一系列低功耗微控制器，专为物联网开发和Maker DIY设计的开发板。与 Raspberry Pi Pico 板尺寸相同，支持 2.4 GHz Wi-Fi 和 Bluetooth® LE 双模无线通信， 外设兼容低功耗硬件设计，深度睡眠模式下功耗仅为10uA。编程方面，PicoW-S3支持ESP-IDF、Arduino、micropython、CircuitPython 等多种方式&lt;br /&gt;
&lt;br /&gt;
== 关键特性 ==&lt;br /&gt;
&lt;br /&gt;
* ESP32-S3，Xtensa® 32 bit LX7&lt;br /&gt;
* 片外 PSRAM , FLASH&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI ，Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD，CAMERA ，USB , JTAG&lt;br /&gt;
* 1 * microUSB&lt;br /&gt;
* 1 * 全彩色LED&lt;br /&gt;
&lt;br /&gt;
== BPI-PicoW-S3 与 Rraspberry Pi PicoW、BPI-Leaf-S3、ESP32-S3-DevKitC-1 开发板对比 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! 开发板&lt;br /&gt;
! BPI-PicoW-S3&lt;br /&gt;
! Rraspberry Pi PicoW&lt;br /&gt;
! BPI-Leaf-S3&lt;br /&gt;
! ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| 引出GPIO&lt;br /&gt;
| 27&lt;br /&gt;
| 27&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v管脚&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 5v管脚&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND管脚&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| 全彩LED灯&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 无&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| 芯片直连USB&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
| Type-C USB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL转USB&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| CP2102-MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| 外接电池连接座&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 3.7v锂电池供电接口&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| 电池充电&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 500mA充电&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| I²C 4pin连接座&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 1&lt;br /&gt;
| 无&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP32-S3 ==&lt;br /&gt;
&lt;br /&gt;
ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片，支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器，主频高达 240 MHz，内置 512 KB SRAM (TCM)，具有 45 个可编程 GPIO 管脚和丰富的通信接口。ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM，支持用户配置数据缓存与指令缓存。&lt;br /&gt;
&lt;br /&gt;
以下是ESP32-S3芯片重要功能的描述。&lt;br /&gt;
&lt;br /&gt;
* '''支持Wi-Fi + Bluetooth 5 (LE) 无线连接''': ESP32-S3 集成 2.4 GHz Wi-Fi (802.11 b/g/n)，支持 40 MHz 带宽；其低功耗蓝牙子系统支持 Bluetooth 5 (LE) 和 Bluetooth Mesh，可通过 Coded PHY 与广播扩展实现远距离通信。它还支持 2 Mbps PHY，用于提高传输速度和数据吞吐量。ESP32-S3 的 Wi-Fi 和 Bluetooth LE 射频性能优越，在高温下也能稳定工作。&lt;br /&gt;
&lt;br /&gt;
* '''支持 AI 加速''': ESP32-S3 MCU 增加了用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions)。AI 开发者们通过 ESP-DSP 和 ESP-NN 库使用这些向量指令，可以实现高性能的图像识别、语音唤醒和识别等应用。&lt;br /&gt;
&lt;br /&gt;
* '''丰富的 IO 接口''': ESP32-S3 拥有 45 个可编程 GPIO 以及 SPI、I2S、I2C、PWM、RMT、ADC、UART、SD/MMC 主机控制器和 TWAITM 控制器等常用外设接口。其中的 14 个 GPIO 可被配置为 HMI 交互的电容触摸输入端。此外，ESP32-S3 搭载了超低功耗协处理器 (ULP)，支持多种低功耗模式，广泛适用于各类低功耗应用场景。&lt;br /&gt;
&lt;br /&gt;
* '''完善的安全机制''': ESP32-S3 为物联网设备提供了完善的安全机制和保护措施，防止各类恶意攻击和威胁。它支持基于 AES-XTS 算法的 flash 加密、基于 RSA 算法的安全启动、数字签名和 HMAC。ESP32-S3 还新增了一个“世界控制器 (World Controller)”模块，提供了两个互不干扰的执行环境，实现可信执行环境或权限分离机制。&lt;br /&gt;
&lt;br /&gt;
= 硬件 =&lt;br /&gt;
&lt;br /&gt;
== 硬件接口示意图 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-PicoW-S3-V0.4-IO.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== 硬件规格 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 规格表&lt;br /&gt;
|-&lt;br /&gt;
| SoC主控芯片&lt;br /&gt;
| ESP32-S3，Xtensa® 32 位 LX7 双核处理器&lt;br /&gt;
|-&lt;br /&gt;
| 主频&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| 工作温度&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| 片上 ROM&lt;br /&gt;
| 384 KB &lt;br /&gt;
|-&lt;br /&gt;
| 片上 SRAM&lt;br /&gt;
| 320 KB&lt;br /&gt;
|-&lt;br /&gt;
| 板载 FLASH ROM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| 片上外设PSRAM&lt;br /&gt;
| 8MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n ，2.4Ghz频带，150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| 蓝牙&lt;br /&gt;
| Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-PicoW-S3已引出27个可用GPIO&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
| 2 × 12 位 SAR ADC，支持 18 个模拟通道输入&lt;br /&gt;
|-&lt;br /&gt;
| TOUCH 电容式触摸传感器&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2，支持主机或从机模式&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2，串行立体声数据的输入输出&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1，支持 8 位 ~16 位并行 RGB、I8080、MOTO6800 接口&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1，支持 8 位 ~16 位 DVP 图像传感器接口&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3 ，支持异步通信（RS232 和RS485）和 IrDA&lt;br /&gt;
|-&lt;br /&gt;
| PWM &lt;br /&gt;
| 8 路独立通道，14位精度&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM &lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × 全速USB 2.0 OTG，MicroUSB母口&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG 控制器&lt;br /&gt;
| 1，USB 全速标准，CDC-ACM ，JTAG&lt;br /&gt;
|-&lt;br /&gt;
| 温度传感器&lt;br /&gt;
| 1，测量范围为–20 °C 到 110 °C，用于监测芯片内部温度&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO主机接口，具有2个卡槽，支持SD卡3.0和3.01，SDIO 3.0，CE-ATA 1.1，MMC 4.41，eMMC 4.5和4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® 控制器&lt;br /&gt;
| 1 ，兼容 ISO11898-1（CAN 规范 2.0）&lt;br /&gt;
|-&lt;br /&gt;
| 通用 DMA 控制器&lt;br /&gt;
| 5 个接收通道和 5 个发送通道&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4 通道发射，4通道接收，共享 384 x 32-bit 的 RAM&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| 4个脉冲计数控制器（单元），每个单元有2个独立的通道&lt;br /&gt;
|-&lt;br /&gt;
| 定时器&lt;br /&gt;
| 4 × 54 位通用定时器，16 位时钟预分频器，1 × 52 位系统定时器，3 × 看门狗定时器&lt;br /&gt;
|-&lt;br /&gt;
| 外部晶振&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC 和低功耗管理&lt;br /&gt;
| 电源管理单元 (PMU)+ 超低功耗协处理器 (ULP)&lt;br /&gt;
|-&lt;br /&gt;
| 低功耗电流&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| 工作电压&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| 输入电压&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| 最大放电电流&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| 可控全彩色LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 硬件尺寸 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-Pico-S3-board-dimension.png|800px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 尺寸表&lt;br /&gt;
|-&lt;br /&gt;
| 管脚间距&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔间距&lt;br /&gt;
| 11.4mm/ 47mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔尺寸&lt;br /&gt;
| 内径2.1mm/外径3.4mm&lt;br /&gt;
|-&lt;br /&gt;
| 主板尺寸&lt;br /&gt;
| 21 × 51.88(mm)/0.83 x 2.04(inches)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
管脚间距兼容万能板（洞洞板、点阵板），面包板，便于调试应用。&lt;br /&gt;
&lt;br /&gt;
== 外设GPIO管脚分配 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 外设GPIO管脚分配&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| 外设接口&lt;br /&gt;
| 信号&lt;br /&gt;
| 管脚&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| 触摸传感器&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | 默认分配管脚，可重定义为任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| 任意GPIO &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 已用于FLASH与PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 彩色LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 软件 =&lt;br /&gt;
&lt;br /&gt;
== ESP-IDF ==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF 是乐鑫官方推出的物联网开发框架，支持 Windows、Linux 和 macOS 操作系统。&lt;br /&gt;
&lt;br /&gt;
建议开发者通过集成开发环境 (IDE) 安装 ESP-IDF:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README_CN.md GitHub: ESP-IDF Eclipse 插件安装与使用指南]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode 插件] | [https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/toc.md GitHub: 安装与使用指南] | [https://www.bilibili.com/video/BV17p4y167uN bilibili：ESP-IDF VSCode 插件快速操作指南]&lt;br /&gt;
&lt;br /&gt;
或者根据操作系统选择对应的手动安装流程:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/windows-setup.html Windows 平台工具链的标准设置]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/linux-macos-setup.html Linux 和 macOS 平台工具链的标准设置]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-reference/index.html#api API 参考]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-guides/index.html#api API 指南]&lt;br /&gt;
&lt;br /&gt;
为了使你的BPI-Leaf-S3开发板可以通过USB-CDC刷写FLASH，需要设置开发板为固件下载模式。&lt;br /&gt;
&lt;br /&gt;
有两种操作方法：&lt;br /&gt;
&lt;br /&gt;
1.通过USB连接到电脑，按住BOOT键，再按一下RESET键并松开，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
2.在断开供电的条件下按住BOOT键，再通过USB连接到电脑，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
需要在设备管理器中确认接口，固件下载模式与普通模式下的接口序号可能是不一样的。&lt;br /&gt;
&lt;br /&gt;
== MicroPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
MicroPython实现了大部分Python 3 特性和语法，易学易上手，验证程序效果无需编译直接下载进芯片运行。&lt;br /&gt;
&lt;br /&gt;
无论是否有编程基础，MicroPython的上手难度绝对远低于其他编程语言，其代码易读性高，且开源社区有多年积累的丰富资源，就如同Python一样拥有极强的生命力与应用价值。&lt;br /&gt;
&lt;br /&gt;
* '''[https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/tree/main/Example/MicroPython-zh#1%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B GitHub: MicroPython快速上手]'''&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_运行环境搭建 | MicroPython运行环境搭建(Thonny IDE) ]]&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_固件下载与烧录 | MicroPython固件下载与烧录 ]]&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino 是一个开源嵌入式软硬件开发平台，用来供用户制作可交互式的嵌入式项目。&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino快速上手]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
= 资料与资源 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=样品购买=&lt;br /&gt;
&lt;br /&gt;
* 比派科技官方速卖通店:https://www.aliexpress.com/item/1005004775634442.html?spm=5261.ProductManageOnline.0.0.15744edfAyCaNk&lt;br /&gt;
* SinoVoip 官方速卖通店 : https://pt.aliexpress.com/item/1005004775859077.html?spm=5261.ProductManageOnline.0.0.785f4edfxIkaFg&amp;amp;gatewayAdapt=glo2bra&lt;br /&gt;
* 官方淘宝店: https://item.taobao.com/item.htm?spm=a2126o.success.0.0.25b04831CHV1Nc&amp;amp;id=684134360199&lt;br /&gt;
* OEM&amp;amp;OEM 定制服务: sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12995</id>
		<title>BPI-PicoW-S3 开发板</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12995"/>
				<updated>2022-09-22T07:05:22Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* 介绍 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:BPI-PicoW-S3]]&lt;br /&gt;
&lt;br /&gt;
= 介绍 =&lt;br /&gt;
[[File:BPI-PicoW-S3 banner.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[File:PICO-1000-7.jpg|thumb|[[BPI-PicoW-S3_开发板 ]]with ESP32-S3]]&lt;br /&gt;
[[File:PICO-1000-5.png|thumb|[[BPI-PicoW-S3_开发板 ]]with ESP32-S3]]&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
Banana Pi BPI-PicoW-S3 是一系列低功耗微控制器，专为物联网开发和Maker DIY设计的开发板。与 Raspberry Pi Pico 板尺寸相同，支持 2.4 GHz Wi-Fi 和 Bluetooth® LE 双模无线通信， 外设兼容低功耗硬件设计，深度睡眠模式下功耗仅为10uA。编程方面，PicoW-S3支持ESP-IDF、Arduino、micropython、CircuitPython 等多种方式&lt;br /&gt;
&lt;br /&gt;
== 关键特性 ==&lt;br /&gt;
&lt;br /&gt;
* ESP32-S3，Xtensa® 32 bit LX7&lt;br /&gt;
* 片外 PSRAM , FLASH&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI ，Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD，CAMERA ，USB , JTAG&lt;br /&gt;
* 1 * microUSB&lt;br /&gt;
* 1 * 全彩色LED&lt;br /&gt;
&lt;br /&gt;
== BPI-PicoW-S3 与 Rraspberry Pi PicoW、BPI-Leaf-S3、ESP32-S3-DevKitC-1 开发板对比 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! 开发板&lt;br /&gt;
! BPI-PicoW-S3&lt;br /&gt;
! Rraspberry Pi PicoW&lt;br /&gt;
! BPI-Leaf-S3&lt;br /&gt;
! ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| 引出GPIO&lt;br /&gt;
| 27&lt;br /&gt;
| 27&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v管脚&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 5v管脚&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND管脚&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| 全彩LED灯&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 无&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| 芯片直连USB&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
| Type-C USB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL转USB&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| CP2102-MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| 外接电池连接座&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 3.7v锂电池供电接口&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| 电池充电&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 500mA充电&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| I²C 4pin连接座&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 1&lt;br /&gt;
| 无&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP32-S3 ==&lt;br /&gt;
&lt;br /&gt;
ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片，支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器，主频高达 240 MHz，内置 512 KB SRAM (TCM)，具有 45 个可编程 GPIO 管脚和丰富的通信接口。ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM，支持用户配置数据缓存与指令缓存。&lt;br /&gt;
&lt;br /&gt;
以下是ESP32-S3芯片重要功能的描述。&lt;br /&gt;
&lt;br /&gt;
* '''支持Wi-Fi + Bluetooth 5 (LE) 无线连接''': ESP32-S3 集成 2.4 GHz Wi-Fi (802.11 b/g/n)，支持 40 MHz 带宽；其低功耗蓝牙子系统支持 Bluetooth 5 (LE) 和 Bluetooth Mesh，可通过 Coded PHY 与广播扩展实现远距离通信。它还支持 2 Mbps PHY，用于提高传输速度和数据吞吐量。ESP32-S3 的 Wi-Fi 和 Bluetooth LE 射频性能优越，在高温下也能稳定工作。&lt;br /&gt;
&lt;br /&gt;
* '''支持 AI 加速''': ESP32-S3 MCU 增加了用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions)。AI 开发者们通过 ESP-DSP 和 ESP-NN 库使用这些向量指令，可以实现高性能的图像识别、语音唤醒和识别等应用。&lt;br /&gt;
&lt;br /&gt;
* '''丰富的 IO 接口''': ESP32-S3 拥有 45 个可编程 GPIO 以及 SPI、I2S、I2C、PWM、RMT、ADC、UART、SD/MMC 主机控制器和 TWAITM 控制器等常用外设接口。其中的 14 个 GPIO 可被配置为 HMI 交互的电容触摸输入端。此外，ESP32-S3 搭载了超低功耗协处理器 (ULP)，支持多种低功耗模式，广泛适用于各类低功耗应用场景。&lt;br /&gt;
&lt;br /&gt;
* '''完善的安全机制''': ESP32-S3 为物联网设备提供了完善的安全机制和保护措施，防止各类恶意攻击和威胁。它支持基于 AES-XTS 算法的 flash 加密、基于 RSA 算法的安全启动、数字签名和 HMAC。ESP32-S3 还新增了一个“世界控制器 (World Controller)”模块，提供了两个互不干扰的执行环境，实现可信执行环境或权限分离机制。&lt;br /&gt;
&lt;br /&gt;
= 硬件 =&lt;br /&gt;
&lt;br /&gt;
== 硬件接口示意图 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-PicoW-S3-V0.4-IO.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== 硬件规格 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 规格表&lt;br /&gt;
|-&lt;br /&gt;
| SoC主控芯片&lt;br /&gt;
| ESP32-S3，Xtensa® 32 位 LX7 双核处理器&lt;br /&gt;
|-&lt;br /&gt;
| 主频&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| 工作温度&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| 片上 ROM&lt;br /&gt;
| 384 KB &lt;br /&gt;
|-&lt;br /&gt;
| 片上 SRAM&lt;br /&gt;
| 320 KB&lt;br /&gt;
|-&lt;br /&gt;
| 板载 FLASH ROM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| 片上外设PSRAM&lt;br /&gt;
| 8MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n ，2.4Ghz频带，150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| 蓝牙&lt;br /&gt;
| Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-PicoW-S3已引出27个可用GPIO&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
| 2 × 12 位 SAR ADC，支持 18 个模拟通道输入&lt;br /&gt;
|-&lt;br /&gt;
| TOUCH 电容式触摸传感器&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2，支持主机或从机模式&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2，串行立体声数据的输入输出&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1，支持 8 位 ~16 位并行 RGB、I8080、MOTO6800 接口&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1，支持 8 位 ~16 位 DVP 图像传感器接口&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3 ，支持异步通信（RS232 和RS485）和 IrDA&lt;br /&gt;
|-&lt;br /&gt;
| PWM &lt;br /&gt;
| 8 路独立通道，14位精度&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM &lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × 全速USB 2.0 OTG，MicroUSB母口&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG 控制器&lt;br /&gt;
| 1，USB 全速标准，CDC-ACM ，JTAG&lt;br /&gt;
|-&lt;br /&gt;
| 温度传感器&lt;br /&gt;
| 1，测量范围为–20 °C 到 110 °C，用于监测芯片内部温度&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO主机接口，具有2个卡槽，支持SD卡3.0和3.01，SDIO 3.0，CE-ATA 1.1，MMC 4.41，eMMC 4.5和4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® 控制器&lt;br /&gt;
| 1 ，兼容 ISO11898-1（CAN 规范 2.0）&lt;br /&gt;
|-&lt;br /&gt;
| 通用 DMA 控制器&lt;br /&gt;
| 5 个接收通道和 5 个发送通道&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4 通道发射，4通道接收，共享 384 x 32-bit 的 RAM&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| 4个脉冲计数控制器（单元），每个单元有2个独立的通道&lt;br /&gt;
|-&lt;br /&gt;
| 定时器&lt;br /&gt;
| 4 × 54 位通用定时器，16 位时钟预分频器，1 × 52 位系统定时器，3 × 看门狗定时器&lt;br /&gt;
|-&lt;br /&gt;
| 外部晶振&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC 和低功耗管理&lt;br /&gt;
| 电源管理单元 (PMU)+ 超低功耗协处理器 (ULP)&lt;br /&gt;
|-&lt;br /&gt;
| 低功耗电流&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| 工作电压&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| 输入电压&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| 最大放电电流&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| 可控全彩色LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 硬件尺寸 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-Pico-S3-board-dimension.png|800px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 尺寸表&lt;br /&gt;
|-&lt;br /&gt;
| 管脚间距&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔间距&lt;br /&gt;
| 11.4mm/ 47mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔尺寸&lt;br /&gt;
| 内径2.1mm/外径3.4mm&lt;br /&gt;
|-&lt;br /&gt;
| 主板尺寸&lt;br /&gt;
| 21 × 51.88(mm)/0.83 x 2.04(inches)&lt;br /&gt;
|-&lt;br /&gt;
| 板厚&lt;br /&gt;
| 1.2mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
管脚间距兼容万能板（洞洞板、点阵板），面包板，便于调试应用。&lt;br /&gt;
&lt;br /&gt;
== 外设GPIO管脚分配 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 外设GPIO管脚分配&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| 外设接口&lt;br /&gt;
| 信号&lt;br /&gt;
| 管脚&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| 触摸传感器&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | 默认分配管脚，可重定义为任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| 任意GPIO &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 已用于FLASH与PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 彩色LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 软件 =&lt;br /&gt;
&lt;br /&gt;
== ESP-IDF ==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF 是乐鑫官方推出的物联网开发框架，支持 Windows、Linux 和 macOS 操作系统。&lt;br /&gt;
&lt;br /&gt;
建议开发者通过集成开发环境 (IDE) 安装 ESP-IDF:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README_CN.md GitHub: ESP-IDF Eclipse 插件安装与使用指南]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode 插件] | [https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/toc.md GitHub: 安装与使用指南] | [https://www.bilibili.com/video/BV17p4y167uN bilibili：ESP-IDF VSCode 插件快速操作指南]&lt;br /&gt;
&lt;br /&gt;
或者根据操作系统选择对应的手动安装流程:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/windows-setup.html Windows 平台工具链的标准设置]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/linux-macos-setup.html Linux 和 macOS 平台工具链的标准设置]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-reference/index.html#api API 参考]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-guides/index.html#api API 指南]&lt;br /&gt;
&lt;br /&gt;
为了使你的BPI-Leaf-S3开发板可以通过USB-CDC刷写FLASH，需要设置开发板为固件下载模式。&lt;br /&gt;
&lt;br /&gt;
有两种操作方法：&lt;br /&gt;
&lt;br /&gt;
1.通过USB连接到电脑，按住BOOT键，再按一下RESET键并松开，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
2.在断开供电的条件下按住BOOT键，再通过USB连接到电脑，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
需要在设备管理器中确认接口，固件下载模式与普通模式下的接口序号可能是不一样的。&lt;br /&gt;
&lt;br /&gt;
== MicroPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
MicroPython实现了大部分Python 3 特性和语法，易学易上手，验证程序效果无需编译直接下载进芯片运行。&lt;br /&gt;
&lt;br /&gt;
无论是否有编程基础，MicroPython的上手难度绝对远低于其他编程语言，其代码易读性高，且开源社区有多年积累的丰富资源，就如同Python一样拥有极强的生命力与应用价值。&lt;br /&gt;
&lt;br /&gt;
* '''[https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/tree/main/Example/MicroPython-zh#1%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B GitHub: MicroPython快速上手]'''&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_运行环境搭建 | MicroPython运行环境搭建(Thonny IDE) ]]&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_固件下载与烧录 | MicroPython固件下载与烧录 ]]&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino 是一个开源嵌入式软硬件开发平台，用来供用户制作可交互式的嵌入式项目。&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino快速上手]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
= 资料与资源 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=样品购买=&lt;br /&gt;
&lt;br /&gt;
* 官方速卖通: &lt;br /&gt;
* 官方淘宝: &lt;br /&gt;
* OEM&amp;amp;OEM 定制服务 ： sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12966</id>
		<title>BPI-PicoW-S3 开发板</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12966"/>
				<updated>2022-09-22T03:23:00Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* 硬件规格 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:BPI-PicoW-S3]]&lt;br /&gt;
&lt;br /&gt;
= 介绍 =&lt;br /&gt;
[[File:BPI-PicoW-S3 banner.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[File:PICO-1000-7.jpg|thumb|[[BPI-PicoW-S3_开发板 ]]with ESP32-S3]]&lt;br /&gt;
[[File:PICO-1000-5.png|thumb|[[BPI-PicoW-S3_开发板 ]]with ESP32-S3]]&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 关键特性 ==&lt;br /&gt;
&lt;br /&gt;
* ESP32-S3，Xtensa® 32 bit LX7&lt;br /&gt;
* 片外 PSRAM , FLASH&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI ，Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD，CAMERA ，USB , JTAG&lt;br /&gt;
* 1 * microUSB&lt;br /&gt;
* 1 * 全彩色LED&lt;br /&gt;
&lt;br /&gt;
== BPI-PicoW-S3 与 Rraspberry Pi PicoW、BPI-Leaf-S3、ESP32-S3-DevKitC-1 开发板对比 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! 开发板&lt;br /&gt;
! BPI-PicoW-S3&lt;br /&gt;
! Rraspberry Pi PicoW&lt;br /&gt;
! BPI-Leaf-S3&lt;br /&gt;
! ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| 引出GPIO&lt;br /&gt;
| 27&lt;br /&gt;
| 27&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v管脚&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 5v管脚&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND管脚&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| 全彩LED灯&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 无&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| 芯片直连USB&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
| Type-C USB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL转USB&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| CP2102-MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| 外接电池连接座&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 3.7v锂电池供电接口&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| 电池充电&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 500mA充电&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| I²C 4pin连接座&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 1&lt;br /&gt;
| 无&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP32-S3 ==&lt;br /&gt;
&lt;br /&gt;
ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片，支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器，主频高达 240 MHz，内置 512 KB SRAM (TCM)，具有 45 个可编程 GPIO 管脚和丰富的通信接口。ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM，支持用户配置数据缓存与指令缓存。&lt;br /&gt;
&lt;br /&gt;
以下是ESP32-S3芯片重要功能的描述。&lt;br /&gt;
&lt;br /&gt;
* '''支持Wi-Fi + Bluetooth 5 (LE) 无线连接''': ESP32-S3 集成 2.4 GHz Wi-Fi (802.11 b/g/n)，支持 40 MHz 带宽；其低功耗蓝牙子系统支持 Bluetooth 5 (LE) 和 Bluetooth Mesh，可通过 Coded PHY 与广播扩展实现远距离通信。它还支持 2 Mbps PHY，用于提高传输速度和数据吞吐量。ESP32-S3 的 Wi-Fi 和 Bluetooth LE 射频性能优越，在高温下也能稳定工作。&lt;br /&gt;
&lt;br /&gt;
* '''支持 AI 加速''': ESP32-S3 MCU 增加了用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions)。AI 开发者们通过 ESP-DSP 和 ESP-NN 库使用这些向量指令，可以实现高性能的图像识别、语音唤醒和识别等应用。&lt;br /&gt;
&lt;br /&gt;
* '''丰富的 IO 接口''': ESP32-S3 拥有 45 个可编程 GPIO 以及 SPI、I2S、I2C、PWM、RMT、ADC、UART、SD/MMC 主机控制器和 TWAITM 控制器等常用外设接口。其中的 14 个 GPIO 可被配置为 HMI 交互的电容触摸输入端。此外，ESP32-S3 搭载了超低功耗协处理器 (ULP)，支持多种低功耗模式，广泛适用于各类低功耗应用场景。&lt;br /&gt;
&lt;br /&gt;
* '''完善的安全机制''': ESP32-S3 为物联网设备提供了完善的安全机制和保护措施，防止各类恶意攻击和威胁。它支持基于 AES-XTS 算法的 flash 加密、基于 RSA 算法的安全启动、数字签名和 HMAC。ESP32-S3 还新增了一个“世界控制器 (World Controller)”模块，提供了两个互不干扰的执行环境，实现可信执行环境或权限分离机制。&lt;br /&gt;
&lt;br /&gt;
= 硬件 =&lt;br /&gt;
&lt;br /&gt;
== 硬件接口示意图 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-PicoW-S3-V0.4-IO.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== 硬件规格 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 规格表&lt;br /&gt;
|-&lt;br /&gt;
| SoC主控芯片&lt;br /&gt;
| ESP32-S3，Xtensa® 32 位 LX7 双核处理器&lt;br /&gt;
|-&lt;br /&gt;
| 主频&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| 工作温度&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| 片上 ROM&lt;br /&gt;
| 384 KB &lt;br /&gt;
|-&lt;br /&gt;
| 片上 SRAM&lt;br /&gt;
| 320 KB&lt;br /&gt;
|-&lt;br /&gt;
| 板载 FLASH ROM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| 片上外设PSRAM&lt;br /&gt;
| 8MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n ，2.4Ghz频带，150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| 蓝牙&lt;br /&gt;
| Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-PicoW-S3已引出27个可用GPIO&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
| 2 × 12 位 SAR ADC，支持 18 个模拟通道输入&lt;br /&gt;
|-&lt;br /&gt;
| TOUCH 电容式触摸传感器&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2，支持主机或从机模式&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2，串行立体声数据的输入输出&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1，支持 8 位 ~16 位并行 RGB、I8080、MOTO6800 接口&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1，支持 8 位 ~16 位 DVP 图像传感器接口&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3 ，支持异步通信（RS232 和RS485）和 IrDA&lt;br /&gt;
|-&lt;br /&gt;
| PWM &lt;br /&gt;
| 8 路独立通道，14位精度&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM &lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × 全速USB 2.0 OTG，MicroUSB母口&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG 控制器&lt;br /&gt;
| 1，USB 全速标准，CDC-ACM ，JTAG&lt;br /&gt;
|-&lt;br /&gt;
| 温度传感器&lt;br /&gt;
| 1，测量范围为–20 °C 到 110 °C，用于监测芯片内部温度&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO主机接口，具有2个卡槽，支持SD卡3.0和3.01，SDIO 3.0，CE-ATA 1.1，MMC 4.41，eMMC 4.5和4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® 控制器&lt;br /&gt;
| 1 ，兼容 ISO11898-1（CAN 规范 2.0）&lt;br /&gt;
|-&lt;br /&gt;
| 通用 DMA 控制器&lt;br /&gt;
| 5 个接收通道和 5 个发送通道&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4 通道发射，4通道接收，共享 384 x 32-bit 的 RAM&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| 4个脉冲计数控制器（单元），每个单元有2个独立的通道&lt;br /&gt;
|-&lt;br /&gt;
| 定时器&lt;br /&gt;
| 4 × 54 位通用定时器，16 位时钟预分频器，1 × 52 位系统定时器，3 × 看门狗定时器&lt;br /&gt;
|-&lt;br /&gt;
| 外部晶振&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC 和低功耗管理&lt;br /&gt;
| 电源管理单元 (PMU)+ 超低功耗协处理器 (ULP)&lt;br /&gt;
|-&lt;br /&gt;
| 低功耗电流&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| 工作电压&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| 输入电压&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| 最大放电电流&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| 可控全彩色LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 硬件尺寸 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-Pico-S3-board-dimension.png|800px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 尺寸表&lt;br /&gt;
|-&lt;br /&gt;
| 管脚间距&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔间距&lt;br /&gt;
| 11.4mm/ 47mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔尺寸&lt;br /&gt;
| 内径2.1mm/外径3.4mm&lt;br /&gt;
|-&lt;br /&gt;
| 主板尺寸&lt;br /&gt;
| 21 × 51.88(mm)/0.83 x 2.04(inches)&lt;br /&gt;
|-&lt;br /&gt;
| 板厚&lt;br /&gt;
| 1.2mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
管脚间距兼容万能板（洞洞板、点阵板），面包板，便于调试应用。&lt;br /&gt;
&lt;br /&gt;
== 外设GPIO管脚分配 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 外设GPIO管脚分配&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| 外设接口&lt;br /&gt;
| 信号&lt;br /&gt;
| 管脚&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| 触摸传感器&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | 默认分配管脚，可重定义为任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| 任意GPIO &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 已用于FLASH与PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 彩色LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 软件 =&lt;br /&gt;
&lt;br /&gt;
== ESP-IDF ==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF 是乐鑫官方推出的物联网开发框架，支持 Windows、Linux 和 macOS 操作系统。&lt;br /&gt;
&lt;br /&gt;
建议开发者通过集成开发环境 (IDE) 安装 ESP-IDF:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README_CN.md GitHub: ESP-IDF Eclipse 插件安装与使用指南]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode 插件] | [https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/toc.md GitHub: 安装与使用指南] | [https://www.bilibili.com/video/BV17p4y167uN bilibili：ESP-IDF VSCode 插件快速操作指南]&lt;br /&gt;
&lt;br /&gt;
或者根据操作系统选择对应的手动安装流程:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/windows-setup.html Windows 平台工具链的标准设置]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/linux-macos-setup.html Linux 和 macOS 平台工具链的标准设置]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-reference/index.html#api API 参考]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-guides/index.html#api API 指南]&lt;br /&gt;
&lt;br /&gt;
为了使你的BPI-Leaf-S3开发板可以通过USB-CDC刷写FLASH，需要设置开发板为固件下载模式。&lt;br /&gt;
&lt;br /&gt;
有两种操作方法：&lt;br /&gt;
&lt;br /&gt;
1.通过USB连接到电脑，按住BOOT键，再按一下RESET键并松开，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
2.在断开供电的条件下按住BOOT键，再通过USB连接到电脑，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
需要在设备管理器中确认接口，固件下载模式与普通模式下的接口序号可能是不一样的。&lt;br /&gt;
&lt;br /&gt;
== MicroPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
MicroPython实现了大部分Python 3 特性和语法，易学易上手，验证程序效果无需编译直接下载进芯片运行。&lt;br /&gt;
&lt;br /&gt;
无论是否有编程基础，MicroPython的上手难度绝对远低于其他编程语言，其代码易读性高，且开源社区有多年积累的丰富资源，就如同Python一样拥有极强的生命力与应用价值。&lt;br /&gt;
&lt;br /&gt;
* '''[https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/tree/main/Example/MicroPython-zh#1%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B GitHub: MicroPython快速上手]'''&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_运行环境搭建 | MicroPython运行环境搭建(Thonny IDE) ]]&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_固件下载与烧录 | MicroPython固件下载与烧录 ]]&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino 是一个开源嵌入式软硬件开发平台，用来供用户制作可交互式的嵌入式项目。&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino快速上手]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
= 资料与资源 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=样品购买=&lt;br /&gt;
&lt;br /&gt;
* 官方速卖通: &lt;br /&gt;
* 官方淘宝: &lt;br /&gt;
* OEM&amp;amp;OEM 定制服务 ： sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12965</id>
		<title>BPI-PicoW-S3 开发板</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12965"/>
				<updated>2022-09-22T03:15:54Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:BPI-PicoW-S3]]&lt;br /&gt;
&lt;br /&gt;
= 介绍 =&lt;br /&gt;
[[File:BPI-PicoW-S3 banner.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[File:PICO-1000-7.jpg|thumb|[[BPI-PicoW-S3_开发板 ]]with ESP32-S3]]&lt;br /&gt;
[[File:PICO-1000-5.png|thumb|[[BPI-PicoW-S3_开发板 ]]with ESP32-S3]]&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 关键特性 ==&lt;br /&gt;
&lt;br /&gt;
* ESP32-S3，Xtensa® 32 bit LX7&lt;br /&gt;
* 片外 PSRAM , FLASH&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI ，Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD，CAMERA ，USB , JTAG&lt;br /&gt;
* 1 * microUSB&lt;br /&gt;
* 1 * 全彩色LED&lt;br /&gt;
&lt;br /&gt;
== BPI-PicoW-S3 与 Rraspberry Pi PicoW、BPI-Leaf-S3、ESP32-S3-DevKitC-1 开发板对比 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! 开发板&lt;br /&gt;
! BPI-PicoW-S3&lt;br /&gt;
! Rraspberry Pi PicoW&lt;br /&gt;
! BPI-Leaf-S3&lt;br /&gt;
! ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| 引出GPIO&lt;br /&gt;
| 27&lt;br /&gt;
| 27&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v管脚&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 5v管脚&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND管脚&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| 全彩LED灯&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 无&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| 芯片直连USB&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
| Type-C USB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL转USB&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| CP2102-MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| 外接电池连接座&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 3.7v锂电池供电接口&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| 电池充电&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 500mA充电&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| I²C 4pin连接座&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 1&lt;br /&gt;
| 无&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP32-S3 ==&lt;br /&gt;
&lt;br /&gt;
ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片，支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器，主频高达 240 MHz，内置 512 KB SRAM (TCM)，具有 45 个可编程 GPIO 管脚和丰富的通信接口。ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM，支持用户配置数据缓存与指令缓存。&lt;br /&gt;
&lt;br /&gt;
以下是ESP32-S3芯片重要功能的描述。&lt;br /&gt;
&lt;br /&gt;
* '''支持Wi-Fi + Bluetooth 5 (LE) 无线连接''': ESP32-S3 集成 2.4 GHz Wi-Fi (802.11 b/g/n)，支持 40 MHz 带宽；其低功耗蓝牙子系统支持 Bluetooth 5 (LE) 和 Bluetooth Mesh，可通过 Coded PHY 与广播扩展实现远距离通信。它还支持 2 Mbps PHY，用于提高传输速度和数据吞吐量。ESP32-S3 的 Wi-Fi 和 Bluetooth LE 射频性能优越，在高温下也能稳定工作。&lt;br /&gt;
&lt;br /&gt;
* '''支持 AI 加速''': ESP32-S3 MCU 增加了用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions)。AI 开发者们通过 ESP-DSP 和 ESP-NN 库使用这些向量指令，可以实现高性能的图像识别、语音唤醒和识别等应用。&lt;br /&gt;
&lt;br /&gt;
* '''丰富的 IO 接口''': ESP32-S3 拥有 45 个可编程 GPIO 以及 SPI、I2S、I2C、PWM、RMT、ADC、UART、SD/MMC 主机控制器和 TWAITM 控制器等常用外设接口。其中的 14 个 GPIO 可被配置为 HMI 交互的电容触摸输入端。此外，ESP32-S3 搭载了超低功耗协处理器 (ULP)，支持多种低功耗模式，广泛适用于各类低功耗应用场景。&lt;br /&gt;
&lt;br /&gt;
* '''完善的安全机制''': ESP32-S3 为物联网设备提供了完善的安全机制和保护措施，防止各类恶意攻击和威胁。它支持基于 AES-XTS 算法的 flash 加密、基于 RSA 算法的安全启动、数字签名和 HMAC。ESP32-S3 还新增了一个“世界控制器 (World Controller)”模块，提供了两个互不干扰的执行环境，实现可信执行环境或权限分离机制。&lt;br /&gt;
&lt;br /&gt;
= 硬件 =&lt;br /&gt;
&lt;br /&gt;
== 硬件接口示意图 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-PicoW-S3-V0.4-IO.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== 硬件规格 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 规格表&lt;br /&gt;
|-&lt;br /&gt;
| SoC主控芯片&lt;br /&gt;
| ESP32-S3，Xtensa® 32 位 LX7 双核处理器&lt;br /&gt;
|-&lt;br /&gt;
| 主频&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| 工作温度&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| 片上 ROM&lt;br /&gt;
| 384 KB &lt;br /&gt;
|-&lt;br /&gt;
| 片上 SRAM&lt;br /&gt;
| 320 KB&lt;br /&gt;
|-&lt;br /&gt;
| 板载 FLASH ROM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| 片上外设PSRAM&lt;br /&gt;
| 8MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n ，2.4Ghz频带，150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| 蓝牙&lt;br /&gt;
| Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-PicoW-S3已引出27个可用GPIO&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
| 2 × 12 位 SAR ADC，支持 18 个模拟通道输入&lt;br /&gt;
|-&lt;br /&gt;
| TOUCH 电容式触摸传感器&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2，支持主机或从机模式&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2，串行立体声数据的输入输出&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1，支持 8 位 ~16 位并行 RGB、I8080、MOTO6800 接口&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1，支持 8 位 ~16 位 DVP 图像传感器接口&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3 ，支持异步通信（RS232 和RS485）和 IrDA&lt;br /&gt;
|-&lt;br /&gt;
| PWM &lt;br /&gt;
| 8 路独立通道，14位精度&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM &lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × 全速USB 2.0 OTG，Type-C母口&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG 控制器&lt;br /&gt;
| 1，USB 全速标准，CDC-ACM ，JTAG&lt;br /&gt;
|-&lt;br /&gt;
| 温度传感器&lt;br /&gt;
| 1，测量范围为–20 °C 到 110 °C，用于监测芯片内部温度&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO主机接口，具有2个卡槽，支持SD卡3.0和3.01，SDIO 3.0，CE-ATA 1.1，MMC 4.41，eMMC 4.5和4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® 控制器&lt;br /&gt;
| 1 ，兼容 ISO11898-1（CAN 规范 2.0）&lt;br /&gt;
|-&lt;br /&gt;
| 通用 DMA 控制器&lt;br /&gt;
| 5 个接收通道和 5 个发送通道&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4 通道发射，4通道接收，共享 384 x 32-bit 的 RAM&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| 4个脉冲计数控制器（单元），每个单元有2个独立的通道&lt;br /&gt;
|-&lt;br /&gt;
| 定时器&lt;br /&gt;
| 4 × 54 位通用定时器，16 位时钟预分频器，1 × 52 位系统定时器，3 × 看门狗定时器&lt;br /&gt;
|-&lt;br /&gt;
| 外部晶振&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC 和低功耗管理&lt;br /&gt;
| 电源管理单元 (PMU)+ 超低功耗协处理器 (ULP)&lt;br /&gt;
|-&lt;br /&gt;
| 低功耗电流&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| 工作电压&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| 输入电压&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| 最大放电电流&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| USB充电&lt;br /&gt;
| 支持&lt;br /&gt;
|-&lt;br /&gt;
| 最大充电电流&lt;br /&gt;
| 500mA&lt;br /&gt;
|-&lt;br /&gt;
| 可控全彩色LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 硬件尺寸 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-Pico-S3-board-dimension.png|800px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 尺寸表&lt;br /&gt;
|-&lt;br /&gt;
| 管脚间距&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔间距&lt;br /&gt;
| 11.4mm/ 47mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔尺寸&lt;br /&gt;
| 内径2.1mm/外径3.4mm&lt;br /&gt;
|-&lt;br /&gt;
| 主板尺寸&lt;br /&gt;
| 21 × 51.88(mm)/0.83 x 2.04(inches)&lt;br /&gt;
|-&lt;br /&gt;
| 板厚&lt;br /&gt;
| 1.2mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
管脚间距兼容万能板（洞洞板、点阵板），面包板，便于调试应用。&lt;br /&gt;
&lt;br /&gt;
== 外设GPIO管脚分配 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 外设GPIO管脚分配&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| 外设接口&lt;br /&gt;
| 信号&lt;br /&gt;
| 管脚&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| 触摸传感器&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | 默认分配管脚，可重定义为任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| 任意GPIO &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 已用于FLASH与PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 彩色LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 软件 =&lt;br /&gt;
&lt;br /&gt;
== ESP-IDF ==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF 是乐鑫官方推出的物联网开发框架，支持 Windows、Linux 和 macOS 操作系统。&lt;br /&gt;
&lt;br /&gt;
建议开发者通过集成开发环境 (IDE) 安装 ESP-IDF:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README_CN.md GitHub: ESP-IDF Eclipse 插件安装与使用指南]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode 插件] | [https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/toc.md GitHub: 安装与使用指南] | [https://www.bilibili.com/video/BV17p4y167uN bilibili：ESP-IDF VSCode 插件快速操作指南]&lt;br /&gt;
&lt;br /&gt;
或者根据操作系统选择对应的手动安装流程:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/windows-setup.html Windows 平台工具链的标准设置]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/linux-macos-setup.html Linux 和 macOS 平台工具链的标准设置]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-reference/index.html#api API 参考]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-guides/index.html#api API 指南]&lt;br /&gt;
&lt;br /&gt;
为了使你的BPI-Leaf-S3开发板可以通过USB-CDC刷写FLASH，需要设置开发板为固件下载模式。&lt;br /&gt;
&lt;br /&gt;
有两种操作方法：&lt;br /&gt;
&lt;br /&gt;
1.通过USB连接到电脑，按住BOOT键，再按一下RESET键并松开，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
2.在断开供电的条件下按住BOOT键，再通过USB连接到电脑，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
需要在设备管理器中确认接口，固件下载模式与普通模式下的接口序号可能是不一样的。&lt;br /&gt;
&lt;br /&gt;
== MicroPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
MicroPython实现了大部分Python 3 特性和语法，易学易上手，验证程序效果无需编译直接下载进芯片运行。&lt;br /&gt;
&lt;br /&gt;
无论是否有编程基础，MicroPython的上手难度绝对远低于其他编程语言，其代码易读性高，且开源社区有多年积累的丰富资源，就如同Python一样拥有极强的生命力与应用价值。&lt;br /&gt;
&lt;br /&gt;
* '''[https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/tree/main/Example/MicroPython-zh#1%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B GitHub: MicroPython快速上手]'''&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_运行环境搭建 | MicroPython运行环境搭建(Thonny IDE) ]]&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_固件下载与烧录 | MicroPython固件下载与烧录 ]]&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino 是一个开源嵌入式软硬件开发平台，用来供用户制作可交互式的嵌入式项目。&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino快速上手]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
= 资料与资源 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=样品购买=&lt;br /&gt;
&lt;br /&gt;
* 官方速卖通: &lt;br /&gt;
* 官方淘宝: &lt;br /&gt;
* OEM&amp;amp;OEM 定制服务 ： sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=File:PICO-1000-back.png&amp;diff=12958</id>
		<title>File:PICO-1000-back.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=File:PICO-1000-back.png&amp;diff=12958"/>
				<updated>2022-09-22T03:07:50Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=File:PICO-1000-7.jpg&amp;diff=12954</id>
		<title>File:PICO-1000-7.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=File:PICO-1000-7.jpg&amp;diff=12954"/>
				<updated>2022-09-22T02:57:27Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12952</id>
		<title>BPI-PicoW-S3 开发板</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12952"/>
				<updated>2022-09-22T02:55:51Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* 介绍 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:BPI-PicoW-S3]]&lt;br /&gt;
&lt;br /&gt;
= 介绍 =&lt;br /&gt;
[[File:BPI-PicoW-S3 banner.png|800px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 关键特性 ==&lt;br /&gt;
&lt;br /&gt;
* ESP32-S3，Xtensa® 32 bit LX7&lt;br /&gt;
* 片外 PSRAM , FLASH&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI ，Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD，CAMERA ，USB , JTAG&lt;br /&gt;
* 1 * microUSB&lt;br /&gt;
* 1 * 全彩色LED&lt;br /&gt;
&lt;br /&gt;
== BPI-PicoW-S3 与 Rraspberry Pi PicoW、BPI-Leaf-S3、ESP32-S3-DevKitC-1 开发板对比 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! 开发板&lt;br /&gt;
! BPI-PicoW-S3&lt;br /&gt;
! Rraspberry Pi PicoW&lt;br /&gt;
! BPI-Leaf-S3&lt;br /&gt;
! ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| 引出GPIO&lt;br /&gt;
| 27&lt;br /&gt;
| 27&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v管脚&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 5v管脚&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND管脚&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| 全彩LED灯&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 无&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| 芯片直连USB&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
| Type-C USB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL转USB&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| CP2102-MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| 外接电池连接座&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 3.7v锂电池供电接口&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| 电池充电&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 500mA充电&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| I²C 4pin连接座&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 1&lt;br /&gt;
| 无&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP32-S3 ==&lt;br /&gt;
&lt;br /&gt;
ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片，支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器，主频高达 240 MHz，内置 512 KB SRAM (TCM)，具有 45 个可编程 GPIO 管脚和丰富的通信接口。ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM，支持用户配置数据缓存与指令缓存。&lt;br /&gt;
&lt;br /&gt;
以下是ESP32-S3芯片重要功能的描述。&lt;br /&gt;
&lt;br /&gt;
* '''支持Wi-Fi + Bluetooth 5 (LE) 无线连接''': ESP32-S3 集成 2.4 GHz Wi-Fi (802.11 b/g/n)，支持 40 MHz 带宽；其低功耗蓝牙子系统支持 Bluetooth 5 (LE) 和 Bluetooth Mesh，可通过 Coded PHY 与广播扩展实现远距离通信。它还支持 2 Mbps PHY，用于提高传输速度和数据吞吐量。ESP32-S3 的 Wi-Fi 和 Bluetooth LE 射频性能优越，在高温下也能稳定工作。&lt;br /&gt;
&lt;br /&gt;
* '''支持 AI 加速''': ESP32-S3 MCU 增加了用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions)。AI 开发者们通过 ESP-DSP 和 ESP-NN 库使用这些向量指令，可以实现高性能的图像识别、语音唤醒和识别等应用。&lt;br /&gt;
&lt;br /&gt;
* '''丰富的 IO 接口''': ESP32-S3 拥有 45 个可编程 GPIO 以及 SPI、I2S、I2C、PWM、RMT、ADC、UART、SD/MMC 主机控制器和 TWAITM 控制器等常用外设接口。其中的 14 个 GPIO 可被配置为 HMI 交互的电容触摸输入端。此外，ESP32-S3 搭载了超低功耗协处理器 (ULP)，支持多种低功耗模式，广泛适用于各类低功耗应用场景。&lt;br /&gt;
&lt;br /&gt;
* '''完善的安全机制''': ESP32-S3 为物联网设备提供了完善的安全机制和保护措施，防止各类恶意攻击和威胁。它支持基于 AES-XTS 算法的 flash 加密、基于 RSA 算法的安全启动、数字签名和 HMAC。ESP32-S3 还新增了一个“世界控制器 (World Controller)”模块，提供了两个互不干扰的执行环境，实现可信执行环境或权限分离机制。&lt;br /&gt;
&lt;br /&gt;
= 硬件 =&lt;br /&gt;
&lt;br /&gt;
== 硬件接口示意图 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-PicoW-S3-V0.4-IO.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== 硬件规格 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 规格表&lt;br /&gt;
|-&lt;br /&gt;
| SoC主控芯片&lt;br /&gt;
| ESP32-S3，Xtensa® 32 位 LX7 双核处理器&lt;br /&gt;
|-&lt;br /&gt;
| 主频&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| 工作温度&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| 片上 ROM&lt;br /&gt;
| 384 KB &lt;br /&gt;
|-&lt;br /&gt;
| 片上 SRAM&lt;br /&gt;
| 320 KB&lt;br /&gt;
|-&lt;br /&gt;
| 板载 FLASH ROM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| 片上外设PSRAM&lt;br /&gt;
| 8MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n ，2.4Ghz频带，150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| 蓝牙&lt;br /&gt;
| Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-PicoW-S3已引出27个可用GPIO&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
| 2 × 12 位 SAR ADC，支持 18 个模拟通道输入&lt;br /&gt;
|-&lt;br /&gt;
| TOUCH 电容式触摸传感器&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2，支持主机或从机模式&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2，串行立体声数据的输入输出&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1，支持 8 位 ~16 位并行 RGB、I8080、MOTO6800 接口&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1，支持 8 位 ~16 位 DVP 图像传感器接口&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3 ，支持异步通信（RS232 和RS485）和 IrDA&lt;br /&gt;
|-&lt;br /&gt;
| PWM &lt;br /&gt;
| 8 路独立通道，14位精度&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM &lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × 全速USB 2.0 OTG，Type-C母口&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG 控制器&lt;br /&gt;
| 1，USB 全速标准，CDC-ACM ，JTAG&lt;br /&gt;
|-&lt;br /&gt;
| 温度传感器&lt;br /&gt;
| 1，测量范围为–20 °C 到 110 °C，用于监测芯片内部温度&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO主机接口，具有2个卡槽，支持SD卡3.0和3.01，SDIO 3.0，CE-ATA 1.1，MMC 4.41，eMMC 4.5和4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® 控制器&lt;br /&gt;
| 1 ，兼容 ISO11898-1（CAN 规范 2.0）&lt;br /&gt;
|-&lt;br /&gt;
| 通用 DMA 控制器&lt;br /&gt;
| 5 个接收通道和 5 个发送通道&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4 通道发射，4通道接收，共享 384 x 32-bit 的 RAM&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| 4个脉冲计数控制器（单元），每个单元有2个独立的通道&lt;br /&gt;
|-&lt;br /&gt;
| 定时器&lt;br /&gt;
| 4 × 54 位通用定时器，16 位时钟预分频器，1 × 52 位系统定时器，3 × 看门狗定时器&lt;br /&gt;
|-&lt;br /&gt;
| 外部晶振&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC 和低功耗管理&lt;br /&gt;
| 电源管理单元 (PMU)+ 超低功耗协处理器 (ULP)&lt;br /&gt;
|-&lt;br /&gt;
| 低功耗电流&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| 工作电压&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| 输入电压&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| 最大放电电流&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| USB充电&lt;br /&gt;
| 支持&lt;br /&gt;
|-&lt;br /&gt;
| 最大充电电流&lt;br /&gt;
| 500mA&lt;br /&gt;
|-&lt;br /&gt;
| 可控全彩色LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 硬件尺寸 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-Pico-S3-board-dimension.png|800px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 尺寸表&lt;br /&gt;
|-&lt;br /&gt;
| 管脚间距&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔间距&lt;br /&gt;
| 11.4mm/ 47mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔尺寸&lt;br /&gt;
| 内径2.1mm/外径3.4mm&lt;br /&gt;
|-&lt;br /&gt;
| 主板尺寸&lt;br /&gt;
| 21 × 51.88(mm)/0.83 x 2.04(inches)&lt;br /&gt;
|-&lt;br /&gt;
| 板厚&lt;br /&gt;
| 1.2mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
管脚间距兼容万能板（洞洞板、点阵板），面包板，便于调试应用。&lt;br /&gt;
&lt;br /&gt;
== 外设GPIO管脚分配 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 外设GPIO管脚分配&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| 外设接口&lt;br /&gt;
| 信号&lt;br /&gt;
| 管脚&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| 触摸传感器&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | 默认分配管脚，可重定义为任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| 任意GPIO &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 已用于FLASH与PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 彩色LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 软件 =&lt;br /&gt;
&lt;br /&gt;
== ESP-IDF ==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF 是乐鑫官方推出的物联网开发框架，支持 Windows、Linux 和 macOS 操作系统。&lt;br /&gt;
&lt;br /&gt;
建议开发者通过集成开发环境 (IDE) 安装 ESP-IDF:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README_CN.md GitHub: ESP-IDF Eclipse 插件安装与使用指南]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode 插件] | [https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/toc.md GitHub: 安装与使用指南] | [https://www.bilibili.com/video/BV17p4y167uN bilibili：ESP-IDF VSCode 插件快速操作指南]&lt;br /&gt;
&lt;br /&gt;
或者根据操作系统选择对应的手动安装流程:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/windows-setup.html Windows 平台工具链的标准设置]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/linux-macos-setup.html Linux 和 macOS 平台工具链的标准设置]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-reference/index.html#api API 参考]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-guides/index.html#api API 指南]&lt;br /&gt;
&lt;br /&gt;
为了使你的BPI-Leaf-S3开发板可以通过USB-CDC刷写FLASH，需要设置开发板为固件下载模式。&lt;br /&gt;
&lt;br /&gt;
有两种操作方法：&lt;br /&gt;
&lt;br /&gt;
1.通过USB连接到电脑，按住BOOT键，再按一下RESET键并松开，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
2.在断开供电的条件下按住BOOT键，再通过USB连接到电脑，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
需要在设备管理器中确认接口，固件下载模式与普通模式下的接口序号可能是不一样的。&lt;br /&gt;
&lt;br /&gt;
== MicroPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
MicroPython实现了大部分Python 3 特性和语法，易学易上手，验证程序效果无需编译直接下载进芯片运行。&lt;br /&gt;
&lt;br /&gt;
无论是否有编程基础，MicroPython的上手难度绝对远低于其他编程语言，其代码易读性高，且开源社区有多年积累的丰富资源，就如同Python一样拥有极强的生命力与应用价值。&lt;br /&gt;
&lt;br /&gt;
* '''[https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/tree/main/Example/MicroPython-zh#1%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B GitHub: MicroPython快速上手]'''&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_运行环境搭建 | MicroPython运行环境搭建(Thonny IDE) ]]&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_固件下载与烧录 | MicroPython固件下载与烧录 ]]&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino 是一个开源嵌入式软硬件开发平台，用来供用户制作可交互式的嵌入式项目。&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino快速上手]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
= 资料与资源 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=样品购买=&lt;br /&gt;
&lt;br /&gt;
* 官方速卖通: &lt;br /&gt;
* 官方淘宝: &lt;br /&gt;
* OEM&amp;amp;OEM 定制服务 ： sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=File:BPI-PicoW-S3_banner.png&amp;diff=12950</id>
		<title>File:BPI-PicoW-S3 banner.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=File:BPI-PicoW-S3_banner.png&amp;diff=12950"/>
				<updated>2022-09-22T02:54:48Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: Qubot uploaded a new version of File:BPI-PicoW-S3 banner.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=File:BPI-PicoW-S3_banner.png&amp;diff=12949</id>
		<title>File:BPI-PicoW-S3 banner.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=File:BPI-PicoW-S3_banner.png&amp;diff=12949"/>
				<updated>2022-09-22T02:47:01Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12937</id>
		<title>BPI-PicoW-S3 开发板</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12937"/>
				<updated>2022-09-21T01:59:25Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* BPI-PicoW-S3 与 Rraspberry Pi PicoW、BPI-Leaf-S3、ESP32-S3-DevKitC-1 开发板对比 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:BPI-PicoW-S3]]&lt;br /&gt;
&lt;br /&gt;
= 介绍 =&lt;br /&gt;
Preparing...&lt;br /&gt;
&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 关键特性 ==&lt;br /&gt;
&lt;br /&gt;
* ESP32-S3，Xtensa® 32 bit LX7&lt;br /&gt;
* 片外 PSRAM , FLASH&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI ，Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD，CAMERA ，USB , JTAG&lt;br /&gt;
* 1 * microUSB&lt;br /&gt;
* 1 * 全彩色LED&lt;br /&gt;
&lt;br /&gt;
== BPI-PicoW-S3 与 Rraspberry Pi PicoW、BPI-Leaf-S3、ESP32-S3-DevKitC-1 开发板对比 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! 开发板&lt;br /&gt;
! BPI-PicoW-S3&lt;br /&gt;
! Rraspberry Pi PicoW&lt;br /&gt;
! BPI-Leaf-S3&lt;br /&gt;
! ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| 引出GPIO&lt;br /&gt;
| 27&lt;br /&gt;
| 27&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v管脚&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 5v管脚&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND管脚&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| 全彩LED灯&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 无&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| 芯片直连USB&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
| Type-C USB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL转USB&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| CP2102-MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| 外接电池连接座&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 3.7v锂电池供电接口&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| 电池充电&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 500mA充电&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| I²C 4pin连接座&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 1&lt;br /&gt;
| 无&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP32-S3 ==&lt;br /&gt;
&lt;br /&gt;
ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片，支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器，主频高达 240 MHz，内置 512 KB SRAM (TCM)，具有 45 个可编程 GPIO 管脚和丰富的通信接口。ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM，支持用户配置数据缓存与指令缓存。&lt;br /&gt;
&lt;br /&gt;
以下是ESP32-S3芯片重要功能的描述。&lt;br /&gt;
&lt;br /&gt;
* '''支持Wi-Fi + Bluetooth 5 (LE) 无线连接''': ESP32-S3 集成 2.4 GHz Wi-Fi (802.11 b/g/n)，支持 40 MHz 带宽；其低功耗蓝牙子系统支持 Bluetooth 5 (LE) 和 Bluetooth Mesh，可通过 Coded PHY 与广播扩展实现远距离通信。它还支持 2 Mbps PHY，用于提高传输速度和数据吞吐量。ESP32-S3 的 Wi-Fi 和 Bluetooth LE 射频性能优越，在高温下也能稳定工作。&lt;br /&gt;
&lt;br /&gt;
* '''支持 AI 加速''': ESP32-S3 MCU 增加了用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions)。AI 开发者们通过 ESP-DSP 和 ESP-NN 库使用这些向量指令，可以实现高性能的图像识别、语音唤醒和识别等应用。&lt;br /&gt;
&lt;br /&gt;
* '''丰富的 IO 接口''': ESP32-S3 拥有 45 个可编程 GPIO 以及 SPI、I2S、I2C、PWM、RMT、ADC、UART、SD/MMC 主机控制器和 TWAITM 控制器等常用外设接口。其中的 14 个 GPIO 可被配置为 HMI 交互的电容触摸输入端。此外，ESP32-S3 搭载了超低功耗协处理器 (ULP)，支持多种低功耗模式，广泛适用于各类低功耗应用场景。&lt;br /&gt;
&lt;br /&gt;
* '''完善的安全机制''': ESP32-S3 为物联网设备提供了完善的安全机制和保护措施，防止各类恶意攻击和威胁。它支持基于 AES-XTS 算法的 flash 加密、基于 RSA 算法的安全启动、数字签名和 HMAC。ESP32-S3 还新增了一个“世界控制器 (World Controller)”模块，提供了两个互不干扰的执行环境，实现可信执行环境或权限分离机制。&lt;br /&gt;
&lt;br /&gt;
= 硬件 =&lt;br /&gt;
&lt;br /&gt;
== 硬件接口示意图 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-PicoW-S3-V0.4-IO.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== 硬件规格 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 规格表&lt;br /&gt;
|-&lt;br /&gt;
| SoC主控芯片&lt;br /&gt;
| ESP32-S3，Xtensa® 32 位 LX7 双核处理器&lt;br /&gt;
|-&lt;br /&gt;
| 主频&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| 工作温度&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| 片上 ROM&lt;br /&gt;
| 384 KB &lt;br /&gt;
|-&lt;br /&gt;
| 片上 SRAM&lt;br /&gt;
| 320 KB&lt;br /&gt;
|-&lt;br /&gt;
| 板载 FLASH ROM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| 片上外设PSRAM&lt;br /&gt;
| 8MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n ，2.4Ghz频带，150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| 蓝牙&lt;br /&gt;
| Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-PicoW-S3已引出27个可用GPIO&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
| 2 × 12 位 SAR ADC，支持 18 个模拟通道输入&lt;br /&gt;
|-&lt;br /&gt;
| TOUCH 电容式触摸传感器&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2，支持主机或从机模式&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2，串行立体声数据的输入输出&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1，支持 8 位 ~16 位并行 RGB、I8080、MOTO6800 接口&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1，支持 8 位 ~16 位 DVP 图像传感器接口&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3 ，支持异步通信（RS232 和RS485）和 IrDA&lt;br /&gt;
|-&lt;br /&gt;
| PWM &lt;br /&gt;
| 8 路独立通道，14位精度&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM &lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × 全速USB 2.0 OTG，Type-C母口&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG 控制器&lt;br /&gt;
| 1，USB 全速标准，CDC-ACM ，JTAG&lt;br /&gt;
|-&lt;br /&gt;
| 温度传感器&lt;br /&gt;
| 1，测量范围为–20 °C 到 110 °C，用于监测芯片内部温度&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO主机接口，具有2个卡槽，支持SD卡3.0和3.01，SDIO 3.0，CE-ATA 1.1，MMC 4.41，eMMC 4.5和4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® 控制器&lt;br /&gt;
| 1 ，兼容 ISO11898-1（CAN 规范 2.0）&lt;br /&gt;
|-&lt;br /&gt;
| 通用 DMA 控制器&lt;br /&gt;
| 5 个接收通道和 5 个发送通道&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4 通道发射，4通道接收，共享 384 x 32-bit 的 RAM&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| 4个脉冲计数控制器（单元），每个单元有2个独立的通道&lt;br /&gt;
|-&lt;br /&gt;
| 定时器&lt;br /&gt;
| 4 × 54 位通用定时器，16 位时钟预分频器，1 × 52 位系统定时器，3 × 看门狗定时器&lt;br /&gt;
|-&lt;br /&gt;
| 外部晶振&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC 和低功耗管理&lt;br /&gt;
| 电源管理单元 (PMU)+ 超低功耗协处理器 (ULP)&lt;br /&gt;
|-&lt;br /&gt;
| 低功耗电流&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| 工作电压&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| 输入电压&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| 最大放电电流&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| USB充电&lt;br /&gt;
| 支持&lt;br /&gt;
|-&lt;br /&gt;
| 最大充电电流&lt;br /&gt;
| 500mA&lt;br /&gt;
|-&lt;br /&gt;
| 可控全彩色LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 硬件尺寸 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-Pico-S3-board-dimension.png|800px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 尺寸表&lt;br /&gt;
|-&lt;br /&gt;
| 管脚间距&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔间距&lt;br /&gt;
| 11.4mm/ 47mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔尺寸&lt;br /&gt;
| 内径2.1mm/外径3.4mm&lt;br /&gt;
|-&lt;br /&gt;
| 主板尺寸&lt;br /&gt;
| 21 × 51.88(mm)/0.83 x 2.04(inches)&lt;br /&gt;
|-&lt;br /&gt;
| 板厚&lt;br /&gt;
| 1.2mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
管脚间距兼容万能板（洞洞板、点阵板），面包板，便于调试应用。&lt;br /&gt;
&lt;br /&gt;
== 外设GPIO管脚分配 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 外设GPIO管脚分配&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| 外设接口&lt;br /&gt;
| 信号&lt;br /&gt;
| 管脚&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| 触摸传感器&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | 默认分配管脚，可重定义为任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| 任意GPIO &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 已用于FLASH与PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 彩色LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 软件 =&lt;br /&gt;
&lt;br /&gt;
== ESP-IDF ==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF 是乐鑫官方推出的物联网开发框架，支持 Windows、Linux 和 macOS 操作系统。&lt;br /&gt;
&lt;br /&gt;
建议开发者通过集成开发环境 (IDE) 安装 ESP-IDF:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README_CN.md GitHub: ESP-IDF Eclipse 插件安装与使用指南]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode 插件] | [https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/toc.md GitHub: 安装与使用指南] | [https://www.bilibili.com/video/BV17p4y167uN bilibili：ESP-IDF VSCode 插件快速操作指南]&lt;br /&gt;
&lt;br /&gt;
或者根据操作系统选择对应的手动安装流程:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/windows-setup.html Windows 平台工具链的标准设置]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/linux-macos-setup.html Linux 和 macOS 平台工具链的标准设置]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-reference/index.html#api API 参考]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-guides/index.html#api API 指南]&lt;br /&gt;
&lt;br /&gt;
为了使你的BPI-Leaf-S3开发板可以通过USB-CDC刷写FLASH，需要设置开发板为固件下载模式。&lt;br /&gt;
&lt;br /&gt;
有两种操作方法：&lt;br /&gt;
&lt;br /&gt;
1.通过USB连接到电脑，按住BOOT键，再按一下RESET键并松开，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
2.在断开供电的条件下按住BOOT键，再通过USB连接到电脑，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
需要在设备管理器中确认接口，固件下载模式与普通模式下的接口序号可能是不一样的。&lt;br /&gt;
&lt;br /&gt;
== MicroPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
MicroPython实现了大部分Python 3 特性和语法，易学易上手，验证程序效果无需编译直接下载进芯片运行。&lt;br /&gt;
&lt;br /&gt;
无论是否有编程基础，MicroPython的上手难度绝对远低于其他编程语言，其代码易读性高，且开源社区有多年积累的丰富资源，就如同Python一样拥有极强的生命力与应用价值。&lt;br /&gt;
&lt;br /&gt;
* '''[https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/tree/main/Example/MicroPython-zh#1%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B GitHub: MicroPython快速上手]'''&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_运行环境搭建 | MicroPython运行环境搭建(Thonny IDE) ]]&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_固件下载与烧录 | MicroPython固件下载与烧录 ]]&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino 是一个开源嵌入式软硬件开发平台，用来供用户制作可交互式的嵌入式项目。&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino快速上手]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
= 资料与资源 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=样品购买=&lt;br /&gt;
&lt;br /&gt;
* 官方速卖通: &lt;br /&gt;
* 官方淘宝: &lt;br /&gt;
* OEM&amp;amp;OEM 定制服务 ： sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12936</id>
		<title>BPI-PicoW-S3 开发板</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12936"/>
				<updated>2022-09-21T01:58:55Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* BPI-PicoW-S3 与 BPI-Leaf-S3 Rraspberry Pi PicoW开发板对比 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:BPI-PicoW-S3]]&lt;br /&gt;
&lt;br /&gt;
= 介绍 =&lt;br /&gt;
Preparing...&lt;br /&gt;
&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 关键特性 ==&lt;br /&gt;
&lt;br /&gt;
* ESP32-S3，Xtensa® 32 bit LX7&lt;br /&gt;
* 片外 PSRAM , FLASH&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI ，Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD，CAMERA ，USB , JTAG&lt;br /&gt;
* 1 * microUSB&lt;br /&gt;
* 1 * 全彩色LED&lt;br /&gt;
&lt;br /&gt;
== BPI-PicoW-S3 与 Rraspberry Pi PicoW、BPI-Leaf-S3、ESP32-S3-DevKitC-1 开发板对比 ==&lt;br /&gt;
Preparing...&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! 开发板&lt;br /&gt;
! BPI-PicoW-S3&lt;br /&gt;
! Rraspberry Pi PicoW&lt;br /&gt;
! BPI-Leaf-S3&lt;br /&gt;
! ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| 引出GPIO&lt;br /&gt;
| 27&lt;br /&gt;
| 27&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v管脚&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 5v管脚&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND管脚&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| 全彩LED灯&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 无&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| 芯片直连USB&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
| Type-C USB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL转USB&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| CP2102-MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| 外接电池连接座&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 3.7v锂电池供电接口&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| 电池充电&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 500mA充电&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| I²C 4pin连接座&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| 1&lt;br /&gt;
| 无&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP32-S3 ==&lt;br /&gt;
&lt;br /&gt;
ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片，支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器，主频高达 240 MHz，内置 512 KB SRAM (TCM)，具有 45 个可编程 GPIO 管脚和丰富的通信接口。ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM，支持用户配置数据缓存与指令缓存。&lt;br /&gt;
&lt;br /&gt;
以下是ESP32-S3芯片重要功能的描述。&lt;br /&gt;
&lt;br /&gt;
* '''支持Wi-Fi + Bluetooth 5 (LE) 无线连接''': ESP32-S3 集成 2.4 GHz Wi-Fi (802.11 b/g/n)，支持 40 MHz 带宽；其低功耗蓝牙子系统支持 Bluetooth 5 (LE) 和 Bluetooth Mesh，可通过 Coded PHY 与广播扩展实现远距离通信。它还支持 2 Mbps PHY，用于提高传输速度和数据吞吐量。ESP32-S3 的 Wi-Fi 和 Bluetooth LE 射频性能优越，在高温下也能稳定工作。&lt;br /&gt;
&lt;br /&gt;
* '''支持 AI 加速''': ESP32-S3 MCU 增加了用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions)。AI 开发者们通过 ESP-DSP 和 ESP-NN 库使用这些向量指令，可以实现高性能的图像识别、语音唤醒和识别等应用。&lt;br /&gt;
&lt;br /&gt;
* '''丰富的 IO 接口''': ESP32-S3 拥有 45 个可编程 GPIO 以及 SPI、I2S、I2C、PWM、RMT、ADC、UART、SD/MMC 主机控制器和 TWAITM 控制器等常用外设接口。其中的 14 个 GPIO 可被配置为 HMI 交互的电容触摸输入端。此外，ESP32-S3 搭载了超低功耗协处理器 (ULP)，支持多种低功耗模式，广泛适用于各类低功耗应用场景。&lt;br /&gt;
&lt;br /&gt;
* '''完善的安全机制''': ESP32-S3 为物联网设备提供了完善的安全机制和保护措施，防止各类恶意攻击和威胁。它支持基于 AES-XTS 算法的 flash 加密、基于 RSA 算法的安全启动、数字签名和 HMAC。ESP32-S3 还新增了一个“世界控制器 (World Controller)”模块，提供了两个互不干扰的执行环境，实现可信执行环境或权限分离机制。&lt;br /&gt;
&lt;br /&gt;
= 硬件 =&lt;br /&gt;
&lt;br /&gt;
== 硬件接口示意图 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-PicoW-S3-V0.4-IO.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== 硬件规格 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 规格表&lt;br /&gt;
|-&lt;br /&gt;
| SoC主控芯片&lt;br /&gt;
| ESP32-S3，Xtensa® 32 位 LX7 双核处理器&lt;br /&gt;
|-&lt;br /&gt;
| 主频&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| 工作温度&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| 片上 ROM&lt;br /&gt;
| 384 KB &lt;br /&gt;
|-&lt;br /&gt;
| 片上 SRAM&lt;br /&gt;
| 320 KB&lt;br /&gt;
|-&lt;br /&gt;
| 板载 FLASH ROM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| 片上外设PSRAM&lt;br /&gt;
| 8MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n ，2.4Ghz频带，150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| 蓝牙&lt;br /&gt;
| Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-PicoW-S3已引出27个可用GPIO&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
| 2 × 12 位 SAR ADC，支持 18 个模拟通道输入&lt;br /&gt;
|-&lt;br /&gt;
| TOUCH 电容式触摸传感器&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2，支持主机或从机模式&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2，串行立体声数据的输入输出&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1，支持 8 位 ~16 位并行 RGB、I8080、MOTO6800 接口&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1，支持 8 位 ~16 位 DVP 图像传感器接口&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3 ，支持异步通信（RS232 和RS485）和 IrDA&lt;br /&gt;
|-&lt;br /&gt;
| PWM &lt;br /&gt;
| 8 路独立通道，14位精度&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM &lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × 全速USB 2.0 OTG，Type-C母口&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG 控制器&lt;br /&gt;
| 1，USB 全速标准，CDC-ACM ，JTAG&lt;br /&gt;
|-&lt;br /&gt;
| 温度传感器&lt;br /&gt;
| 1，测量范围为–20 °C 到 110 °C，用于监测芯片内部温度&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO主机接口，具有2个卡槽，支持SD卡3.0和3.01，SDIO 3.0，CE-ATA 1.1，MMC 4.41，eMMC 4.5和4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® 控制器&lt;br /&gt;
| 1 ，兼容 ISO11898-1（CAN 规范 2.0）&lt;br /&gt;
|-&lt;br /&gt;
| 通用 DMA 控制器&lt;br /&gt;
| 5 个接收通道和 5 个发送通道&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4 通道发射，4通道接收，共享 384 x 32-bit 的 RAM&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| 4个脉冲计数控制器（单元），每个单元有2个独立的通道&lt;br /&gt;
|-&lt;br /&gt;
| 定时器&lt;br /&gt;
| 4 × 54 位通用定时器，16 位时钟预分频器，1 × 52 位系统定时器，3 × 看门狗定时器&lt;br /&gt;
|-&lt;br /&gt;
| 外部晶振&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC 和低功耗管理&lt;br /&gt;
| 电源管理单元 (PMU)+ 超低功耗协处理器 (ULP)&lt;br /&gt;
|-&lt;br /&gt;
| 低功耗电流&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| 工作电压&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| 输入电压&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| 最大放电电流&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| USB充电&lt;br /&gt;
| 支持&lt;br /&gt;
|-&lt;br /&gt;
| 最大充电电流&lt;br /&gt;
| 500mA&lt;br /&gt;
|-&lt;br /&gt;
| 可控全彩色LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 硬件尺寸 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-Pico-S3-board-dimension.png|800px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 尺寸表&lt;br /&gt;
|-&lt;br /&gt;
| 管脚间距&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔间距&lt;br /&gt;
| 11.4mm/ 47mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔尺寸&lt;br /&gt;
| 内径2.1mm/外径3.4mm&lt;br /&gt;
|-&lt;br /&gt;
| 主板尺寸&lt;br /&gt;
| 21 × 51.88(mm)/0.83 x 2.04(inches)&lt;br /&gt;
|-&lt;br /&gt;
| 板厚&lt;br /&gt;
| 1.2mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
管脚间距兼容万能板（洞洞板、点阵板），面包板，便于调试应用。&lt;br /&gt;
&lt;br /&gt;
== 外设GPIO管脚分配 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 外设GPIO管脚分配&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| 外设接口&lt;br /&gt;
| 信号&lt;br /&gt;
| 管脚&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| 触摸传感器&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | 默认分配管脚，可重定义为任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| 任意GPIO &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 已用于FLASH与PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 彩色LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 软件 =&lt;br /&gt;
&lt;br /&gt;
== ESP-IDF ==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF 是乐鑫官方推出的物联网开发框架，支持 Windows、Linux 和 macOS 操作系统。&lt;br /&gt;
&lt;br /&gt;
建议开发者通过集成开发环境 (IDE) 安装 ESP-IDF:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README_CN.md GitHub: ESP-IDF Eclipse 插件安装与使用指南]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode 插件] | [https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/toc.md GitHub: 安装与使用指南] | [https://www.bilibili.com/video/BV17p4y167uN bilibili：ESP-IDF VSCode 插件快速操作指南]&lt;br /&gt;
&lt;br /&gt;
或者根据操作系统选择对应的手动安装流程:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/windows-setup.html Windows 平台工具链的标准设置]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/linux-macos-setup.html Linux 和 macOS 平台工具链的标准设置]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-reference/index.html#api API 参考]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-guides/index.html#api API 指南]&lt;br /&gt;
&lt;br /&gt;
为了使你的BPI-Leaf-S3开发板可以通过USB-CDC刷写FLASH，需要设置开发板为固件下载模式。&lt;br /&gt;
&lt;br /&gt;
有两种操作方法：&lt;br /&gt;
&lt;br /&gt;
1.通过USB连接到电脑，按住BOOT键，再按一下RESET键并松开，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
2.在断开供电的条件下按住BOOT键，再通过USB连接到电脑，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
需要在设备管理器中确认接口，固件下载模式与普通模式下的接口序号可能是不一样的。&lt;br /&gt;
&lt;br /&gt;
== MicroPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
MicroPython实现了大部分Python 3 特性和语法，易学易上手，验证程序效果无需编译直接下载进芯片运行。&lt;br /&gt;
&lt;br /&gt;
无论是否有编程基础，MicroPython的上手难度绝对远低于其他编程语言，其代码易读性高，且开源社区有多年积累的丰富资源，就如同Python一样拥有极强的生命力与应用价值。&lt;br /&gt;
&lt;br /&gt;
* '''[https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/tree/main/Example/MicroPython-zh#1%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B GitHub: MicroPython快速上手]'''&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_运行环境搭建 | MicroPython运行环境搭建(Thonny IDE) ]]&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_固件下载与烧录 | MicroPython固件下载与烧录 ]]&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino 是一个开源嵌入式软硬件开发平台，用来供用户制作可交互式的嵌入式项目。&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino快速上手]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
= 资料与资源 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=样品购买=&lt;br /&gt;
&lt;br /&gt;
* 官方速卖通: &lt;br /&gt;
* 官方淘宝: &lt;br /&gt;
* OEM&amp;amp;OEM 定制服务 ： sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12935</id>
		<title>BPI-PicoW-S3 开发板</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12935"/>
				<updated>2022-09-21T01:57:14Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* BPI-Pico-S3 与 Rraspberry Pi PicoW开发板对比 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:BPI-PicoW-S3]]&lt;br /&gt;
&lt;br /&gt;
= 介绍 =&lt;br /&gt;
Preparing...&lt;br /&gt;
&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 关键特性 ==&lt;br /&gt;
&lt;br /&gt;
* ESP32-S3，Xtensa® 32 bit LX7&lt;br /&gt;
* 片外 PSRAM , FLASH&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI ，Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD，CAMERA ，USB , JTAG&lt;br /&gt;
* 1 * microUSB&lt;br /&gt;
* 1 * 全彩色LED&lt;br /&gt;
&lt;br /&gt;
== BPI-PicoW-S3 与 BPI-Leaf-S3 Rraspberry Pi PicoW开发板对比 ==&lt;br /&gt;
Preparing...&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! 开发板&lt;br /&gt;
! BPI-PicoW-S3&lt;br /&gt;
! BPI-Leaf-S3&lt;br /&gt;
! ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| 引出GPIO&lt;br /&gt;
| 27&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v管脚&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 5v管脚&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND管脚&lt;br /&gt;
| 8&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| 全彩LED灯&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| 芯片直连USB&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
| Type-C USB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL转USB&lt;br /&gt;
| 无&lt;br /&gt;
| 无&lt;br /&gt;
| CP2102-MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| 外接电池连接座&lt;br /&gt;
| 无&lt;br /&gt;
| 3.7v锂电池供电接口&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| 电池充电&lt;br /&gt;
| 无&lt;br /&gt;
| 500mA充电&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| I²C 4pin连接座&lt;br /&gt;
| 无&lt;br /&gt;
| 1&lt;br /&gt;
| 无&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP32-S3 ==&lt;br /&gt;
&lt;br /&gt;
ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片，支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器，主频高达 240 MHz，内置 512 KB SRAM (TCM)，具有 45 个可编程 GPIO 管脚和丰富的通信接口。ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM，支持用户配置数据缓存与指令缓存。&lt;br /&gt;
&lt;br /&gt;
以下是ESP32-S3芯片重要功能的描述。&lt;br /&gt;
&lt;br /&gt;
* '''支持Wi-Fi + Bluetooth 5 (LE) 无线连接''': ESP32-S3 集成 2.4 GHz Wi-Fi (802.11 b/g/n)，支持 40 MHz 带宽；其低功耗蓝牙子系统支持 Bluetooth 5 (LE) 和 Bluetooth Mesh，可通过 Coded PHY 与广播扩展实现远距离通信。它还支持 2 Mbps PHY，用于提高传输速度和数据吞吐量。ESP32-S3 的 Wi-Fi 和 Bluetooth LE 射频性能优越，在高温下也能稳定工作。&lt;br /&gt;
&lt;br /&gt;
* '''支持 AI 加速''': ESP32-S3 MCU 增加了用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions)。AI 开发者们通过 ESP-DSP 和 ESP-NN 库使用这些向量指令，可以实现高性能的图像识别、语音唤醒和识别等应用。&lt;br /&gt;
&lt;br /&gt;
* '''丰富的 IO 接口''': ESP32-S3 拥有 45 个可编程 GPIO 以及 SPI、I2S、I2C、PWM、RMT、ADC、UART、SD/MMC 主机控制器和 TWAITM 控制器等常用外设接口。其中的 14 个 GPIO 可被配置为 HMI 交互的电容触摸输入端。此外，ESP32-S3 搭载了超低功耗协处理器 (ULP)，支持多种低功耗模式，广泛适用于各类低功耗应用场景。&lt;br /&gt;
&lt;br /&gt;
* '''完善的安全机制''': ESP32-S3 为物联网设备提供了完善的安全机制和保护措施，防止各类恶意攻击和威胁。它支持基于 AES-XTS 算法的 flash 加密、基于 RSA 算法的安全启动、数字签名和 HMAC。ESP32-S3 还新增了一个“世界控制器 (World Controller)”模块，提供了两个互不干扰的执行环境，实现可信执行环境或权限分离机制。&lt;br /&gt;
&lt;br /&gt;
= 硬件 =&lt;br /&gt;
&lt;br /&gt;
== 硬件接口示意图 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-PicoW-S3-V0.4-IO.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== 硬件规格 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 规格表&lt;br /&gt;
|-&lt;br /&gt;
| SoC主控芯片&lt;br /&gt;
| ESP32-S3，Xtensa® 32 位 LX7 双核处理器&lt;br /&gt;
|-&lt;br /&gt;
| 主频&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| 工作温度&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| 片上 ROM&lt;br /&gt;
| 384 KB &lt;br /&gt;
|-&lt;br /&gt;
| 片上 SRAM&lt;br /&gt;
| 320 KB&lt;br /&gt;
|-&lt;br /&gt;
| 板载 FLASH ROM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| 片上外设PSRAM&lt;br /&gt;
| 8MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n ，2.4Ghz频带，150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| 蓝牙&lt;br /&gt;
| Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-PicoW-S3已引出27个可用GPIO&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
| 2 × 12 位 SAR ADC，支持 18 个模拟通道输入&lt;br /&gt;
|-&lt;br /&gt;
| TOUCH 电容式触摸传感器&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2，支持主机或从机模式&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2，串行立体声数据的输入输出&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1，支持 8 位 ~16 位并行 RGB、I8080、MOTO6800 接口&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1，支持 8 位 ~16 位 DVP 图像传感器接口&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3 ，支持异步通信（RS232 和RS485）和 IrDA&lt;br /&gt;
|-&lt;br /&gt;
| PWM &lt;br /&gt;
| 8 路独立通道，14位精度&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM &lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × 全速USB 2.0 OTG，Type-C母口&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG 控制器&lt;br /&gt;
| 1，USB 全速标准，CDC-ACM ，JTAG&lt;br /&gt;
|-&lt;br /&gt;
| 温度传感器&lt;br /&gt;
| 1，测量范围为–20 °C 到 110 °C，用于监测芯片内部温度&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO主机接口，具有2个卡槽，支持SD卡3.0和3.01，SDIO 3.0，CE-ATA 1.1，MMC 4.41，eMMC 4.5和4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® 控制器&lt;br /&gt;
| 1 ，兼容 ISO11898-1（CAN 规范 2.0）&lt;br /&gt;
|-&lt;br /&gt;
| 通用 DMA 控制器&lt;br /&gt;
| 5 个接收通道和 5 个发送通道&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4 通道发射，4通道接收，共享 384 x 32-bit 的 RAM&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| 4个脉冲计数控制器（单元），每个单元有2个独立的通道&lt;br /&gt;
|-&lt;br /&gt;
| 定时器&lt;br /&gt;
| 4 × 54 位通用定时器，16 位时钟预分频器，1 × 52 位系统定时器，3 × 看门狗定时器&lt;br /&gt;
|-&lt;br /&gt;
| 外部晶振&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC 和低功耗管理&lt;br /&gt;
| 电源管理单元 (PMU)+ 超低功耗协处理器 (ULP)&lt;br /&gt;
|-&lt;br /&gt;
| 低功耗电流&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| 工作电压&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| 输入电压&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| 最大放电电流&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| USB充电&lt;br /&gt;
| 支持&lt;br /&gt;
|-&lt;br /&gt;
| 最大充电电流&lt;br /&gt;
| 500mA&lt;br /&gt;
|-&lt;br /&gt;
| 可控全彩色LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 硬件尺寸 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-Pico-S3-board-dimension.png|800px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 尺寸表&lt;br /&gt;
|-&lt;br /&gt;
| 管脚间距&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔间距&lt;br /&gt;
| 11.4mm/ 47mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔尺寸&lt;br /&gt;
| 内径2.1mm/外径3.4mm&lt;br /&gt;
|-&lt;br /&gt;
| 主板尺寸&lt;br /&gt;
| 21 × 51.88(mm)/0.83 x 2.04(inches)&lt;br /&gt;
|-&lt;br /&gt;
| 板厚&lt;br /&gt;
| 1.2mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
管脚间距兼容万能板（洞洞板、点阵板），面包板，便于调试应用。&lt;br /&gt;
&lt;br /&gt;
== 外设GPIO管脚分配 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 外设GPIO管脚分配&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| 外设接口&lt;br /&gt;
| 信号&lt;br /&gt;
| 管脚&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| 触摸传感器&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | 默认分配管脚，可重定义为任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| 任意GPIO &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 已用于FLASH与PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 彩色LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 软件 =&lt;br /&gt;
&lt;br /&gt;
== ESP-IDF ==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF 是乐鑫官方推出的物联网开发框架，支持 Windows、Linux 和 macOS 操作系统。&lt;br /&gt;
&lt;br /&gt;
建议开发者通过集成开发环境 (IDE) 安装 ESP-IDF:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README_CN.md GitHub: ESP-IDF Eclipse 插件安装与使用指南]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode 插件] | [https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/toc.md GitHub: 安装与使用指南] | [https://www.bilibili.com/video/BV17p4y167uN bilibili：ESP-IDF VSCode 插件快速操作指南]&lt;br /&gt;
&lt;br /&gt;
或者根据操作系统选择对应的手动安装流程:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/windows-setup.html Windows 平台工具链的标准设置]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/linux-macos-setup.html Linux 和 macOS 平台工具链的标准设置]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-reference/index.html#api API 参考]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-guides/index.html#api API 指南]&lt;br /&gt;
&lt;br /&gt;
为了使你的BPI-Leaf-S3开发板可以通过USB-CDC刷写FLASH，需要设置开发板为固件下载模式。&lt;br /&gt;
&lt;br /&gt;
有两种操作方法：&lt;br /&gt;
&lt;br /&gt;
1.通过USB连接到电脑，按住BOOT键，再按一下RESET键并松开，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
2.在断开供电的条件下按住BOOT键，再通过USB连接到电脑，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
需要在设备管理器中确认接口，固件下载模式与普通模式下的接口序号可能是不一样的。&lt;br /&gt;
&lt;br /&gt;
== MicroPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
MicroPython实现了大部分Python 3 特性和语法，易学易上手，验证程序效果无需编译直接下载进芯片运行。&lt;br /&gt;
&lt;br /&gt;
无论是否有编程基础，MicroPython的上手难度绝对远低于其他编程语言，其代码易读性高，且开源社区有多年积累的丰富资源，就如同Python一样拥有极强的生命力与应用价值。&lt;br /&gt;
&lt;br /&gt;
* '''[https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/tree/main/Example/MicroPython-zh#1%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B GitHub: MicroPython快速上手]'''&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_运行环境搭建 | MicroPython运行环境搭建(Thonny IDE) ]]&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_固件下载与烧录 | MicroPython固件下载与烧录 ]]&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino 是一个开源嵌入式软硬件开发平台，用来供用户制作可交互式的嵌入式项目。&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino快速上手]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
= 资料与资源 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=样品购买=&lt;br /&gt;
&lt;br /&gt;
* 官方速卖通: &lt;br /&gt;
* 官方淘宝: &lt;br /&gt;
* OEM&amp;amp;OEM 定制服务 ： sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12934</id>
		<title>BPI-PicoW-S3 开发板</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12934"/>
				<updated>2022-09-21T01:49:04Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* 外设GPIO管脚分配 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:BPI-PicoW-S3]]&lt;br /&gt;
&lt;br /&gt;
= 介绍 =&lt;br /&gt;
Preparing...&lt;br /&gt;
&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 关键特性 ==&lt;br /&gt;
&lt;br /&gt;
* ESP32-S3，Xtensa® 32 bit LX7&lt;br /&gt;
* 片外 PSRAM , FLASH&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI ，Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD，CAMERA ，USB , JTAG&lt;br /&gt;
* 1 * microUSB&lt;br /&gt;
* 1 * 全彩色LED&lt;br /&gt;
&lt;br /&gt;
== BPI-Pico-S3 与 Rraspberry Pi PicoW开发板对比 ==&lt;br /&gt;
Preparing...&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! 开发板&lt;br /&gt;
! BPI-Leaf-S3&lt;br /&gt;
! ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| 引出GPIO&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v管脚&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 5v管脚&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND管脚&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| 全彩LED灯&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| 芯片直连USB&lt;br /&gt;
| Type-C USB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL转USB&lt;br /&gt;
| 无&lt;br /&gt;
| CP2102-MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| 外接电池连接座&lt;br /&gt;
| 3.7v锂电池供电接口&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| 电池充电&lt;br /&gt;
| 500mA充电&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| I²C 4pin连接座&lt;br /&gt;
| 1&lt;br /&gt;
| 无&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP32-S3 ==&lt;br /&gt;
&lt;br /&gt;
ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片，支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器，主频高达 240 MHz，内置 512 KB SRAM (TCM)，具有 45 个可编程 GPIO 管脚和丰富的通信接口。ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM，支持用户配置数据缓存与指令缓存。&lt;br /&gt;
&lt;br /&gt;
以下是ESP32-S3芯片重要功能的描述。&lt;br /&gt;
&lt;br /&gt;
* '''支持Wi-Fi + Bluetooth 5 (LE) 无线连接''': ESP32-S3 集成 2.4 GHz Wi-Fi (802.11 b/g/n)，支持 40 MHz 带宽；其低功耗蓝牙子系统支持 Bluetooth 5 (LE) 和 Bluetooth Mesh，可通过 Coded PHY 与广播扩展实现远距离通信。它还支持 2 Mbps PHY，用于提高传输速度和数据吞吐量。ESP32-S3 的 Wi-Fi 和 Bluetooth LE 射频性能优越，在高温下也能稳定工作。&lt;br /&gt;
&lt;br /&gt;
* '''支持 AI 加速''': ESP32-S3 MCU 增加了用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions)。AI 开发者们通过 ESP-DSP 和 ESP-NN 库使用这些向量指令，可以实现高性能的图像识别、语音唤醒和识别等应用。&lt;br /&gt;
&lt;br /&gt;
* '''丰富的 IO 接口''': ESP32-S3 拥有 45 个可编程 GPIO 以及 SPI、I2S、I2C、PWM、RMT、ADC、UART、SD/MMC 主机控制器和 TWAITM 控制器等常用外设接口。其中的 14 个 GPIO 可被配置为 HMI 交互的电容触摸输入端。此外，ESP32-S3 搭载了超低功耗协处理器 (ULP)，支持多种低功耗模式，广泛适用于各类低功耗应用场景。&lt;br /&gt;
&lt;br /&gt;
* '''完善的安全机制''': ESP32-S3 为物联网设备提供了完善的安全机制和保护措施，防止各类恶意攻击和威胁。它支持基于 AES-XTS 算法的 flash 加密、基于 RSA 算法的安全启动、数字签名和 HMAC。ESP32-S3 还新增了一个“世界控制器 (World Controller)”模块，提供了两个互不干扰的执行环境，实现可信执行环境或权限分离机制。&lt;br /&gt;
&lt;br /&gt;
= 硬件 =&lt;br /&gt;
&lt;br /&gt;
== 硬件接口示意图 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-PicoW-S3-V0.4-IO.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== 硬件规格 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 规格表&lt;br /&gt;
|-&lt;br /&gt;
| SoC主控芯片&lt;br /&gt;
| ESP32-S3，Xtensa® 32 位 LX7 双核处理器&lt;br /&gt;
|-&lt;br /&gt;
| 主频&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| 工作温度&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| 片上 ROM&lt;br /&gt;
| 384 KB &lt;br /&gt;
|-&lt;br /&gt;
| 片上 SRAM&lt;br /&gt;
| 320 KB&lt;br /&gt;
|-&lt;br /&gt;
| 板载 FLASH ROM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| 片上外设PSRAM&lt;br /&gt;
| 8MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n ，2.4Ghz频带，150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| 蓝牙&lt;br /&gt;
| Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-PicoW-S3已引出27个可用GPIO&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
| 2 × 12 位 SAR ADC，支持 18 个模拟通道输入&lt;br /&gt;
|-&lt;br /&gt;
| TOUCH 电容式触摸传感器&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2，支持主机或从机模式&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2，串行立体声数据的输入输出&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1，支持 8 位 ~16 位并行 RGB、I8080、MOTO6800 接口&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1，支持 8 位 ~16 位 DVP 图像传感器接口&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3 ，支持异步通信（RS232 和RS485）和 IrDA&lt;br /&gt;
|-&lt;br /&gt;
| PWM &lt;br /&gt;
| 8 路独立通道，14位精度&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM &lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × 全速USB 2.0 OTG，Type-C母口&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG 控制器&lt;br /&gt;
| 1，USB 全速标准，CDC-ACM ，JTAG&lt;br /&gt;
|-&lt;br /&gt;
| 温度传感器&lt;br /&gt;
| 1，测量范围为–20 °C 到 110 °C，用于监测芯片内部温度&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO主机接口，具有2个卡槽，支持SD卡3.0和3.01，SDIO 3.0，CE-ATA 1.1，MMC 4.41，eMMC 4.5和4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® 控制器&lt;br /&gt;
| 1 ，兼容 ISO11898-1（CAN 规范 2.0）&lt;br /&gt;
|-&lt;br /&gt;
| 通用 DMA 控制器&lt;br /&gt;
| 5 个接收通道和 5 个发送通道&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4 通道发射，4通道接收，共享 384 x 32-bit 的 RAM&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| 4个脉冲计数控制器（单元），每个单元有2个独立的通道&lt;br /&gt;
|-&lt;br /&gt;
| 定时器&lt;br /&gt;
| 4 × 54 位通用定时器，16 位时钟预分频器，1 × 52 位系统定时器，3 × 看门狗定时器&lt;br /&gt;
|-&lt;br /&gt;
| 外部晶振&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC 和低功耗管理&lt;br /&gt;
| 电源管理单元 (PMU)+ 超低功耗协处理器 (ULP)&lt;br /&gt;
|-&lt;br /&gt;
| 低功耗电流&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| 工作电压&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| 输入电压&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| 最大放电电流&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| USB充电&lt;br /&gt;
| 支持&lt;br /&gt;
|-&lt;br /&gt;
| 最大充电电流&lt;br /&gt;
| 500mA&lt;br /&gt;
|-&lt;br /&gt;
| 可控全彩色LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 硬件尺寸 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-Pico-S3-board-dimension.png|800px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 尺寸表&lt;br /&gt;
|-&lt;br /&gt;
| 管脚间距&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔间距&lt;br /&gt;
| 11.4mm/ 47mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔尺寸&lt;br /&gt;
| 内径2.1mm/外径3.4mm&lt;br /&gt;
|-&lt;br /&gt;
| 主板尺寸&lt;br /&gt;
| 21 × 51.88(mm)/0.83 x 2.04(inches)&lt;br /&gt;
|-&lt;br /&gt;
| 板厚&lt;br /&gt;
| 1.2mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
管脚间距兼容万能板（洞洞板、点阵板），面包板，便于调试应用。&lt;br /&gt;
&lt;br /&gt;
== 外设GPIO管脚分配 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 外设GPIO管脚分配&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| 外设接口&lt;br /&gt;
| 信号&lt;br /&gt;
| 管脚&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| 触摸传感器&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | 默认分配管脚，可重定义为任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| 任意GPIO &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 已用于FLASH与PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 彩色LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 软件 =&lt;br /&gt;
&lt;br /&gt;
== ESP-IDF ==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF 是乐鑫官方推出的物联网开发框架，支持 Windows、Linux 和 macOS 操作系统。&lt;br /&gt;
&lt;br /&gt;
建议开发者通过集成开发环境 (IDE) 安装 ESP-IDF:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README_CN.md GitHub: ESP-IDF Eclipse 插件安装与使用指南]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode 插件] | [https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/toc.md GitHub: 安装与使用指南] | [https://www.bilibili.com/video/BV17p4y167uN bilibili：ESP-IDF VSCode 插件快速操作指南]&lt;br /&gt;
&lt;br /&gt;
或者根据操作系统选择对应的手动安装流程:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/windows-setup.html Windows 平台工具链的标准设置]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/linux-macos-setup.html Linux 和 macOS 平台工具链的标准设置]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-reference/index.html#api API 参考]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-guides/index.html#api API 指南]&lt;br /&gt;
&lt;br /&gt;
为了使你的BPI-Leaf-S3开发板可以通过USB-CDC刷写FLASH，需要设置开发板为固件下载模式。&lt;br /&gt;
&lt;br /&gt;
有两种操作方法：&lt;br /&gt;
&lt;br /&gt;
1.通过USB连接到电脑，按住BOOT键，再按一下RESET键并松开，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
2.在断开供电的条件下按住BOOT键，再通过USB连接到电脑，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
需要在设备管理器中确认接口，固件下载模式与普通模式下的接口序号可能是不一样的。&lt;br /&gt;
&lt;br /&gt;
== MicroPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
MicroPython实现了大部分Python 3 特性和语法，易学易上手，验证程序效果无需编译直接下载进芯片运行。&lt;br /&gt;
&lt;br /&gt;
无论是否有编程基础，MicroPython的上手难度绝对远低于其他编程语言，其代码易读性高，且开源社区有多年积累的丰富资源，就如同Python一样拥有极强的生命力与应用价值。&lt;br /&gt;
&lt;br /&gt;
* '''[https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/tree/main/Example/MicroPython-zh#1%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B GitHub: MicroPython快速上手]'''&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_运行环境搭建 | MicroPython运行环境搭建(Thonny IDE) ]]&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_固件下载与烧录 | MicroPython固件下载与烧录 ]]&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino 是一个开源嵌入式软硬件开发平台，用来供用户制作可交互式的嵌入式项目。&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino快速上手]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
= 资料与资源 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=样品购买=&lt;br /&gt;
&lt;br /&gt;
* 官方速卖通: &lt;br /&gt;
* 官方淘宝: &lt;br /&gt;
* OEM&amp;amp;OEM 定制服务 ： sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12933</id>
		<title>BPI-PicoW-S3 开发板</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12933"/>
				<updated>2022-09-21T01:48:33Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* 硬件尺寸 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:BPI-PicoW-S3]]&lt;br /&gt;
&lt;br /&gt;
= 介绍 =&lt;br /&gt;
Preparing...&lt;br /&gt;
&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 关键特性 ==&lt;br /&gt;
&lt;br /&gt;
* ESP32-S3，Xtensa® 32 bit LX7&lt;br /&gt;
* 片外 PSRAM , FLASH&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI ，Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD，CAMERA ，USB , JTAG&lt;br /&gt;
* 1 * microUSB&lt;br /&gt;
* 1 * 全彩色LED&lt;br /&gt;
&lt;br /&gt;
== BPI-Pico-S3 与 Rraspberry Pi PicoW开发板对比 ==&lt;br /&gt;
Preparing...&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! 开发板&lt;br /&gt;
! BPI-Leaf-S3&lt;br /&gt;
! ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| 引出GPIO&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v管脚&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 5v管脚&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND管脚&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| 全彩LED灯&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| 芯片直连USB&lt;br /&gt;
| Type-C USB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL转USB&lt;br /&gt;
| 无&lt;br /&gt;
| CP2102-MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| 外接电池连接座&lt;br /&gt;
| 3.7v锂电池供电接口&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| 电池充电&lt;br /&gt;
| 500mA充电&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| I²C 4pin连接座&lt;br /&gt;
| 1&lt;br /&gt;
| 无&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP32-S3 ==&lt;br /&gt;
&lt;br /&gt;
ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片，支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器，主频高达 240 MHz，内置 512 KB SRAM (TCM)，具有 45 个可编程 GPIO 管脚和丰富的通信接口。ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM，支持用户配置数据缓存与指令缓存。&lt;br /&gt;
&lt;br /&gt;
以下是ESP32-S3芯片重要功能的描述。&lt;br /&gt;
&lt;br /&gt;
* '''支持Wi-Fi + Bluetooth 5 (LE) 无线连接''': ESP32-S3 集成 2.4 GHz Wi-Fi (802.11 b/g/n)，支持 40 MHz 带宽；其低功耗蓝牙子系统支持 Bluetooth 5 (LE) 和 Bluetooth Mesh，可通过 Coded PHY 与广播扩展实现远距离通信。它还支持 2 Mbps PHY，用于提高传输速度和数据吞吐量。ESP32-S3 的 Wi-Fi 和 Bluetooth LE 射频性能优越，在高温下也能稳定工作。&lt;br /&gt;
&lt;br /&gt;
* '''支持 AI 加速''': ESP32-S3 MCU 增加了用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions)。AI 开发者们通过 ESP-DSP 和 ESP-NN 库使用这些向量指令，可以实现高性能的图像识别、语音唤醒和识别等应用。&lt;br /&gt;
&lt;br /&gt;
* '''丰富的 IO 接口''': ESP32-S3 拥有 45 个可编程 GPIO 以及 SPI、I2S、I2C、PWM、RMT、ADC、UART、SD/MMC 主机控制器和 TWAITM 控制器等常用外设接口。其中的 14 个 GPIO 可被配置为 HMI 交互的电容触摸输入端。此外，ESP32-S3 搭载了超低功耗协处理器 (ULP)，支持多种低功耗模式，广泛适用于各类低功耗应用场景。&lt;br /&gt;
&lt;br /&gt;
* '''完善的安全机制''': ESP32-S3 为物联网设备提供了完善的安全机制和保护措施，防止各类恶意攻击和威胁。它支持基于 AES-XTS 算法的 flash 加密、基于 RSA 算法的安全启动、数字签名和 HMAC。ESP32-S3 还新增了一个“世界控制器 (World Controller)”模块，提供了两个互不干扰的执行环境，实现可信执行环境或权限分离机制。&lt;br /&gt;
&lt;br /&gt;
= 硬件 =&lt;br /&gt;
&lt;br /&gt;
== 硬件接口示意图 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-PicoW-S3-V0.4-IO.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== 硬件规格 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 规格表&lt;br /&gt;
|-&lt;br /&gt;
| SoC主控芯片&lt;br /&gt;
| ESP32-S3，Xtensa® 32 位 LX7 双核处理器&lt;br /&gt;
|-&lt;br /&gt;
| 主频&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| 工作温度&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| 片上 ROM&lt;br /&gt;
| 384 KB &lt;br /&gt;
|-&lt;br /&gt;
| 片上 SRAM&lt;br /&gt;
| 320 KB&lt;br /&gt;
|-&lt;br /&gt;
| 板载 FLASH ROM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| 片上外设PSRAM&lt;br /&gt;
| 8MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n ，2.4Ghz频带，150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| 蓝牙&lt;br /&gt;
| Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-PicoW-S3已引出27个可用GPIO&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
| 2 × 12 位 SAR ADC，支持 18 个模拟通道输入&lt;br /&gt;
|-&lt;br /&gt;
| TOUCH 电容式触摸传感器&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2，支持主机或从机模式&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2，串行立体声数据的输入输出&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1，支持 8 位 ~16 位并行 RGB、I8080、MOTO6800 接口&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1，支持 8 位 ~16 位 DVP 图像传感器接口&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3 ，支持异步通信（RS232 和RS485）和 IrDA&lt;br /&gt;
|-&lt;br /&gt;
| PWM &lt;br /&gt;
| 8 路独立通道，14位精度&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM &lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × 全速USB 2.0 OTG，Type-C母口&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG 控制器&lt;br /&gt;
| 1，USB 全速标准，CDC-ACM ，JTAG&lt;br /&gt;
|-&lt;br /&gt;
| 温度传感器&lt;br /&gt;
| 1，测量范围为–20 °C 到 110 °C，用于监测芯片内部温度&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO主机接口，具有2个卡槽，支持SD卡3.0和3.01，SDIO 3.0，CE-ATA 1.1，MMC 4.41，eMMC 4.5和4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® 控制器&lt;br /&gt;
| 1 ，兼容 ISO11898-1（CAN 规范 2.0）&lt;br /&gt;
|-&lt;br /&gt;
| 通用 DMA 控制器&lt;br /&gt;
| 5 个接收通道和 5 个发送通道&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4 通道发射，4通道接收，共享 384 x 32-bit 的 RAM&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| 4个脉冲计数控制器（单元），每个单元有2个独立的通道&lt;br /&gt;
|-&lt;br /&gt;
| 定时器&lt;br /&gt;
| 4 × 54 位通用定时器，16 位时钟预分频器，1 × 52 位系统定时器，3 × 看门狗定时器&lt;br /&gt;
|-&lt;br /&gt;
| 外部晶振&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC 和低功耗管理&lt;br /&gt;
| 电源管理单元 (PMU)+ 超低功耗协处理器 (ULP)&lt;br /&gt;
|-&lt;br /&gt;
| 低功耗电流&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| 工作电压&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| 输入电压&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| 最大放电电流&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| USB充电&lt;br /&gt;
| 支持&lt;br /&gt;
|-&lt;br /&gt;
| 最大充电电流&lt;br /&gt;
| 500mA&lt;br /&gt;
|-&lt;br /&gt;
| 可控全彩色LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 硬件尺寸 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-Pico-S3-board-dimension.png|800px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 尺寸表&lt;br /&gt;
|-&lt;br /&gt;
| 管脚间距&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔间距&lt;br /&gt;
| 11.4mm/ 47mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔尺寸&lt;br /&gt;
| 内径2.1mm/外径3.4mm&lt;br /&gt;
|-&lt;br /&gt;
| 主板尺寸&lt;br /&gt;
| 21 × 51.88(mm)/0.83 x 2.04(inches)&lt;br /&gt;
|-&lt;br /&gt;
| 板厚&lt;br /&gt;
| 1.2mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
管脚间距兼容万能板（洞洞板、点阵板），面包板，便于调试应用。&lt;br /&gt;
&lt;br /&gt;
== 外设GPIO管脚分配 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 外设GPIO管脚分配&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| 外设接口&lt;br /&gt;
| 信号&lt;br /&gt;
| 管脚&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| 触摸传感器&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | 默认分配管脚，可重定义为任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| 任意GPIO &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 已用于FLASH与PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 彩色LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 软件 =&lt;br /&gt;
&lt;br /&gt;
== ESP-IDF ==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF 是乐鑫官方推出的物联网开发框架，支持 Windows、Linux 和 macOS 操作系统。&lt;br /&gt;
&lt;br /&gt;
建议开发者通过集成开发环境 (IDE) 安装 ESP-IDF:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README_CN.md GitHub: ESP-IDF Eclipse 插件安装与使用指南]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode 插件] | [https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/toc.md GitHub: 安装与使用指南] | [https://www.bilibili.com/video/BV17p4y167uN bilibili：ESP-IDF VSCode 插件快速操作指南]&lt;br /&gt;
&lt;br /&gt;
或者根据操作系统选择对应的手动安装流程:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/windows-setup.html Windows 平台工具链的标准设置]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/linux-macos-setup.html Linux 和 macOS 平台工具链的标准设置]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-reference/index.html#api API 参考]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-guides/index.html#api API 指南]&lt;br /&gt;
&lt;br /&gt;
为了使你的BPI-Leaf-S3开发板可以通过USB-CDC刷写FLASH，需要设置开发板为固件下载模式。&lt;br /&gt;
&lt;br /&gt;
有两种操作方法：&lt;br /&gt;
&lt;br /&gt;
1.通过USB连接到电脑，按住BOOT键，再按一下RESET键并松开，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
2.在断开供电的条件下按住BOOT键，再通过USB连接到电脑，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
需要在设备管理器中确认接口，固件下载模式与普通模式下的接口序号可能是不一样的。&lt;br /&gt;
&lt;br /&gt;
== MicroPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
MicroPython实现了大部分Python 3 特性和语法，易学易上手，验证程序效果无需编译直接下载进芯片运行。&lt;br /&gt;
&lt;br /&gt;
无论是否有编程基础，MicroPython的上手难度绝对远低于其他编程语言，其代码易读性高，且开源社区有多年积累的丰富资源，就如同Python一样拥有极强的生命力与应用价值。&lt;br /&gt;
&lt;br /&gt;
* '''[https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/tree/main/Example/MicroPython-zh#1%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B GitHub: MicroPython快速上手]'''&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_运行环境搭建 | MicroPython运行环境搭建(Thonny IDE) ]]&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_固件下载与烧录 | MicroPython固件下载与烧录 ]]&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino 是一个开源嵌入式软硬件开发平台，用来供用户制作可交互式的嵌入式项目。&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino快速上手]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
= 资料与资源 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=样品购买=&lt;br /&gt;
&lt;br /&gt;
* 官方速卖通: &lt;br /&gt;
* 官方淘宝: &lt;br /&gt;
* OEM&amp;amp;OEM 定制服务 ： sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12932</id>
		<title>BPI-PicoW-S3 开发板</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12932"/>
				<updated>2022-09-21T01:47:56Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* 硬件尺寸 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:BPI-PicoW-S3]]&lt;br /&gt;
&lt;br /&gt;
= 介绍 =&lt;br /&gt;
Preparing...&lt;br /&gt;
&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 关键特性 ==&lt;br /&gt;
&lt;br /&gt;
* ESP32-S3，Xtensa® 32 bit LX7&lt;br /&gt;
* 片外 PSRAM , FLASH&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI ，Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD，CAMERA ，USB , JTAG&lt;br /&gt;
* 1 * microUSB&lt;br /&gt;
* 1 * 全彩色LED&lt;br /&gt;
&lt;br /&gt;
== BPI-Pico-S3 与 Rraspberry Pi PicoW开发板对比 ==&lt;br /&gt;
Preparing...&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! 开发板&lt;br /&gt;
! BPI-Leaf-S3&lt;br /&gt;
! ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| 引出GPIO&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v管脚&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 5v管脚&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND管脚&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| 全彩LED灯&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| 芯片直连USB&lt;br /&gt;
| Type-C USB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL转USB&lt;br /&gt;
| 无&lt;br /&gt;
| CP2102-MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| 外接电池连接座&lt;br /&gt;
| 3.7v锂电池供电接口&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| 电池充电&lt;br /&gt;
| 500mA充电&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| I²C 4pin连接座&lt;br /&gt;
| 1&lt;br /&gt;
| 无&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP32-S3 ==&lt;br /&gt;
&lt;br /&gt;
ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片，支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器，主频高达 240 MHz，内置 512 KB SRAM (TCM)，具有 45 个可编程 GPIO 管脚和丰富的通信接口。ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM，支持用户配置数据缓存与指令缓存。&lt;br /&gt;
&lt;br /&gt;
以下是ESP32-S3芯片重要功能的描述。&lt;br /&gt;
&lt;br /&gt;
* '''支持Wi-Fi + Bluetooth 5 (LE) 无线连接''': ESP32-S3 集成 2.4 GHz Wi-Fi (802.11 b/g/n)，支持 40 MHz 带宽；其低功耗蓝牙子系统支持 Bluetooth 5 (LE) 和 Bluetooth Mesh，可通过 Coded PHY 与广播扩展实现远距离通信。它还支持 2 Mbps PHY，用于提高传输速度和数据吞吐量。ESP32-S3 的 Wi-Fi 和 Bluetooth LE 射频性能优越，在高温下也能稳定工作。&lt;br /&gt;
&lt;br /&gt;
* '''支持 AI 加速''': ESP32-S3 MCU 增加了用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions)。AI 开发者们通过 ESP-DSP 和 ESP-NN 库使用这些向量指令，可以实现高性能的图像识别、语音唤醒和识别等应用。&lt;br /&gt;
&lt;br /&gt;
* '''丰富的 IO 接口''': ESP32-S3 拥有 45 个可编程 GPIO 以及 SPI、I2S、I2C、PWM、RMT、ADC、UART、SD/MMC 主机控制器和 TWAITM 控制器等常用外设接口。其中的 14 个 GPIO 可被配置为 HMI 交互的电容触摸输入端。此外，ESP32-S3 搭载了超低功耗协处理器 (ULP)，支持多种低功耗模式，广泛适用于各类低功耗应用场景。&lt;br /&gt;
&lt;br /&gt;
* '''完善的安全机制''': ESP32-S3 为物联网设备提供了完善的安全机制和保护措施，防止各类恶意攻击和威胁。它支持基于 AES-XTS 算法的 flash 加密、基于 RSA 算法的安全启动、数字签名和 HMAC。ESP32-S3 还新增了一个“世界控制器 (World Controller)”模块，提供了两个互不干扰的执行环境，实现可信执行环境或权限分离机制。&lt;br /&gt;
&lt;br /&gt;
= 硬件 =&lt;br /&gt;
&lt;br /&gt;
== 硬件接口示意图 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-PicoW-S3-V0.4-IO.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== 硬件规格 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 规格表&lt;br /&gt;
|-&lt;br /&gt;
| SoC主控芯片&lt;br /&gt;
| ESP32-S3，Xtensa® 32 位 LX7 双核处理器&lt;br /&gt;
|-&lt;br /&gt;
| 主频&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| 工作温度&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| 片上 ROM&lt;br /&gt;
| 384 KB &lt;br /&gt;
|-&lt;br /&gt;
| 片上 SRAM&lt;br /&gt;
| 320 KB&lt;br /&gt;
|-&lt;br /&gt;
| 板载 FLASH ROM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| 片上外设PSRAM&lt;br /&gt;
| 8MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n ，2.4Ghz频带，150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| 蓝牙&lt;br /&gt;
| Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-PicoW-S3已引出27个可用GPIO&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
| 2 × 12 位 SAR ADC，支持 18 个模拟通道输入&lt;br /&gt;
|-&lt;br /&gt;
| TOUCH 电容式触摸传感器&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2，支持主机或从机模式&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2，串行立体声数据的输入输出&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1，支持 8 位 ~16 位并行 RGB、I8080、MOTO6800 接口&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1，支持 8 位 ~16 位 DVP 图像传感器接口&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3 ，支持异步通信（RS232 和RS485）和 IrDA&lt;br /&gt;
|-&lt;br /&gt;
| PWM &lt;br /&gt;
| 8 路独立通道，14位精度&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM &lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × 全速USB 2.0 OTG，Type-C母口&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG 控制器&lt;br /&gt;
| 1，USB 全速标准，CDC-ACM ，JTAG&lt;br /&gt;
|-&lt;br /&gt;
| 温度传感器&lt;br /&gt;
| 1，测量范围为–20 °C 到 110 °C，用于监测芯片内部温度&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO主机接口，具有2个卡槽，支持SD卡3.0和3.01，SDIO 3.0，CE-ATA 1.1，MMC 4.41，eMMC 4.5和4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® 控制器&lt;br /&gt;
| 1 ，兼容 ISO11898-1（CAN 规范 2.0）&lt;br /&gt;
|-&lt;br /&gt;
| 通用 DMA 控制器&lt;br /&gt;
| 5 个接收通道和 5 个发送通道&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4 通道发射，4通道接收，共享 384 x 32-bit 的 RAM&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| 4个脉冲计数控制器（单元），每个单元有2个独立的通道&lt;br /&gt;
|-&lt;br /&gt;
| 定时器&lt;br /&gt;
| 4 × 54 位通用定时器，16 位时钟预分频器，1 × 52 位系统定时器，3 × 看门狗定时器&lt;br /&gt;
|-&lt;br /&gt;
| 外部晶振&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC 和低功耗管理&lt;br /&gt;
| 电源管理单元 (PMU)+ 超低功耗协处理器 (ULP)&lt;br /&gt;
|-&lt;br /&gt;
| 低功耗电流&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| 工作电压&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| 输入电压&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| 最大放电电流&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| USB充电&lt;br /&gt;
| 支持&lt;br /&gt;
|-&lt;br /&gt;
| 最大充电电流&lt;br /&gt;
| 500mA&lt;br /&gt;
|-&lt;br /&gt;
| 可控全彩色LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 硬件尺寸 ==&lt;br /&gt;
&lt;br /&gt;
[[File:Leaf-S3 board dimension.png|800px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 尺寸表&lt;br /&gt;
|-&lt;br /&gt;
| 管脚间距&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔间距&lt;br /&gt;
| 11.4mm/ 47mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔尺寸&lt;br /&gt;
| 内径2.1mm/外径3.4mm&lt;br /&gt;
|-&lt;br /&gt;
| 主板尺寸&lt;br /&gt;
| 21 × 51.88(mm)/0.83 x 2.04(inches)&lt;br /&gt;
|-&lt;br /&gt;
| 板厚&lt;br /&gt;
| 1.2mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
管脚间距兼容万能板（洞洞板、点阵板），面包板，便于调试应用。&lt;br /&gt;
&lt;br /&gt;
== 外设GPIO管脚分配 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 外设GPIO管脚分配&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| 外设接口&lt;br /&gt;
| 信号&lt;br /&gt;
| 管脚&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| 触摸传感器&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | 默认分配管脚，可重定义为任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| 任意GPIO &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 已用于FLASH与PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 彩色LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 软件 =&lt;br /&gt;
&lt;br /&gt;
== ESP-IDF ==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF 是乐鑫官方推出的物联网开发框架，支持 Windows、Linux 和 macOS 操作系统。&lt;br /&gt;
&lt;br /&gt;
建议开发者通过集成开发环境 (IDE) 安装 ESP-IDF:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README_CN.md GitHub: ESP-IDF Eclipse 插件安装与使用指南]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode 插件] | [https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/toc.md GitHub: 安装与使用指南] | [https://www.bilibili.com/video/BV17p4y167uN bilibili：ESP-IDF VSCode 插件快速操作指南]&lt;br /&gt;
&lt;br /&gt;
或者根据操作系统选择对应的手动安装流程:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/windows-setup.html Windows 平台工具链的标准设置]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/linux-macos-setup.html Linux 和 macOS 平台工具链的标准设置]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-reference/index.html#api API 参考]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-guides/index.html#api API 指南]&lt;br /&gt;
&lt;br /&gt;
为了使你的BPI-Leaf-S3开发板可以通过USB-CDC刷写FLASH，需要设置开发板为固件下载模式。&lt;br /&gt;
&lt;br /&gt;
有两种操作方法：&lt;br /&gt;
&lt;br /&gt;
1.通过USB连接到电脑，按住BOOT键，再按一下RESET键并松开，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
2.在断开供电的条件下按住BOOT键，再通过USB连接到电脑，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
需要在设备管理器中确认接口，固件下载模式与普通模式下的接口序号可能是不一样的。&lt;br /&gt;
&lt;br /&gt;
== MicroPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
MicroPython实现了大部分Python 3 特性和语法，易学易上手，验证程序效果无需编译直接下载进芯片运行。&lt;br /&gt;
&lt;br /&gt;
无论是否有编程基础，MicroPython的上手难度绝对远低于其他编程语言，其代码易读性高，且开源社区有多年积累的丰富资源，就如同Python一样拥有极强的生命力与应用价值。&lt;br /&gt;
&lt;br /&gt;
* '''[https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/tree/main/Example/MicroPython-zh#1%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B GitHub: MicroPython快速上手]'''&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_运行环境搭建 | MicroPython运行环境搭建(Thonny IDE) ]]&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_固件下载与烧录 | MicroPython固件下载与烧录 ]]&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino 是一个开源嵌入式软硬件开发平台，用来供用户制作可交互式的嵌入式项目。&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino快速上手]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
= 资料与资源 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=样品购买=&lt;br /&gt;
&lt;br /&gt;
* 官方速卖通: &lt;br /&gt;
* 官方淘宝: &lt;br /&gt;
* OEM&amp;amp;OEM 定制服务 ： sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=File:BPI-PicoW-S3-V0.4-IO.png&amp;diff=12931</id>
		<title>File:BPI-PicoW-S3-V0.4-IO.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=File:BPI-PicoW-S3-V0.4-IO.png&amp;diff=12931"/>
				<updated>2022-09-21T01:45:52Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: Qubot uploaded a new version of File:BPI-PicoW-S3-V0.4-IO.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12930</id>
		<title>BPI-PicoW-S3 开发板</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12930"/>
				<updated>2022-09-21T01:43:10Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* 硬件规格 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:BPI-PicoW-S3]]&lt;br /&gt;
&lt;br /&gt;
= 介绍 =&lt;br /&gt;
Preparing...&lt;br /&gt;
&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 关键特性 ==&lt;br /&gt;
&lt;br /&gt;
* ESP32-S3，Xtensa® 32 bit LX7&lt;br /&gt;
* 片外 PSRAM , FLASH&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI ，Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD，CAMERA ，USB , JTAG&lt;br /&gt;
* 1 * microUSB&lt;br /&gt;
* 1 * 全彩色LED&lt;br /&gt;
&lt;br /&gt;
== BPI-Pico-S3 与 Rraspberry Pi PicoW开发板对比 ==&lt;br /&gt;
Preparing...&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! 开发板&lt;br /&gt;
! BPI-Leaf-S3&lt;br /&gt;
! ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| 引出GPIO&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v管脚&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 5v管脚&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND管脚&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| 全彩LED灯&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| 芯片直连USB&lt;br /&gt;
| Type-C USB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL转USB&lt;br /&gt;
| 无&lt;br /&gt;
| CP2102-MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| 外接电池连接座&lt;br /&gt;
| 3.7v锂电池供电接口&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| 电池充电&lt;br /&gt;
| 500mA充电&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| I²C 4pin连接座&lt;br /&gt;
| 1&lt;br /&gt;
| 无&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP32-S3 ==&lt;br /&gt;
&lt;br /&gt;
ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片，支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器，主频高达 240 MHz，内置 512 KB SRAM (TCM)，具有 45 个可编程 GPIO 管脚和丰富的通信接口。ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM，支持用户配置数据缓存与指令缓存。&lt;br /&gt;
&lt;br /&gt;
以下是ESP32-S3芯片重要功能的描述。&lt;br /&gt;
&lt;br /&gt;
* '''支持Wi-Fi + Bluetooth 5 (LE) 无线连接''': ESP32-S3 集成 2.4 GHz Wi-Fi (802.11 b/g/n)，支持 40 MHz 带宽；其低功耗蓝牙子系统支持 Bluetooth 5 (LE) 和 Bluetooth Mesh，可通过 Coded PHY 与广播扩展实现远距离通信。它还支持 2 Mbps PHY，用于提高传输速度和数据吞吐量。ESP32-S3 的 Wi-Fi 和 Bluetooth LE 射频性能优越，在高温下也能稳定工作。&lt;br /&gt;
&lt;br /&gt;
* '''支持 AI 加速''': ESP32-S3 MCU 增加了用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions)。AI 开发者们通过 ESP-DSP 和 ESP-NN 库使用这些向量指令，可以实现高性能的图像识别、语音唤醒和识别等应用。&lt;br /&gt;
&lt;br /&gt;
* '''丰富的 IO 接口''': ESP32-S3 拥有 45 个可编程 GPIO 以及 SPI、I2S、I2C、PWM、RMT、ADC、UART、SD/MMC 主机控制器和 TWAITM 控制器等常用外设接口。其中的 14 个 GPIO 可被配置为 HMI 交互的电容触摸输入端。此外，ESP32-S3 搭载了超低功耗协处理器 (ULP)，支持多种低功耗模式，广泛适用于各类低功耗应用场景。&lt;br /&gt;
&lt;br /&gt;
* '''完善的安全机制''': ESP32-S3 为物联网设备提供了完善的安全机制和保护措施，防止各类恶意攻击和威胁。它支持基于 AES-XTS 算法的 flash 加密、基于 RSA 算法的安全启动、数字签名和 HMAC。ESP32-S3 还新增了一个“世界控制器 (World Controller)”模块，提供了两个互不干扰的执行环境，实现可信执行环境或权限分离机制。&lt;br /&gt;
&lt;br /&gt;
= 硬件 =&lt;br /&gt;
&lt;br /&gt;
== 硬件接口示意图 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-PicoW-S3-V0.4-IO.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== 硬件规格 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 规格表&lt;br /&gt;
|-&lt;br /&gt;
| SoC主控芯片&lt;br /&gt;
| ESP32-S3，Xtensa® 32 位 LX7 双核处理器&lt;br /&gt;
|-&lt;br /&gt;
| 主频&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| 工作温度&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| 片上 ROM&lt;br /&gt;
| 384 KB &lt;br /&gt;
|-&lt;br /&gt;
| 片上 SRAM&lt;br /&gt;
| 320 KB&lt;br /&gt;
|-&lt;br /&gt;
| 板载 FLASH ROM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| 片上外设PSRAM&lt;br /&gt;
| 8MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n ，2.4Ghz频带，150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| 蓝牙&lt;br /&gt;
| Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-PicoW-S3已引出27个可用GPIO&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
| 2 × 12 位 SAR ADC，支持 18 个模拟通道输入&lt;br /&gt;
|-&lt;br /&gt;
| TOUCH 电容式触摸传感器&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2，支持主机或从机模式&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2，串行立体声数据的输入输出&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1，支持 8 位 ~16 位并行 RGB、I8080、MOTO6800 接口&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1，支持 8 位 ~16 位 DVP 图像传感器接口&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3 ，支持异步通信（RS232 和RS485）和 IrDA&lt;br /&gt;
|-&lt;br /&gt;
| PWM &lt;br /&gt;
| 8 路独立通道，14位精度&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM &lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × 全速USB 2.0 OTG，Type-C母口&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG 控制器&lt;br /&gt;
| 1，USB 全速标准，CDC-ACM ，JTAG&lt;br /&gt;
|-&lt;br /&gt;
| 温度传感器&lt;br /&gt;
| 1，测量范围为–20 °C 到 110 °C，用于监测芯片内部温度&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO主机接口，具有2个卡槽，支持SD卡3.0和3.01，SDIO 3.0，CE-ATA 1.1，MMC 4.41，eMMC 4.5和4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® 控制器&lt;br /&gt;
| 1 ，兼容 ISO11898-1（CAN 规范 2.0）&lt;br /&gt;
|-&lt;br /&gt;
| 通用 DMA 控制器&lt;br /&gt;
| 5 个接收通道和 5 个发送通道&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4 通道发射，4通道接收，共享 384 x 32-bit 的 RAM&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| 4个脉冲计数控制器（单元），每个单元有2个独立的通道&lt;br /&gt;
|-&lt;br /&gt;
| 定时器&lt;br /&gt;
| 4 × 54 位通用定时器，16 位时钟预分频器，1 × 52 位系统定时器，3 × 看门狗定时器&lt;br /&gt;
|-&lt;br /&gt;
| 外部晶振&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC 和低功耗管理&lt;br /&gt;
| 电源管理单元 (PMU)+ 超低功耗协处理器 (ULP)&lt;br /&gt;
|-&lt;br /&gt;
| 低功耗电流&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| 工作电压&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| 输入电压&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| 最大放电电流&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| USB充电&lt;br /&gt;
| 支持&lt;br /&gt;
|-&lt;br /&gt;
| 最大充电电流&lt;br /&gt;
| 500mA&lt;br /&gt;
|-&lt;br /&gt;
| 可控全彩色LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 硬件尺寸 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-PicoW-S3-V0.4-IO.png|800px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 尺寸表&lt;br /&gt;
|-&lt;br /&gt;
| 管脚间距&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔间距&lt;br /&gt;
| 11.4mm/ 47mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔尺寸&lt;br /&gt;
| 内径2.1mm/外径3.4mm&lt;br /&gt;
|-&lt;br /&gt;
| 主板尺寸&lt;br /&gt;
| 21 × 51.88(mm)/0.83 x 2.04(inches)&lt;br /&gt;
|-&lt;br /&gt;
| 板厚&lt;br /&gt;
| 1.2mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
管脚间距兼容万能板（洞洞板、点阵板），面包板，便于调试应用。&lt;br /&gt;
&lt;br /&gt;
== 外设GPIO管脚分配 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 外设GPIO管脚分配&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| 外设接口&lt;br /&gt;
| 信号&lt;br /&gt;
| 管脚&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| 触摸传感器&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | 默认分配管脚，可重定义为任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| 任意GPIO &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 已用于FLASH与PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 彩色LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 软件 =&lt;br /&gt;
&lt;br /&gt;
== ESP-IDF ==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF 是乐鑫官方推出的物联网开发框架，支持 Windows、Linux 和 macOS 操作系统。&lt;br /&gt;
&lt;br /&gt;
建议开发者通过集成开发环境 (IDE) 安装 ESP-IDF:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README_CN.md GitHub: ESP-IDF Eclipse 插件安装与使用指南]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode 插件] | [https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/toc.md GitHub: 安装与使用指南] | [https://www.bilibili.com/video/BV17p4y167uN bilibili：ESP-IDF VSCode 插件快速操作指南]&lt;br /&gt;
&lt;br /&gt;
或者根据操作系统选择对应的手动安装流程:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/windows-setup.html Windows 平台工具链的标准设置]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/linux-macos-setup.html Linux 和 macOS 平台工具链的标准设置]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-reference/index.html#api API 参考]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-guides/index.html#api API 指南]&lt;br /&gt;
&lt;br /&gt;
为了使你的BPI-Leaf-S3开发板可以通过USB-CDC刷写FLASH，需要设置开发板为固件下载模式。&lt;br /&gt;
&lt;br /&gt;
有两种操作方法：&lt;br /&gt;
&lt;br /&gt;
1.通过USB连接到电脑，按住BOOT键，再按一下RESET键并松开，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
2.在断开供电的条件下按住BOOT键，再通过USB连接到电脑，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
需要在设备管理器中确认接口，固件下载模式与普通模式下的接口序号可能是不一样的。&lt;br /&gt;
&lt;br /&gt;
== MicroPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
MicroPython实现了大部分Python 3 特性和语法，易学易上手，验证程序效果无需编译直接下载进芯片运行。&lt;br /&gt;
&lt;br /&gt;
无论是否有编程基础，MicroPython的上手难度绝对远低于其他编程语言，其代码易读性高，且开源社区有多年积累的丰富资源，就如同Python一样拥有极强的生命力与应用价值。&lt;br /&gt;
&lt;br /&gt;
* '''[https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/tree/main/Example/MicroPython-zh#1%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B GitHub: MicroPython快速上手]'''&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_运行环境搭建 | MicroPython运行环境搭建(Thonny IDE) ]]&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_固件下载与烧录 | MicroPython固件下载与烧录 ]]&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino 是一个开源嵌入式软硬件开发平台，用来供用户制作可交互式的嵌入式项目。&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino快速上手]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
= 资料与资源 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=样品购买=&lt;br /&gt;
&lt;br /&gt;
* 官方速卖通: &lt;br /&gt;
* 官方淘宝: &lt;br /&gt;
* OEM&amp;amp;OEM 定制服务 ： sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	<entry>
		<id>https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12929</id>
		<title>BPI-PicoW-S3 开发板</title>
		<link rel="alternate" type="text/html" href="https://wiki.banana-pi.org/index.php?title=BPI-PicoW-S3_%E5%BC%80%E5%8F%91%E6%9D%BF&amp;diff=12929"/>
				<updated>2022-09-21T01:40:03Z</updated>
		
		<summary type="html">&lt;p&gt;Qubot: /* 硬件尺寸 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[en:BPI-PicoW-S3]]&lt;br /&gt;
&lt;br /&gt;
= 介绍 =&lt;br /&gt;
Preparing...&lt;br /&gt;
&lt;br /&gt;
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]&lt;br /&gt;
[[File:Webduino_gif.gif|thumb|[[BPI-Bit]] with ESP32]]&lt;br /&gt;
[[File:BPI-AI_1.JPG|thumb|[[BPI-AI]] Kendryte K210 RISC-V]]&lt;br /&gt;
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 关键特性 ==&lt;br /&gt;
&lt;br /&gt;
* ESP32-S3，Xtensa® 32 bit LX7&lt;br /&gt;
* 片外 PSRAM , FLASH&lt;br /&gt;
* Ultra-low power 10uA&lt;br /&gt;
* 2.4G WIFI ，Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD，CAMERA ，USB , JTAG&lt;br /&gt;
* 1 * microUSB&lt;br /&gt;
* 1 * 全彩色LED&lt;br /&gt;
&lt;br /&gt;
== BPI-Pico-S3 与 Rraspberry Pi PicoW开发板对比 ==&lt;br /&gt;
Preparing...&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! 开发板&lt;br /&gt;
! BPI-Leaf-S3&lt;br /&gt;
! ESP32-S3-DevKitC-1&lt;br /&gt;
|-&lt;br /&gt;
| 引出GPIO&lt;br /&gt;
| 36&lt;br /&gt;
| 36&lt;br /&gt;
|-&lt;br /&gt;
| 3.3v管脚&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 5v管脚&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| GND管脚&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| 全彩LED灯&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
| 1 on GPIO48&lt;br /&gt;
|-&lt;br /&gt;
| 芯片直连USB&lt;br /&gt;
| Type-C USB接口x1&lt;br /&gt;
| MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| UART TTL转USB&lt;br /&gt;
| 无&lt;br /&gt;
| CP2102-MicroUSB接口x1&lt;br /&gt;
|-&lt;br /&gt;
| 外接电池连接座&lt;br /&gt;
| 3.7v锂电池供电接口&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| 电池充电&lt;br /&gt;
| 500mA充电&lt;br /&gt;
| 无&lt;br /&gt;
|-&lt;br /&gt;
| I²C 4pin连接座&lt;br /&gt;
| 1&lt;br /&gt;
| 无&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Espressif ESP32-S3 ==&lt;br /&gt;
&lt;br /&gt;
ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片，支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器，主频高达 240 MHz，内置 512 KB SRAM (TCM)，具有 45 个可编程 GPIO 管脚和丰富的通信接口。ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM，支持用户配置数据缓存与指令缓存。&lt;br /&gt;
&lt;br /&gt;
以下是ESP32-S3芯片重要功能的描述。&lt;br /&gt;
&lt;br /&gt;
* '''支持Wi-Fi + Bluetooth 5 (LE) 无线连接''': ESP32-S3 集成 2.4 GHz Wi-Fi (802.11 b/g/n)，支持 40 MHz 带宽；其低功耗蓝牙子系统支持 Bluetooth 5 (LE) 和 Bluetooth Mesh，可通过 Coded PHY 与广播扩展实现远距离通信。它还支持 2 Mbps PHY，用于提高传输速度和数据吞吐量。ESP32-S3 的 Wi-Fi 和 Bluetooth LE 射频性能优越，在高温下也能稳定工作。&lt;br /&gt;
&lt;br /&gt;
* '''支持 AI 加速''': ESP32-S3 MCU 增加了用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions)。AI 开发者们通过 ESP-DSP 和 ESP-NN 库使用这些向量指令，可以实现高性能的图像识别、语音唤醒和识别等应用。&lt;br /&gt;
&lt;br /&gt;
* '''丰富的 IO 接口''': ESP32-S3 拥有 45 个可编程 GPIO 以及 SPI、I2S、I2C、PWM、RMT、ADC、UART、SD/MMC 主机控制器和 TWAITM 控制器等常用外设接口。其中的 14 个 GPIO 可被配置为 HMI 交互的电容触摸输入端。此外，ESP32-S3 搭载了超低功耗协处理器 (ULP)，支持多种低功耗模式，广泛适用于各类低功耗应用场景。&lt;br /&gt;
&lt;br /&gt;
* '''完善的安全机制''': ESP32-S3 为物联网设备提供了完善的安全机制和保护措施，防止各类恶意攻击和威胁。它支持基于 AES-XTS 算法的 flash 加密、基于 RSA 算法的安全启动、数字签名和 HMAC。ESP32-S3 还新增了一个“世界控制器 (World Controller)”模块，提供了两个互不干扰的执行环境，实现可信执行环境或权限分离机制。&lt;br /&gt;
&lt;br /&gt;
= 硬件 =&lt;br /&gt;
&lt;br /&gt;
== 硬件接口示意图 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-PicoW-S3-V0.4-IO.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== 硬件规格 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 规格表&lt;br /&gt;
|-&lt;br /&gt;
| SoC主控芯片&lt;br /&gt;
| ESP32-S3，Xtensa® 32 位 LX7 双核处理器&lt;br /&gt;
|-&lt;br /&gt;
| 主频&lt;br /&gt;
| 240MHz MAX&lt;br /&gt;
|-&lt;br /&gt;
| 工作温度&lt;br /&gt;
| -40℃~+85℃&lt;br /&gt;
|-&lt;br /&gt;
| 片上 ROM&lt;br /&gt;
| 384 KB &lt;br /&gt;
|-&lt;br /&gt;
| 片上 SRAM&lt;br /&gt;
| 320 KB&lt;br /&gt;
|-&lt;br /&gt;
| 板载 FLASH ROM&lt;br /&gt;
| 4MB&lt;br /&gt;
|-&lt;br /&gt;
| 片上外设PSRAM&lt;br /&gt;
| 2MB&lt;br /&gt;
|-&lt;br /&gt;
| WIFI&lt;br /&gt;
| IEEE 802.11 b/g/n ，2.4Ghz频带，150Mbps&lt;br /&gt;
|-&lt;br /&gt;
| 蓝牙&lt;br /&gt;
| Bluetooth 5 ，Bluetooth mesh&lt;br /&gt;
|-&lt;br /&gt;
| GPIO&lt;br /&gt;
| BPI-Leaf-S3已引出36个可用GPIO&lt;br /&gt;
|-&lt;br /&gt;
| ADC&lt;br /&gt;
| 2 × 12 位 SAR ADC，支持 20 个模拟通道输入&lt;br /&gt;
|-&lt;br /&gt;
| TOUCH 电容式触摸传感器&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| SPI&lt;br /&gt;
| 4&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| 2，支持主机或从机模式&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| 2，串行立体声数据的输入输出&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| 1，支持 8 位 ~16 位并行 RGB、I8080、MOTO6800 接口&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| 1，支持 8 位 ~16 位 DVP 图像传感器接口&lt;br /&gt;
|-&lt;br /&gt;
| UART&lt;br /&gt;
| 3 ，支持异步通信（RS232 和RS485）和 IrDA&lt;br /&gt;
|-&lt;br /&gt;
| PWM &lt;br /&gt;
| 8 路独立通道，14位精度&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM &lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| USB&lt;br /&gt;
| 1 × 全速USB 2.0 OTG，Type-C母口&lt;br /&gt;
|-&lt;br /&gt;
| USB Serial/JTAG 控制器&lt;br /&gt;
| 1，USB 全速标准，CDC-ACM ，JTAG&lt;br /&gt;
|-&lt;br /&gt;
| 温度传感器&lt;br /&gt;
| 1，测量范围为–20 °C 到 110 °C，用于监测芯片内部温度&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| 1 × SDIO主机接口，具有2个卡槽，支持SD卡3.0和3.01，SDIO 3.0，CE-ATA 1.1，MMC 4.41，eMMC 4.5和4.51&lt;br /&gt;
|-&lt;br /&gt;
| TWAI® 控制器&lt;br /&gt;
| 1 ，兼容 ISO11898-1（CAN 规范 2.0）&lt;br /&gt;
|-&lt;br /&gt;
| 通用 DMA 控制器&lt;br /&gt;
| 5 个接收通道和 5 个发送通道&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| 4 通道发射，4通道接收，共享 384 x 32-bit 的 RAM&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| 4个脉冲计数控制器（单元），每个单元有2个独立的通道&lt;br /&gt;
|-&lt;br /&gt;
| 定时器&lt;br /&gt;
| 4 × 54 位通用定时器，16 位时钟预分频器，1 × 52 位系统定时器，3 × 看门狗定时器&lt;br /&gt;
|-&lt;br /&gt;
| 外部晶振&lt;br /&gt;
| 40Mhz&lt;br /&gt;
|-&lt;br /&gt;
| RTC 和低功耗管理&lt;br /&gt;
| 电源管理单元 (PMU)+ 超低功耗协处理器 (ULP)&lt;br /&gt;
|-&lt;br /&gt;
| 低功耗电流&lt;br /&gt;
| 10uA&lt;br /&gt;
|-&lt;br /&gt;
| 工作电压&lt;br /&gt;
| 3.3V&lt;br /&gt;
|-&lt;br /&gt;
| 输入电压&lt;br /&gt;
| 3.3V~5.5V&lt;br /&gt;
|-&lt;br /&gt;
| 最大放电电流&lt;br /&gt;
| 2A@3.3V DC/DC&lt;br /&gt;
|-&lt;br /&gt;
| USB充电&lt;br /&gt;
| 支持&lt;br /&gt;
|-&lt;br /&gt;
| 最大充电电流&lt;br /&gt;
| 500mA&lt;br /&gt;
|-&lt;br /&gt;
| 可控全彩色LED&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 硬件尺寸 ==&lt;br /&gt;
&lt;br /&gt;
[[File:BPI-PicoW-S3-V0.4-IO.png|800px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-PicoW-S3 尺寸表&lt;br /&gt;
|-&lt;br /&gt;
| 管脚间距&lt;br /&gt;
| 2.54mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔间距&lt;br /&gt;
| 11.4mm/ 47mm&lt;br /&gt;
|-&lt;br /&gt;
| 安装孔尺寸&lt;br /&gt;
| 内径2.1mm/外径3.4mm&lt;br /&gt;
|-&lt;br /&gt;
| 主板尺寸&lt;br /&gt;
| 21 × 51.88(mm)/0.83 x 2.04(inches)&lt;br /&gt;
|-&lt;br /&gt;
| 板厚&lt;br /&gt;
| 1.2mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
管脚间距兼容万能板（洞洞板、点阵板），面包板，便于调试应用。&lt;br /&gt;
&lt;br /&gt;
== 外设GPIO管脚分配 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|- &lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; style=&amp;quot; background-color:#ffcb2f;&amp;quot; | BPI-Leaf-S3 外设GPIO管脚分配&lt;br /&gt;
|- style=&amp;quot;background-color:#32cb00;&amp;quot;&lt;br /&gt;
| 外设接口&lt;br /&gt;
| 信号&lt;br /&gt;
| 管脚&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | ADC&lt;br /&gt;
| ADC1_CH0~9&lt;br /&gt;
| GPIO 1~10&lt;br /&gt;
|-&lt;br /&gt;
| ADC2_CH0~9&lt;br /&gt;
| GPIO 11~20&lt;br /&gt;
|-&lt;br /&gt;
| 触摸传感器&lt;br /&gt;
| TOUCH1~14&lt;br /&gt;
| GPIO 1~14&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot;|JTAG&lt;br /&gt;
| MTCK&lt;br /&gt;
| GPIO 39&lt;br /&gt;
|-&lt;br /&gt;
| MTDO&lt;br /&gt;
| GPIO 40&lt;br /&gt;
|-&lt;br /&gt;
| MTDI&lt;br /&gt;
| GPIO 41&lt;br /&gt;
|-&lt;br /&gt;
| MTMS&lt;br /&gt;
| GPIO 42&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;14&amp;quot; | UART&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;color:#9b9b9b;&amp;quot; | 默认分配管脚，可重定义为任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 44&lt;br /&gt;
|-&lt;br /&gt;
| U0CTS_in&lt;br /&gt;
| GPIO 16&lt;br /&gt;
|-&lt;br /&gt;
| U0DSR_in&lt;br /&gt;
| 任意GPIO &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U0TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO43&lt;br /&gt;
|-&lt;br /&gt;
| U0RTS_out&lt;br /&gt;
| GPIO 15&lt;br /&gt;
|-&lt;br /&gt;
| U0DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1RXD_in&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 18&lt;br /&gt;
|-&lt;br /&gt;
| U1CTS_in&lt;br /&gt;
| GPIO 20&lt;br /&gt;
|-&lt;br /&gt;
| U1DSR_in&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | U1TXD_out&lt;br /&gt;
| style=&amp;quot;background-color:#ffffc7;&amp;quot; | GPIO 17&lt;br /&gt;
|-&lt;br /&gt;
| U1RTS_out&lt;br /&gt;
| GPIO 19&lt;br /&gt;
|-&lt;br /&gt;
| U1DTR_out&lt;br /&gt;
| 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | U2&lt;br /&gt;
| style=&amp;quot;background-color:#9aff99;&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2C&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| PWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| I2S&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| CAMERA&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| RMT&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| SPI0/1&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 已用于FLASH与PSRAM&lt;br /&gt;
|-&lt;br /&gt;
| SPI2/3&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 脉冲计数器&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;8&amp;quot; | USB OTG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| RCV&lt;br /&gt;
| GPIO21（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;7&amp;quot; | USB Serial/JTAG&lt;br /&gt;
| D-&lt;br /&gt;
| GPIO 19（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| D+&lt;br /&gt;
| GPIO 20（内部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VP&lt;br /&gt;
| GPIO 42（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VM&lt;br /&gt;
| GPIO 41（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| OEN&lt;br /&gt;
| GPIO 40（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VPO&lt;br /&gt;
| GPIO 39（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| VMO&lt;br /&gt;
| GPIO38（外部 PHY）&lt;br /&gt;
|-&lt;br /&gt;
| SD/MMC&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| MCPWM&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| TWAI&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 任意GPIO&lt;br /&gt;
|-&lt;br /&gt;
| 彩色LED&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | GPIO 48&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 软件 =&lt;br /&gt;
&lt;br /&gt;
== ESP-IDF ==&lt;br /&gt;
&lt;br /&gt;
[[File:Esp-idf-logo.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
ESP-IDF 是乐鑫官方推出的物联网开发框架，支持 Windows、Linux 和 macOS 操作系统。&lt;br /&gt;
&lt;br /&gt;
建议开发者通过集成开发环境 (IDE) 安装 ESP-IDF:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README_CN.md GitHub: ESP-IDF Eclipse 插件安装与使用指南]&lt;br /&gt;
* [https://marketplace.visualstudio.com/items?itemName=espressif.esp-idf-extension ESP-IDF VSCode 插件] | [https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/toc.md GitHub: 安装与使用指南] | [https://www.bilibili.com/video/BV17p4y167uN bilibili：ESP-IDF VSCode 插件快速操作指南]&lt;br /&gt;
&lt;br /&gt;
或者根据操作系统选择对应的手动安装流程:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/windows-setup.html Windows 平台工具链的标准设置]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/linux-macos-setup.html Linux 和 macOS 平台工具链的标准设置]&lt;br /&gt;
&lt;br /&gt;
API:&lt;br /&gt;
&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-reference/index.html#api API 参考]&lt;br /&gt;
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-guides/index.html#api API 指南]&lt;br /&gt;
&lt;br /&gt;
为了使你的BPI-Leaf-S3开发板可以通过USB-CDC刷写FLASH，需要设置开发板为固件下载模式。&lt;br /&gt;
&lt;br /&gt;
有两种操作方法：&lt;br /&gt;
&lt;br /&gt;
1.通过USB连接到电脑，按住BOOT键，再按一下RESET键并松开，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
2.在断开供电的条件下按住BOOT键，再通过USB连接到电脑，最后松开BOOT键。&lt;br /&gt;
&lt;br /&gt;
需要在设备管理器中确认接口，固件下载模式与普通模式下的接口序号可能是不一样的。&lt;br /&gt;
&lt;br /&gt;
== MicroPython ==&lt;br /&gt;
&lt;br /&gt;
[[File:Mircopython.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
MicroPython实现了大部分Python 3 特性和语法，易学易上手，验证程序效果无需编译直接下载进芯片运行。&lt;br /&gt;
&lt;br /&gt;
无论是否有编程基础，MicroPython的上手难度绝对远低于其他编程语言，其代码易读性高，且开源社区有多年积累的丰富资源，就如同Python一样拥有极强的生命力与应用价值。&lt;br /&gt;
&lt;br /&gt;
* '''[https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/tree/main/Example/MicroPython-zh#1%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B GitHub: MicroPython快速上手]'''&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_运行环境搭建 | MicroPython运行环境搭建(Thonny IDE) ]]&lt;br /&gt;
&lt;br /&gt;
* [[ micropython_固件下载与烧录 | MicroPython固件下载与烧录 ]]&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino_logo_1200x350.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
Arduino 是一个开源嵌入式软硬件开发平台，用来供用户制作可交互式的嵌入式项目。&lt;br /&gt;
&lt;br /&gt;
* [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境]&lt;br /&gt;
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino快速上手]&lt;br /&gt;
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]&lt;br /&gt;
&lt;br /&gt;
= 资料与资源 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=样品购买=&lt;br /&gt;
&lt;br /&gt;
* 官方速卖通: &lt;br /&gt;
* 官方淘宝: &lt;br /&gt;
* OEM&amp;amp;OEM 定制服务 ： sales@banana-pi.com&lt;/div&gt;</summary>
		<author><name>Qubot</name></author>	</entry>

	</feed>