Interfacebeschrijving
Ventilator
De reComputer RK3576 biedt ventilatorbesturing via het Linux hwmon-subsysteem. De ventilatorsnelheid kan in realtime worden uitgelezen, en de PWM-duty cycle kan handmatig worden ingesteld of aan de automatische thermische governor worden overgelaten.
Paden van de hardwaremonitor
| Interface | Pad | Beschrijving |
|---|---|---|
| Ventilatorsnelheid | /sys/class/hwmon/hwmon6/fan1_input | Huidig toerental (RPM) |
| PWM-waarde | /sys/class/hwmon/hwmon6/pwm1 | 0–255, bepaalt de duty cycle |
| PWM-modus | /sys/class/hwmon/hwmon6/pwm1_enable | 0=uit 1=handmatig 2=automatisch |
Thermische zones
| Zone | Pad |
|---|---|
| SoC | /sys/class/thermal/thermal_zone0/temp |
| Big Core | /sys/class/thermal/thermal_zone1/temp |
| Little Core | /sys/class/thermal/thermal_zone2/temp |
| DDR | /sys/class/thermal/thermal_zone3/temp |
| NPU | /sys/class/thermal/thermal_zone4/temp |
| GPU | /sys/class/thermal/thermal_zone5/temp |
Temperatuurwaarden zijn in milligraden Celsius — deel door 1000 om °C te krijgen.
Ventilatorsnelheid uitlezen
cat /sys/class/hwmon/hwmon6/fan1_inputDe uitvoer is in RPM. Voorbeeld: 2161
Lees alle temperaturen in één keer uit:
for zone in /sys/class/thermal/thermal_zone*; do
name=$(cat $zone/type)
temp=$(( $(cat $zone/temp) / 1000 ))
echo "$name: ${temp}°C"
doneVentilatorsnelheid besturen
- Schakel over naar de handmatige modus:
echo 1 | sudo tee /sys/class/hwmon/hwmon6/pwm1_enable- Stel de PWM-waarde in (0–255):
| PWM-waarde | Geschatte snelheid |
|---|---|
| 0 | Ventilator uit |
| 64 | ~25% |
| 128 | ~50% |
| 192 | ~75% |
| 255 | Volle snelheid |
# Instellen op 50%
echo 128 | sudo tee /sys/class/hwmon/hwmon6/pwm1- Herstel de automatische thermische besturing:
echo 2 | sudo tee /sys/class/hwmon/hwmon6/pwm1_enableScript voor automatische thermische besturing
Dit script past de ventilatorsnelheid aan op basis van de SoC-temperatuur en draait continu op de achtergrond.
#!/bin/bash
TEMP_SENSOR="/sys/class/thermal/thermal_zone0/temp"
PWM_ENABLE="/sys/class/hwmon/hwmon6/pwm1_enable"
PWM_VALUE="/sys/class/hwmon/hwmon6/pwm1"
echo 1 > $PWM_ENABLE
while true; do
TEMP=$(( $(cat $TEMP_SENSOR) / 1000 ))
if [ $TEMP -lt 40 ]; then PWM=50
elif [ $TEMP -lt 50 ]; then PWM=100
elif [ $TEMP -lt 60 ]; then PWM=160
elif [ $TEMP -lt 70 ]; then PWM=210
else PWM=255
fi
echo $PWM > $PWM_VALUE
echo "$(date '+%H:%M:%S') Temp: ${TEMP}°C PWM: $PWM"
sleep 5
doneSla het script op als fan-control.sh en voer het uit:
chmod +x fan-control.sh
sudo ./fan-control.shVoer het uit op de achtergrond:
sudo nohup ./fan-control.sh > /var/log/fan-control.log 2>&1 &systemd-service
- Kopieer het script:
sudo cp fan-control.sh /usr/local/bin/fan-control.sh
sudo chmod +x /usr/local/bin/fan-control.sh- Maak het service-bestand aan:
sudo tee /etc/systemd/system/fan-control.service << 'EOF'
[Unit]
Description=Fan Speed Controller
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/local/bin/fan-control.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF- Schakel de service in en start deze:
sudo systemctl daemon-reload
sudo systemctl enable fan-control
sudo systemctl start fan-control
sudo systemctl status fan-controlSnelle referentie
# Ventilator-RPM uitlezen
cat /sys/class/hwmon/hwmon6/fan1_input
# SoC-temperatuur uitlezen
echo "$(( $(cat /sys/class/thermal/thermal_zone0/temp) / 1000 ))°C"
# Volledige snelheid
echo 1 | sudo tee /sys/class/hwmon/hwmon6/pwm1_enable
echo 255 | sudo tee /sys/class/hwmon/hwmon6/pwm1
# Lage snelheid
echo 1 | sudo tee /sys/class/hwmon/hwmon6/pwm1_enable
echo 64 | sudo tee /sys/class/hwmon/hwmon6/pwm1
# Automatisch herstellen
echo 2 | sudo tee /sys/class/hwmon/hwmon6/pwm1_enableGeteste omgeving
| Item | Waarde |
|---|---|
| Apparaat | reComputer RK3576 DevKit |
| OS | Linux 6.1 (op Debian gebaseerd) |
| hwmon-interface | /sys/class/hwmon/hwmon6 (pwmfan) |
| Ventilatorsnelheid in rust | ~2155 RPM |
| SoC-temperatuur in rust | ~36°C |
LED-indicatorstatus
Dit apparaat beschikt over drie ingebouwde LED-indicatoren (Power, Status en User) op het voorpaneel. Met deze LED's kunnen gebruikers de opstartvolgorde van de hardware volgen, het runtimegedrag van het systeem observeren en gebruikmaken van een volledig programmeerbare interface voor aangepaste software-interacties.

-
LED-statussen & standaard hardwaregedrag Onder de standaard systeemfirmware vertonen de LED's het volgende standaardgedrag tijdens het opstarten en tijdens de werking na het opstarten:
-
Essentieel voor ontwikkelaars: besturingsgrenzen Voordat je begint met secundaire ontwikkeling, is het cruciaal om de onderliggende hardwarebedrading van elke LED te begrijpen, om onnodig oplossen van problemen te voorkomen:
-
❌ Power-LED (rood): Pure hardwarebesturing. Deze LED is direct vastbedraad aan de hoofdvoedingsrail. Er is geen GPIO of kernelinterface mee verbonden. Hij kan niet via software of commando's worden bestuurd.
-
❌ Status-LED (groen): Hardwarebesturing op systeemniveau. Deze LED wordt fysiek aangestuurd door de onderliggende hardware-powermanagementlogica of PMIC-firmware om de kernstabiliteit van het systeem weer te geven. Hij biedt geen enkele interface naar de Linux-userspace en kan niet via software of commando's worden bestuurd.
-
User-LED (RGB, drie kleuren): Volledig door ontwikkelaars bestuurbaar! Dit is een RGB-LED-capsule die is bedraad naar de ingebouwde GPIO-expander (
gpiochip6). Het is de enige indicator op het apparaat die openstaat voor aangepaste programmering en software-automatisering. Standaard claimt het systeem het blauwe kanaal (USER_LED_B) als heartbeat-indicator, waardoor het rode en groene kanaal inactief blijven. -
Handleiding voor het besturen van de User RGB-LED In de Linux-omgeving (bijv. Armbian) wordt aanbevolen om de moderne
gpiod-toolchain (gpioinfo/gpioset) te gebruiken om het inactieve rode en groene kanaal aan te sturen, en de standaard Linuxsysfs-interface om het blauwe kanaal aan te sturen. De LED lokaliseren In het systeem worden LED's beheerd via desysfs-interface. Voer het volgende commando uit om de LED-node te controleren:
ls /sys/class/leds/user-ledVerwachte uitvoer:

