RDK X5 Carrier Board Adaptation
Applies to: EVS modules (e.g. EVS_003) connected to the RDK X5 carrier board. This page combines hardware connection, environment configuration, and sample programs. For module parameters see the EVS_003 product page; for event-camera principles see Fundamentals.
No camera?
Grab a .raw from Downloads — Sample recordings and play it back with evs_recode_player on this page or with the host software to experience event-data preview and analysis.
I. Hardware preparation and environment configuration
1 Hardware preparation
1.1 Required hardware list
Before you start, make sure you have the following hardware ready:
| Hardware | Description | Required |
|---|---|---|
| RDK X5 dev board | The board that runs the sample programs | ✓ |
| EVS event-camera module | Connects to the RDK X5 | ✓ |
| Power adapter | 5V/3A or higher | ✓ |
| SD card | 32 GB or larger, Class 10 recommended | ✓ |
| HDMI display | To view the real-time picture | Recommended |
| HDMI cable | Connects the board and display | Recommended |
| Ethernet / WiFi | For remote access (optional) | Optional |
| USB keyboard | Local operation (optional) | Optional |
1.2 Hardware connection steps
Step 1: install the SD card
Make sure the SD card has the system image flashed
Image version
The image used is: shimetapi_rdk_x5_3.4.1_0609.img MD5: 81c545e85b9ba9c414657d52d9bed711
Insert the SD card into the RDK X5 SD card slot
Step 2: connect the EVS module
- Find the MIPI CSI interface on the RDK X5; by default it is connected to the CAM1 interface (near the Ethernet port)
- Gently open the interface latch
- Insert the EVS module ribbon cable
- Press the latch down to secure the ribbon cable

Step 3: connect the display
- Use an HDMI cable to connect the RDK X5 and the display
Step 4: connect power
- Connect the power adapter
- Watch the board's indicator LEDs (they should start blinking)
2 Environment configuration
Reference docs
RDK official guide: https://developer.d-robotics.cc/rdk_doc/RDK
2.1 System login
2.1.1 HDMI desktop
Plug in power and HDMI, wait for the system to initialize, and the desktop will appear once initialization completes.

2.1.2 Serial login
To choose serial login, make sure the CH340 serial driver is installed. Plug in the serial adapter and a port will appear in Device Manager.
Open MobaXterm, click Session, then select Serial; the X5 serial baud rate is 115200.

Then plug in power to power on; logs will print in the MobaXterm serial terminal, and finally a system login appears. User: sunrise Password: sunrise User: root Password: root (administrator privileges)
2.2 MobaXterm SSH connection
If connected over WiFi, you can directly use the ifconfig command to get the current device IP.
If connected over Ethernet, enter the following command:
sudo vi /etc/NetworkManager/system-connections/netplan-eth0.nmconnectionHere we use the serial terminal as an example; you need to modify the IP address and gateway in this file to match the IP subnet of the Ethernet you are connected to.

Then open MobaXterm, click SSH, and fill in the IP address and user (using root directly is recommended here).

After clicking OK, enter the password to enter the terminal.

II. Sample program usage guide
The commands below are all run as the root user; under the sunrise user, prefix them with sudo.
1 Sample program directory layout
├── sample_aps # APS 显示模式
│ └── get_aps_raw_display
│ ├── aps_display.cpp
│ └── Makefile
├── sample_evs_release # EVS 案例包
│ ├── evs_env
│ │ ├── include
│ │ └── lib
│ ├── evs_mode
│ │ ├── 01_evs_live_player
│ │ ├── 02_evt2_to_csv
│ │ ├── 03_evs_recode_player
│ │ └── 04_raw8_to_evt2
│ └── Makefile
└── sample_hvs # HVS 显示模式
└── dual_vc_vin_src
├── dual_vc_vin.c
├── include
├── lib
├── Makefile
└── src2 sample_aps usage guide
2.1 APS real-time preview (get_aps_raw_display)
cd /app/multimedia_samples/sample_apx003cc/sample_aps/get_aps_raw_display
makeAfter running the above, a window showing the APS-mode image will appear on the Ubuntu desktop.
Note: this is currently only a demo; the ISP effect file has not yet been added. ISP effect files will be added later to enable RGB image display.
3 sample_evs_release usage guide
3.1 Real-time preview and recording (evs_live_player)
3.1.1 Function description
evs_live_player is the most basic sample program, providing two core functions:
- Real-time preview: displays the event-camera picture on the screen
- Data recording: saves the event data as a RAW8-format file
3.1.2 Preparation
Make sure:
- ✓ The EVS module is correctly connected
- ✓ A display is connected (for preview)
3.1.3 Usage
First enter the project directory, grant the program execute permission, and then list the available sensors:
cd /app/multimedia_samples/sample_apx003cc/sample_evs_release/evs_mode/01_evs_live_player
sudo ./evs_live_player.RAW8 -s 49Note that only the apx003c-4096x256-240fps-4line configuration file is currently adapted; here we select index 49 to run.
After running:
- The program starts and opens the camera
- A preview window pops up showing the real-time picture

