Skip to content

Latest commit

 

History

History
112 lines (78 loc) · 6.06 KB

Usermanual.md

File metadata and controls

112 lines (78 loc) · 6.06 KB

Introduction

The USB To HDMI Adapter(External Graphic Card) is an attempt to reproduce a device that is similar to Startech's USB32HD4k device that works on Linux, Ubuntu specifically.

Currently, the device supports video streaming up to 1080p at 30HZ.

The device is compatible to most linux distribution that support by evdi. Currently, the device is tested and verified on Ubuntu 20.04.

Safety

Given the device is only powered by the USB 3.0 port (around 5 Watt), the device does not introduce the risk of electrical shock and injury in any situation.

However, please keep the device away from water split and do not use the device in any wet conditions. Doing so could damage the device!

Description & Terminology

  1. C++ user program - C++ code that utilize evdi to create a virtual screen in the Linux-based OS.

  2. Host laptop - The laptop/computer that runs the C++ program that generates video data.

  3. CyUSB3014 - A Cypress USB 3014 Evaluation board produced by Infineon. Left component in Figure 1 and Figure 2.

  4. ULX3s - An open-sourced ECP5 FPGA board designed by Radiona. The right component in Figure 1 and Figure 2

  5. PCB Conversion board - A customized design double-layer PCB board that connects the pins between CyUSB3014 and ULX3s. Moreover, the board utilizes the Vcc pins on CyUSB3014 to power the ULX3s device. The middle component of Figure 1 and Figure 2.

Figure 1: Front View of Component

Front View

Figure 2: Back view of the Component

Back view

Installation Procedure

1. Connect the USB 3.0 wire

Connect the USB 3.0 Wire to the USB 3.0 Port on CyUSB3014 and connect the other end of the wire to USB 3.0 port on laptop.

2. Connect the HDMI cable

Connect the HDMI cable to the HDMI port on ULX3s.

3. (Optional: only require if never flashed the verilog code to ULX3s)

Connect the Micro USB 2.0 cable to the FPGA. Navigate to /ulx3s-misc-colonePath/examples/dvi (Refer to STEP 4 in Prerequsite section of TechnicalManual), run the following command to flash the Verilog code to FPGA.

./loadToFlash.sh

Instruction/Operation

Step 1: Navigate to the modified Edid project

cd to /pathOfClonedEdid/userProgram (refer to step 5 of prerequisite in TechnicalManual)

Step 2: Configure Screen Resolution in C++ code

Modify the Line 199-2002 in Main.cpp to select the EDID file that match to the desired screen information.

NOTE: To generate edid file for a screen resolution that is not included in the GitHub repo, please check out the EDID project by searching the AnalogDisplay.md. Once located the did file, run the bash instruction under How to install EDID file and copy the new edid binary file to the project folder.

Step 3: Build the C++ program

Run the following code to compile the program

make clean
make

step 4 (Only when modified resolution setting in step 2 / Modified verilog code)

cd to into the directory of /ulx3s-misc-colonePath/examples/dvi (refer to step 4 of Prerequisite in TechnicalManual )

Modify line 1-3 of top_usbtest.v

NOTE Due to the imperfect design of the PCB Conversion board, the current support resolution is listed below. For more details on the PCB conversion board, please refer to the technical manual. The list will be updated once a better PCB board design comes out

Resolution FPS
640x400 30 or 60 HZ
640x480 30 or 60 HZ
720x576 30 HZ
800x480 30 HZ
1366x768 30 HZ
1280x1024 30 HZ
1920x1080 25 HZ

Re-compile the Verilog code and flash the Verilog by running the following command.

./loadToFlash.sh

step 5 : Reset the FPGA state

Press the reset button for about 5 seconds. NOTE Currently, the reset button is configured to be the right movement button(see Picture below). You are welcome to reconfigure the button by making change in the verilog code. However, be sure to remember to recompile and re-flash the verilog code after your change, refer to step 4 of Instruction/Operation .

step 6 : Launch the C++ program

cd back to /pathOfClonedEdid/userProgram ( refer in step 1 of Instruction/Operation ) and run the following command

./main

After a few seconds, the screen will blink and the monitor will show the newly configured screen.

Troubleshooting

  1. When the screen is distorted or out of the image
    1. First close the ./main program on the laptop by press ctrl+c
    2. Press the reset button(refer to step 5 of Instruction/Operation) for around 5 seconds or longer.
    3. Rerun the ./main program
  2. When No image is showing on the monitor Refer to the Instruction/Operation section to choose a lower/higher resolution screen setting.

Further Support / Assistant

If you have any issues or questions regarding the project, please create a new issue in the Github Repo and mention me in the discussion. I will try my best to respond to the question as soon as possible.