Difference between revisions of "BPI-PicoW-S3"

From Banana Pi Wiki
Jump to: navigation, search
 
(54 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[zh:BPI-PicoW-S3 开发板]]
+
[[zh:BPI-PicoW-S3_开发板]]
  
= 介绍 =
+
= Introduction =
 
[[File:BPI-PicoW-S3 banner.png|800px]]
 
[[File:BPI-PicoW-S3 banner.png|800px]]
  
 
[[File:PICO-1000-7.jpg|thumb|[[BPI-PicoW-S3 ]]with ESP32-S3]]
 
[[File:PICO-1000-7.jpg|thumb|[[BPI-PicoW-S3 ]]with ESP32-S3]]
[[File:PICO-1000-5.png|thumb|[[BPI-PicoW-S3 ]]with ESP32-S3]]
+
[[File:Banana_Pi_BPI-PicoW-S3_5.jpg|thumb|[[BPI-PicoW-S3 ]]with ESP32-S3]]
 +
[[File:BPI-Centi-S3_2.jpg|thumb|[[BPI-Centi-S3]] with ESP32-S3 front]]
 
[[File:Leaf-S3-incline-front.jpg|thumb|[[BPI-Leaf-S3]] with ESP32-S3]]
 
[[File:Leaf-S3-incline-front.jpg|thumb|[[BPI-Leaf-S3]] with ESP32-S3]]
 
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]
 
[[File:Smart-01-03.gif|thumb|[[BPI-Smart ]]with ESP8266]]
Line 12: Line 13:
 
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]
 
[[File:ESP32_6.JPG|thumb|[[BPI-UNO32]] with ESP32 design]]
  
 +
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.
  
== 关键特性 ==
+
== key features ==
  
* ESP32-S3,Xtensa® 32 bit LX7
+
*ESP32-S3, Xtensa® 32 bit LX7
* 片外 PSRAM , FLASH
+
* In-packge PSRAM 2MB, Extereal FLASH 8MB
 
* Ultra-low power 10uA
 
* Ultra-low power 10uA
* 2.4G WIFI ,Bluetooth 5 ,Bluetooth mesh
+
* 2.4G WIFI, Bluetooth 5, Bluetooth mesh
* GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD,CAMERA ,USB , JTAG
+
* GPIO, ADC, TOUCH, PWM, I2C, SPI, RMT, I2S, UART, LCD, CAMERA, USB, JTAG
* 1 * microUSB
+
*1*microUSB
* 1 * 全彩色LED
+
*1*Neopixel LED
  
== BPI-PicoW-S3 与 Rraspberry Pi PicoW、BPI-Leaf-S3、ESP32-S3-DevKitC-1 开发板对比 ==
+
== BPI-PicoW-S3 VS Raspberry Pi PicoW, BPI-Leaf-S3, ESP32-S3-DevKitC-1 ==
  
{| class="wikitable"  
+
{| class="wikitable"
 
|- style="font-weight:bold;"
 
|- style="font-weight:bold;"
! 开发板
+
! Development board
! BPI-PicoW-S3
+
!BPI-PicoW-S3
! Rraspberry Pi PicoW
+
!Raspberry Pi PicoW
! BPI-Leaf-S3
+
!BPI-Leaf-S3
! ESP32-S3-DevKitC-1
+
!ESP32-S3-DevKitC-1
 
|-
 
|-
| 引出GPIO
+
| GPIO pinout
 
| 27
 
| 27
 
| 27
 
| 27
Line 39: Line 41:
 
| 36
 
| 36
 
|-
 
|-
| 3.3v管脚
+
| 3.3v pin
 
| 1
 
| 1
 
| 1
 
| 1
Line 45: Line 47:
 
| 2
 
| 2
 
|-
 
|-
| 5v管脚
+
| 5v pin
 
| 2
 
| 2
 
| 2
 
| 2
Line 51: Line 53:
 
| 1
 
| 1
 
|-
 
|-
| GND管脚
+
| GND pin
 
| 8
 
| 8
 
| 8
 
| 8
Line 57: Line 59:
 
| 4
 
| 4
 
|-
 
|-
| 全彩LED灯
+
| Full color LED
 
| 1 on GPIO48
 
| 1 on GPIO48
|
+
| None
 
| 1 on GPIO48
 
| 1 on GPIO48
 
| 1 on GPIO48
 
| 1 on GPIO48
 
|-
 
|-
| 芯片直连USB
+
| Chip directly connected to USB
| MicroUSB接口x1
+
| MicroUSB port x1
| MicroUSB接口x1
+
| MicroUSB port x1
| Type-C USB接口x1
+
| Type-C USB port x1
| MicroUSB接口x1
+
| MicroUSB port x1
 
|-
 
|-
| UART TTL转USB
+
| UART TTL to USB
|
+
| None
|
+
| None
|
+
| None
| CP2102-MicroUSB接口x1
+
| CP2102-MicroUSB interface x1
 
|-
 
|-
| 外接电池连接座
+
| External battery socket
|
+
| None
|
+
| None
| 3.7v锂电池供电接口
+
| 3.7v lithium battery power supply interface
|
+
| None
 
|-
 
|-
| 电池充电
+
| Battery charging
|
+
| None
|
+
| None
| 500mA充电
+
| 500mA charging
|
+
| None
 
|-
 
|-
| I²C 4pin连接座
+
| I²C 4pin connector
|
+
| None
|
+
| None
 
| 1
 
| 1
|
+
| None
 
|}
 
|}
  
 
== Espressif ESP32-S3 ==
 
