Google Coral TPU Edge開發板 – 硬體介紹與開機

Google Coral TPU Edge系列分成開發板與USB加速棒兩種版本。本文將說明如何讓Coral開發板開機以及執行預設的範例。我是跟著原廠文件使用我的 mac 電腦來操作,後續會說明如何使用 micro SD卡來開機。

我先說明到目前為止覺得與 Raspberry Pi / NVIDIA Jetson Nano的不同之處

  1. 原廠文件未說明如何使用SD卡開機(但網路上有教學),需與 host 電腦連線之後刷機後開機
  2. 原廠文件都是以 Mac / Linux 系統來說明如何讓板子開機,Windows做法還要再整理
  3. SSH預設不開啟,且必須push一個 google key到板子上才能SSH連入。本文做法是將板子用USB線接上電腦後使用 screen 程式連入。

開發板介紹

Coral Dev Board 是一片包含Edge TPU處理器的單板電腦,適合用來開發可直接在裝置上進行推論的機器學習專案。該有的通訊介面也都有,Jetson nano 相較之下只有有線網路(對,沒有藍牙也沒有 Wi-Fi…)

板子的外觀與配置上與 Raspberry Pi 相當類似,關於各接頭說明請參考data sheet

https://coral.withgoogle.com/docs/dev-board/datasheet/

前置作業

請注意!在說明”請接電源“之前都不要接電 (USB type C port),要準備的東西真不少…

  • Linux 或 Mac 電腦 (後續稱為 host 電腦)
  • USB-A – USB-microB傳輸線 (連接PC – 板子的序列埠)
  • USB-A – USB-C cable (連接PC – 板子的資料埠)
  • 5V / 3A USB Type-C 電源供應器 (手機充電器 OK)
  • 網路線或 Wi-Fi連線 (需要輸入帳號密碼)
  • 序列通訊軟體,例如screen、picocom 或PuTTY。我也是在 Mac 上使用 screen 來連線。
  • 最新版的 fastboot。這是包含在 Android SDK Platform-tools中的工具程式。請下載Android SDK Platform-tools,下載解壓縮會看到很多檔案,但我們只要 fastboot 就好。把 fastboot 放到 ~/.local/bin,並檢查版本。我的是 29,原廠文件要求要 28.0.2 以上。
    mkdir -p ~/.local/bin
    
    sudo mv ~/Downloads/platform-tools/fastboot ~/.local/bin/
    
    fastboot --version
  • Mendel Development Tool (MDT).
    MDT 是一組 command line tool,用來與 Mendel 裝置(Coral) 來互動。例如,MDT 可以列出已與電腦連線的裝置、安裝 Debian Linux 套件、對裝置開啟shell 還有 push key (後續SSH連線設定時會介紹)等等。請用以下指令來安裝MDT:
    pip3 install --user mendel-development-tool

    如果在 terminal 中輸入 mdt 指令出現錯誤的話,請檢查是否已將 mdt 路徑寫入到 PATH 系統變數中。Windows:\Users\yourname\AppData\Roaming\Python\Python36\Scripts;Mac:/Users/yourname/Library/Python/3.7/bin/;Linux:~/.local/bin/

刷機開機

Coral 板子出場時未包含系統映像檔,只有一個 U-Boot bootloader。 開始刷機之前請先確認:

  1. 板子完全不接電,也不連線到電腦
  2. 板子已設定為 eMMC mode,如下圖中的指撥開關由左到右分別為 (上下下下)
https://coral.withgoogle.com/docs/dev-board/get-started/

請根據以下步驟來操作,在此只列出Mac,使用Linux的朋友請參考原廠文件:

  1. 安裝 Mac 版的 CP210x USB to UART Bridge Virtual COM Port (VCP) driver
  2. 連接序列埠(還不要接電源)
  3. 使用 micro USB 傳輸線連接 host 電腦與開發板的序列埠 (只有一個 micro USB 所以不會接錯)。板子上的橘色與綠色LED燈會亮起。
  4. 於 host 電腦開啟 terminal,並輸入以下指令來確認連線
    screen /dev/cu.SLAB_USBtoUART 115200
  5. 這時畫面應該會完全空白。別擔心,因為板子還沒接電。如果看到 [screen is terminating],代表連線有點小問題。這時把 micro USB線拔除後重新接上,再次輸入 4. 的指令應該就可以了。
  6. 開機!請把 5V / 3A USB type C 接上板子 (靠近音源接頭),接頭上有標記 “PWR“。板子上紅色LED會亮起,風扇會開始轉動。
  7. 啟動 fastboot。在terminal中輸入以下指令,會直接換行並等候 host 電腦來寫入系統映像檔。
    fastboot 0
  8. 透過資料埠與 fastboot連線。只剩下最後一個 USB type-C接頭(標示為 “OTG“),請再用一條傳輸線連接 host 電腦與板子的這個埠。
  9. 在 host computer 開一個新的 terminal (原本的screen terminal不要關掉),並輸入以下指令:
    fastboot devices
  10. 會看到類似 [1b0741d6f0609912        fastboot] 的訊息代表 fastboot 有抓到裝置了。
  11. 下載系統映像檔並寫入板子。在與上一步Froterminal中輸入以下指令
    cd ~/Downloads
    
    curl -O https://dl.google.com/coral/mendel/enterprise/mendel-enterprise-chef-13.zip
    
    unzip mendel-enterprise-chef-13.zip \
    && cd mendel-enterprise-chef-13
    
    bash flash.sh
  12. 刷機過程約4~5分鐘,會看到很多訊息不斷出來

登入

呼…  經過一番折騰,請用預設帳號密碼(mendel / mendel)登入,登入後畫面如下:

輸入 df -h 來看看還有多少空間

連上網路並更新相關軟體

要連上網路才能更新軟體或下載範例,這一定要完成喔。網路線或Wi-Fi 都可以,請在板子的 terminal 輸入以下指令:

nmtui

選擇 Activate a connection 並在 Wi-Fi (wlan0) 選項下選擇一個網路來連線。或輸入以下指令來直接建立連線:

nmcli dev wifi connect <NETWORK_NAME> password <PASSWORD> ifname wlan0

檢查連線有沒有成功

nmcli connection show

可以看到板子已經順利連上 cavedu 這個無線網路,如下圖:

透過MDT連上板子

現在板子上已經有 Mendel 系統了,micro USB線可以拔掉。這時要用 MDT 開啟一個 shell 來透過 USB-C 線來與板子溝通。使用 MDT 很方便就能產生 OpenSSH 公私金鑰組,我們需要把公鑰 push 到板子上才能建立 SSH連線 (真麻煩…)

mdt shell

設定SSH來透過WIFI連入

Coral 開發板必須由 host 電腦給一個 openSSH 金鑰才能進行SSH連線,請在 mdt shell 中輸入以下指令。詳細 MDT指令請點我

ssh-keygen
# Follow steps to create key

mdt pushkey ~/.ssh/id_rsa.pub

ssh mendel@192.168.100.2

執行範例程式

輸入以下指令來跑範例程式,會開啟一個網頁來進行物件辨識 (MobileNet SSD)。

edgetpu_demo --stream

從 host 電腦端,用網路瀏覽器輸入 192.168.100.2:4664 就能看到以下畫面,太棒啦!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *