Please read manual carefully before install, operate, or transport MiiVii device.

  • Ensure that the correct power range is being used before powering the device.

  • Avoid hot plugging.

  • To properly turn off the power, please shut down the Ubuntu system first, and then cut off the power. Due to the particularity of the Ubuntu system, on the Nvidia developer kit, if the power is turned off when the startup is not completed, there will be a 0.03% probability of abnormality, which will cause the device to fail to start. Due to the use of the Ubuntu system, the same problem also exists on the Miivii device.

  • Do not use cables or connectors other than described in this manual.

  • Do not use MiiVii device near strong magnetic fields.

  • Backup your data before transportation or MiiVii device is idle.

  • Recommend to transport MiiVii device in its original packaging.


MiiVii Apex Xavier is an embedded computing platform based on NVIDIA Jetson AGX Xavier. With waterproof and shockproof connectors and powerful computer vision processing capability, Apex Xaiver is designed for autonomous machines, especially for outdoor environment use. Apex Xavier offers synchronization feature, which is essential for multi-sensor fusion. In addition, a variety of computer vision algorithm acceleration SDK are provided on Apex Xavier platform.

Included in the Box

  • Apex Xavier×1

  • Power Supply×1

  • Power cable×1

  • I/O Cable Assemblies×1

  • 4G Antenna×2

  • WiFi Antenna×2

  • Quick Start×1



ProcessorNVIDIA Jetson AGX Xavier
CPU8-core ARM v8.2 64-bit CPU
GPU512-core Volta GPU
Memory32GB 256-Bit LPDDR44
DL Accelerator2×NV DLA Engines
Storage32GB eMMC 5.1


NetworkEthernet1×8pin Waterproof Gigabit Ethernet port
1×RJ45 Gigabit Network port
Alternative RJ45 and waterproof port
WIFI12.4G/5.8G 300Mbps
CameraCamera8×CSI 1 Lane GMSL FAKRA Z TYPE9V
Transmission distance up to 15 meters
Video outputVideo out1×GMSL FAKRA Z TYPE
1×Micro USB
USB 5V, 1A
Micro USB 5V, 0.5A
CAN2DB9 Terminal
With CAN chip
Terminal resistor 120Ω
DB9 Terminal
TTL 3.3V
DB9 Terminal
User ExpansionTF1xTF SlotMicroSD card supported
M.21×M.2 M Key
1×M.2 B Key
Function KeyPower KEY1Button
Reset KEY1Button
Recovery KEY1Button

Power Supply

Power SupplySpec
Input TypeDC
Input VoltageWide input 12-50V DC
Typical consumption30W


Dimensions (W×H×D)245mm×68mm×172mm (I/O ports and mounting holes included) 213mm×68mm×143mm (I/O ports and mounting holes excluded)


Operating Temperature-20℃-70℃, 0.2~0.3m/s air flow5
Storage Temperature-25℃-80℃
Storage Humidity10%-90% non-condensing
Vibration5gn,10Hz~150Hz,3 Axis6


CCC, FCC, RoHS, SRRCProcessing

[4]  Jetson AGX Xavier increase of DRAM memory size from 16GB to 32GB.
[5]  According to GB/T 2423-2008 Working frequency is subject to change after temperature reaches 60℃
[6]  According to GB/T 2423.10-2008
[7]  Professional I/O ports are IP67-rated. To achieve IP67 rating of Apex Xavier, please contact MiiVii for a second version of case design.

Install Dimension

Dimensions and mounting hole position as below:

Up view(Unit:mm)

Left view(Unit:mm)

Service and Support


MiiVii is glad to help you with any questions you may have about our product, or about the use of the technology for your application. The fastest way is sending us an email: Or you could visit our developer forum: for solutions.


Warranty period: One year from the date of delivery.

Warranty content: MiiVii warrants the product manufactured by us to be free from defects in material and workmanship during warranty period. Please contact for return material authorization (RMA) prior to returning any items for repair or exchange. The product must be returned in its original packaging to prevent damage during shipping. Before returning any product for repair, it is recommended to back up your data and delete any confidential or personal data.



Front panel

