Azure Perceptデバイスを初期化

***
**Azure Percept記事一覧**

* [Azure Perceptってどんなもの？](https://qiita.com/matsujirushi/items/407e21a42da561773469)
* [Azure Perceptデバイスのセットアップ](https://qiita.com/matsujirushi/items/3a8be8f4f6d046b9e0f3)
* [Azure Perceptデバイスのセットアップ・ツアー](https://qiita.com/matsujirushi/items/283f13ca10a4ed683c46)
* [Azure Percept Visionのサンプルコード+サンプルAIモデルを動かす](https://qiita.com/matsujirushi/items/23bae41f79db24a1719e)
* [Azure Percept Visionのサンプルコード+カスタムAIモデルを動かす](https://qiita.com/matsujirushi/items/552e937d87ae38b8a674)
* Azure Perceptデバイスを初期化

***

<img width="800" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109634/073677c8-7f46-b645-e0a5-6012b2664cd0.png">

Azure Perceptデバイスは、あらかじめOSイメージがインストールされて出荷されています。
そのため、電源オンするとWi-Fiアクセスポイントとして動作して、Webブラウザからゴニョゴニョとセットアップすることができます。

> セットアップの雰囲気は、[Azure Perceptデバイスのセットアップ](https://qiita.com/matsujirushi/items/3a8be8f4f6d046b9e0f3)や[Azure Perceptデバイスのセットアップ・ツアー](https://qiita.com/matsujirushi/items/283f13ca10a4ed683c46)をご覧ください。

とはいえ、いろいろとイジッた後に初期状態に戻したいなと思うことがありますよね？あるはずです。わたしはあります！！

Azure Perceptデバイスは、**Wi-Fi経由（OTA）**と**USB経由**の2通りの手段で、初期状態に戻すことができます。

* [Azure Percept DKを無線で更新する @ Microsoft Docs](https://docs.microsoft.com/ja-jp/azure/azure-percept/how-to-update-over-the-air?WT.mc_id=AZ-MVP-5002686)
* [USB-Cケーブル接続でAzure Percept DKを更新する @ Microsoft Docs](https://docs.microsoft.com/ja-jp/azure/azure-percept/how-to-update-via-usb?WT.mc_id=AZ-MVP-5002686)

Azure PerceptデバイスのOSを壊してしまってWi-Fiが使えなくなると、Wi-Fi経由では更新できなくなるので、、、
ここでは、いかなるときでも確実にできる（と思われる）、**USB経由でOSを初期状態に**戻したいと思います。

# 必要なファイルをネットからダウンロード

書き込みツール**uuu.exe**と、書き込むデータの3つのファイル**Azure-Percept-DK-XXX.raw**, **fast-hab-fw.raw**, **emmc_full.txt**を、同じフォルダにダウンロードします。

* [書き込みツールのダウンロードサイト @ GitHub](https://github.com/NXPmicro/mfgtools/releases)
  Latest releaseのAssetsをクリックして、表示されたuuu.exeをダウンロードします。

* [書き込むデータのダウンロードサイト @ Microsoft Docs](https://docs.microsoft.com/en-us/azure/azure-percept/software-releases-usb-cable-updates?WT.mc_id=AZ-MVP-5002686)
  Determine the correct update packageの表を見て、Azure Perceptデバイスに応じたx.x.x.x USB update packageをダウンロード、解凍します。

このようにファイルを4つ用意できればOKです。

<img width="600" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109634/1521e7d9-0c1b-3672-f01a-3174d458793a.png">

# Azure PerceptデバイスをUSBモードに変更

Azure Perceptデバイスの基板上にあるディップスイッチを、USBモードに変更します。
裏のネジ4つを外すと、ケースから基板が外れます。外れるといっても、アンテナやLEDなどの配線があるので、基板を完全に取り出すことはできません。下写真のように、慎重に右側へズラします。
すると、4つのディップスイッチが出てきます。これを「下上下上」に切り替えます。

> 基板を無理にズラすとWi-Fiアンテナケーブルが破損します。わたしはやらかしてしまいました😢
> 直すのメチャ大変でした。。。

ディップスイッチを変更後、裏のネジを1つ以上止めて、基板がグラグラしないようにしておきましょう。

<img width="300" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109634/62b30e4b-0e3b-dbec-34b4-9c4cbf4b1444.png">

<img width="600" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109634/ff1e8a0c-5f79-12be-5d4f-92ae1b3ed68e.png">

# uuuを起動

コマンドプロンプトを開いて、下記コマンドでuuu.exeを実行します。
すると、「Waiting for Known USB Device to Appear」と表示されます。これはUSBにazure Perceptデバイスが接続されるのを待っている旨の表示です。

```
uuu -b emmc_full.txt fast-hab-fw.raw Azure-Percept-DK-1.0.20210729.0957-public_preview_1.0.raw
```

# Azure PerceptデバイスをUSB接続

Azure PerceptデバイスのACアダプターを接続して電源が入った後、USB-Cケーブルでパソコンと接続します。
uuu.exeがAzure Perceptデバイスを認識すると、自動的に書き込み処理が開始されます。

<img width="600" alt="image.gif" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109634/4d35bfd4-2a36-a8b5-783b-9706c3f78329.gif">

まぁまぁ時間がかかります。13分程かかりました。

# Azure Perceptデバイスを通常モードに変更

Azure PerceptデバイスのUSBケーブルを外し、ACアダプターも外します。
そして、さきほどの作業と同様、ディップスイッチを「上下下上」に戻します。

# Azure上のAzure Perceptデバイス情報を削除

以上の作業で、Azure Perceptデバイスはスッキリとリフレッシュできました。

しかしながら、Azure Percept Studioは、Azure Perceptデバイスを認識したままです。（まぁそうですよね）
削除しようにも、Deleteボタンっぽいものは見当たりません。

<img width="600" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109634/80ed8d55-e89c-e4c4-07fb-63531e085b6d.png">

実は、Azure Percept StudioはAzure IoT HubのIoT Edgeに登録されているAzure Percept DKを表示しているだけなので、、、Azure IoT Hubで削除すればOKです。

<img width="600" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109634/72cc84d3-9441-8f48-ffac-636cf9270679.png">

Azure Perceptデバイスを登録したAzure IoT HubがAzure IoT Hub Provisioning Serviceと連携していたときは、Azure IoT Hub Provisioning Serviceにも証明書が登録されているので、こちらも削除しましょう。

<img width="600" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109634/4a2f35d0-8171-e27d-06a0-1d31cd5c46d9.png">