# ultra96 v2 pynq user guide
[](https://hackmd.io/lF3g44hHSMGNJUAQ2jeulA)
此篇文章旨在介紹Ultra96-V2 PYNQ的相關知識
>(1) Ultra96-V2 PYNQ 相關Tutorial \
>(2) Ultra96-V2 PYNQ 開關機步驟設定 \
>(3) 在Ultra96-V2 PYNQ上使用簡單Overlay之方法\
>(4) Ultra96-V2 PYNQ 與 Host 的檔案傳送方法\
>(5) Ultra96-V2 PYNQ上安裝DPU步驟
>(6) Ultra96-V2 PYNQ python版本切換
### ==Board Introduction==
* <font color="#f00">**Tutorial**</font>
- Ultra96 官方
>1. http://zedboard.org/product/ultra96-and-pynq-framework
- SD card 燒錄
>1. https://www.96boards.org/documentation/consumer/ultra96/ultra96-v2/installation/sd-etcher-install.md.html
>2. 用Win32 Disk Imager將.img燒錄到Sd card(imgv2.5大概5分鐘)
- SD card 格式化
>1. sd card插入pc,開啟檔案總管
>2. 右鍵點usb(E:),選擇格式化
>3. 確定完成格式化
- Xilinx 官方
>1. https://www.xilinx.com/
### ==啟動與基本設定==
* <font color="#f00">**Tutorial**</font>
- 開機,基本Setting相關:
>1. https://ultra96-pynq.readthedocs.io/en/latest/getting_started.html
>2. https://www.youtube.com/watch?v=is34FBOlDJE&t=177s
>3. http://www.pynq.io/?_ga=2.177882661.1441341331.1613630347-949178109.1587945572
- Custom overlay相關:
>1. https://www.youtube.com/watch?v=Dupyek4NUoI&t=14s
- 國外論壇 (因為中文教學很少,可以上論壇發問)
>1. https://discuss.pynq.io/
>2. https://forums.xilinx.com/
---
- <font color="#f00">**啟動步驟**</font>
>> * <font color="STCAIYUN">**方法1(USB連線host)**</font>
>> >1. 連接電源線,成功之後會亮綠燈
>> >2. 插入燒錄好的sd card(os映像檔)
>> >3. 按下SW4開關啟動板子
>> >4. 用usb線 連接 板子與host(PC),成功的話PC的檔案總管會顯示出來,如下圖

>> >5. 等一下下,打開chorme 在網址輸入 http://192.168.3.1,密碼xilinx

>> >6. 成功即可連線到jupyter

>> * <font color="STCAIYUN">**方法2(Mini DP連線monitor)**</font>
Note:
(i) SD card image不需要重新燒錄(使用ultra96v2_v2.5.img即可)
(ii) 線的來源:https://www.cablematters.com/pc-521-153-active-mini-displayport-to-hdmi-adapter-mini-dp-to-hdmi-supporting-eyefinity-technology-4k-resolution.aspx
>> >1. minidp+hdmi2條線連接在ultra96跟monitor之間,重新開機ultra96即可(usb線不用接)
>> >2. 成功之後會有開機畫面,最後進入PYNQ粉紅色介面,直接在瀏覽器網址輸入192.168.3.1 即可登入jupyter介面, Password: xilinx
---
- <font color="#f00">**WIFI連線(需要下載github的repo、python package才需要)**</font>
>1. Open common->wifi.ipynb

>2. 執行each shell

>3. In[2]輸入wifi 名稱+密碼
>4. In[3]測試wifi是否連接成功(照片是成功的)
---
- <font color="#f00">**關機**</font>
>1. jupyter notebook new 一個 terminal

>2. $sudo shutdown -P now

>3. 等到板子只剩下電源綠燈還亮著,就可以拔電源線了
---
### ==Overlay相關==
* <font color="#f00">**Tutorial**</font>
- Download Vivado HLS and Vivado
>1. https://www.xilinx.com/support/download.html
- <font color="STCAIYUN">**方法1:使用open source overlay or download project on github**</font>
>* EX. https://github.com/Xilinx/PYNQ-ComputerVision
>1. jupyter notebook new 一個 terminal

>2. 照著github上的教學輸入download 指令

>3. 成功之後,jupyter就會出現新的file,裡面即可使用它的overlay

---
- <font color="STCAIYUN">**方法2:自己寫custom overlay**</font>
* Tutorial: https://www.youtube.com/watch?v=Dupyek4NUoI&t=14s
* 注意
>1. 需要用到Vivado HLS,Vivado 這2個軟體,我自己使用2018.3版本,可以去Xilinx官方下載(tutorial有link)

>2. Vivado HLS可以製作overlay,Vivado 把製作好的overlay(IP)跟板子做連結
>3. Vivado HLS需要選擇板子的型號:ultra96v2 board 為 xczu3eg-sbva484-1-i
>4. Vivado 也需要選型號,但是預設可能不會有ultra96 v2 board的board file,需要自己去下載,或是跟我拿也可以
* 步驟
>1. 打開Vivado HLS設計IP,結束之後匯出檔案,打開Vivado把IP跟電路接在一起
>2. 最後產生的檔案會有tcl,bit 這2種
>3. 將tcl,bit檔案move 到board上面(路徑為\\192.168.3.1\xilinx\pynq\overlays)
>4. 回到jupyter 上面,測試overlay有沒有報error,下圖為import overlay python code
>
>5. 沒有Error產生基本上就沒問題,那個warning代表其實overlay比較完整的檔案為hwh,bit檔案,但我們是tcl,bit檔案,他說tcl,bit以後有可能會錯,但我目前沒有遇到
### ==OS操作相關==
- <font color="#f00">**移動檔案(PC->Board 或 Board->PC)**</font>
>0. 應該網路還有其他方法,但我紀錄我比較常用的
>1. 當ultra96成功連線到PC後,在PC打開檔案管理員
>
>2. 紅色地方輸入 \\\192.168.3.1\xilinx
>3. 需要輸入帳號密碼,都是xilinx
>4. 進去之後即可看到它的file 頁面,可以直接從PC拉檔案進去board上
>
>5. 有可能遇到permission的問題,ie權限不足
>> <SOL>
>>
>> (i) 最一開始應該還是可以拖曳資料夾到主要目錄,但可能更裡面的file都不能移動
>>
>> (ii) 回到主要目錄,把需要的檔案(EX. overlay file)丟到主目錄
>>
>> (iii) 回到jupyter, new a terminal
>>
>> (vi) 利用linux command 去移動,ie. command 加一個sudo即可
>> 
### ==DPU pynq相關==
You can use the overlays of CNN models such as yolov3,mobilenet through DPU on PYNQ jupyter notebook. However, if you want to generate the overlay of your own customized CNN models, you have to download DPU-PYNQ on your server. We will introduce how to generate customized overlay by DPU-PYNQ and Vitis AI in another repo.
- <font color="#f00">**Download(github可選擇version)**</font>
>> (i) https://github.com/Xilinx/DPU-PYNQ/tree/v1.2.0/boards
>>
>> (ii) https://forums.xilinx.com/t5/AI-and-Vitis-AI/Setup-issue-DPU-PYNQ-2-5-on-ZCU104/td-p/1200678
>> >
git clone --branch v1.1.2 --recursive --shallow-submodules https://github.com/Xilinx/DPU-PYNQ.git
cd DPU-PYNQ/upgrade
sudo make
sudo pip3 install pynq-dpu==1.1.2
cd $PYNQ_JUPYTER_NOTEBOOKS
sudo pynq get-notebooks pynq-dpu -p .
<Note>: pynq-dpu版本可以自己選,不建議用最新的,bug多
### ==xilinx ubuntu 切換python版本==
- <font color="#f00">**img v2.5預設python2 version**</font>
>> (i) https://blog.csdn.net/qq_35608277/article/details/104010937
>>
>> (ii) https://www.itread01.com/content/1544586322.html