Figure Apex Xavier Front view
DC INPower interfacePower input voltage: 12-50V
STATUS_LEDSystem status indicatorSystem on: solid blue System off: solid red
POWER_LEDCarrier board status indicatorCarrier board power on: solid yellow Carrier board system on: solid white Carrier board system error: solid red
LAN(Waterproof)Gigabit EthernetOnly LAN port one could work at the same time
LAN(RJ45)Gigabit EthernetOnly LAN port one could work at the same time
USB×2USB3.1PortUSB 3.1 is backwards compatible with USB 3.0 and USB 2.0
Micro USBMicro USB PortSupport USB OTG

LAN(Waterproof) Pin:

Figure LAN(Waterproof) Pin

Left Panel

Figure Apex Xavier Left Panel
GMSL INGMSL inSupport 8 GMSL cameras(9v)
GMSL OUTGMSL outSupport 1 GMSL display

There is no restriction between two groups. When you connect cameras to a specific camera group, you must attach the cameras in sequential order: A1 to A4 or B1 to B4. Homogeneous camera types are required per camera group.

Right Panel

Figure Apex Xavier Right Panel
EXPANSION PORT①I/O Expansion Port 1


2×TTL/232(TTL 3.3V)


2 × CAN(With CAN chip, terminal resistor 120Ω)


1× SYNC_OUT(3.3V)

1×SYNC_IN(Logic High 1V-12V, Logic Low 0V-0.8V)




EXPANSION PORT②I/O Expansion Port 2




5×GPIO(For IN: Logic High 1V-12V, Logic Low 0V-0.8V. For OUT:3.3V)

I/O Expansion Port Pin Definitions

There are two I/O expansion ports at the right panel of Apex Xavier, as EXPANSION PORT ① and EXPANSION PORT ②:

Figure I/O Expansion Ports

EXPANSION PORT ① Pin Assignments


Port NamePinDefinitionDescription
UART(232/422/485)AK1UART(232_RX/485_A/422_T+)AUART(232/422/485)A: 232_RX/485_A/422_T+
L1UART(232_TX/485_B/422_T-)AUART(232/422/485)A: 232_TX/485_B/422_T-
M1UART(422_R+)AUART(232/422/485)A: 422_R+
M2UART(422_R-)AUART(232/422/485)A: 422_R-
UART(232/422/485)BG2UART(232_RX/485_A/422_T+)BUART(232/422/485)B: 232_RX/485_A/422_T+
F2UART(232_TX/485_B/422_T-)BUART(232/422/485)B: 232_TX/485_B/422_T-
E2UART(422_R+)BUART(232/422/485)B: 422-R+
D2UART(422_R-)BUART(232/422/485)B: 422-R-
SYNC_IOK3SYNC_INSync in Signal
M3SYNC_OUTSync out Signal

[8]  UART(TTL/232)A is a DEBUG port, all TTL is 3.3V

If you want to use GPS Sync function, please refer to the following instruction:

Connect GPS NMEA Serial port to UART(TTL/232)B port of Apex Xavier(Baud 9600), device node is /dev/ttyUART_TTL_232_B

Connect GPS PPS Port to SYNC_IO PIN1of Apex Xavier, device node is /dev/miivii-sync-in-a

These two nodes above is occupied while GPS Sync function is available.

EXPANSION PORT ② Pin Assignment


Port NamePinDefinitionDescription
SPI PortA4SPI_SCKSPI continuous serial clock
B4SPI_MISOSPI master input slave output, or master in slave out
C4SPI_MOSISPI SPI master output slave input, or master out slave in
D4SPI_CS0SPI slave select
IIS PortF4IIS_MCLK05IIS master clock
G4IIS_PWM01IIS interrupt
H4IIS_SDINIIS serial data in
H3IIS_SDOUTIIS serial data out
G3IIS_FSIIS frame sync
F3IIS_CLKIIS continuous serial clock
IIC PortD3IIC_CLKIIC serial clock
C3IIC_DATIIC serial data
Audio PortA3IN1PMIC Signal
A2AUD_HPORRight channel signal
B2AUD_HPOLLeft channel signal

GPIO Pin Assignment

Port NamePin NumberGPIODefault SettingGPIO Export Value

Rear Panel

