Wio Terminal

Seeed Wio Terminal に関する記事です。



Wio Terminal

Wio Terminal は機能が盛りだくさんのガジェットです。

Wio Terminal の MCU は Microchip ATSAMD51P19 です。

See Also:


購入

直販他で買えます。

  • Wio Terminal (seeed)
  • Wio Terminal (スイッチサイエンス)
  • Wio Terminal (秋月電子)
  • Wio Terminal (マルツオンライン)
  • Wio Terminal (共立エレショップ)

  • 各部詳細

    No 名称 説明
    多機能 Grove コネクタ #1I2C
    Green LED (Power LED)
    USB Type-C コネクタ
    Blue LED (インジケーター)LED_BUILTIN
    多機能 Grove コネクタ #2D/A
    2.4 inch LCD320 x 240, ILI9341
    マイク&ブザー
    5 方向スイッチ上下左右と押し込み
    電源&リセットスイッチ真ん中にすると電源 ON。そこからさらに下に下げるとリセット。
    MicroSD カードスロット
    20 ピン FPC (Flexible Printed Circuit) コネクタ用スロット分解しないとコネクタにアクセスできません。
    ユーザー定義ボタン #3
    ユーザー定義ボタン #2
    ユーザー定義ボタン #1
    40ピン GPIO ソケットRaspberry Pi に挿せるようになっていますので、Raspberry Pi のコネクタとは左右逆になります。

    分解

    Wio Terminal を裏返し、左上と右下のゴム足に隠れているネジを 2 本外すと裏蓋を開けることができます。左下と右上にはツメがありますので、強引に開けないようにしてください。

    裏蓋には 4 個の磁石が配置されており、Wio Terminal を鉄板などにゆるく固定する事ができます。

    GPIO コネクタ

    Pin No Raspberry Pi Wio Terminal Value Pin No Raspberry Pi Wio Terminal Value
    2 5V 5V 1 3V3 3V3
    4 5V 5V 3 BCM2 SCL 46
    6 GND GND 5 BCM3 SDA 45
    8 BCM14PIN_SERIAL1_RX 40 7 BCM4 36
    10BCM15PIN_SERIAL1_TX 41 9 GND GND
    12BCM18 52 11BCM17, PIN_DAC0DAC0 9
    14GND GND 13BCM27, RPI_A0D0, A0 0
    16BCM23, RPI_A2D2, A2 2 15BCM22, RPI_A1D1, A1 1
    18BCM24, RPI_A3D3, A3 3 173V3 3V3
    20GND GND 19BCM10MOSI 48
    22BCM25, RPI_A4D4, A4 4 21BCM9 MISO 47
    24BCM8 SS 50 23BCM11SCK 49
    26BCM7, PIN_DAC1DAC1 10 25GND GND
    28BCM1 SCL1 77 27BCM0 SDA1 78
    30GND GND 29BCM5 37
    32BCM12, RPI_A5D5, A5 5 31BCM6 38
    34GND GND 43BCM13, RPI_A6D6, A6 6
    36BCM16, RPI_A7D7, A7 7 55BCM19 15
    38BCM20 54 67BCM26, RPI_A8D8, A8 8
    40BCM21 53 39GND GND

    デバイス

    機能 Wio Terminal Value
    多機能 Grove コネクタ #11SCL 45
    2SDA 46
    33V3
    4GND
    多機能 Grove コネクタ #21D0, A0 0
    2D1, A1 1
    33V3
    4GND
    ブザーWIO_BUZZER 12
    Blue LED (インジケーター)LED_BUILTIN 13
    光センサーWIO_LIGHT 27
    ユーザー定義ボタン #1WIO_KEY_A, BUTTON_1 28
    ユーザー定義ボタン #2WIO_KEY_B, BUTTON_2 29
    ユーザー定義ボタン #3WIO_KEY_C, BUTTON_3 30
    5 方向スイッチ WIO_5S_UP 31
    WIO_5S_LEFT 32
    WIO_5S_RIGHT 33
    WIO_5S_DOWN 34
    押下WIO_5S_PRESS 35
    マイクWIO_MIC 39

    バッテリーシャーシ

    機能 Wio Terminal Value
    多機能 Grove コネクタ #1
    (本体の Grove コネクタ #2 と共通)
    1D0, A0 0
    2D1, A1 1
    33V3
    4GND
    多機能 Grove コネクタ #21D6, A6 6
    2D8, A8 8
    33V3
    4GND
    多機能 Grove コネクタ #31D2, A2 2
    2D3, A3 3
    33V3
    4GND
    多機能 Grove コネクタ #41D4, A4 4
    2D5, A5 5
    33V3
    4GND
    多機能 Grove コネクタ #51PIN_SERIAL1_RX 40
    2PIN_SERIAL1_TX 41
    33V3
    4GND
    多機能 Grove コネクタ #6
    (本体の Grove コネクタ #1 と共通)
    1SCL 45
    2SDA 46
    33V3
    4GND

    See Also:


    セットアップ

    チュートリアルページが素晴らしい出来なので、あまり書くことがありません。

    念のためにおさらいしておくと、Arduino IDE で Wio Terminal を使えるようにするには、

    1. [ファイル | 環境設定] の "追加のボードマネージャの URL" に https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json を追加する。
    2. [ツール | ボード | ボードマネージャ] でボードマネージャを開き、"Wio terminal" を検索する。
    3. Seeed SAMD Boards をインストールする。
    4. [ツール | ボード] で Wio Terminal を選択する。

    RTL8720 のファームウェア更新 (新)

    Wi-Fi の機能を使う前に、Realtek RTL8720 のファームウェアを更新する必要があります。手順は以下のページに書かれています。

    1. rtl8720_update_v2.uf2 をダウンロードします (ソースコードはこちら)。
    2. Wio Terminal をダブルリセットしてブートローダーモードに入ります。"Arduino" という名前の外部ドライブが出現します。
    3. 先程ダウンロードしたファイルを外部ドライブへドロップします。転送が完了すると、Wio Terminal の画面に "Burn RTL8720 fw" と表示されます。
    4. フラッシュツールをダウンロードします (https://github.com/LynnL4/ambd_flash_tool)。丸ごと ZIP でダウンロードして任意の場所にしてください。
    5. 最新ファームをダウンロードします (https://github.com/Seeed-Studio/seeed-ambd-firmware/releases)。末尾に JP とあるものを選択してください。
    6. ダウンロードした最新ファームをフラッシュツールの firmware サブフォルダに上書きします。
    7. フラッシュツールの tool サブフォルダにある各プラットフォーム向けの ambd_flash_tool.py または ambd_flash_tool.exe (Windows) のある場所をターミナルやコマンドプロンプトで開きます。
    8. 最初にファームウェアを消去します。
      >ambd_flash_tool erase
      次のような表示が出るまで放置します。Wio Terminal は自動認識されるため、ポートの設定などは不要です。
      Erasing...
      All images are sent successfully!
      Image tool closed!
      
      Success!
    9. 次にファームウェアを書き込みます。
      >ambd_flash_tool.exe flash  -d <ファームウェアのあるフォルダ>
      次のような表示が出るまで放置します。
      copy img to workspace...
      Flashing...
      All images are sent successfully!
      Image tool closed!
      
      Success!

    ファームウェアの転送が終わったら、Arduino IDE にライブラリを追加しておきます。

    いずれも zip でダウンロードし、Arduino IDE メニューの [スケッチ | ライブラリをインクルード | .zip 形式のライブラリをインストール...] からインストールします。


    RTL8720 のファームウェア更新 (旧)

    以下は RTL8720 のファームウェア更新の古い方法です。

    1. スケッチ rtl8720_update.ino をコンパイルして Wio Terminal に転送します。
      void setup() {
        // initialize both serial ports:
        pinMode(PIN_SERIAL2_RX, OUTPUT);
        pinMode(RTL8720D_CHIP_PU, OUTPUT);
        digitalWrite(PIN_SERIAL2_RX, LOW);
        digitalWrite(RTL8720D_CHIP_PU, LOW);
        delay(500);
        digitalWrite(RTL8720D_CHIP_PU, HIGH);
        delay(500);
        pinMode(PIN_SERIAL2_RX, INPUT);
        Serial.beginWithoutDTR(115200);
      //  Serial.baud
        RTL8720D.begin(115200);
      
        delay(500);
      }
      
      void loop() {
      
        // read from port 1, send to port 0:
        if (Serial.available()) {
          int inbyte = Serial.read();
          RTL8720D.write(inbyte);
          //Serial1.write(inbyte);
        }
      //   read from port 1, send to port 0:
        if (RTL8720D.available()) {
          int inbyte = RTL8720D.read();
          Serial.write(inbyte);
          //Serial1.write(inbyte);
        }
      }
    2. Image Tool をダウンロードし、適当な場所へ解凍しておきます。
    3. RTL8720 Firmware をダウンロードし、適当な場所へ解凍しておきます。<- リンク先のファームウェアが最新版とは限りません!
    4. ImageTool.exe を実行します。
    5. [Chip Select] を押し、AmebaD(8721D) を選択します。
    6. [Serial] と [Flash Erase] のパラメータを次のように設定します。
    7. [Erase] ボタンを押します。正常終了すると、画面下部に次のようなメッセージが表示されます。
    8. 次に、[Flash Download] で RTL8720 の Firmware を指定します。[Browse] ボタンでファイルを指定できます。ファイルを指定したら、左側にあるチェックを入れます。
    9. [Download] ボタンを押します。正常終了すると、画面下部に次のようなメッセージが表示されます。

    ブレッドボード

    Wio Terminal は機能盛りだくさんなので、それらを使って遊ぶのが筋なのでしょうけれど、折角の Arduino なのでブレッドボードとかも使ってみたいです。

    左側の Grove コネクタは I2C で、右側の Grove コネクタは D0 (A0) / D1 (A1) なので、Grove コネクタを買えば大抵の事はできます。片側をジャンパーワイヤーみたいに加工すれば、ブレッドボードでも使えそうです。

    Wio Terminal の背面にある 40ピン GPIO ソケットにジャンパーワイヤーを直接挿す事もできますが、裏にあるためあまり使い勝手はよくありません。そこで使えるのが Raspberry Pi 用の GPIO T 型拡張ボードです。

    このままでは Wio Terminal に接続できないのでコネクタを加工します。軽くカッターでスジを入れ、枠をラジオペンチで折り取ります。

    ブレッドボードとはこの向きで接続します。

    I2C LCD でテストしてみました。拡張ボードにもブレッドボードにもシルク印刷があるので、ピン番号を数えなくていいのはとても楽です。

    ピンの並びが Raspberry Pi と同じになる (左右逆ではない) というメリットもあります。


    チュートリアル

    英語版の Wiki には豊富なチュートリアルがあります。

    使い方で悩む事はないでしょう。[ファイル | スケッチ例] にも Wio Terminal 用のサンプルスケッチがあります。

    See Also:


    RunCPM + VT100 Emu for Wio Terminal

    CP/M をスタンドアロンで動作させる事ができます。

    See Also:


    ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。

    メニュー: