RDK X5 App Resources
v1.0.0Access to RDK X5 /app folder resources including GPIO, multimedia, AI samples. Invoke when user wants to run embedded demos or control hardware on RDK X5.
Like a lobster shell, security has layers — review code before you run it.
RDK X5 App Resources Skill
This skill provides access to embedded hardware resources in /app folder on D-Robotics RDK X5 boards, including GPIO control, I2C/SPI communication, video capture, media processing, and AI inference.
⚠️ Important: Use System Python (NOT conda)
Most of these resources require system Python, NOT conda environment!
The D-Robotics board has hobot_dnn and other libraries installed in system Python (/usr/bin/python3.10), but NOT in conda environments.
Always use system Python to run these scripts:
# ✅ Correct - use system Python
/usr/bin/python3.10 /app/pydev_demo/01_basic_sample/test_resnet18.py
# ❌ Wrong - conda environment does NOT have hobot_dnn
python /app/pydev_demo/01_basic_sample/test_resnet18.py # will fail!
If you accidentally use conda Python, you'll get errors like:
ModuleNotFoundError: No module named 'hobot_dnn'
Available Resources
1. 40pin GPIO Samples (/app/40pin_samples/)
Python-based GPIO control using Hobot.GPIO library:
| File | Description |
|---|---|
simple_out.py | Basic GPIO output (LED control) |
simple_input.py | Basic GPIO input (read pin state) |
simple_pwm.py | PWM output (e.g., motor speed control) |
button_event.py | Button event handling |
button_interrupt.py | Button interrupt handling |
button_led.py | Button controlling LED |
test_i2c.py | I2C communication test |
test_spi.py | SPI communication test |
test_serial.py | Serial/UART communication test |
test_all_pins.py | All pins test |
2. Character Device Demos (/app/cdev_demo/)
C-based device driver examples:
| Directory | Description |
|---|---|
v4l2/ | V4L2 video capture |
vio_capture/ | Video input capture |
vio2display/ | Video to display output |
vio2encoder/ | Video encoding |
rtsp2display/ | RTSP stream to display |
vps/ | Video Processing System |
bpu/ | BPU (Brain Processing Unit) demos |
decode2display/ | Decode to display |
3. Multimedia Samples (/app/multimedia_samples/)
C/C++ multimedia processing examples:
| Directory | Description |
|---|---|
sample_codec/ | Audio/Video encoding & decoding |
sample_dsp/ | DSP processing |
sample_gdc/ | Geometric Distortion Correction |
sample_gpu_2d/ | 2D GPU operations |
sample_hbmem/ | High Bandwidth Memory |
sample_isp/ | Image Signal Processor (camera tuning) |
sample_osd/ | On-Screen Display |
sample_pipeline/ | Media pipeline processing |
sample_usb/ | USB camera support |
sample_vin/ | Video Input |
sample_vot/ | Video Output |
sample_vse/ | Video Sync Engine |
sunrise_camera/ | Sunrise camera modules |
vp_sensors/ | Vision platform sensors |
chip_base_test/ | Chip baseline tests |
utils/ | Utility tools |
4. Python AI Samples (/app/pydev_demo/)
Python-based AI model inference examples:
| Directory | Description |
|---|---|
01_basic_sample/ | Basic usage |
02_usb_camera_sample/ | USB camera inference |
03_mipi_camera_sample/ | MIPI camera inference |
04_segment_sample/ | Image segmentation |
05_web_display_camera_sample/ | Web display camera |
06_yolov3_sample/ | YOLOv3 object detection |
07_yolov5_sample/ | YOLOv5 object detection |
08_decode_rtsp_stream/ | RTSP stream decoding |
09_yolov5x_sample/ | YOLOv5x object detection |
10_ssd_mobilenetv1_sample/ | SSD MobileNetV1 detection |
11_centernet_sample/ | CenterNet object detection |
12_yolov5s_v6_v7_sample/ | YOLOv5s v6/v7 variants |
Model files are linked from /app/model/basic (or /opt/hobot/model/x5/basic).
5. ISP Tuning Tool (/app/tuning_tool/)
Image Signal Processor tuning tools:
| File | Description |
|---|---|
isp_tuning | ISP tuning executable |
run_tuning.sh | Tuning launch script |
tuning_cfg/ | Tuning configuration files |
Quick Reference
Running Python Samples - ALWAYS use system Python!
# ✅ CORRECT - Use system Python (/usr/bin/python3.10)
# These have hobot_dnn and other D-Robotics libraries
/usr/bin/python3.10 /app/40pin_samples/simple_out.py
/usr/bin/python3.10 /app/40pin_samples/button_led.py
/usr/bin/python3.10 /app/40pin_samples/test_i2c.py
/usr/bin/python3.10 /app/40pin_samples/test_spi.py
/usr/bin/python3.10 /app/40pin_samples/test_serial.py
/usr/bin/python3.10 /app/pydev_demo/01_basic_sample/test_resnet18.py
/usr/bin/python3.10 /app/pydev_demo/07_yolov5_sample/main.py
/usr/bin/python3.10 /app/pydev_demo/08_decode_rtsp_stream/main.py
Building C/C++ Demos
# Build multimedia samples
cd /app/multimedia_samples/
make
# Build character device demos
cd /app/cdev_demo/v4l2/
make
Running ISP Tuning
cd /app/tuning_tool/
./run_tuning.sh
GPIO Pin Reference
- Pin 37 - BOARD编码模式下的 GPIO37 (对应 WPI 25)
- Uses
Hobot.GPIOlibrary (D-Robotics GPIO wrapper) - Modes:
GPIO.BOARD,GPIO.BCM,GPIO.WPI
Important Notes
- ⚠️ ALWAYS use system Python -
/usr/bin/python3.10, NOT conda - Hardware Access: Most operations require root privileges or proper hardware permissions
- Pin Numbers: Use BOARD encoding (physical pin numbers) or BCM encoding (Broadcom)
- Library: Uses
Hobot.GPIOwhich is D-Robotics' GPIO wrapper - Cleanup: Always call
GPIO.cleanup()when done - Models: Pre-trained models are in
/app/model/basic/ - Scope: This skill covers
/appfolder resources only. For system commands and other RDK X5 features, refer to official documentation.
Use Cases
- Control LEDs, motors, relays via GPIO
- Read button/switch states
- Communicate with I2C sensors (temperature, IMU, etc.)
- Interface with SPI devices
- Capture video from camera modules (USB, MIPI)
- Video encoding/decoding
- RTSP video streaming
- Run AI inference (YOLO, SSD, CenterNet, segmentation)
- ISP camera tuning
- Video pipeline processing
Note: This skill focuses on /app folder sample resources. It is not a complete RDK X5 operation guide.
Comments
Loading comments...