Figure Apex Xavier Rear Panel
①②2.4G/5.8G WiFi Antenna connectorConnect to 2.4G/5.8G WiFiantenna
③④4G Antenna connectorConnect to 4G antenna

I/O Cable

Apex Xavier provides one I/O cable with 10 DB-9(DE-9) connectors and 3 buttons, as an extension of EXPANSION PORT ①

1UART_TTL/2323Black DB9 connector
2UART_232/422/4852Gray DB9 connector
3CAN2White DB9 connector
4PPS2Dark Blue DB9 connector
5Sync I/O2Share one dark green DB9 connector
6Button31 RESET Button(White) 1 RECOVERY Button(Black) 1 POWER_ONKEY Button(Red)

Figure I/O Cable

UART(TTL/232)Ports and Pin Assignments

Apex Xavier provides 3 TTL/RS232 ports: UART(TTL/232)A, UART(TTL/232)B and UART(TTL/232)C. UART(TTL/232)A is for debugging use. Black DB9 connectors from I/O cable are shown as below:

Figure UART(TTL/232) Cable and Connectors

3 UART(TTL/232) DP9 connectors pin assignments:

Figure UART(TTL/232) Pin


UART(232/422/485) Ports and Pin Assignments

Apex Xavier provides 2 RS232/RS485/RS422ports: UART(232/485/422)A and UART(232/485/422)B. Gray DB9 connectors from I/O cable are shown as below:

Figure UART(422/485) Cable and Connectors

2 UART(232/422/485) DP9 connectors pin assignments:

Figure UART(422/485) Pin


Relation of UART Port and device node as follow:

PinUART PortDevice Node

DIP switch for UART Ports:

Open Apex Xavier’s bottom cover, DIP switches are shown as below:

Figure Apex Xavier DIP Switch

DIP switch settings are shown in the table below:

Figure DIP Switch Mapping

NumberUART PortDIP SwitchDIP Switch Settings
1PPS_AUART11.For TTL signal: Switch to 'TTL’
2.For 232 signal: Switch to '232' (default)
6UART(232/422/485)AUART51.For 232 signal: Switch to '232'
2.For 422/485 signal: Switch to '422/485'(default)

[9]  Default switch for PPS ports and UART(TTL/232) ports is 232,default switch for UART(232/422/485) ports is 485/422

CAN Ports and Pin Assignments

Apex Xavier provides 2 CAN ports: CAN_A and CAN_B. White DB9 connectors from I/O cable are shown as below:

Figure CAN Cable and Connectors

2 CAN connectors pin assignments:

Figure CAN Pin


PPS Ports and Pin Assignments

Apex Xavier provides 2 PPS ports: PPS_A(115200 Bd) and PPS_B(9600 Bd)10. The blue DB9 connectors from I/O cable are shown as below:
[10]  For the usage of PPS function, please refer to the "PPS Sync Method" section in "Synchronization Function"

Figure PPS Cable and Connector

PPS_A(115200 Bd) and PPS_B(9600 Bd), Pin Assignments:

Figure PPS Pin


SYNC Ports and Pin Assignments

Apex Xavier provides 2 sync I/O ports: Sync_out and Sync_in11. They share the green DB9 connector from I/O cable:

Figure Sync IO Cable and Connector

SYNC_IO DB9 connector pin assignments::

Figure Sync IO Pin

Synchronization Signal

[11]  For the usage of Sync_out and Sync_in function, please refer to the "Sync out Method" and "Sync in Method" sections in "Synchronization Function"


Apex Xavier provides 3 buttons: RESET, POWER_ONKEY and FORCE_RECOVERY.

Figure Function Buttons
FORCE_RECOVERYEnter Recovery modeBlack


Apex Xavier provides expansion sockets for SSD, 4G module, TF card and SIM card. Remove screws on Apex Xavier’s bottom cover as shown in below:

Figure Apex Xavier Button Cover

Expansion sockets are shown as below. After installation, SSD card and 4G module need to be screwed. Connect 4G antenna cable (attached to the board) to 4G module.

Figure Apex Xavier Expansion Sockets

General Setting

General Setting


MiiVii device use Ubuntu system. Default username: nvidia default password: nvidia

System Image and Flashing Tool