Handmatige besturing (AAN/UIT)
Voordat je de LED handmatig kunt besturen, moet je de triggermodus instellen op none.
echo none | sudo tee /sys/class/leds/user-led/triggerDe LED AAN/UIT zetten
# Inschakelen
echo 1 | sudo tee /sys/class/leds/user-led/brightness
# Uitschakelen
echo 0 | sudo tee /sys/class/leds/user-led/brightnessGeautomatiseerde triggermodi De kernel biedt verschillende triggers om het LED-gedrag te automatiseren op basis van systeemgebeurtenissen.
# Heartbeat-modus
echo heartbeat | sudo tee /sys/class/leds/user-led/trigger
# Aangepaste timermodus (knipperend)
# Timer inschakelen
echo timer | sudo tee /sys/class/leds/user-led/trigger
# Intervallen instellen
echo 500 | sudo tee /sys/class/leds/user-led/delay_on
echo 500 | sudo tee /sys/class/leds/user-led/delay_offPermanente configuratie bij opstarten
Omdat wijzigingen in /sys vluchtig zijn en na een herstart worden gereset, kun je ze permanent maken door een cronjob toe te voegen of rc.local te gebruiken.
Knop
De moederborden van de reComputer RK3576-serie zijn uitgerust met 3 ingebouwde fysieke knoppen, voornamelijk bedoeld voor voedingsbesturing en het flashen van firmware op laag niveau.

Opmerking: Zorg er bij het gebruik van Recovery of MaskROM voor het flashen voor dat de Type-C OTG-poort van het apparaat via een datakabel met de hostpc is verbonden. Je hebt de officiële Rockchip-tools nodig (zoals RKDevTool voor Windows of upgrade_tool voor Linux) om de bewerkingen uit te voeren.
GPIO
Het moederbord biedt bovenaan een standaard 40-pins uitbreidingsheader, die ontwikkelaars een uitgebreide set laagniveau-hardware-interfaces biedt. Deze omvatten voeding, debugging en veelgebruikte industriële communicatiebussen (I2C, UART, SPI, CAN, enz.), waardoor het eenvoudig is om externe sensoren, driverboards aan te sluiten of systeemniveau-debugging uit te voeren.

Pinout-tabel van de 40-pins header
GPIO-gebruik
Standaard functioneren de meeste pinnen op de 40-pins header als standaard GPIO's, tenzij ze vooraf zijn toegewezen door systeemdrivers. De standaard gpiod-toolset (gpiodetect, gpioinfo, gpioset, gpioget) wordt aanbevolen voor manipulatie op shellniveau.
Om fysieke pin 21 te manipuleren (die is aangewezen als algemene GPIO en momenteel vrij is):
- Zoek de bijbehorende controller en het lijnnummer op:
sudo gpioinfo | grep -i PIN_21Uitvoer:
line 14: "PIN_21" unused input active-highDit geeft aan dat deze bij gpiochip1, lijn 14 hoort.
- Zet de pin op High (bijv. om een LED in te schakelen):
gpioset gpiochip1 14=1- Zet de pin op Low:
gpioset gpiochip1 14=0- Lees de ingangsstatus van fysieke pin 27: Door
sudo gpioinfo | grep -i PIN_27uit te voeren, zie je dat deze wordt toegewezen aangpiochip4, lijn23:
gpioget gpiochip4 23Om de gespecialiseerde randapparatuur-hardware (I2C, UART, CAN, PWM) op de pinout te ontgrendelen, moet je de bijbehorende Device Tree Overlay (DTBO) expliciet inschakelen. Anders blijven ze gewoon als generieke GPIO's functioneren.
Alle overlay-configuraties specifiek voor de 40-pins header bevinden zich in /boot/dtb/rockchip/overlay/ en volgen het strikte naamvoorvoegsel recomputer-rk3576-devkit-40pin-:
Configuratieprocedure:
- Open het configuratiebestand van de systeemomgeving:
sudo nano /boot/armbianEnv.txt- Zoek de regel
overlays=(of voeg deze toe aan het einde van het bestand als deze ontbreekt), en voeg de gewenste overlaynaam toe zonder de extensie.dtbo. Scheid meerdere overlays met een spatie:
overlays=recomputer-rk3576-devkit-40pin-i2c3 recomputer-rk3576-devkit-40pin-can0- Opslaan en afsluiten (
Ctrl+O, Enter,Ctrl+X), en herstart vervolgens de hardware om de wijziging van de device tree toe te passen:
sudo rebootOpmerking: SPI standaard actief
De SPI-buspinnen (pinnen 19, 21, 23, 24, 26) zijn standaard bij het opstarten ingeschakeld. Je hoeft geen aangepaste DTBO voor SPI toe te wijzen in
armbianEnv.txt.Gedeelde hardwarearchitectuur: De fysieke SPI-signalen op de 40-pins header delen exact hetzelfde hardware-busdomein met de ingebouwde uitbreidingsslots voor 4G LTE / LoRaWAN / Hailo Wi-Fi. Om een out-of-the-box-ervaring voor deze communicatiemodules mogelijk te maken, houdt het basisbesturingssysteem dit SPI-kanaal permanent actief.
Aanbeveling voor ontwikkelaars: Als je aangepaste SPI-breakoutboards van derden aansluit op de 40-pins uitbreidingsheader, zorg er dan voor dat je Chip Select (CS) en adressering zorgvuldig afhandelt om communicatiebus-deadlocks met de ingebouwde modules te voorkomen.
USB
Dit apparaat biedt meerdere fysieke USB-interfaces die zijn toegewezen aan de reComputer RK3576-serie. Deze interfaces verzorgen het aansluiten van externe randapparatuur, het flashen van systeemfirmware (OTG) en secundaire beelduitvoer.
De USB-resourcetoewijzing is als volgt gedefinieerd:
| Interfacelocatie / label | Fysieke vormfactor | Busprotocol & maximale bandbreedte | Hardwarespecificatie & controllerroutering |
|---|---|---|---|
| USB 3.0 Host | USB Type-A | USB 3.2 Gen 1x1 (5 Gbps) | Gerouteerd via de interne USB 3.0-controller. Biedt hoogbandbreedte-datakanalen die geoptimaliseerd zijn voor USB 3.0-industriecamera's, NVMe-opslaguitbreiding of hogesnelheids-DAQ-modules. |
| USB 2.0 Host | USB Type-A (meerdere) | USB 2.0 (480 Mbps) | Beheerd door de USB 2.0 Host Controller. Gebruikt voor standaardrandapparatuur zoals toetsenborden, muizen, 4G/5G-cellulaire modems, hardwareversleutelingsdongles of USB-naar-UART-bridgeboards. |
| USB Type-C | USB Type-C | USB 3.0 / 2.0 OTG + DP 1.4 Alt Mode | Een multiprotocol-composietpoort gerouteerd naar de RK3576 USB 3.0 OTG-controller en de DisplayPort (DP) TX-PHY. Ondersteunt bidirectionele host-/apparaatrollen en hardwarematige videostreaming. |
Met lsusb kun je informatie bekijken over de USB-apparaten die op het systeem zijn aangesloten:

