OpenMV N6¶
OpenMV N6 以意法半導體(STMicroelectronics)的 STM32N657(Cortex‑M55 @ 800 MHz)為核心,搭配一顆 1 GHz 的晶片內建 NPU,INT8 算力達 600 GOPS。此開發板將 NPU 與安裝於可拆卸載板上的 PAG7936 1 MP 全域快門感測器結合,並配備 gigabit 乙太網路、USB‑C 高速介面、Wi‑Fi 與 Bluetooth 5.1,可在進行即時視訊串流的同時以 30 FPS 執行 YOLOv8/YOLOv11 推論。
完整的規格書、照片與尺寸資訊,請參閱 OpenMV N6 產品頁面。
重點特色¶
STM32N657 Cortex‑M55 運作於 800 MHz(1280 DMIPS),具備 ARM Helium 128 位元 SIMD —— 向量吞吐量達 6.4 gigaops。
1 GHz NPU,INT8 算力 600 GOPS —— 可以 30 FPS 執行 YOLOv8/YOLOv11 偵測。
ISP 支援最高 5MP 的 RAW Bayer,2D GPU 用於縮放與 3D 旋轉,H.264 編碼 至 1080p,以及硬體 JPEG 編解碼器。
64 MB 外部 SDRAM(16 位元 @ 200 MHz DDR,800 MB/s)外加 4.2 MB 內部 SRAM 與 32 MB octal 快閃記憶體(200 MHz DDR,400 MB/s)。
PAG7936 1 MP 彩色全域快門感測器。
車載 IMU(加速度計+陀螺儀)與 麥克風,可進行音訊與動態融合。
高速 USB‑C(480 Mb/s,1.5 A 電流限制)、gigabit 乙太網路(透過擴充板支援 PoE)、Wi‑Fi a/b/g/n + Bluetooth 5.1(晶片天線或 U.FL 選項)。
microSD 插槽 —— SD 最高 2 GB、SDHC 最高 32 GB、SDXC 最高 2 TB。
LiPo 充電器(500 mA 快充)、電池電壓 ADC、具備 8 KB 備援 RAM 的 RTC,以及專用的備援電池接腳。
18 個 I/O 接腳,全部為 3.3 V 輸出/3.3 V 容忍,每腳 20 mA,並支援中斷。
使用者 RGB LED、使用者按鈕,以及一個獨立的狀態 LED,用於顯示充電/USB/VIN 電源狀態。
警告
N6 的 I/O 接腳 不耐 5 V。請勿將本裝置直接連接到如 Arduino Mega 等 5 V MCU。請僅透過 VIN 為 N6 供電。
接腳配置¶
接腳參考¶
接腳名稱 |
功能 |
|---|---|
P0 |
SPI2 MOSI / I2S2 SDO |
P1 |
SPI2 MISO / I2S2 SDI |
P2 |
SPI2 SCLK / UART4 TX / CAN1 TX / I2S2 CK |
P3 |
SPI2 SS / UART4 RX / CAN1 RX / I2S2 WS |
P4 |
I2C2 SCL / UART3 TX / TIM2 CH3 / I3C2 SCL |
P5 |
I2C2 SDA / UART3 RX / TIM2 CH4 / I3C2 SDA |
P6 |
TIM12 CH1(此接腳無 ADC —— 請參閱 |
P6_ADC |
專用 12 位元 ADC 輸入(內部與 P6 相連) |
P7 |
TIM4 CH1 |
P8 |
TIM4 CH2 |
P9 |
TIM17 CH1 |
P10 |
TIM15 CH2 / 影格同步 I/O |
P11 |
喚醒(低電位有效,WKUP3) |
P12 |
RESET —— 拉至 GND 可重置開發板(非 GPIO) |
P13 |
UART7 RX |
P14 |
UART7 TX |
P15 |
SPI4 CS |
P16 |
SPI4 SCK |
P17 |
SPI4 MISO |
P18 |
SPI4 MOSI |
SW |
使用者按鈕(低電位有效) |
ONOFF (SW2) |
深度睡眠喚醒按鈕(低電位有效,WKUP2) |
ST |
VIN 供電時為低電位,USB 供電時為高電位 |
CHG |
低電位有效;當所接的 LiPo 電池正在充電時為低電位 |
PG |
低電位有效;當有 VIN 或 USB 電源時為低電位 |
BAT_ADC |
用於量測所接 LiPo 電池電壓的內部 ADC 通道 |
LED_RED |
RGB LED 紅色通道(低電位有效) |
LED_GREEN |
RGB LED 綠色通道(低電位有效) |
LED_BLUE |
RGB LED 藍色通道(低電位有效) |
備註
P10 影格同步線是一條共享匯流排。 它同時連接到 MCU、相機感測器的觸發/曝光接腳,以及使用者排針。其方向由應用程式定義 —— 視感測器的設定方式而定,MCU、感測器或外部訊號皆可驅動它(某些感測器可將同一接腳用作觸發輸入 或 曝光輸出)。請確保同一時間只有一個驅動端在作動。
備註
ONOFF 與 P11 是參考至常開的 RAW 電源軌(而非切換式的 3.3 V 電源軌),因此即使開發板其餘部分處於深度睡眠/低功耗模式,它們仍可運作。兩者皆為低電位有效輸入。
這些接腳會經過電位轉換器,以便搭載於 RAW 電源軌上。如果你確實需要 ONOFF 或 P11 具備 3.3 V 直連的 GPIO 行為(例如要從 3.3 V MCU 直接驅動它們而不經過轉換器),開發板提供了上拉與 0 歐姆跳線焊盤,可讓你繞過轉換器。這屬於進階硬體改裝 —— 大多數使用者應維持原狀。
備註
P15–P18 與 Gigabit 乙太網路 PHY 共用,後者預設已接線並啟用。若要將這些接腳用作使用者 I/O,你必須將開發板背面的 0 歐姆電阻回流焊至 GPIO 位置。此操作僅會停用 gigabit 乙太網路 —— 10/100 Mb/s 乙太網路仍會在其專用接腳上繼續運作。
電源接腳¶
3.3V —— 已穩壓的 3.3 V 電源軌。在 N6 上 僅供輸出 —— 請勿將外部電源饋入此接腳。可為擴充板提供最高 1 A 的電流。
VIN —— 5 V 輸入。為開發板與板載 LiPo 充電器供電。
RAW —— 輸入/輸出,常開(3.6 V – 5 V)。承載當前作用中的任一電源(VIN、USB 或所接電池),也可用作輸入。當你向其饋入電源時,必須透過一顆串聯二極體驅動 RAW —— 否則電流會回灌至 VIN/USB,損壞電源供應或板載的保護電路。
GND —— 共用接地。
備註
板載電源管理晶片會自動選擇 USB 或 VIN 中電壓較高者 來為開發板與電池充電器供電。如果接有 LiPo 電池,它會利用剩餘的電壓餘裕進行充電;若 VIN/USB 電壓下降或被拔除,控制器會切換回電池以維持開發板運作。
備註
開發板背面有用於外接 3.3 V RTC 備援電池 的焊盤。將一顆鈕扣電池接到這些焊盤上,可在開發板其餘部分斷電時維持 RTC 與 8 KB 備援 RAM 的運作。
小訣竅
請使用 電池續航估算器 來模擬在給定的作動/深度睡眠工作週期下,N6 以電池供電可運作多久。
乙太網路接腳¶
N6 將乙太網路 PHY 的 MDI 訊號對引出至 GPIO 排針旁的專用焊盤。MDI 接腳不可直接接至 RJ45 —— PHY 與纜線之間 必須 加入乙太網路磁性元件(一顆隔離變壓器,可內建於 magjack 或裝在擴充板上)。OpenMV PoE 擴充板已內含這些元件;如果你要自製插座,請使用整合磁性元件的 RJ45,或外接變壓器。
ETH_LED —— 連線/活動 LED。連線建立時為低電位有效;有流量時會閃爍。
DA P / DA N —— A 對(10/100 中為 TX,所有速率皆使用)。
DB P / DB N —— B 對(10/100 中為 RX,所有速率皆使用)。
DC P / DC N —— C 對,僅在 gigabit 時使用。
DD P / DD N —— D 對,僅在 gigabit 時使用。
10/100 Mb/s 僅需 A 與 B 對。Gigabit 則需要全部四對 A–D。
復原與除錯接腳¶
RESET —— 拉至 GND 可重置開發板。釋放後 MCU 即可正常啟動。
BOOT0 —— 在為開發板供電時將其拉至 3.3 V,可進入 ROM bootloader 模式。OpenMV IDE 會利用此模式重新燒錄板載的 bootloader。
BOOT1 —— 一個開關,可將開發板置於開發者模式,以便搭配 ST 的工具(透過接至 ARM 10 腳 SWD/JTAG 排針的 ST‑LINK)使用。在以 OpenMV 韌體與工具正常運作時,請保持其停用。
板上配有專用的 ARM 10 腳 SWD/JTAG 排針,相容於 ST‑LINK 與 SEGGER J‑Link 轉接器。
板載周邊裝置¶
LED¶
N6 具有兩顆 RGB LED:
使用者 RGB LED —— 可由軟體控制,以
LED_RED、LED_GREEN與LED_BLUE形式提供:from machine import LED LED("LED_RED").on() LED("LED_GREEN").on() LED("LED_BLUE").on()
電源 LED —— 由板載電源管理硬體直接驅動,無法以軟體控制。可用它一眼判讀電源供應的狀態。
運作期間:
通道
意義
藍
VIN 正在為開發板供電(USB 供電時熄滅)
綠
有 USB 或 VIN 電源
紅
正在為所接的 LiPo 電池充電
在深度睡眠中所有通道皆熄滅,唯獨紅色除外,當 LiPo 正在充電時它仍會亮起。
電源狀態接腳¶
三個低電位有效的狀態輸入,可讓韌體得知板載電源管理晶片的運作狀態:
ST —— 開發板以 VIN 運作時為低電位,以 USB 電源運作時為高電位。
CHG —— 當所接的 LiPo 電池正在充電時為低電位。
PG —— 當有 VIN 或 USB 電源時為低電位。
from machine import Pin
on_vin = not Pin("ST", Pin.IN).value()
charging = not Pin("CHG", Pin.IN).value()
power_ok = not Pin("PG", Pin.IN).value()
相機感測器¶
PAG7936 透過 csi --- 相機感測器 模組驅動:
import csi
cam = csi.CSI()
cam.reset()
cam.pixformat(csi.RGB565)
cam.framesize(csi.HD) # 1280×800
cam.snapshot(time=2000) # let auto‑exposure settle
while True:
img = cam.snapshot()
此感測器位於一個 可拆卸模組 上 —— 可將其更換為任一其他 OpenMV 相機模組(全域快門、熱成像、更高解析度等),而無需更動開發板的其餘部分。
PAG7936 支援觸發模式 —— 像素積分會與每次 csi.CSI.snapshot 呼叫精確對齊,而非依循自由運行的影格時脈,這對於將擷取與外部事件或另一個感測器同步十分有用。可透過 csi.CSI.ioctl 搭配 csi.IOCTL_SET_TRIGGERED_MODE 啟用。由於讀出不再與下一影格的積分管線化,影格率會降至約自由運行模式的一半:
cam.ioctl(csi.IOCTL_SET_TRIGGERED_MODE, True)
NPU¶
N6 的 1 GHz Neural‑ART NPU(600 GOPS INT8)透過 ml --- 機器學習 模組提供。儲存在唯讀 /rom 檔案系統上的模型可直接從快閃記憶體載入,無需複製到 RAM,因此即使是大型偵測器也能與即時影格緩衝區舒適地並存。在每一影格上執行 YOLOv8 偵測器,並將預測結果繪製在即時影像之上:
import csi
import time
import ml
from ml.postprocessing.ultralytics import YoloV8
# Initialize the sensor.
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.VGA)
# Load YOLO V8 model from ROM FS.
model = ml.Model("/rom/yolov8n_192.tflite", postprocess=YoloV8(threshold=0.4))
print(model)
# Visualization parameters.
n = len(model.labels)
model_class_colors = [
(int(255 * i // n), int(255 * (n - i - 1) // n), 255)
for i in range(n)
]
clock = time.clock()
while True:
clock.tick()
img = csi0.snapshot()
# boxes is a list of list per class of ((x, y, w, h), score) tuples
boxes = model.predict([img])
# Draw bounding boxes around the detected objects
for i, class_detections in enumerate(boxes):
rects = [r for r, score in class_detections]
labels = [model.labels[i] for j in range(len(rects))]
colors = [model_class_colors[i] for j in range(len(rects))]
ml.utils.draw_predictions(img, rects, labels, colors, format=None)
print(clock.fps(), "fps")
麥克風¶
板載麥克風透過 audio --- 音訊模組 擷取。每個緩衝區會以帶符號 16 位元 PCM 的 bytearray 形式抵達,因此能輕鬆地餵入 ulab/numpy 進行快速 DSP。以下是一個簡單的音量偵測器 —— 每當 RMS 音量超過某閾值時便印出訊息:
import audio
from ulab import numpy as np
def loudness(pcmbuf):
samples = np.array(np.frombuffer(pcmbuf, dtype=np.int16), dtype=np.float)
rms = np.sqrt(np.mean(samples ** 2))
if rms > 10000:
print("Loud!", int(rms))
audio.init(channels=1, frequency=16000, gain_db=24)
audio.start_streaming(loudness)
while True:
pass
IMU¶
相機模組下方的板載加速度計+陀螺儀透過 imu --- imu 感測器 提供:
import imu
import time
while True:
print(imu.acceleration_mg()) # (x, y, z) in milli‑g
print(imu.angular_rate_mdps()) # (x, y, z) in milli‑deg/s
time.sleep_ms(100)
Wi‑Fi¶
板載的 CYW43439 透過 network --- 網路設定 以 station 介面形式提供。連線後,ipconfig("addr4") 會回傳 (ip, netmask) 配對:
import network, time
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("ssid", "password")
while not wlan.isconnected():
time.sleep(1)
print("Wi‑Fi IP:", wlan.ipconfig("addr4")[0])
Bluetooth¶
同一顆 CYW43439 也提供 Bluetooth 5.1。請使用 aioble --- 非同步 BLE 進行對 asyncio 友善的 BLE —— 例如,以周邊裝置形式進行廣播並等待 central 連線:
import asyncio
import aioble
async def run():
while True:
conn = await aioble.advertise(250_000, name="OpenMV-N6")
print("Connected:", conn.device)
await conn.disconnected()
asyncio.run(run())
乙太網路¶
當 RJ45(含磁性元件)連接到 MDI 焊盤時,gigabit PHY 會以 LAN 介面形式出現。連線建立後,DHCP 會自動執行:
import network, time
lan = network.LAN()
lan.active(True)
while not lan.isconnected():
time.sleep(1)
print("Ethernet IP:", lan.ipconfig("addr4")[0])
microSD 記憶卡¶
插入記憶卡後,它會自動掛載於 /sdcard,並可透過一般檔案系統使用:
import os
for entry in os.listdir("/sdcard"):
print(entry)
匯流排參考¶
GPIO¶
使用 machine.Pin 來讀取或驅動任何絲印標示的接腳。輸出為 3.3 V CMOS,每腳可吸入/輸出最高 20 mA。
from machine import Pin
out = Pin("P0", Pin.OUT)
out.on()
out.off()
out.value(1)
inp = Pin("P1", Pin.IN, Pin.PULL_UP)
print(inp.value())
任何輸入接腳也都可在邊緣轉態時觸發中斷:
def handler(pin):
print("triggered:", pin)
Pin("P1", Pin.IN, Pin.PULL_UP).irq(
handler, Pin.IRQ_FALLING | Pin.IRQ_RISING,
)
UART¶
匯流排 |
TX |
RX |
|---|---|---|
UART3 |
P4 |
P5 |
UART4 |
P2 |
P3 |
UART7 |
P14 |
P13 |
from machine import UART
uart = UART(3, baudrate=115200)
uart.write("hello")
uart.read(5)
I²C¶
匯流排 |
SCL |
SDA |
|---|---|---|
I2C2 |
P4 |
P5 |
from machine import I2C
i2c = I2C(2, freq=400_000)
i2c.scan()
i2c.writeto(0x76, b"hi")
同一套硬體也可透過 machine.I2CTarget 以目標(從屬)模式使用,向另一個 I²C 控制器公開一塊記憶體區域:
from machine import I2CTarget
buf = bytearray(32)
target = I2CTarget(2, addr=0x42, mem=buf)
SPI¶
匯流排 |
MOSI |
MISO |
SCK |
CS |
|---|---|---|---|---|
SPI2 |
P0 |
P1 |
P2 |
P3 |
SPI4 |
P18 |
P17 |
P16 |
P15 |
from machine import SPI
from machine import Pin
spi = SPI(2, baudrate=10_000_000)
cs = Pin("P3", Pin.OUT, value=1) # CS is not driven by the SPI peripheral
cs.value(0)
spi.write(b"hello")
cs.value(1)
CAN¶
匯流排 |
TX |
RX |
|---|---|---|
CAN1 |
P2 |
P3 |
備註
在韌體 v5.0.0 中,本開發板尚未支援 CAN。
from machine import CAN
can = CAN(1, 500_000)
can.set_filters(None)
can.send(0x123, b"\xDE\xAD\xBE\xEF")
print(can.recv())
ADC¶
兩個 ADC 通道在抵達 MCU 之前都會先經過一個由運算放大器緩衝的分壓器,因此 read_u16() 在每個接腳上對應的滿刻度輸入電壓各不相同。
接腳 |
滿刻度 |
備註 |
|---|---|---|
P6_ADC |
~3.3 V |
通用焊盤,內部與 P6 相連 |
BAT_ADC |
~5.0 V |
用於 LiPo 電池的內部通道 |
from machine import ADC
import time
adc = ADC("P6_ADC")
bat = ADC("BAT_ADC")
while True:
print("P6:", adc.read_u16() * 3.3 / 65535, "V")
print("BAT:", bat.read_u16() * 5.0 / 65535, "V")
time.sleep_ms(100)
PWM¶
接腳 |
計時器/通道 |
|---|---|
P4 |
TIM2 CH3 |
P5 |
TIM2 CH4 |
P6 |
TIM12 CH1 |
P7 |
TIM4 CH1 |
P8 |
TIM4 CH2 |
P9 |
TIM17 CH1 |
P10 |
TIM15 CH2 |
可透過 machine.PWM 驅動其中任一個:
from machine import Pin, PWM
pwm = PWM(Pin("P6"), freq=1_000, duty_u16=32768)
軟體位元拍打(bit‑banged)匯流排¶
如果你需要額外的匯流排,machine.SoftI2C 與 machine.SoftSPI 可在任何 GPIO 上運作。
熱成像感測器(板外)¶
韌體內含 fir --- 熱感測器驅動程式 (fir == far infrared,遠紅外線) 驅動程式,供外接的熱成像儀使用:
MLX90621 —— 16 × 4 紅外線陣列
MLX90640 —— 32 × 24 紅外線陣列
MLX90641 —— 16 × 12 紅外線陣列
AMG8833 —— 8 × 8 紅外線陣列
將模組接到開發板的 I²C 匯流排,並以 fir.init() + fir.snapshot() 讀取影格:
import time
import image
import fir
fir.init() # auto‑detects the sensor
clock = time.clock()
while True:
clock.tick()
try:
img = fir.snapshot(x_scale=5, y_scale=5,
color_palette=image.PALETTE_IRONBOW,
hint=image.BICUBIC,
copy_to_fb=True)
except OSError:
continue
print(clock.fps())
fir 驅動程式僅透過 I²C 2 與感測器通訊 —— 請將模組接至 P4(SCL)與 P5(SDA)。
時序¶
time¶
time 模組涵蓋阻塞式延遲、單調遞增的計時刻度,以及經過時間的量測:
import time
time.sleep(1) # seconds
time.sleep_ms(500)
time.sleep_us(10)
start = time.ticks_ms()
# ...do work...
elapsed = time.ticks_diff(time.ticks_ms(), start)
虛擬計時器¶
machine.Timer 可排程週期性或單次的回呼函式,而不佔用硬體計時器的插槽。將 id 傳入 -1 即可使用虛擬(軟體)計時器:
from machine import Timer
one_shot = Timer(-1)
one_shot.init(period=5_000, mode=Timer.ONE_SHOT,
callback=lambda t: print("once"))
periodic = Timer(-1)
periodic.init(period=2_000, mode=Timer.PERIODIC,
callback=lambda t: print("tick"))
週期值以毫秒為單位。呼叫 deinit() 可停止並釋放該插槽。
即時時鐘¶
machine.RTC 可在多次重置之間(以及在接有選用的 3.3 V 備援電池至背面焊盤時,參見 電源接腳,在完全斷電之間)持續維持實際時間:
from machine import RTC
rtc = RTC()
rtc.datetime((2026, 4, 30, 4, 12, 0, 0, 0)) # Y, M, D, weekday, h, m, s, subsec
print(rtc.datetime())
RTC 在深度睡眠期間也會持續運行,因此你可以將它用作 machine.deepsleep() 的喚醒來源。
看門狗¶
machine.WDT 會在應用程式當機時重置開發板。一旦啟動便無法停止或重新設定 —— 請在主迴圈中週期性地餵食它:
from machine import WDT
wdt = WDT(timeout=5_000) # 5 second window
while True:
# ...do work...
wdt.feed()
開機與執行階段資訊¶
USB bootloader 視窗¶
每次上電時,相機都會執行一段短暫的 bootloader(數秒鐘),讓 OpenMV IDE 無需使用者進入 DFU 模式即可更新韌體。此視窗過期後,bootloader 會交棒給 boot.py,接著是 main.py。
執行中的指令碼可隨時呼叫 machine.bootloader() 重新進入 bootloader:
import machine
machine.bootloader()
檔案系統與開機順序¶
N6 韌體在開機時最多會掛載三個檔案系統:
內部快閃記憶體 —— 始終掛載於
/flash。預設存放main.py與README.txt;於首次開機時建立。microSD 記憶卡 —— 若有插入記憶卡,則掛載於
/sdcard。ROMFS —— 位於
/rom的唯讀、記憶體映射檔案系統,用於封裝可受益於零複製存取的大型資料資產(例如 AI 模型)。由 MicroPython 在啟動時、任何使用者 Python 執行之前自動掛載。
掛載完成後,當記憶卡存在時工作目錄會設為 /sdcard,否則為 /flash。直譯器接著會從該目錄執行指令碼:
boot.py會在 每一次 軟重置時執行(冷開機、從 REPL 按下Ctrl‑D,或每當執行中的指令碼回傳時)。main.py僅在冷開機時 執行,緊接在boot.py之後。後續的軟重置會重新執行boot.py,但隨即進入 REPL —— 若要重新執行main.py,你必須完全重置開發板。
將 boot.py 或 main.py 放入 SD 卡,會覆蓋快閃記憶體中的副本而不更動它 —— 這兩個檔案都會在開機目錄中查找(記憶卡已掛載時為 /sdcard,否則為 /flash)。
剛燒錄完成的開發板所附帶的預設 main.py,僅會閃爍使用者 RGB LED 的 藍色 通道作為心跳訊號(兩個短脈衝、短間隔),如此一來即使未連接任何主機,你也能判斷韌體已乾淨地開機。
sys.path 會被擴充以納入全部三個檔案系統及其 lib/ 子目錄,因此可匯入的模組可存放於 /flash/lib、/sdcard/lib 或 /rom/lib。
若要強制系統忽略已插入的 SD 卡(例如即使有卡也要執行快閃記憶體中的 main.py),請在 /flash 的根目錄建立一個名為 SKIPSD 的空檔案。
透過 USB 連線時,開機檔案系統(有記憶卡時為 /sdcard,否則為 /flash)也會在主機上列舉為一個 USB 大容量儲存裝置,讓你直接編輯 boot.py、main.py 與任何其他檔案。在重置相機之前請先退出該磁碟,以便主機將其快取的寫入內容刷新。
備註
由於作業系統將此磁碟視為被動的區塊裝置,因此在 OpenMV Cam 上執行的程式碼所建立或修改的檔案,要等到主機重新掛載磁碟後才會顯示出來。如果作業系統與 OpenMV Cam 同時寫入同一個檔案系統,作業系統會勝出並覆蓋相機所做的變更。指令碼寫回的任何資料請使用 SD 卡,並在從主機讀取這些檔案前先重新掛載。
備註
當主機正在讀取或寫入 USB 大容量儲存磁碟時,使用者 RGB LED 的 紅色 通道可能會短暫亮起 —— 這是韌體驅動的活動指示,並非故障。
儲存容量¶
N6 出廠時配備:
/flash—— 4 MB FAT 檔案系統,可讀寫。/rom—— 24 MB 唯讀記憶體映射 ROMFS,用於封裝可受益於零複製 mmap 存取的指令碼與 ML 模型。/sdcard—— 所插入的 microSD 卡的完整容量(有卡時),可讀寫。
硬故障指示器¶
如果使用者 RGB LED 正在快速循環所有顏色 —— 快到看起來比較像一顆 閃爍的白色 LED 而非個別的色相 —— 表示韌體遇到了無法復原的硬故障(hard fault)。重新燒錄韌體即可復原;如果重新燒錄仍無濟於事,開發板可能已實體損壞。
軟體函式庫¶
完整的模組清單請參閱 函式庫索引 —— 其中包括哪些模組是 N6 版本所獨有的。