Please visit MiiVii developer forum: for flash tool and system image.

Power on

Connect an external HDMI display to MiiVii's HDMI port.

Connect a USB keyboard and mouse.

Connect the included AC adapter to power socket. Plug AC adapter into an appropriately rated electrical outlet.

Figure Startup

Power off: Use the following command in terminal.

For MiiVii device with entity PWR button, you can also press and hold PWR button.

sudo poweroff

Reset: Use the following command in terminal.

For MiiVii device with entity RESET button, you can also press RESET button to reboot.

sudo reboot

MiiVii Setting

MiiVii Device provides a setting program called MiiVii Setting. You can get access to basic information and settings through MiiVii Setting. Click the icon on upper right corner。In addition, these settings can be set through code, please refer to the section after MiiVii Setting introduction.

Figure Version Info

You can set up GMSL camera here. MiiVii Device Apex has two groups of GMSL camera GMSL_A and GMSL_B, while MiiVii Device S2Pro has only one group GMSL_A.

Figure Set up GMSL Camera

You can set up Sync mode here:

Figure Set Synchronization Mode

Default setting is NTP mode. MiiVii Device accept NTP service while set to this mode.

MiiVii Device accept GPS synchronization while set to GPS mode.

MiiVii Device cannot be synchronized but can synchronize other sensors while set to None mode.

You can also set Sync out frequency here, please note it is not GMSL frequency.

Finish setting and exit

Figure Finish setting

You can also check software version through code

cat /etc/miivii_release
APEX 4.2.2-1.5.0

Set up GMSL Camera

When accessing GMSL camera for the first time and changing GMSL camera model, you need to change the configuration file and restart the device.Configuration file path:/opt/miivii/config/gmsl_camera/camera.cfg MVGCB-001A :Entron MVGCB-002A: Calmcar MVGCB-003A:Adayo MVGCB-006A:Sensing The default configuration of GMSL_A and GMSL_B are both MVGCB-001A.

Set up synchronization Mode and Sync out frequency Synchronization Mode and Sync out frequency settings need to modify the configuration file and restart the device.Configuration file path:/opt/miivii/config/sync/sync.cfg Synchronization Mode is achieved by modifying the X value of "sync_type:X". 0:GPS mode 1:NTP mode 2:None mode Sync out frequency is achieved by modifying the XX value of "sync_out_freq:XX". Only integers are supported.\

cat /opt/miivii/config/sync/sync.cfg
sync_out_freq---the frequency is 25 for sync out time
sync_type---0 is for GPS calibrate time
1 is for SYS calibrate time
2 can not calibrate time

Power Mode Setting

MiiVii device has several power modes. You can set up power mode through the green NVIDIA icon on the upper right corner.

Figure Power mode Icon

For MiiVii device equipped with NVIDIA Jetson AGX Xavier, the following table shows details of each power mode . The default mode is 3.

You can also set up through code:

#check current mode
sudo nvpmodel -q verbose
# set to a certain mode
sudo nvpmodel -m [MODE ID]
#achieve best performance of current mode
sudo jetson_clocks
#check more info
sudo jetson_clocks --show



Please change the code in <> to your GPIO export value

#switch to root
sudo su -
#set GPIO to high
echo 1 > /sys/class/gpio/<gpio339>/vlaue
#set GPIO to low
echo 0 > /sys/class/gpio/<gpio339>/vlaue

For auto config, write above commands to file

Note: Description of GPIO external connection

DO is on/off output (on/off output is no output voltage, control output low voltage, pin grounding in normal time, control output high voltage, pin neither output high level nor low level, high resistance state.If the external pull-up resistor is connected, the voltage will be drawn to the power supply voltage of the pull-up resistor at the time of high output voltage.)

Set to high voltage, DO foot and external voltage are the same (0V~40V); Set to low level, DO feet for the ground.


Open device node in /dev/. Then use stty command to set parameters. See stty command manual for details, please change the code in <> to your UART device node.

#config UART
$ sudo stty -F /dev/<ttyTHS1> speed 115200 cs8 -parenb -cstopb -echo
#send data through UART
$ sudo echo “miivii tty debug” > /dev/<ttyTHS1>
#receive data from UART
$ sudo cat /dev/<ttyTHS1>