If you need to record, toggle recording on/off with the r shortcut; data is written to memory, and after recording ends it is written to the SD card (system card).

After recording ends, the file is auto-named and saved to the current directory.
Warning
The module has an integrated encryption chip; this program only works with shimeta EVS modules.
3.1.4 FAQ
Here is an explanation of why data is first written to memory:
Because the RDK X5 has no integrated EMMC storage and only 4/8 GB of optional DDR4 memory, all system files are stored on the SD card. Most SD cards are not fast at non-sequential file read/write, and SD-card quality varies widely. A key feature of event cameras is high frame rate — although the data volume is not large, the frame rate is; the author understands that the frame rate of domestic event-camera sensors has reached as high as 64K!
Let's test the read/write speed of the SD card in use and the board's built-in DDR. The author's SD-card test results are below.
SD-card write test (12 MB/s):
dd if=/dev/zero of=/tmp/test_write bs=1M count=256 conv=fdatasyncSD-card read test (24 MB/s):
fio --name=read_test --ioengine=sync --rw=read --bs=1M --size=256M --numjobs=1 --filename=/tmp/test_write
Memory read/write speed test (write 765 MB/s; read 1.7 GB/s):
Write test:
dd if=/dev/zero of=/dev/shm/memtest bs=1M count=1024 conv=fdatasyncRead test:
dd if=/dev/shm/memtest of=/dev/null bs=1M count=1024
Measured, the two differ in speed by nearly 100×! With recording on at a high frame rate, the SD-card read/write speed is clearly strained; buffering data in memory is a forced choice.
3.2 RAW8 to EVT2 (raw8_to_evt2)
Why convert?
Although the RDK X5 is advertised at 10 TOPS, that compute is concentrated on the BPU, while decoding mainly uses CPU resources. In testing, decoding the raw MIPI packets and displaying in real time is more than the CPU can handle — above 120 FPS the picture stutters noticeably. For real-time display, we only decode and display the first complete frame of each MIPI packet. When recording, the remaining raw data is saved directly to memory for later decoding. So why convert the raw data packets to EVT2 instead of analyzing them directly? Because EVT2 is the standard format of the Metavision SDK and is compatible with our Windows host software and the full Ubuntu algorithm library — so we provide the intermediate step of converting the saved raw data to EVT2.
Usage:
cd /app/multimedia_samples/sample_apx003cc/sample_evs_release/evs_mode/04_raw8_to_evt2
# 转换后的文件直接生成在当前目录
./raw8_to_evt2 /userdata/hand_wave.RAW8
# 指定转换后的文件到指定目录
./raw8_to_evt2 /userdata/hand_wave.RAW8 /userdata/output.rawConversion process:

3.3 EVT2 to CSV (evt2_to_csv)
Why convert to CSV?
CSV is a universal table format, convenient for:
- Viewing and analyzing in Excel
- Data processing with Python/MATLAB
- Plotting with visualization tools
CSV file format:
x,y,polarity,timestamp
352,240,1,1234567890
120,180,0,1234567920
425,305,1,1234568100
...| Column | Meaning | Value range |
|---|---|---|
| x | abscissa | 0-767 |
| y | ordinate | 0-607 |
| polarity | polarity | 0 (darken) or 1 (brighten) |
| timestamp | timestamp | microseconds |
Usage:
cd /app/multimedia_samples/sample_apx003cc/sample_evs_release/evs_mode/02_evt2_to_csv
# 转换后的文件直接生成在当前目录
./evt2_to_csv /userdata/hand_wave.raw
# 指定转换后的文件到指定目录
./evt2_to_csv /userdata/hand_wave.raw /userdata/events.csv
The converted text file can be opened directly for viewing.

Note: do not casually open the converted file of a long recording — a pure txt file of several hundred MB will most likely freeze an underpowered computer.
3.4 Recording playback (evs_recode_player)
3.4.1 Function description
evs_recode_player is used to play back recorded event data and supports variable-speed playback (x1, x1/2, x1/8).
3.4.2 Usage
cd /app/multimedia_samples/sample_apx003cc/sample_evs_release/evs_mode/03_evs_recode_player
# 播放 EVT2 格式文件
./evs_recode_player /userdata/hand_wave.raw3.4.3 Usage notes

The picture plays in a loop; press shortcut 1 for normal speed, 2 for 1/2 speed, 3 for 1/8 speed.
4 sample_hvs usage guide
4.1 HVS real-time display (dual_vc_vin_src)
Run the command below and a window showing the HVS-mode image (left EVS image + right APS image) will appear on the Ubuntu desktop.
cd /app/multimedia_samples/sample_apx003cc/sample_hvs/dual_vc_vin_src
./dual_vc_vin_src
makeDefault parameters: -a 50 -b 51

Note: this is currently only a demo; the ISP effect file has not yet been added. ISP effect files will be added later to enable RGB image display.