Opmerking: architectuur van de USB Type-C-interface
A. Systeemflashing & onderhoud (USB OTG-apparaatmodus): Geactiveerd via de Recovery- / MaskROM-toetsen, start de poort op in apparaatmodus voor het flashen van firmware op laag niveau met RKDevTool.
B. DisplayPort-uitvoer (DP 1.4 Alt Mode): Multiplext hardwarematige videolanes om rechtstreeks een monitor via Type-C-kabels of adapters aan te sturen, met standaard DP 1.4-beeldschermen.
C. Standaard native hostmodus: Valt tijdens de normale OS-runtime standaard terug op een standaard USB 3.0-host om rechtstreeks te communiceren met Type-C-opslag, netwerkadapters of hubs.
SD-kaartsleuf
Het moederbord is uitgerust met één standaard Micro SD (TF)-kaartsleuf, die rechtstreeks is aangesloten op de SDMMC0-bus van de RK3576 SOC. Deze interface wordt voornamelijk gebruikt voor het opstarten van het systeem, het draaien van het besturingssysteem (zoals Armbian OS) en lokale gegevensopslag.

Out-of-the-box-ervaring Het apparaat wordt standaard geleverd met een meegeleverde 32GB Class 10 Micro SD-kaart. Deze kaart heeft de strenge compatibiliteitstests van Seeed Studio doorstaan en is prima in staat om dagelijkse Armbian OS-werkzaamheden, basisnetwerkconfiguraties en lichte edge-AI-algoritmevalidaties aan te kunnen, zodat ontwikkelaars direct aan de slag kunnen.
Opmerking: opstartprioriteit & opslagrichtlijnen
Opstartprioriteitsmechanisme (MaskROM-fase): De opstartvolgorde van de firmware op de RK3576 wordt strikt bepaald door de laagniveau-MaskROM. Als er opstartbare firmware aanwezig is op zowel de Micro SD-kaart als de ingebouwde eMMC, geeft de MaskROM voorrang aan het laden van de SPL (Secondary Program Loader) vanaf de Micro SD-kaart. Let goed op dit fysieke kenmerk tijdens firmware-upgrades of bij het schakelen tussen meerdere besturingssystemen.
NVMe-opstartbeperking (U-Boot-fase): M.2 NVMe SSD's vallen NIET binnen het directe MaskROM-opstartpad. Het systeem kan de eerste opstartfase niet rechtstreeks vanaf een ruwe NVMe-drive uitvoeren. Om het OS vanaf een NVMe-SSD te draaien, moet het systeem eerst de bootloader op de Micro SD-kaart of de eMMC uitvoeren om de U-Boot-fase te bereiken, waarna U-Boot vervolgens het besturingssysteem op de NVMe-opslag initialiseert, laadt en de controle daaraan overdraagt.
Upgradeaanbevelingen voor zware workloads: Als je van plan bent om applicaties te draaien met hoogfrequente I/O-lees-/schrijfvereisten aan de edge (zoals grote databases met continue lokale logging, of het beheren van complexe Docker-containerclusters), kan het enorme volume aan willekeurige 4K-lees-/schrijfbewerkingen de prestatiegrens van een standaard Class 10-kaart bereiken. Voor dergelijke zware industriële scenario's raden we aan de kern-rootfs van het OS te migreren naar een M.2 NVMe-SSD (via U-Boot chain-loading), of te upgraden naar een hoogwaardige Micro SD-kaart die expliciet is beoordeeld voor A1 of A2 (Application Performance Class) om optimale systeemresponsiviteit te garanderen.
Koppelpunt: In Armbian OS wordt de Micro SD-kaart doorgaans aangeduid als
/dev/mmcblk0.
SIM-kaartsleuf
Het moederbord beschikt over één ingebouwde kaartsleuf, expliciet ontworpen om te werken met 4G LTE-cellulaire modules die in de Mini-PCIe-slot zijn geplaatst. Door een standaard provider-SIM-kaart te plaatsen, kan het apparaat edge-to-cloud-cellulaire connectiviteit realiseren in omgevingen zonder bekabeld Ethernet.

Hardwarearchitectuur & mechanisme De signaallijnen van de Nano SIM-sleuf zijn rechtstreeks aangesloten op de specifieke pinnen (zoals UIM_PWR, UIM_DATA, UIM_CLK, UIM_RESET) van de Mini-PCIe-slot.
- Geen directe verbinding met de SOC: Let op dat de SIM-kaartsignalen niet rechtstreeks met de RK3576 SOC communiceren. In plaats daarvan worden ze volledig beheerd en aangestuurd door de 4G-module die in de Mini-PCIe-slot is geplaatst. Dientengevolge functioneert de SIM-kaart alleen wanneer een compatibele 4G-module actief is.
Opmerking: richtlijnen & bedieningsnormen voor ontwikkelaars
Strikt geen hot-plugging: Plaats of verwijder de SIM-kaart altijd terwijl het apparaat volledig is uitgeschakeld (DC-voeding of PoE losgekoppeld). Het hot-pluggen van de SIM-kaart terwijl het systeem actief is, kan de SIM-interface van de 4G-module permanent beschadigen of netwerkgerelateerde systeemcrashes veroorzaken.
Vormfactorspecificaties: Deze sleuf ondersteunt uitsluitend Nano SIM-kaarten (4FF), het kleinste standaardformaat dat in moderne smartphones wordt gebruikt. Vermijd het gebruik van Micro- of Standard-SIM-kaarten met goedkope plastic adapters, omdat deze gemakkelijk vast kunnen komen te zitten of de interne pinnen van de sleuf kunnen verbuigen.
Plaatsingsoriëntatie: Controleer het zeefdruksymbool of de structurele inkeping bij de sleuf voordat je de kaart plaatst. Doorgaans moet de SIM-kaart worden geplaatst met de gouden contacten naar beneden en de ingekeepte hoek eerst naar binnen (volg de fysieke uitlijnmarkering op het bord).
M.2 Key M 2280-slot
Het moederbord is uitgerust met één standaard M.2 Key M 2280-slot, aangestuurd door een PCIe 2.1 x1-bus. Deze is ontworpen voor hogesnelheids-opslaguitbreiding of edge-AI-computingversnelling.