Use GPS To Give Time To The Device

Advantages of GPS timing function: The device obtains local standard time signal from GPS satellite through GPS device, so as to accurately locate the device time

GPS Support Model

The serial port supports modifying baud rate. The default baud rate is 9600 GPS brand supported: all GPS devices that conform to GPRMC data standard format output and must have PPS second pulse output

Connection Mode

Refer to the "Interface Description" in the manual.

Timing Function Configuration

When the GPS is connected for the first time, the system configuration should be conducted in MiiVii Setting configuration software. Configure the Sync Mode option to GPS Mode and restart the system.Please refer to the section of "MiiVii Setting" for specific methods.

Check Whether The Timing Was Successful

Modify the system time, enter the command

sudo date -s "2018-10-1"

Wait for 2~3s, check the current time, and enter the command


If the display time is: "2018-10-1", it means the timing failed If the display time is: "current time", the timing is successful


If the timing fails, fault troubleshooting shall be carried out

1. Check If The GPS Has Output

Type the command

cat /dev/ttyTHS1

The terminal receives output with a GPRMC field, such as: GPRMC,014600.00,A,2237.496474,N,11356.089515,E,0.0,225.5,310518,2.3,W,A*23

2. Check The OUTPUT of THE GPS PPS Signal

Type the command

hexdump /dev/miivii-sync-in-a

The terminal has hexadecimal data output, such as:
0000400 02fe 9f40 490e 562d 1647 004e 0000 0000

3. Identify Methods

If the above "1"&"2" has no output, indicating that the GPS is not working properly, you can put the GPS out of the window or go outside for testing, or change the GPS for testing

If the output of "1"&"2" is normal, check whether the MiiVii Setting configuration is in GPS mode. If not, change the mode and restart it

After the above operation, GPS timing is still unsuccessful, enter the command

hexdump /dev/miivii-sync-out

The terminal has hexadecimal data output, such as: 0000400 02fe 9f40 490e 562d 1647 004e 0000 0000

If there is no data output, it may be that there is no matching brush tool and mirror brush. It is recommended to check the mirror and the brush tool to re-brush

If there is data output, it may be a hardware problem,it is recommended to contact after-sales maintenance treatment


Please check cansend.c and candump.c from for instructions.

Test command:

sudo modprobe can
sudo modprobe can_raw
sudo modprobe mttcan
sudo ip link set can0 type can bitrate 500000 berr-reporting on loopback off
sudo ip link set up can0
sudo cansend can0 123#abcdabcd
sudo candump can0
sudo ip -details -statistics link show can0
sudo ifconfig can0 down

CAN fd:

sudo modprobe can
sudo modprobe can_raw
sudo modprobe mttcan
sudo ip link set can0 type can bitrate 500000 dbitrate 2000000 berr-reporting on fd on
sudo ip link set up can0
sudo cansend can0 213##011

Expansion Setting

SSD Setting

#check ssd information: 
sudo fdisk -lu

Figure SSD Information
#Format SSD: 
sudo mkfs -t ext4 /dev/nvme0n1

Figure Formatting SSD
#Check UUID: 
sudo blkid /dev/nvme0n1


Setting method of automatic mounting SSD: Create a systemd service in the /etc/systemd/system path to automatically mount the SSD when booting, such as: miivii_mount_ssd.service

#Create miivii_mount_ssd.service
vim miivii_mount_ssd.service
Description=MIIVII specific script



Create a script in the /etc/systemd/ path to mount the SSD, such as:

mount -o rw /dev/nvme0n1 /home/nvidia/workspace

change mode for this script

sudo chmod +x

Set the mounted SSD service to start at boot

sudo systemctl enable miivii_mount_ssd.service

Wireless Setting

WiFi Setting

MiiVii S2, S2Pro and EVO TX2 ,EVO TX2 GMSL2 has WiFi function.While Apex Xavier MiiVii EVO Xavier, Lite NX and Lite Nano provides WiFi function via a expansion module. Please refer to the information in [Expansion] to intall WiFi module. Click the network icon in upper-right corner of the desktop. Find the name of your WiFi network and click on it. Enter your password and click ‘Connect’.

