トラブルシューティング
本ドキュメントでは、Deguを使用する上で陥る可能性のあるトラブルとその対処法について紹介します。
main.pyが保存できない
maiy.pyが保存できない場合、以下の理由が考えられます
-
保存可能な容量を超えている
main.pyが保存されるFAT12 Partition領域の容量は16KBですが、この中にはFAT12メタデータも含まれているため、16KB全てを利用することはできません。保存可能な容量を超えている場合は、コメント・改行を減らすなどして容量を削減してください。
-
DeguのFlashメモリへmain.pyが書き込まれる前にUSBケーブルを切断している
MicroPythonコードの変更の手順を参考に、「デバイスの安全な取り外し」等の手順を行ってください。
AWS IoT Coreのシャドウが更新されない
DeguのMACアドレスがAWS IoT Coreの「モノ」として登録されている状態で、Deguの電源を投入してもAWS IoT Core上のシャドウが更新されない場合には、以下の手順をお試しください。
-
Deguの接続情報を初期化する
OpenThread Network Information領域を消去することで、Deguの接続情報を初期化することができます。
Linux PCにDeguを接続し以下のスクリプトを実行することで、Deguの接続情報を初期化できます。
$ wget https://open-degu.github.io/script/degu_delete_con_info.sh $ sudo degu_delete_con_info.sh
-
AWS IoT Core上のデバイスを削除する
デバイスを削除するには、登録されているモノのページで、
アクション
->削除
をクリックしてください。 -
DeguのMACアドレスをAWS IoT Coreに登録する
Deguゲートウェイのセットアップの「DeguをAWS IoT Coreに登録する」に従い、再度DeguのMACアドレスを登録してください。
Deguを別のDeguゲートウェイに接続したい
AWS IoT Coreのシャドウが更新されないと同様の手順で、接続情報を消去し、AWS IoT Core上にデバイスを削除・追加してください。
main.pyを保存しようとするとエラーが発生する
症状
パソコンにUSB経由でDeguを接続した状態で、main.pyを書き換えようとした際、以下の様なエラーが発生しmain.pyが書き換えられない状態になった。
予期しないエラーのため、ファイルをコピーできませんでした。
このエラーが再発する場合は、エラーコードを使用して、この本題についてのヘルプを検索してください。
エラー0x80070570:ファイルまたはディレクトリーが壊れているため、読み取ることができません。
原因
Deguのファイルシステムが壊れたことにより発生したエラーと考えられます。
対処方法
下記の初期化手順でDeguのFAT12 Partition領域を初期化してください。
この作業により main.py は初期状態に戻ってしまうため、実施前に現在Deguに書き込んでいるmain.pyをPC等に退避してください。
※ Degu上に異なるファイル名(__main.py等)で退避しても、ファイルシステムを初期化するため、初期化後はファイルが消滅します。
初期化手順
-
初期化に使用するファイル fat12.dat をダウンロードします。
こちら から初期化に使用するファイルをダウンロードします。 -
DeguをWindows PCまたはLinux PCにUSB接続します。
-
初期化を実施します。
[Windows]
1) ここでは、Win32 Disk Imagerを用いた手順を説明します。
上記リンクよりバイナリをダウンロードし、インストールを実施してください。
2) ツールを起動し、添付ファイル画像の通りファイルやドライブを指定、実行してください。
(1) 上記でダウンロードしたfat12.datを指定
(2) Deguのドライブを指定
(3) 書き込み実行
3) “Write Successful.” と表示されれば完了です。[Linux]
1) 下記のコマンドを実行してください。LinuxPC $ sudo dd if=fat12.dat bs=1k count=16 of=/dev/sdx conv=fsync,nocreat
注1) /dev/sdx の x はPCに接続した Degu以外のストレージデバイスによって変わるため、必ずDeguを接続した時に作られるファイルを指定してください。
注2) ifオプションで指定するfat12.datは手順1.でダウンロードしたfat12.datのファイルパスを指定してください。