Ondersteunde apparaten
- NVMe-SSD: Ondersteunt standaard 2280 NVMe Solid State Drives voor het opstarten van het systeem, grootschalige gegevensopslag of het huisvesten van grote AI-modellen.
- AI-versneller: Compatibel met op M.2 Key M gebaseerde AI-versnellermodules om edge-inferentiemogelijkheden te verbeteren.
Geteste & geverifieerde apparaten Om optimale compatibiliteit en systeemstabiliteit te garanderen, raden we sterk aan de M.2-uitbreidingsmodules te gebruiken die volledig zijn getest en geverifieerd door Seeed Studio:
- Opslag
- Officiële Seeed Studio 2280 NVMe SSD's: https://www.seeedstudio.com/M-2-2280-SSD-128GB-p-5332.html
- AI-versnellers
- Rockchip-serie: RK1820 / RK1828
- Hailo-serie: Hailo-8
- DeepX-serie: DX-M1
Opmerking:
Protocolcompatibiliteit: Deze slot ondersteunt uitsluitend PCIe NVMe-apparaten. M.2 SATA-SSD's worden NIET ondersteund en worden niet door het OS herkend.
Bandbreedtebeperking: De slot werkt op een PCIe 2.1 x1-lane, met een theoretische maximale bandbreedte van ongeveer 500 MB/s. Bij de aanschaf van een NVMe-SSD volstaan standaard kosteneffectieve Gen3/Gen4-drives; ultrasnelle Gen4-SSD's worden beperkt door de PCIe 2.1 x1-interface.
Vormfactor: De montagestandoff is specifiek ontworpen voor 2280 (22 mm x 80 mm)-modules.
SSD-gebruikershandleiding
lsblk
Handleiding voor Hailo YOLOv11-implementatie & -inferentie
Pakketinstallatie Na het installeren van de basis-PCIe-driver is een systeemherstart vereist om de wijzigingen door te voeren.


# Installeer het PCIe-stuurprogramma
sudo dpkg -i hailort-pcie-driver_4.23.0_all.deb
# Herstart het systeem
sudo reboot
# Controleer na het herstarten of het stuurprogramma is geladen
lsmod | grep hailo
# Installeer HailoRT
sudo dpkg -i hailort_4.23.0_arm64.deb
# Scan en controleer de apparaatstatus
hailortcli scan
# Maak een virtuele omgeving aan en activeer deze
python3 -m venv hailo_env
source hailo_env/bin/activate
# Installeer de HailoRT Python-bibliotheek
pip install hailort-4.23.0-cp311-cp311-linux_aarch64.whl
# Installatie en apparaatverbinding verifiëren
python3 -c "from hailo_platform import VDevice; vdev = VDevice(); print('Successfully connected via VDevice! Device info:', vdev)"