Figure WiFi Connection

4G Setting

4G module is not included in MiiVii device package. Please refer to the information in [Expansion] to intall 4G module. Instructions for 4G module configuration are shown as below, using QUECTEL EM05 as an example. EM05 4G driver is included in MiiVii system. This SIM card could be detected automatically. There should be 4 devices under /dev/ttyUSB0~/dev/ttyUSB3.

Users need to choose their own 4G LTE SIM card(note that mobile phone sim card and IOT sim card is supported, but IOT sim card is hardware-binding, please consult your carrier for more information ). Before getting started, please insert SIM card into sim socket.

Click the network icon in upper-right corner of the desktop. Find 'Edit Connections', then click 'add'.

Change connection type to 'Mobile Broadband'


Change country to 'China'. Then choose network provider.

If your network provider is not included in the list, then enter it manually.

Choose your Plan

China Mobile choose 'Internet',China Unicom and China Telecom choose default

APN settings: China Mobile: cmnet; China Unicom: 3gnet; China Telecom: ctnet

Check entire settings, then click 'Apply'

Enter username and password, click 'save'

Click the network icon in upper-right corner of the desktop. Then connect to your network. If you need auto connection, please edit Network connections:

Select 'General', then check 'Automatically connect to this network when it is available'

Reset MiiVii device, you can automatically connect to 4G network

Synchronization Function

Sync Introduction

Apex Xavier provides 3 ways to synchronize sensor input data: PPS, Sync in and Sync out. Synchronization error is within 1μs. (Error estimation method is attached to the end of this section)

Figure Sync Fearure Schematic

Sync Function

PPS Sync Method

MiiVii device generates PPS(Pulse width: 50ms)1. The NMEA GPRMC message is sent through PPS port. NMEA message example:


[1]  For the hardware connection method of the PPS, please refer to the "PPS Ports and Pin Assignments" section in the "I/O Cable"

'060249.000' represents 'Time of fix 06:02:49 UTC'. Receiving PPS signal and GPRMC message, sensors which support PPS synchronization, could synchronize their internal clock with system time. Together with the timestamp, sensor data is sent to MiiVii device, so that Apex Xavier receives the data acquisition time.

Figure PPS Sync Method Schematic

Synchronization verification (RS-LiDar-16 sensor):

When the sensor connects with Apex Xavier using only data wire, device ROS Node sends hardware timestamp to the system, which is determined by sensor’s internal clock. As shown below, there is a big difference between hardware timestamp and system time.

Figure Comparison of Lidar Time and ROS time without Synchronization

After connecting the sensor with MiiVii device's PPS_SYNC and PPS_TX pin, the sensor’s internal clock is synchronized with system time. Comparing the hardware timestamp and system time, when the difference is less than 100ms, it means PPS synchronization is functional.

Figure Comparison of Lidar Time and ROS time after Synchronization

Sync out Method

MiiVii device could generate one 1-30Hz signal (Pulse width: 5ms) through its sync-out pin2. This signal is received by sensors as trigger signal for data acquisition. Meanwhile, MiiVii device records the moment of this signal’s rising edge. After data acquisition, MiiVii device associates received data with the trigger signal’s rising edge moment as data timestamp. Thus, MiiVii device system obtains data acquisition time.
[2]  For the hardware connection method of the Sync out, please refer to the "SYNC Ports and Pin Assignments" section in the "I/O Cable"

Figure Sync out Method Schematic (25Hz)

Also, MiiVii device provides sync-out feature for GMSL interface. See GMSL Camera Section for details.

Synchronization Verification

Set the sensor to external sync configuration. By recording ROS bags, check whether the sensor trigger signal equals to your setting or not. If the difference is within 1Hz, it means sync-out method is functional.

Sync in Method

Sensors with sync-in mode could generate a signal at the beginning of data acquisition3. MiiVii device receives this signal and records its rising edge moment. After data acquisition, MiiVii device associates received data with the signal’s rising edge moment as data timestamp. Thus, MiiVii device system obtains data acquisition time.
[3]  For the hardware connection method of the Sync in, please refer to the "SYNC Ports and Pin Assignments" section in the "I/O Cable"

