えんじにあのじゆうちょう

勉強したことを中心にアウトプットしていきます。

MAiX DOCKのファームウェアをアップグレードする

はじめに

せっかく休みに入ったので、積んであったMAIX DOCKで遊んでみようと思ったのですが、MaixPyのバージョンが0.3.2と最新の0.5.0から見るとかなり古くなってしまっていました。

最新だとnumpyも使えるのか・・・というわけで、アップグレードしてみようと思います。
なお、一番最初のとりあえず動かしてみる系のことは以下にまとめてありますので、そちらに興味がある方は参考にしてください。

t.marufeuille.dev

アップグレードしてみる

手順

以下にあります、が私の環境だとうまく動作しませんでしたし、結構ハマりポイントがありました。
Upgrade the firmware · MaixPy DOC

そのため、以下に手順を残しておきます。

kflash.pyの導入

kflash_guiというツールがあるのでダウンロードして、使える人はそれを使うほうが楽だと思います。
Releases · sipeed/kflash_gui · GitHub

が、私の環境では起動しないので前回同様kflash.pyというコマンドラインツール型のものを使います。
GitHub - kendryte/kflash.py: kflash, A Python-based cross-platform Kendryte K210 UART ISP Utility

pipで導入もできるようですが、これまた私の環境だとエラーが出て入らないので、このリポジトリをクローンして使うことにします。

$ git clone https://github.com/kendryte/kflash.py

クローンしたディレクトリ内にkflash.pyがあるので、そこにパスを通すなり、直接指定するなりはお好みで・・

ファームウェアのダウンロード

ドキュメントにはgithubのリンクとSipeed社のリポジトリへのリンクと2つありますが、v0.5.0に関して言うと、githubのreleasesにはソースコードしかないためSipeed社のリポジトリを見たほうがいいです。
http://dl.sipeed.com/MAIX/MaixPy/release/master/

v.0.5.0らしきところをたどっていくとこんな感じのが見つかりました。

f:id:marufeuillex:20191230081759p:plain

ドキュメントを読むと命名規則でfullとついてるやつが全部のせと書いてあったので、それにしようと思ったら”みあたらない”のでなんか一番載ってそうなwith_lvglのものにしました。

いざアップグレード

ディレクトリ構成はこんな感じになっている、と想定します。

$ ls
kflash.py
maixpy_v0.5.0_9_g8eba07d_with_lvgl.bin

では実行します。

$ python3 kflash.py/kflash.py -B dan maixpy_v0.5.0_9_g8eba07d_with_lvgl.bin -p /dev/tty.wchusbserial1440

以下、ログです。

[INFO] COM Port Selected Manually:  /dev/tty.wchusbserial1440
[INFO] Default baudrate is 115200 , later it may be changed to the value you set.
[INFO] Trying to Enter the ISP Mode...
.
[INFO] Greeting Message Detected, Start Downloading ISP
Downloading ISP: |=============================================| 100.0% 8kiB/s
[INFO] Booting From 0x80000000
[INFO] Wait For 0.1 second for ISP to Boot
[INFO] Boot to Flashmode Successfully
[INFO] Selected Flash:  On-Board
[INFO] Initialization flash Successfully
Programming BIN: |=============================================| 100.0% 10kiB/s
[INFO] Rebooting...

無事に終わったようです。

試してみる

接続して試してみましょう。

$ screen /dev/tty.wchusbserial1440 115200

f:id:marufeuillex:20191230084727p:plain

おお!接続できましたね!!「MicroPython v0.5.0-9-g8eba07d on 2019-12-25」ということで、ちゃんとアップグレードされていることがわかります。

では早速numpyを・・・

import numpy as np
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: no module named 'numpy'

なん・・だと・・・

嘘だろ、と思って改めて冒頭のtweetを見てみます。

おっ、そういうことか、というところで改めて。

import ulab as np
np.array([1,2,3])
array([1.0, 2.0, 3.0], dtype=float)

おお!今度は大丈夫そうですね!!

まとめ

今回はファームウェアのアップグレードを実施しました。
ドキュメント通りいかなくても、まぁなんとかなるものですね!!

年明けにはなにか作って、それについてブログ書けるといいなぁ、と思っとりますのでご期待くださいw