== Espressif ESP32-S3 ==
  
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,支持用户配置数据缓存与指令缓存。
+
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.
  
以下是ESP32-S3芯片重要功能的描述。
+
What follows is a description of the most important features of ESP32-S3.
  
* '''支持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 射频性能优越,在高温下也能稳定工作。
+
* 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.
  
* '''支持 AI 加速''': ESP32-S3 MCU 增加了用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions)。AI 开发者们通过 ESP-DSP ESP-NN 库使用这些向量指令,可以实现高性能的图像识别、语音唤醒和识别等应用。
+
* 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.
  
* '''丰富的 IO 接口''': ESP32-S3 拥有 45 个可编程 GPIO 以及 SPI、I2S、I2C、PWM、RMT、ADC、UART、SD/MMC 主机控制器和 TWAITM 控制器等常用外设接口。其中的 14 个 GPIO 可被配置为 HMI 交互的电容触摸输入端。此外,ESP32-S3 搭载了超低功耗协处理器 (ULP),支持多种低功耗模式,广泛适用于各类低功耗应用场景。
+
* 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.
  
* '''完善的安全机制''': ESP32-S3 为物联网设备提供了完善的安全机制和保护措施,防止各类恶意攻击和威胁。它支持基于 AES-XTS 算法的 flash 加密、基于 RSA 算法的安全启动、数字签名和 HMAC。ESP32-S3 还新增了一个“世界控制器 (World Controller)”模块,提供了两个互不干扰的执行环境,实现可信执行环境或权限分离机制。
+
* 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 "World Controller" module, which provides two non-interfering execution environments to implement a trusted execution environment or permission separation mechanism.
  
= 硬件 =
+
==Getting Start==
  
== 硬件接口示意图 ==
+
*[https://bpi-steam.com/PicoW_S3_doc/en/ Getting Started with BPI-PicoW-S3]
 +
 
 +
= Hardware =
 +
 
 +
== Hardware interface ==
  
 
[[File:BPI-PicoW-S3-V0.4-IO.png|800px]]
 
[[File:BPI-PicoW-S3-V0.4-IO.png|800px]]
  
== 硬件规格 ==
+
== Hardware spec ==
  
{| class="wikitable"  
+
{| class="wikitable"
 
|-
 
|-
! colspan="2" style="background-color:#ffcb2f;" | BPI-PicoW-S3 规格表
+
!colspan="2" style="background-color:#ffcb2f;" | BPI-PicoW-S3 Spec Sheet
 
|-
 
|-
| SoC主控芯片
+
| SoC
| ESP32-S3,Xtensa® 32 LX7 双核处理器
+
| ESP32-S3, Xtensa® 32-bit LX7 dual core
 
|-
 
|-
| 主频
+
| Basic frequency
 
| 240MHz MAX
 
| 240MHz MAX
 
|-
 
|-
| 工作温度
+
| Operating temperature
 
| -40℃~+85℃
 
| -40℃~+85℃
 
|-
 
|-
| 片上 ROM
+
| On-chip ROM
| 384 KB
+
| 384KB
 +
|-
 +
| On-chip SRAM
 +
| 512KB
 
|-
 
|-
| 片上 SRAM
+
| Extereal FLASH
| 320 KB
+
| 8MB
 
|-
 
|-
| 板载 FLASH ROM
+
| In-packge PSRAM
 
| 2MB
 
| 2MB
|-
 
| 片上外设PSRAM
 
| 8MB
 
 
|-
 
|-
 
| WIFI
 
| WIFI
| IEEE 802.11 b/g/n ,2.4Ghz频带,150Mbps
+
| IEEE 802.11 b/g/n, 2.4Ghz band, 150Mbps
 
|-
 
|-
| 蓝牙
+
| Bluetooth
| Bluetooth 5 ,Bluetooth mesh
+
| Bluetooth 5, Bluetooth mesh
 
|-
 
|-
 
| GPIO
 
| GPIO
| BPI-PicoW-S3已引出27个可用GPIO
+
| BPI-PicoW-S3 has led out 27 available GPIOs
 
|-
 
|-
 
| ADC
 
| ADC
| 2 × 12 SAR ADC,支持 18 个模拟通道输入
+
| 2 × 12-bit SAR ADC supporting 18 analog channel inputs
 
|-
 
|-
| TOUCH 电容式触摸传感器
+
| TOUCH Capacitive Touch Sensor
 
| 14
 
| 14
 
|-
 
|-
Line 160: Line 166:
 
|-
 
|-
 
| I2C
 
| I2C
| 2,支持主机或从机模式
+
| 2. Support master or slave mode
 
|-
 
|-
 
| I2S
 
| I2S
| 2,串行立体声数据的输入输出
+
| 2, input and output of serial stereo data
 
|-
 
|-
 
| LCD
 
| LCD
| 1,支持 8 ~16 位并行 RGB、I8080、MOTO6800 接口
+
| 1, support 8-bit ~16-bit parallel RGB, I8080, MOTO6800 interface
 
|-
 
|-
 
| CAMERA
 
| CAMERA
| 1,支持 8 ~16 DVP 图像传感器接口
+
| 1, supports 8-bit ~16-bit DVP image sensor interface
 
|-
 
|-
 
| UART
 
| UART
| 3 ,支持异步通信(RS232 和RS485)和 IrDA
+
| 3, supports asynchronous communication (RS232 and RS485) and IrDA
 
|-
 
|-
| PWM  
+
| PWM
| 8 路独立通道,14位精度
+
| 8 independent channels, 14-bit precision
 
|-
 
|-
| MCPWM  
+
| MCPWM
 
| 2
 
| 2
 
|-
 
|-
 
| USB
 
| USB
| 1 × 全速USB 2.0 OTG,MicroUSB母口
+
| 1 × Full Speed ​​USB 2.0 OTG, MicroUSB Female
 
|-
 
|-
| USB Serial/JTAG 控制器
+
| USB Serial/JTAG Controller
| 1,USB 全速标准,CDC-ACM ,JTAG
+
| 1, USB full speed standard, CDC-ACM, JTAG
 
|-
 
|-
| 温度传感器
+
| Temperature sensor
| 1,测量范围为–20 °C 110 °C,用于监测芯片内部温度
+
| 1, the measurement range is –20 °C to 110 °C, for monitoring the internal temperature of the chip
 
|-
 
|-
 
| SD/MMC
 
| SD/MMC
| 1 × SDIO主机接口,具有2个卡槽,支持SD卡3.0和3.01,SDIO 3.0,CE-ATA 1.1,MMC 4.41,eMMC 4.5和4.51
+
| 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
 
|-
 
|-
| TWAI® 控制器
+
| TWAI® Controller
| 1 ,兼容 ISO11898-1(CAN 规范 2.0)
+
| 1, compatible with ISO11898-1 (CAN specification 2.0)
 
|-
 
|-
| 通用 DMA 控制器
+
| Generic DMA Controller
| 5 个接收通道和 5 个发送通道
+
| 5 receive channels and 5 transmit channels
 
|-
 
|-
 
| RMT
 
| RMT
| 4 通道发射,4通道接收,共享 384 x 32-bit RAM
+
| 4-channel transmit, 4-channel receive, shared 384 x 32-bit RAM
 
|-
 
|-
| 脉冲计数器
+
| Pulse Counter
| 4个脉冲计数控制器(单元),每个单元有2个独立的通道
+
| 4 pulse count controllers (units), each unit has 2 independent channels
 
|-
 
|-
| 定时器
+
| Timer
| 4 × 54 位通用定时器,16 位时钟预分频器,1 × 52 位系统定时器,3 × 看门狗定时器
+
| 4 × 54-bit general-purpose timers, 16-bit clock prescaler, 1 × 52-bit system timer, 3 × watchdog timers
 
|-
 
|-
| 外部晶振
+
| External crystal
 
| 40Mhz
 
| 40Mhz
 
|-
 
|-
| RTC 和低功耗管理
+
| RTC and Low Power Management
| 电源管理单元 (PMU)+ 超低功耗协处理器 (ULP)
+
| Power Management Unit (PMU) + Ultra Low Power Coprocessor (ULP)
 
|-
 
|-
| 低功耗电流
+
| Low power consumption current
 
| 10uA
 
| 10uA
 
|-
 
|-
| 工作电压
+
| Working Voltage
 
| 3.3V
 
| 3.3V
 
|-
 
|-
| 输入电压
+
| Input voltage
 
| 3.3V~5.5V
 
| 3.3V~5.5V
 
|-
 
|-
| 最大放电电流
+
| Maximum discharge current
  
 
|-
 
|-
| 可控全彩色LED
+
| Controllable full color LED
 +
| 1
 +
|-
 +
| Controllable monochrome LED
 
| 1
 
| 1
 
|}
 
|}
  
== 硬件尺寸 ==
+
== Hardware Size ==
  
 
[[File:BPI-Pico-S3-board-dimension.png|800px]]
 
[[File:BPI-Pico-S3-board-dimension.png|800px]]
  
{| class="wikitable"  
+
{| class="wikitable"
 
|-
 
|-
! colspan="2" style=" background-color:#ffcb2f;" | BPI-PicoW-S3 尺寸表
+
!colspan="2" style=" background-color:#ffcb2f;" | BPI-PicoW-S3 size chart
 
|-
 
|-
| 管脚间距
+
| Pin spacing
 
| 2.54mm
 
| 2.54mm
 
|-
 
|-
| 安装孔间距
+
| Hole Spacing
 
| 11.4mm/ 47mm
 
| 11.4mm/ 47mm
 
|-
 
|-
| 安装孔尺寸
+
| Hole size
| 内径2.1mm/外径3.4mm
+
| Inner diameter 2.1mm/Outer diameter 3.4mm
 
|-
 
|-
| 主板尺寸
+
| Mainboard size
 
| 21 × 51.88(mm)/0.83 x 2.04(inches)
 
| 21 × 51.88(mm)/0.83 x 2.04(inches)
 
|-
 
|-
| 板厚
+
| Thickness
 
| 1.2mm
 
| 1.2mm
 
|}
 
|}
  
管脚间距兼容万能板(洞洞板、点阵板),面包板,便于调试应用。
+
The pin spacing is compatible with universal boards (hole boards, dot matrix boards) and breadboards, which is convenient for debugging applications.
  
== 外设GPIO管脚分配 ==
+
==GPIO define ==
  
{| class="wikitable"  
+
{| class="wikitable"
|-  
+
|-
! colspan="3" style=" background-color:#ffcb2f;" | BPI-PicoW-S3 外设GPIO管脚分配
+
!colspan="3" style=" background-color:#ffcb2f;" | BPI-PicoW-S3 peripheral GPIO pin assignment
 
|- style="background-color:#32cb00;"
 
|- style="background-color:#32cb00;"
| 外设接口
+
| Peripheral Interface
| 信号
+
| Signal
| 管脚
+
| Pins
 
|-
 
|-
 
| rowspan="2" | ADC
 
| rowspan="2" | ADC
Line 272: Line 281:
 
| GPIO 11~20
 
| GPIO 11~20
 
|-
 
|-
| 触摸传感器
+
| Touch Sensor
 
| TOUCH1~14
 
| TOUCH1~14
 
| GPIO 1~14
 
| GPIO 1~14
Line 290: Line 299:
 
|-
 
|-
 
| rowspan="14" | UART
 
| rowspan="14" | UART
| colspan="2" style="font-style:italic;color:#9b9b9b;" | 默认分配管脚,可重定义为任意GPIO
+
| colspan="2" style="font-style:italic;color:#9b9b9b;" | Default assigned pins, can be redefined as any GPIO
 
|-
 
|-
 
| style="background-color:#ffffc7;" | U0RXD_in
 
| style="background-color:#ffffc7;" | U0RXD_in
Line 299: Line 308:
 
|-
 
|-
 
| U0DSR_in
 
| U0DSR_in
| 任意GPIO
+
| Any GPIO
 
|-
 
|-
 
| style="background-color:#ffffc7;" | U0TXD_out
 
| style="background-color:#ffffc7;" | U0TXD_out
Line 308: Line 317:
 
|-
 
|-
 
| U0DTR_out
 
| U0DTR_out
| 任意GPIO
+
| Any GPIO
 
|-
 
|-
 
| style="background-color:#ffffc7;" | U1RXD_in
 
| style="background-color:#ffffc7;" | U1RXD_in
Line 317: Line 326:
 
|-
 
|-
 
| U1DSR_in
 
| U1DSR_in
| 任意GPIO
+
| Any GPIO
 
|-
 
|-
 
| style="background-color:#ffffc7;" | U1TXD_out
 
| style="background-color:#ffffc7;" | U1TXD_out
Line 326: Line 335:
 
|-
 
|-
 
| U1DTR_out
 
| U1DTR_out
| 任意GPIO
+
| Any GPIO
 
|-
 
|-
 
| style="background-color:#9aff99;" | U2
 
| style="background-color:#9aff99;" | U2
| style="background-color:#9aff99;" | 任意GPIO
+
| style="background-color:#9aff99;" | Any GPIO
 
|-
 
|-
 
| I2C
 
| I2C
| colspan="2" | 任意GPIO
+
| colspan="2" | Any GPIO
 
|-
 
|-
 
| PWM
 
| PWM
| colspan="2" | 任意GPIO
+
| colspan="2" | Any GPIO
 
|-
 
|-
 
| I2S
 
| I2S
| colspan="2" | 任意GPIO
+
| colspan="2" | Any GPIO
 
|-
 
|-
 
| LCD
 
| LCD
| colspan="2" | 任意GPIO
+
| colspan="2" | Any GPIO
 
|-
 
|-
 
| CAMERA
 
| CAMERA
| colspan="2" | 任意GPIO
+
| colspan="2" | Any GPIO
 
|-
 
|-
 
| RMT
 
| RMT
| colspan="2" | 任意GPIO
+
| colspan="2" | Any GPIO
 
|-
 
|-
 
| SPI0/1
 
| SPI0/1
| colspan="2" | 已用于FLASH与PSRAM
+
| colspan="2" | Used for FLASH and PSRAM
 
|-
 
|-
 
| SPI2/3
 
| SPI2/3
| colspan="2" | 任意GPIO
+
| colspan="2" | Any GPIO
 
|-
 
|-
| 脉冲计数器
+
| Pulse Counter
| colspan="2" | 任意GPIO
+
| colspan="2" | Any GPIO
 
|-
 
|-
 
| rowspan="8" | USB OTG
 
| rowspan="8" | USB OTG
 
| D-
 
| D-
| GPIO 19(内部 PHY)
+
| GPIO 19 (internal PHY)
 
|-
 
|-
 
| D+
 
| D+
| GPIO 20(内部 PHY)
+
| GPIO 20 (internal PHY)
 
|-
 
|-
 
| VP
 
| VP
| GPIO 42(外部 PHY)
+
| GPIO 42 (External PHY)
 
|-
 
|-
 
| VM
 
| VM
| GPIO 41(外部 PHY)
+
| GPIO 41 (External PHY)
 
|-
 
|-
 
| RCV
 
| RCV
| GPIO21(外部 PHY)
+
| GPIO21 (External PHY)
 
|-
 
|-
 
| OEN
 
| OEN
| GPIO 40(外部 PHY)
+
| GPIO 40 (External PHY)
 
|-
 
|-
 
| VPO
 
| VPO
| GPIO 39(外部 PHY)
+
| GPIO 39 (External PHY)
 
|-
 
|-
 
| VMO
 
| VMO
| GPIO38(外部 PHY)
+
| GPIO38 (External PHY)
 
|-
 
|-
 
| rowspan="7" | USB Serial/JTAG
 
| rowspan="7" | USB Serial/JTAG
 
| D-
 
| D-
| GPIO 19(内部 PHY)
+
| GPIO 19 (internal PHY)
 
|-
 
|-
 
| D+
 
| D+
| GPIO 20(内部 PHY)
+
| GPIO 20 (internal PHY)
 
|-
 
|-
 
| VP
 
| VP
| GPIO 42(外部 PHY)
+
| GPIO 42 (External PHY)
 
|-
 
|-
 
| VM
 
| VM
| GPIO 41(外部 PHY)
+
| GPIO 41 (External PHY)
 
|-
 
|-
 
| OEN
 
| OEN
| GPIO 40(外部 PHY)
+
| GPIO 40 (External PHY)
 
|-
 
|-
 
| VPO
 
| VPO
| GPIO 39(外部 PHY)
+
| GPIO 39 (External PHY)
 
|-
 
|-
 
| VMO
 
| VMO
| GPIO38(外部 PHY)
+
| GPIO38 (External PHY)
 
|-
 
|-
 
| SD/MMC
 
| SD/MMC
| colspan="2" | 任意GPIO
+
| colspan="2" | Any GPIO
 
|-
 
|-
 
| MCPWM
 
| MCPWM
| colspan="2" | 任意GPIO
+
| colspan="2" | Any GPIO
 
|-
 
|-
 
| TWAI
 
| TWAI
| colspan="2" | 任意GPIO
+
| colspan="2" | Any GPIO
 
|-
 
|-
| 彩色LED
+
| Full Color LED
 
| colspan="2" | GPIO 48
 
| colspan="2" | GPIO 48
 +
|-
 +
| Monochrome LED
 +
| colspan="2" | GPIO 46
 
|}
 
|}
  
= 软件 =
+
= Software =
  
== ESP-IDF ==
+
== CircuitPython ==
 +
 
 +
[[File:CircuitPython_Repo_header_logo.jpg | 800px]]
 +
 
 +
CircuitPython is an education-friendly open source derivative of MicroPython, supported and developed by Adafruit Industries.
 +
 
 +
In terms of ease of use, it goes a step further on the basis of MicroPython.
 +
 
 +
When the development board using CircuitPython firmware is connected to the PC, the PC will immediately get a USB storage disk.
 +
 
 +
And the python script file can be copied to this disk to allow the program to run on the development board.
 +
 
 +
This allows users to use it out of the box, because most modern personal operating systems and home PCs support USB storage disks.
 +
 
 +
Of course, in order to use REPL, at least a serial communication software needs to be installed, or a text editor that supports this function, such as Mu editor.
 +
 
 +
The CircuitPython community provides an extremely rich peripheral driver library, APIs documentation, and tutorials.
 +
 
 +
Even if there is no programming foundation, no hardware foundation, you can quickly get started from scratch.
 +
 
 +
CircuitPython does not support some microcontroller-specific libraries such as timer and hardware interrupt, nor does it support the multi-threaded _thread library. It only provides the asyncio library for writing concurrent code.
 +
 
 +
The code is very portable between microcontrollers supported by CircuitPython and single-board computers (SBCs) supported by Blinka. This is thanks to its efforts to unify APIs.
 +
 
 +
* [https://codewith.mu/ Mu Editor Download Page]
 +
 
 +
* [[ code_circuitpython_with_mu_en | Getting Started: Code CircuitPython with Mu Editor ]]
 +
 
 +
'''Supported by the adafruit/circuitpython GitHub repository'''
 +
 
 +
https://github.com/adafruit/circuitpython/pull/7031
 +
 
 +
'''Supported by the adafruit/tinyuf2 GitHub repository'''
 +
 
 +
https://github.com/adafruit/tinyuf2/pull/250
 +
 
 +
'''Reference Resources''' :
 +
 
 +
* [https://learn.adafruit.com/welcome-to-circuitpython Adafruit: Welcome To CircuitPython]
 +
 
 +
* [https://learn.adafruit.com/getting-started-with-web-workflow-using-the-code-editor/overview Adafruit:CircuitPython Web Workflow Code Editor Quick Start]
 +
 
 +
* [https://circuitpython.readthedocs.io/ Adafruit:CircuitPython Docs]
 +
 
 +
* [https://github.com/todbot/circuitpython-tricks GitHub:CircuitPython-tricks]
 +
 
 +
* [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]
 +
 
 +
==ESP-IDF==
  
 
[[File:Esp-idf-logo.png | 800px]]
 
[[File:Esp-idf-logo.png | 800px]]
  
ESP-IDF 是乐鑫官方推出的物联网开发框架,支持 Windows、Linux 和 macOS 操作系统。
+
ESP-IDF is an IoT development framework officially launched by Espressif, supporting Windows, Linux and macOS operating systems.
  
建议开发者通过集成开发环境 (IDE) 安装 ESP-IDF:
+
It is recommended that developers install ESP-IDF via an integrated development environment (IDE):
  
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README_CN.md GitHub: ESP-IDF Eclipse 插件安装与使用指南]
+
* [https://github.com/espressif/idf-eclipse-plugin/blob/master/README_CN.md GitHub: ESP-IDF Eclipse Plugin Installation and Usage Guide]
* [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 插件快速操作指南]
+
* [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]
  
或者根据操作系统选择对应的手动安装流程:
+
Or select the corresponding manual installation process according to the operating system:
  
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/windows-setup.html Windows 平台工具链的标准设置]
+
* [https://docs.espressif.com/projects/esp-idf/en_US/latest/esp32s3/get-started/windows-setup.html Standard setup for Windows platform toolchain]
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/linux-macos-setup.html Linux macOS 平台工具链的标准设置]
+
* [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]
  
 
API:
 
API:
  
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-reference/index.html#api API 参考]
+
* [https://docs.espressif.com/projects/esp-idf/en_US/latest/esp32s3/api-reference/index.html#api API Reference]
* [https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/api-guides/index.html#api API 指南]
+
* [https://docs.espressif.com/projects/esp-idf/en_US/latest/esp32s3/api-guides/index.html#api API Guide]
  
为了使你的BPI-Leaf-S3开发板可以通过USB-CDC刷写FLASH,需要设置开发板为固件下载模式。
+
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.
  
有两种操作方法:
+
There are two methods of operation:
  
1.通过USB连接到电脑,按住BOOT键,再按一下RESET键并松开,最后松开BOOT键。
+
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.
  
2.在断开供电的条件下按住BOOT键,再通过USB连接到电脑,最后松开BOOT键。
+
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.
  
需要在设备管理器中确认接口,固件下载模式与普通模式下的接口序号可能是不一样的。
+
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.
  
== MicroPython ==
+
==MicroPython==
  
 
[[File:Mircopython.png | 800px]]
 
[[File:Mircopython.png | 800px]]
  
MicroPython实现了大部分Python 3 特性和语法,易学易上手,验证程序效果无需编译直接下载进芯片运行。
+
MicroPython is a lean and efficient implementation of the Python 3 programming language that includes a small subset of the Python standard library and is optimised to run on microcontrollers and in constrained environments.
 +
 
 +
Crowdfunded and open sourced in 2013 by Damien P. George.
 +
 
 +
The most obvious difference between it and the use of C programs to develop microcontrollers is that there is no need for lengthy compilation when verifying code.
 +
 
 +
Using serial communication software, enter commands through the REPL(read-eval-print-loop) to control the microcontroller, just like Python's REPL.
 +
 
 +
It is also possible to use some tools to upload a python script file to run inside the microcontroller.
 +
 
 +
Its implementation of Python3 includes the _thread library that supports multithreading and the asyncio library for writing concurrent code.
  
无论是否有编程基础,MicroPython的上手难度绝对远低于其他编程语言,其代码易读性高,且开源社区有多年积累的丰富资源,就如同Python一样拥有极强的生命力与应用价值。
+
MicroPython aims to be as compatible with normal Python as possible to allow you to transfer code with ease from the desktop to a microcontroller or embedded system.
  
* '''[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快速上手]'''
+
At the same time it also has some libraries specific for microcontrollers in order to take full advantage of the hardware features inside the microcontroller chip, such as timers, hardware interrupts, WiFi, etc., depending on the specific hardware.
  
* [[ micropython_运行环境搭建 | MicroPython运行环境搭建(Thonny IDE) ]]
+
While having the above features, it is compact enough to fit and run within just 256k of code space and 16k of RAM.
  
* [[ micropython_固件下载与烧录 | MicroPython固件下载与烧录 ]]
+
If you know Python you already know MicroPython.
  
== Arduino ==
+
On the other hand, the more you learn about MicroPython the better you become at Python.
 +
 
 +
==Arduino==
  
 
[[File:Arduino_logo_1200x350.png | 800px]]
 
[[File:Arduino_logo_1200x350.png | 800px]]
  
Arduino 是一个开源嵌入式软硬件开发平台,用来供用户制作可交互式的嵌入式项目。
+
Arduino is an open source embedded hardware and software development platform for users to create interactive embedded projects.
 +
 
 +
The Arduino integrated development environment (IDE) is the software core of this platform, using the C/C++ programming language to develop projects.
 +
 
 +
The biggest feature of Arduino is to provide a unified API to develop all microcontrollers it supports, with very good code portability and reusability.
 +
 
 +
In addition, it simplifies the process of building a development environment, and all the development environments of microcontrollers it supports can be installed and configured with one click.
 +
 
 +
It also provides simple one-click mechanisms to compile and upload programs to a microcontroller.
 +
 
 +
Arduino IDE also integrates many routines, supplemented by a large number of comments, which can help users get started quickly.
  
* [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境]
+
A large number of excellent open source projects accumulated in the Arduino community are available for reference and learning, and there are quite a few driver libraries and APIs provided by chip manufacturers.
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino快速上手]
+
 
 +
* [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]
 +
* [https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/blob/main/Example/Arduino GitHub: BPI-Leaf-S3 Arduino Quick Start]
 
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]
 
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]
  
= 资料与资源 =
+
=Resources=
 
+
BPI-PicoW-S3 schematic : https://github.com/BPI-STEAM/BPI-PicoW-Doc/blob/main/sch/BPI-PicoW-V0.4.pdf
  
=样品购买=
+
=Easy to buy sample=
  
* 官方速卖通:  
+
* Official AliExpress:https://www.aliexpress.com/item/1005004775634442.html
* 官方淘宝:  
+
* SinoVoip Aliexpress : https://www.aliexpress.com/item/1005004775859077.html
* OEM&OEM 定制服务 : [email protected]
+
* Official Taobao: https://item.taobao.com/item.htm?spm=a2126o.success.0.0.25b04831CHV1Nc&id=684134360199
 +
* OEM&OEM customized service: [email protected]

Latest revision as of 17:28, 10 September 2023


Introduction

BPI-PicoW-S3 banner.png

BPI-Centi-S3 with ESP32-S3 front
BPI-Leaf-S3 with ESP32-S3
BPI-Bit with ESP32
BPI-AI Kendryte K210 RISC-V
BPI-UNO32 with ESP32 design

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.

key features

  • ESP32-S3, Xtensa® 32 bit LX7
  • In-packge PSRAM 2MB, Extereal FLASH 8MB
  • Ultra-low power 10uA
  • 2.4G WIFI, Bluetooth 5, Bluetooth mesh
  • GPIO, ADC, TOUCH, PWM, I2C, SPI, RMT, I2S, UART, LCD, CAMERA, USB, JTAG
  • 1*microUSB
  • 1*Neopixel LED

BPI-PicoW-S3 VS Raspberry Pi PicoW, BPI-Leaf-S3, ESP32-S3-DevKitC-1

Development board BPI-PicoW-S3 Raspberry Pi PicoW BPI-Leaf-S3 ESP32-S3-DevKitC-1
GPIO pinout 27 27 36 36
3.3v pin 1 1 2 2
5v pin 2 2 1 1
GND pin 8 8 4 4
Full color LED 1 on GPIO48 None 1 on GPIO48 1 on GPIO48
Chip directly connected to USB MicroUSB port x1 MicroUSB port x1 Type-C USB port x1 MicroUSB port x1
UART TTL to USB None None None CP2102-MicroUSB interface x1
External battery socket None None 3.7v lithium battery power supply interface None
Battery charging None None 500mA charging None
I²C 4pin connector None None 1 None

Espressif ESP32-S3

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.

What follows is a description of the most important features of ESP32-S3.

  • 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.
  • 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.
  • 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.
  • 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 "World Controller" module, which provides two non-interfering execution environments to implement a trusted execution environment or permission separation mechanism.

Getting Start

Hardware

Hardware interface

BPI-PicoW-S3-V0.4-IO.png

Hardware spec

BPI-PicoW-S3 Spec Sheet
SoC ESP32-S3, Xtensa® 32-bit LX7 dual core
Basic frequency 240MHz MAX
Operating temperature -40℃~+85℃
On-chip ROM 384KB
On-chip SRAM 512KB
Extereal FLASH 8MB
In-packge PSRAM 2MB
WIFI IEEE 802.11 b/g/n, 2.4Ghz band, 150Mbps
Bluetooth Bluetooth 5, Bluetooth mesh
GPIO BPI-PicoW-S3 has led out 27 available GPIOs
ADC 2 × 12-bit SAR ADC supporting 18 analog channel inputs
TOUCH Capacitive Touch Sensor 14
SPI 4
I2C 2. Support master or slave mode
I2S 2, input and output of serial stereo data
LCD 1, support 8-bit ~16-bit parallel RGB, I8080, MOTO6800 interface
CAMERA 1, supports 8-bit ~16-bit DVP image sensor interface
UART 3, supports asynchronous communication (RS232 and RS485) and IrDA
PWM 8 independent channels, 14-bit precision
MCPWM 2
USB 1 × Full Speed ​​USB 2.0 OTG, MicroUSB Female
USB Serial/JTAG Controller 1, USB full speed standard, CDC-ACM, JTAG
Temperature sensor 1, the measurement range is –20 °C to 110 °C, for monitoring the internal temperature of the chip
SD/MMC 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
TWAI® Controller 1, compatible with ISO11898-1 (CAN specification 2.0)
Generic DMA Controller 5 receive channels and 5 transmit channels
RMT 4-channel transmit, 4-channel receive, shared 384 x 32-bit RAM
Pulse Counter 4 pulse count controllers (units), each unit has 2 independent channels
Timer 4 × 54-bit general-purpose timers, 16-bit clock prescaler, 1 × 52-bit system timer, 3 × watchdog timers
External crystal 40Mhz
RTC and Low Power Management Power Management Unit (PMU) + Ultra Low Power Coprocessor (ULP)
Low power consumption current 10uA
Working Voltage 3.3V
Input voltage 3.3V~5.5V
Maximum discharge current [email protected] DC/DC
Controllable full color LED 1
Controllable monochrome LED 1

Hardware Size

BPI-Pico-S3-board-dimension.png

BPI-PicoW-S3 size chart
Pin spacing 2.54mm
Hole Spacing 11.4mm/ 47mm
Hole size Inner diameter 2.1mm/Outer diameter 3.4mm
Mainboard size 21 × 51.88(mm)/0.83 x 2.04(inches)
Thickness 1.2mm

The pin spacing is compatible with universal boards (hole boards, dot matrix boards) and breadboards, which is convenient for debugging applications.

GPIO define

BPI-PicoW-S3 peripheral GPIO pin assignment
Peripheral Interface Signal Pins
ADC ADC1_CH0~9 GPIO 1~10
ADC2_CH0~9 GPIO 11~20
Touch Sensor TOUCH1~14 GPIO 1~14
JTAG MTCK GPIO 39
MTDO GPIO 40
MTDI GPIO 41
MTMS GPIO 42
UART Default assigned pins, can be redefined as any GPIO
U0RXD_in GPIO 44
U0CTS_in GPIO 16
U0DSR_in Any GPIO
U0TXD_out GPIO43
U0RTS_out GPIO 15
U0DTR_out Any GPIO
U1RXD_in GPIO 18
U1CTS_in GPIO 20
U1DSR_in Any GPIO
U1TXD_out GPIO 17
U1RTS_out GPIO 19
U1DTR_out Any GPIO
U2 Any GPIO
I2C Any GPIO
PWM Any GPIO
I2S Any GPIO
LCD Any GPIO
CAMERA Any GPIO
RMT Any GPIO
SPI0/1 Used for FLASH and PSRAM
SPI2/3 Any GPIO
Pulse Counter Any GPIO
USB OTG D- GPIO 19 (internal PHY)
D+ GPIO 20 (internal PHY)
VP GPIO 42 (External PHY)
VM GPIO 41 (External PHY)
RCV GPIO21 (External PHY)
OEN GPIO 40 (External PHY)
VPO GPIO 39 (External PHY)
VMO GPIO38 (External PHY)
USB Serial/JTAG D- GPIO 19 (internal PHY)
D+ GPIO 20 (internal PHY)
VP GPIO 42 (External PHY)
VM GPIO 41 (External PHY)
OEN GPIO 40 (External PHY)
VPO GPIO 39 (External PHY)
VMO GPIO38 (External PHY)
SD/MMC Any GPIO
MCPWM Any GPIO
TWAI Any GPIO
Full Color LED GPIO 48
Monochrome LED GPIO 46

Software

CircuitPython

CircuitPython Repo header logo.jpg

CircuitPython is an education-friendly open source derivative of MicroPython, supported and developed by Adafruit Industries.

In terms of ease of use, it goes a step further on the basis of MicroPython.

When the development board using CircuitPython firmware is connected to the PC, the PC will immediately get a USB storage disk.

And the python script file can be copied to this disk to allow the program to run on the development board.

This allows users to use it out of the box, because most modern personal operating systems and home PCs support USB storage disks.

Of course, in order to use REPL, at least a serial communication software needs to be installed, or a text editor that supports this function, such as Mu editor.

The CircuitPython community provides an extremely rich peripheral driver library, APIs documentation, and tutorials.

Even if there is no programming foundation, no hardware foundation, you can quickly get started from scratch.

CircuitPython does not support some microcontroller-specific libraries such as timer and hardware interrupt, nor does it support the multi-threaded _thread library. It only provides the asyncio library for writing concurrent code.

The code is very portable between microcontrollers supported by CircuitPython and single-board computers (SBCs) supported by Blinka. This is thanks to its efforts to unify APIs.

Supported by the adafruit/circuitpython GitHub repository

https://github.com/adafruit/circuitpython/pull/7031

Supported by the adafruit/tinyuf2 GitHub repository

https://github.com/adafruit/tinyuf2/pull/250

Reference Resources :

ESP-IDF

Esp-idf-logo.png

ESP-IDF is an IoT development framework officially launched by Espressif, supporting Windows, Linux and macOS operating systems.

It is recommended that developers install ESP-IDF via an integrated development environment (IDE):

Or select the corresponding manual installation process according to the operating system:

API:

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.

There are two methods of operation:

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.

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.

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.

MicroPython

Mircopython.png

MicroPython is a lean and efficient implementation of the Python 3 programming language that includes a small subset of the Python standard library and is optimised to run on microcontrollers and in constrained environments.

Crowdfunded and open sourced in 2013 by Damien P. George.

The most obvious difference between it and the use of C programs to develop microcontrollers is that there is no need for lengthy compilation when verifying code.

Using serial communication software, enter commands through the REPL(read-eval-print-loop) to control the microcontroller, just like Python's REPL.

It is also possible to use some tools to upload a python script file to run inside the microcontroller.

Its implementation of Python3 includes the _thread library that supports multithreading and the asyncio library for writing concurrent code.

MicroPython aims to be as compatible with normal Python as possible to allow you to transfer code with ease from the desktop to a microcontroller or embedded system.

At the same time it also has some libraries specific for microcontrollers in order to take full advantage of the hardware features inside the microcontroller chip, such as timers, hardware interrupts, WiFi, etc., depending on the specific hardware.

While having the above features, it is compact enough to fit and run within just 256k of code space and 16k of RAM.

If you know Python you already know MicroPython.

On the other hand, the more you learn about MicroPython the better you become at Python.

Arduino

Arduino logo 1200x350.png

Arduino is an open source embedded hardware and software development platform for users to create interactive embedded projects.

The Arduino integrated development environment (IDE) is the software core of this platform, using the C/C++ programming language to develop projects.

The biggest feature of Arduino is to provide a unified API to develop all microcontrollers it supports, with very good code portability and reusability.

In addition, it simplifies the process of building a development environment, and all the development environments of microcontrollers it supports can be installed and configured with one click.

It also provides simple one-click mechanisms to compile and upload programs to a microcontroller.

Arduino IDE also integrates many routines, supplemented by a large number of comments, which can help users get started quickly.

A large number of excellent open source projects accumulated in the Arduino community are available for reference and learning, and there are quite a few driver libraries and APIs provided by chip manufacturers.

Resources

BPI-PicoW-S3 schematic : https://github.com/BPI-STEAM/BPI-PicoW-Doc/blob/main/sch/BPI-PicoW-V0.4.pdf

Easy to buy sample