Figure Sync in Method Schematic (10Hz)

Synchronization Verification:

Print the signal’s timestamp received by SYNC_IN pin. Compare this timestamp with system time of frame received (ros::time::now). If the difference is less than 100 ms, it means sync-in method is functional.

Synchronization error estimation

Measure PPS signal duration with oscilloscope

Figure PPS Signal Duration

Theoretical Value(μs)Measurement Result(μs)Error(μs)

Measure sync-out signal duration with oscilloscope

Figure Sync-out Signal Duration (10Hz)

Theoretical Value(μs)Measured Value(μs)Error(μs)
Sync out10000099999.20.8

Evaluate synchronization feature by measuring timestamp jitter

Sample code to calculate timestamp jitter

MiiVii device provides sample code for users to evaluate the synchronization feature.

#navigate to the following directory
cd /opt/miivii/feature/sync_test/bin
#evaluate sync-out method performance
#evaluate sync-in method performance
#evaluate pps synchronization method performance

Sync out jitter measurement

Sample code(sync_out_test) could run real-time analytics on the received timestamp. Time interval, frequency, max deviation and standard deviation are printed out.

Figure Sync out Test Result

Sync in jitter measurement

Connect an external signal with fixed frequency to MiiVii device SYNC_IN pin. Run sample code (sync_in_test) for real-time analytics on the received timestamp.

MiiVii device's SYNC_OUT pin could be used as an 25Hz external signal to connect with SYNC_IN pin

Figure Sync Pin Connection Schematic

Figure Sync-in Jitter Test Result

PPS jitter measurement

Connect MiiVii device's PPS pin and SYNC_IN pin. Run sample code (pps_test) for real-time analytics on the received timestamp.

Figure Sync Pin Connection Schematic

Figure PPS Test Result

GMSL Function


  • GMSL cameras do not support hot swapping.

  • GMSL Sync is triggered by one sync signal with frequency of 25Hz,you can set up frequency from 14Hz to 30Hz in gmsl SDK.

  • MAXIM GMSL can drive a cable length of 15 meters.

  • Support 8-Bit YUV format video with resolution of 1280×720@25, 1280×728@25, 1280×800@25 and 1280×1080@25.

  • Support following GMSL camera brand and model:

    • Entron : S001A190CM0A,S001A105CM0A,S001A065CM0A,S001A038CM0A,F001R182CM0S,F001R120CM0S,F001R100CM0S,F001R060CM0S,F001R028CM0S

    • Calmcar: CA20205201,CA30212801,CA30211201,CA10219201

    • Adayo: C1A201,C1A203,C1A204

    • Sensing:SG1-AR0143-H030,SG1-AR0143-H059,SG1-AR0143-H125,SG1-AR0143-H197 For more GMSL camera support information, please contect:


Please refer to 'Interfaces'

Camera Setup

Please set up your GMSL camera in MiiVii Setting before use.

Video Output

MiiVii device offers egl_demo and opencv_demo for gmsl video output. Please refer to opt/miivii/features/gmsl_camera

Demo code13

cp -ravf /opt/miivii/features ~/
cd ~/features/gmsl_camera
make -j;

#Execuate with only one camera plugged
./bin/4cameras_egl_demo -d /dev/video0 -s 1280x720
./bin/8cameras_egl_demo -d /dev/video0 -s 1280x720
./bin/cameras_opencv_demo -d /dev/video0 -s 1280x720 -r 25

#If you have 2 cameras plugged in port A

./bin/cameras_opencv_demo -d /dev/video0 -s 2560x720 -r 25

#If you have 4 cameras plugged in port A

./bin/cameras_opencv_demo -d /dev/video0 -s 5120x720 -r 25

Figure GMSL Output

[13]  parameters are defined by camera resolution. For <nWxH>, n is the number of connected cameras; WxH is video resolution. For instance, when two 1280x720 cameras are connected, parameters should be set at <2560x720>. When connected to different camera group, /dev/videoX should be set as /dev/video0 or /dev/video1.

Demo and application

MiiVii offers several demo code:

Algorithm: MiiVii device offers human, vehicle, bicycle detection. Please refer to /opt/miivii/features/algorithm