Hailo Model Zoo installeren Om officiële, vooraf getrainde modellen uit te voeren, moet je de Hailo Model Zoo en de bijbehorende systeemafhankelijkheden installeren.
# 1. Vereiste systeembibliotheken installeren
sudo apt update
sudo apt install -y git libglib2.0-0 libgl1-mesa-glx
# 2. Officiële repository klonen (nieuwste branch aanbevolen)
git clone https://github.com/hailo-ai/hailo_model_zoo.git
cd hailo_model_zoo
pip install -e .Het YOLOv11-model uitvoeren
- Cameraboxapparaten controleren: Identificeer het koppelpunt van je webcam.
v4l2-ctl --list-devices- Model downloaden: Zorg ervoor dat het modelbestand
yolov11n.hefis gedownload en in je werkmap is geplaatst.
Maak een bestand met de naam webcam_yolo11.py aan en plak de onderstaande code erin. Pas HEF_PATH en DEVICE_ID in het configuratiegedeelte aan naar jouw situatie.
import numpy as np
import cv2
import time
from hailo_platform import (VDevice, HEF, InferVStreams, ConfigureParams,
HailoStreamInterface, InputVStreamParams, OutputVStreamParams)
# ================= Configuratie =================
HEF_PATH = 'yolov11n.hef'
DEVICE_ID = "/dev/video40" # Update based on v4l2-ctl output
CONF_THRESHOLD = 0.45
# COCO-dataset 80 klassenlabels
COCO_CLASSES = [
"person", "bicycle", "car", "motorcycle", "airplane", "bus", "train", "truck", "boat", "traffic light",
"fire hydrant", "stop sign", "parking meter", "bench", "bird", "cat", "dog", "horse", "sheep", "cow",
"elephant", "bear", "zebra", "giraffe", "backpack", "umbrella", "handbag", "tie", "suitcase", "frisbee",
"skis", "snowboard", "sports ball", "kite", "baseball bat", "baseball glove", "skateboard", "surfboard",
"tennis racket", "bottle", "wine glass", "cup", "fork", "knife", "spoon", "bowl", "banana", "apple",
"sandwich", "orange", "broccoli", "carrot", "hot dog", "pizza", "donut", "cake", "chair", "couch",
"potted plant", "bed", "dining table", "toilet", "tv", "laptop", "mouse", "remote", "keyboard", "cell phone",
"microwave", "oven", "toaster", "sink", "refrigerator", "book", "clock", "vase", "scissors", "teddy bear",
"hair drier", "toothbrush"
]
# ==================================================
def main():
# 1. Initialize Hailo Hardware
hef = HEF(HEF_PATH)
input_vstream_info = hef.get_input_vstream_infos()[0]
input_h, input_w = input_vstream_info.shape[:2]
cap = cv2.VideoCapture(DEVICE_ID)
if not cap.isOpened():
print("Cannot open webcam")
return
# Setup inference variables
prev_time = 0
with VDevice() as target:
config_params_dict = ConfigureParams.create_from_hef(hef, HailoStreamInterface.PCIe)
network_group = target.configure(hef, config_params_dict)[0]
with network_group.activate():
vstream_params = (InputVStreamParams.make_from_network_group(network_group),
OutputVStreamParams.make_from_network_group(network_group))
with InferVStreams(network_group, vstream_params[0], vstream_params[1]) as vstreams:
print("[INFO] Initialization successful! Running YOLOv11 real-time detection...")
while True:
start_time = time.time() # Record start time for FPS
ret, frame = cap.read()
if not ret:
break
# Preprocessing (Convert to RGB based on previous validation)
frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
resized = cv2.resize(frame_rgb, (input_w, input_h))
input_tensor = np.expand_dims(resized, axis=0)
# Inference
outputs = vstreams.infer(input_tensor)
# Parsing and Drawing
h, w, _ = frame.shape
for name, class_list in outputs.items():
# Iterate through 80 classes
for class_id, detections in enumerate(class_list[0]):
if len(detections) > 0:
for det in detections:
if len(det) >= 5:
ymin, xmin, ymax, xmax, confidence = det[:5]
if confidence > CONF_THRESHOLD:
# Coordinate Mapping
left, top = int(xmin * w), int(ymin * h)
right, bottom = int(xmax * w), int(ymax * h)
# Get class name, display ID if out of bounds
class_name = COCO_CLASSES[class_id] if class_id < len(COCO_CLASSES) else f"ID {class_id}"
# Draw bounding box
cv2.rectangle(frame, (left, top), (right, bottom), (0, 255, 0), 2)
# Draw background and label text
label = f"{class_name}: {confidence:.2f}"
cv2.putText(frame, label, (left, top - 10),
cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
# Calculate and display real-time FPS
curr_time = time.time()
fps = 1 / (curr_time - start_time)
# Print in the top left corner
cv2.putText(frame, f"FPS: {fps:.1f}", (20, 40),
cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)
# Display window
cv2.imshow('reComputer RK3576 - Hailo YOLOv11', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
if __name__ == "__main__":
main()
Handleiding voor RK182x-implementatie & -inferentie
RK182x ondersteunt de coprocessormodus, waarbij de host-SoC (bijv. RK3588/RK3576) als de systeemkern fungeert, verantwoordelijk voor taakplanning, resourcetoewijzing en algehele besturing. Het maakt verbinding met de RK1820/RK1828-versnellingseenheid via een hogesnelheids-PCIe (doorgaans onderhandeld naar Gen2 x1 op 5 GT/s, wat ~400 MB/s unidirectionele bandbreedte biedt) of USB 3.0-interfaces. Zowel RK1820 als RK1828 delen dezelfde PCI Device ID (1d87:182a). Het ontwikkelingsframework bestaat uit de modelconversietool aan de pc-zijde (RKNN3 Toolkit) en de runtime-omgeving aan de boardzijde (RKNN3 Runtime).
Optie A: Snelle geautomatiseerde implementatie (aanbevolen) Met het vooraf gecompileerde geautomatiseerde installatiepakket uit de SDK kun je met één klik de kerneldriver, apparaatfirmware, runtimebibliotheken, debugtools en systeemautostartservices implementeren.
# Pakket via ADB van pc naar board pushen
# Optionele pakketten omvatten:
# - rknn3_rk182x_m2_installer_arm64.tgz (M.2-module)
adb push rknn3_rk182x_m2_installer_arm64.tgz /tmp/installer.tgz
adb shell "cd /tmp && tar xzf installer.tgz && ./install.sh"
# Let op: Een volledige stroomcyclus (fysiek uitschakelen) is VEREIST om correct laden van hardware en firmware te garanderen.
sudo poweroffAls tijdens ontwikkeling en debugging handmatige controle over de driverbinding vereist is, of wanneer je werkt in een omgeving zonder het geautomatiseerde pakket geïnstalleerd, voer dan de volgende systeembuscommando's in volgorde uit. Let op: RK1820 vereist expliciete handmatige activering van BusMaster na het probe-proces van de driver.
# Stuurprogramma-override forceren en binding activeren
echo pcie-rkep | sudo tee /sys/bus/pci/devices/0000:01:00.0/driver_override
echo 0000:01:00.0 | sudo tee /sys/bus/pci/drivers/pcie-rkep/bind
# BusMaster-register inschakelen om busmastering van de acceleratorcard te activeren
sudo setpci -s 01:00.0 COMMAND=0x0406Het hostsysteem draait standaard Python 3.11. Zorg er voor de implementatie voor dat je je modellen op een x86-machine hebt geconverteerd met de RKNN3 Toolkit naar het speciale .rknn-formaat (voor zowel LLM's als CNN's) en dat je de resulterende bestanden (bijv. qwen2_5_1_5b_rk1820.rknn) naar de host hebt geüpload.
# 1. Werkruimte aanmaken
mkdir -p ~/rk_182x_work && cd ~/rk_182x_work
# 2. Model Zoo- en Toolkit-repositories klonen
git clone --recursive https://github.com/airockchip/rknn3-model-zoo.git
git clone https://github.com/airockchip/rknn3-toolkit.git
# 3. rknn3-toolkit-lite installeren
cd rknn3-toolkit/rknn3-toolkit-lite/packages
pip3 install ./rknn3_toolkit_lite-1.0.0-cp311-cp311-linux_aarch64.whl
# 4. Afhankelijkheden installeren
pip3 install -r requirements.txtMini-PCIe-slot
Het moederbord beschikt over één standaard Mini-PCIe (Mini PCI Express)-slot, voornamelijk ontworpen voor het uitbreiden met industriële draadloze communicatiemodules zoals 4G LTE, LoRaWAN of Wi-Fi HaLow.

Signaal- & busarchitectuur Deze Mini-PCIe-slot routeert zowel PCIe- als USB-signalen intern, wat zorgt voor uitstekende compatibiliteit met de overgrote meerderheid van de gangbare draadloze communicatiemodules op de markt.
- Cellulaire uitbreiding: In combinatie met de ingebouwde Nano SIM-kaartsleuf kun je direct 4G LTE-modules plaatsen om cellulaire netwerkconnectiviteit mogelijk te maken.
Geteste & geverifieerde apparaten Om optimale compatibiliteit en systeemstabiliteit te garanderen, raden we sterk aan de Mini-PCIe-modules te gebruiken die volledig zijn getest en geverifieerd door Seeed Studio:
- 4G cellulair netwerk
- Officieel aanbevolen 4G LTE Mini-PCIe-module
- LoRaWAN & IoT draadloos
- USB-gebaseerde / SPI-gebaseerde LoRaWAN-gatewaymodules
- Wi-Fi HaLow (802.11ah) langeafstands-, laagvermogen draadloze modules
Opmerking:
SIM-kaartintegratie: Plaats bij gebruik van een 4G LTE-module de Nano SIM-kaart in de ingebouwde sleuf terwijl het apparaat is uitgeschakeld. Het hot-pluggen van de SIM-kaart kan leiden tot een storing bij het herkennen van de module of permanente schade.
Antenneroutering: Omdat industriële behuizingen draadloze signalen kunnen afschermen, moet je bij het gebruik van 4G- of LoRaWAN-modules altijd IPEX-naar-SMA-pigtails aansluiten om de antennes buiten de behuizing te leiden.
Driver- & netwerkconfiguratie: De meeste industriële 4G-modules vereisen specifieke USB-seriële drivers (zoals de
option-driver) in Armbian OS. Ontwikkelaars kunnen NetworkManager ofpppdgebruiken om cellulaire verbindingen tot stand te brengen.
Configuratie- & testhandleiding voor 4G-module (EC25)

Cellulaire instelling via AT-commando's Plaats de 4G-module met de IoT-SIM-kaart, start het systeem op en controleer de USB-seriële apparaten:
lsusb
ls /dev/ttyUSB*Installeer en start minicom om met de module te communiceren:
sudo apt install minicom
sudo minicom -D /dev/ttyUSB2Snelle referentie van de belangrijkste AT-commando's
Gedetailleerde statuscontrole & belworkflow
Controle van de SIM-kaartstatus: Stuur AT+CPIN? om de SIM-status te controleren.
Command: AT+CPIN?
Response: +CPIN: READY
Meaning: The SIM card is present and ready (no PIN lock applied).Controle van de signaalkwaliteit (RSSI): Stuur AT+CSQ om de draadloze omgeving te beoordelen.
Command: AT+CSQ
Response: +CSQ: 28,99
Meaning: Excellent signal. The value 28 maps to approx. -57 dBm (range 0-31, >20 is excellent). 99 indicates unknown Rx error rate (normal).Controle van de netwerkregistratie: Stuur AT+CGREG? en AT+CREG? om de cellulaire aansluiting te controleren.
Command: AT+CGREG? and AT+CREG?
Response: +CGREG: 0,1 / +CREG: 0,1
Meaning: The trailing 1 indicates "Registered, home network", meaning the module has successfully attached to the tower.Query van de huidige provider: Stuur AT+COPS? om de operator en netwerkmodus te controleren.
Command: AT+COPS?
Response: +COPS: 0,0,"T-Mobile",7
Meaning: Currently attached to the specific carrier (e.g., T-Mobile). The trailing 7 indicates the connection is in LTE (4G) mode.Activering van de datacontext: Vraag op via AT+QIACT?, activeer vervolgens de context met AT+QIACT=1.
Command: AT+QIACT? -> Response: OK (If empty, no context is currently active)
Command: AT+QIACT=1 -> Response: OK
Meaning: Successfully activates Context ID 1. The module will fetch a private IP from the carrier and enable cellular routing.Opmerking: Spraakoproepen kunnen worden gestart via
ATD<number>;als gelijktijdige spraak/data door de hardware en het abonnement worden ondersteund.
Ingebouwde pingtest: Voer AT+QPING uit om de connectiviteit op IP-niveau rechtstreeks vanaf de module te controleren.
Command: AT+QPING=1,"www.google.com",1,4
Response: +QPING: 0["142.250.190.46",32,45,255]
+QPING: 0,4,4,0,40,52,45
Meaning: Successfully pinged the target domain. 4 packets sent, 4 received, 0% loss.Probleemoplossing
Configuratie- & testhandleiding voor de LoRa-module
USB
Apparaatherkenning controleren
ls /dev/ttyACM*
udevadm info /dev/ttyACM0 | grep -E "ID_VENDOR|ID_MODEL"De verwachte uitvoer bevat:
E: ID_MODEL=STM32_Virtual_ComPort
E: ID_VENDOR=STMicroelectronicsTX-testcommando
cd ~/sx1302_hal/libloragw
sudo ./test_loragw_hal_tx \
-u \
-d /dev/ttyACM0 \
-r 1250 \
-m LORA \
-f 867.1 \
-s 12 \
-b 125 \
-n 1000 \
-z 100 \
--dig 3 \
--pa 0 \
--pwid 13Verwachte uitvoer
Opening USB communication interface
INFO: Configuring TTY
INFO: Connect to MCU
INFO: Concentrator MCU version is V01.00.00
INFO: MCU status: sys_time:197172 temperature:37.2oC
Note: chip version is 0x10 (v1.0)
TX done
TX done
Veelvoorkomende fouten & oplossingen
| Fout | Oorzaak | Oplossing |
|---|---|---|
chip version is 0xFF | SPI-modus gebruikt op een USB-module | Voeg de vlag -u toe |
failed to open COM port ... No such file or directory | Apparaat losgekoppeld (bijv. na een GPIO-reset) | Opnieuw aansluiten of herstarten; voer geen reset_lgw.sh uit |
USB disconnect in dmesg | reset_lgw.sh heeft GPIO omgeschakeld en USB losgekoppeld | Sla het resetscript over voor USB-modules |
Opmerking: Voer
reset_lgw.shniet uit voordat je modules in USB-modus test. Het resetscript schakelt GPIO-pinnen om die de module aan- en uitschakelen, waardoor USB wordt losgekoppeld. De STM32-MCU handelt de SX1302-reset intern af.
SPI
Apparaatherkenning controleren
ls /dev/ttyACM*
udevadm info /dev/ttyACM0 | grep -E "ID_VENDOR|ID_MODEL"De verwachte uitvoer bevat:
E: ID_MODEL=STM32_Virtual_ComPort
E: ID_VENDOR=STMicroelectronicsTX-testcommando
cd ~/sx1302_hal/libloragw
sudo ./test_loragw_hal_tx \
-u \
-d /dev/ttyACM0 \
-r 1250 -m LORA -f 867.1 -s 12 -b 125 \
-n 1000 -z 100 --dig 3 --pa 0 --pwid 13Verwachte uitvoer
Opening USB communication interface
INFO: Configuring TTY
INFO: Connect to MCU
INFO: Concentrator MCU version is V01.00.00
INFO: MCU status: sys_time:197172 temperature:37.2oC
Note: chip version is 0x10 (v1.0)
TX done
TX done
...
Configuratie- & testhandleiding voor de HaLow WiFi-module
Voor HaLow WiFi is een device tree overlay nodig om de SPI-bus en GPIO-configuratie voor de MM6108-chip beschikbaar te maken.
Voeg de overlay toe aan de Armbian-omgevingsconfiguratie:
echo "overlays=recomputer-rk3576-devkit-halow-wifi" | sudo tee -a /boot/armbianEnv.txtControleer het bestand voordat je herstart:
tail -2 /boot/armbianEnv.txtVerwachte uitvoer:

Herstart om de overlay toe te passen:
sudo rebootControleer na de herstart of de driver is geladen en de interface is verschenen:
dmesg | grep -i morse | grep -E "found|Loaded|initialized|MAC"Verwachte uitvoer:
morse_spi spi3.1: Morse Micro SPI device found, chip ID=0x0306
morse_spi spi3.1: Loaded firmware from morse/mm6108.bin, size 459124, crc32 0x51d355b9
morse_spi spi3.1: Loaded BCF from morse/bcf_default.bin, size 1251, crc32 0x941b2a82
morse_spi spi3.1: Firmware initialized
morse_spi spi3.1: Firmware Manifest MAC: 90:03:71:52:9d:8eDe binaries morse-hostapd en morse-wpa_supplicant roepen intern morse_cli aan, maar de geïnstalleerde binary heet morsectrl. Er is een symlink nodig.
sudo ln -s /usr/bin/morsectrl /usr/local/bin/morse_cliDit hoeft slechts eenmalig te gebeuren.
Controleer de interfaces:
ip link show | grep -E "wlan0|wlan1|morse0"AP-modus Maak de configuratie aan:
sudo nano /etc/morse-hostapd.confMinimaal werkende configuratie:
interface=wlan0
driver=nl80211
ssid=HaLow_Test
country_code=AU # Change to your region
hw_mode=a
channel=42 # AU channel, see table below
op_class=69
beacon_int=100
dtim_period=2
ieee80211ah=1
s1g_prim_chwidth=1
s1g_prim_1mhz_chan_index=0
s1g_capab=[SHORT-GI-ALL]
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
ctrl_interface=/var/run/hostapdZet de interface uit en start de AP:
sudo ip link set wlan0 down
sudo morse-hostapd /etc/morse-hostapd.conf -BVerwachte uitvoer (geslaagd):
s1g mapped ht channel 159
Full Channel Information
Operating Frequency: 923000 kHz
Operating BW: 2 MHz
wlan0: interface state COUNTRY_UPDATE->ENABLED
wlan0: AP-ENABLEDOpmerking: Waarschuwingen van het type
Unable to set RAWzijn niet-kritiek. Ze verschijnen omdat de geïnstalleerde driverversie geen RAW (Restricted Access Window) ondersteunt. De AP start normaal op.
Controleer de AP-status:
sudo morse-hostapd_cli -i wlan0 status
sudo morse-hostapd_cli -i wlan0 all_sta # list connected clientsStationmodus Maak de configuratie aan:
sudo nano /etc/morse-wpa_supplicant.confMinimale configuratie:
ctrl_interface=/var/run/wpa_supplicant
country=AU
network={
ssid="HaLow_Test"
psk="12345678"
key_mgmt=WPA-PSK
}Verbinden:
sudo ip link set wlan0 down
sudo morse-wpa_supplicant -i wlan0 -c /etc/morse-wpa_supplicant.conf -D nl80211 -B
sudo dhclient wlan0Controleer de verbinding:
sudo morse-wpa_cli -i wlan0 status
ip addr show wlan0Ethernet RJ45
Het moederbord beschikt over twee onafhankelijke Gigabit Ethernet (RJ45)-poorten. Het dual-LAN-ontwerp maakt het ideaal voor het bouwen van industriële edge-gateways, het implementeren van fysieke netwerkisolatie (intranet/extranet) of het configureren van complexe netwerkroutering.
Poortdefinities & functies:
- 1x standaard Gigabit Ethernet (GbE): Ondersteunt Ethernet-verbindingen met automatische onderhandeling van 10/100/1000 Mbps.
- 1x PoE-geactiveerde Gigabit Ethernet (GbE met PoE PD): Naast standaard Gigabit-netwerken ondersteunt deze poort het PoE PD (Powered Device)-protocol.
Opmerking: Als PoE Powered Device (PD) kan dit RK3576-moederbord rechtstreeks via de Ethernet-kabel worden gevoed door een PoE-switch (PSE), waardoor een aparte DC-voedingsadapter niet nodig is.
Opmerking:
Vereiste PoE-module: De PoE-voedingsfunctie is niet standaard ingebouwd in het basisbord. Hiervoor is een extra, apart aan te schaffen PoE-add-onmodule vereist. Zonder deze geïnstalleerde module functioneert de poort uitsluitend als een standaard Gigabit Ethernet-poort.
Verduidelijking PD versus PSE: Let op dat dit apparaat fungeert als PoE PD (stroomontvanger). Het ondersteunt GEEN PoE-uitvoer (PSE), wat betekent dat het geen stroom kan leveren aan externe apparaten zoals PoE-IP-camera's.
Netwerkconfiguratie van het systeem: In Armbian OS worden deze twee fysieke poorten doorgaans aangeduid als
eth0eneth1. We raden aan om de standaard Linux NetworkManager-tool (vianmtuiofnmcli) ofsystemd-networkdte gebruiken om statische IP-adressen, netwerkbridging of link-aggregatie (bonding) te configureren.
DSI
Het moederbord is uitgerust met één 4-lane MIPI DSI (22-pins)-beeldscherminterface, specifiek ontworpen voor het aansluiten van hoge-resolutie ingebouwde LCD's of industriële touchpanelen.
Interfacefuncties
- Hogebandbreedte-overdracht: Maakt gebruik van een fysiek 4-lane-linkontwerp, wat aanzienlijk hogere gegevensdoorvoer biedt in vergelijking met traditionele 2-lane-interfaces. Kan probleemloos beeldschermen met een resolutie van 1080P of zelfs 2K aansturen.
- Fysieke vormfactor: Gebruikt een 22-pins 0,5 mm pitch FPC (Flexible Printed Circuit)-connector met een klemvergrendelingsmechanisme.
- Compatibiliteit met het Raspberry Pi-ecosysteem: De interface is fysiek achterwaarts compatibel en ondersteunt directe verbindingen met standaard Raspberry Pi DSI-schermen, wat de kosten en moeite voor ontwikkelaars om accessoires te verkrijgen aanzienlijk vermindert.
Configuratie- & testhandleiding voor DSI
Op de reComputer-RK3576 wordt de MIPI DSI-interface beheerd via Device Tree Overlays (DTBO). Gebruikers moeten het vereiste overlaybestand handmatig laden op basis van het aangesloten beeldschermrandapparaat. Open de terminal en bewerk het configuratiebestand van de Armbian-omgeving:
sudo nano /boot/armbianEnv.txtVoeg de volgende regel toe aan het einde van het bestand om de DSI-schermoverlay op te geven:
overlays=recomputer-rk3576-devkit-raspi-7inch-touchscreenOpslaan en afsluiten (druk op Ctrl + O, vervolgens Enter om op te slaan in nano, en Ctrl + X om af te sluiten).
Werk de pakketlijsten bij en zorg ervoor dat de vereiste multimedia- en beeldschermplugins zijn geïnstalleerd:
sudo apt-get update
sudo apt install v4l-utils -y
sudo apt-get install gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-x -yHerstart het systeem om de wijzigingen toe te passen:
sudo rebootControleer na het herstarten of het systeem de grafische desktopomgeving succesvol heeft geïnitialiseerd:
echo $XDG_SESSION_TYPEOpmerking:
Als de uitvoer
x11ofwaylandis, wordt het DSI-scherm correct aangestuurd en is de grafische interface actief.Oriëntatie van de FPC-kabel: Let bij het plaatsen van de FPC-kabel strikt op de oriëntatie van de gouden contacten. Ze moeten naar de contactpinnen binnenin de connector wijzen. Als je de kabel achterstevoren plaatst, kan dit kortsluiting veroorzaken of ervoor zorgen dat het scherm niet aangaat. Zorg ervoor dat de klemvergrendeling stevig vastzit na het plaatsen.
Drivers & device tree: MIPI-schermen zijn niet "plug-and-play". Nadat je een beeldscherm hebt aangesloten, moet je de bijbehorende paneeldriver en backlight-besturingsnodes in Armbian OS inschakelen door de juiste Device Tree Overlays toe te passen (bijv. met
armbian-add-overlay) of door de DTB-bestanden in/bootaan te passen.Touch-ondersteuning: Deze 22-pins interface integreert doorgaans I2C-signaalpinnen voor touch-feedback. Als je een MIPI-touchscreen gebruikt, zorg er dan voor dat zowel de beeldschermdriver als de I2C-touch-IC-driver (bijv. GT911) in het besturingssysteem zijn geladen.
CSI
Het moederbord beschikt over twee onafhankelijke 4-lane MIPI CSI (22-pins)-camera-interfaces. Aangedreven door de robuuste ISP (Image Signal Processor) en ingebouwde NPU van de RK3576, is het dual-CSI-ontwerp perfect voor het bouwen van stereovisiesystemen, machinevisie-inspectiestations of het rechtstreeks streamen van video met een hoge framerate voor edge-AI-modelinferentie.
Interfacefuncties
- Dual 4-lane-architectuur: Biedt twee fysieke poorten (
CSI_0enCSI_1), elk uitgerust met een volledig 4-lane-datakanaal, in staat om twee industriële cameramodules met hoge resolutie of hoge framerate gelijktijdig aan te sturen. - Fysieke vormfactor: Gebruikt een 22-pins 0,5 mm pitch FPC-connector.
- Compatibiliteit met het Raspberry Pi-ecosysteem: De 22-pins connector is fysiek en grotendeels pin-compatibel, en ondersteunt directe verbindingen met standaard Raspberry Pi CSI-camera's (zoals officiële of modules van derden gebaseerd op IMX219-/IMX477-sensoren). Hierdoor kunnen ontwikkelaars hun visie-algoritmes snel valideren.
Opmerking:
Compatibiliteit & selectie: We raden ten zeerste aan om cameramodules te gebruiken die officieel zijn geverifieerd door Seeed Studio. Bij niet-geverifieerde of niet-standaard camera's moeten ontwikkelaars mogelijk zelf Linux V4L2 (Video for Linux 2)-drivers porten.
Normen voor kabelaansluiting: Let goed op de oriëntatie van de gouden contacten van de FPC-kabel. Houd er bovendien rekening mee dat MIPI-signalen bij industriële implementatie of integratie met robotica-frameworks zeer gevoelig zijn voor elektromagnetische interferentie (EMI). Het wordt aanbevolen om de lengte van de camera-lintkabel onder de 30 cm (12 inch) te houden.
Gelijktijdige multicamera-opname: In Linux worden de twee camera's doorgaans aangeduid als
/dev/video0en/dev/video1. Als je AI-applicatie of multimediaframework (zoals GStreamer of OpenCV) beide streams tegelijkertijd moet opnemen, zorg dan voor een juiste toewijzing van de geheugenbandbreedte en gebruik hardwarematig versnelde plugins voor optimale prestaties.
Configuratie- & testhandleiding voor CSI
In dit gedeelte leer je hoe je twee MIPI CSI-camera's tegelijkertijd inschakelt (met de Raspberry Pi Camera V3 als voorbeeld). Bewerk het configuratiebestand van de omgeving:
sudo nano /boot/armbianEnv.txtVoeg de volgende regel toe aan het einde van het bestand om de V3-cameradrivers voor zowel CAM0 als CAM1 in te schakelen:
overlays=recomputer-rk3576-devkit-cam0-rpi-v3 recomputer-rk3576-devkit-cam1-rpi-v3Let op: meerdere overlays moeten worden gescheiden door een enkele spatie. Sla het bestand op en herstart het apparaat:
sudo rebootGebruik na het herstarten de v4l-utils-toolchain om de camerastatus te controleren en te testen.
Bekijk de beschikbare camera-apparaten en -nodes:
v4l2-ctl --list-devicesBekijk de ondersteunde pixelformaten en resoluties voor een specifieke camera (bijv. /dev/video22):
v4l2-ctl --list-formats-ext --device=/dev/video22Benchmark de framerate van de camera: test de streamingprestaties bij een specifieke resolutie en pixelformaat (bijv. 3280x2464 MJPG):
v4l2-ctl -d /dev/video22 --set-fmt-video=width=3280,height=2464,pixelformat='MJPG' --stream-mmap=4 --set-selection=target=crop,flags=0,top=0,left=0,width=3280,height=2464 --stream-count=500Installeer de GStreamer-commandoregeltools:
sudo apt install gstreamer1.0-tools -yVoer de volgende pipeline uit om een realtime voorbeeld van de camerafeed te bekijken (vervang device=/dev/video11 door de daadwerkelijke video-node-index die je hebt verkregen via v4l2-ctl --list-devices):
gst-launch-1.0 v4l2src device=/dev/video11 ! video/x-raw,format=NV12,width=3280,height=2464HDMI
Het moederbord beschikt over één standaard HDMI (Type-A)-poort, voornamelijk ontworpen voor het aansluiten van externe monitoren, televisies of industriële besturingsschermen, met high-definition, gesynchroniseerde audio- en video-uitvoer.
Interfacefuncties
- Ultra-HD-resolutie: Aangedreven door de robuuste multimediamogelijkheden van de RK3576 ondersteunt deze interface video-uitvoer tot 4K ultra-high-definition, ideaal voor het weergeven van scherpe GUI-dashboards of meerdere bewakingsvideostreams.
- Audio- & videosynchronisatie: De HDMI-poort verzendt zowel video- als digitale audiosignalen tegelijkertijd. Als je aangesloten monitor ingebouwde luidsprekers heeft, wordt systeemgeluid rechtstreeks via de HDMI-verbinding afgespeeld, zonder dat een extra 3,5 mm-audiokabel nodig is.
- Ondersteuning voor meerdere beeldschermen: Deze HDMI-poort kan gelijktijdig werken met de ingebouwde Type-C (DP 1.4)- en MIPI DSI-interfaces. Ontwikkelaars kunnen binnen het Linux-besturingssysteem gekloonde beeldschermen of uitgebreide bureaubladmodi configureren op maximaal drie schermen.
Opmerking:
Kabelnormen: Om stabiliteit te garanderen en schermflikkering bij 4K-resoluties te voorkomen, gebruik je uitsluitend hoogwaardige kabels die voldoen aan de specificaties van HDMI 2.0 of hoger.
EDID & automatische resolutiedetectie: Het besturingssysteem (bijv. Armbian / Ubuntu) leest bij het opstarten automatisch de EDID-informatie van de monitor uit om de optimale resolutie toe te passen. Als je een "Geen signaal"-probleem tegenkomt, kun je via SSH inloggen en het commando
xrandrgebruiken om de status van de beelduitvoer te debuggen.Headless-modusbewerkingen: Als je het apparaat puur als edge-computingnode implementeert zonder fysieke monitor, kan het besturingssysteem het renderen van de desktop-UI opschorten om resources te besparen. Als je in een headless-opstelling toch VNC-toegang op afstand nodig hebt, raden we aan een "Dummy HDMI Plug (Display Emulator)" in de poort te plaatsen.