Acceleration SDK: MiiVii device provides acceleration SDK based on Yolo v3. Please refer to /opt/miivii/features/miivii-accelerator

ROS demo: MiiVii device offers ROS DEMO. Please refer to /opt/miivii/ros_demo

Among them, miivii_msgs is the message rule of ROS. miivii_gmsl is the ROS node of GMSL camer. miivii_detector is the ROS node of object detection.

Besides, MiiVii also open source part of our code in Github. Please visit for more information.


Exception Handling

If bug occurs to you while developing, please check DEBUG log first:

Step 1: Find the position of DEBUG port in 'Interfaces'

Step 2: Connect DEBUG port with a PC using a UART-USB cable1

Step 3: Download Serial debugging tool in the PC, set Baud to 115200

Step 4: Check DEBUG log

[1]:According to the information in 'Interfaces', select the RS232-USB cable or TTL-USB cable。

Images Burning

1.Function Introduction

Miivii burning tool, suitable for Miivii series products.The tool has two main functions: burn images and clone images. You can burn the official image of Miivii power for Miivii devices using an X86 architecture PC as the burn host. After developing a Miivii device for some time, you can save your progress by cloning an existing device images and burning it to other Miiivii devices.

2.Prepare Software And Hardware

2.1. Burn The Host Ready

It is necessary to connect the writing host to the Miivii device to burn the images. The recommended figuration of the write host is as follows:

● CPU uses Intel core series processors with X86 architecture

● Memory 8GB DDR3 and above

● Spare hard disk capacity 40G and above

● The system is Ubuntu Linux X64 v16.04 or V18.04

2.2. Prepare Miivii Burn Tools And Miivii Device Images

● Low for a link:

● Download the Miivii burn tool

● Download the Miivii device image and the image MD5 value

● Store the above files in the same path as the burn host

● Supports simultaneous burning of multiple identical devices, but does not support simultaneous burning of multiple different devices

Note: The file storage path cannot contain Chinese characters or special characters

2.3. Prepare The Hardware

● Miivii equipment and power, USB data cable

3. The Operation

3.1 Hardware Connection

● Connect the writing port of Miivii device to the writing host through USB data cable

3.2 Use of Software

3.2.1. Images Burn

● Copy the images and MD5 values to the imGS folder of the burn tool

● Go to the bin folder of the burn tool and open the Burn tool "MVflasher"

● Click [Enter upper computer password] button, enter the current burning host boot password

● In the device model on the right, select the device you want to burn and the Images version. Click the "Burn file" button to select the specific image for burn

● Click the "burn" button to enter the burn process:

● Images burning usually takes more than 15 minutes to complete. Please be patient:

3.2.2. Images Clone

● Enter the FORCE_Recovery mode of the Miivii device to be cloned according to method 3.1, and open the burn tool

● Click [Enter upper computer password] button,enter the current burning host boot password

● Click the "Clone file" button to modify the path and name of the clone file saved in the write host :

Note: The file storage path cannot contain Chinese characters or special characters

● Click the "clone" button to enter the cloning process, as shown in the figure:

● Images cloning usually takes more than 30 minutes to complete:

● Cloning completed, will generate a clone image and MD5 file, please burn again according to step 3.2.1 operation

Note: if you encounter problems in the cloning process, please contact Miivii power for help:

Attached 1. Kernel and DTB burn

Miivii device burn tool can burn system kernel and DTB separately, click [more] in the upper right corner to choose.

Note: before you do this in meters, power after confirmation:

Attached 2. Self-test For Burning Problems

If you encounter burning problem, please first conduct self-test according to the following items:

● Check whether the upper computer boot password is entered in the upper left corner of the burn tool

● Check whether to enter the Recovery mode, can be identified by the lsusb command

● Check whether Micro USB cable quality is up to standard and whether it is only a dual-core cable used for charging

● Check upper computer, whether it is x86-64 architecture desktop, notebook.(Server, embedded device, virtual machine and other devices are not supported temporarily)

● Check whether the upper computer system is Linux 1604 /1804

● Check the disk format, the recommended disk format for burning hosts is EXT4

● Check whether the upper computer capacity is enough

● The Images and burn tool storage path cannot have Chinese or other special characters