MaixPy IDEを使うためにMaix BitとM5StickVのファームウェアのアップデートしようとして何度か失敗したが、何度か繰り返して成功した

MaixPy IDEを使うためにMaix BitとM5StickVのファームウェアのアップデートしようとして何度か失敗したが、何度か繰り返して成功した。


最初にMaix BitとM5StickVを購入したあと、とりあえずはmicroSDカードにboot.pyという名前でmicroPythonのコードを書いたファイルを入れて動かして遊んでいた。
M5StickVで、Brownie(ぶらうにー)を動かしてみた
Maix Bitを手に入れたので、動かしてみた

自分でもっと色々とコードを書いて開発しようとすると、ちゃんとしたMaixPy IDEという開発環境を使ったほうがよさそうだと思ったので、Windows版のMaixPy IDEをインストールして動かしてみた。

しかし、Maix BitやM5StickVのファームウェアが古いままだとMaixPy IDEはうまく動かない。

Maix BitなどのMaixシリーズのメーカーのSipeedのサイトで配布されているファームウェア(Maixシリーズ用,M5StickV用)とIDEの他にも、M5StickVのメーカーのM5StackのサイトでもM5StickV用のファームウェアとIDEが配布されているのでちょっと紛らわしい。

MaixPy IDEの現在(2020年1月)の最新版は0.2.4なのだが、Sipeedのサイトにはフォルダーがあるだけでなぜかファイルが置かれていない。
M5Stackのサイトのほうの入手が可能だった。
https://docs.m5stack.com/#/en/quick_start/m5stickv/m5stickv_quick_start?id=maixpy-ide

最初、MaixPy IDE 0.2.4が見つけられなくて、0.2.3を起動していたのだが、その場合、左下の接続アイコンから接続ができないというトラブルの症状が発生していた。

ただし、接続アイコンで繋がらなくても、メニューからツールのシリアルポートのターミナルを開くとREPLの画面になる。CTRL-Cで止めて、こちらのウインドウの実行ボタンを押すと、IDEで書いたコードの実行はできた。

ファームウェアのバージョンについては、現在(2020年1月)の時点だとmaixpy_v0.5.0_12_g284ce83というバージョンのものが最新だ。
ただし、M5StickVについては、M5StackのサイトにM5StickV用のファームウェアで、M5StickV_Firmware_1022_betaというバージョンのベータ版のファームウェアがある。こちらのほうが新しいのかと思って試したのだが、そうでもないようで、バグが残っていた (後述) 。

ファームウェアの更新の方法は、kflash_gui_v1.5.3_windowsというGUI版のファームウェア書き込みツールを使用した。

しかし、ファームウェアの更新を実行しても失敗してしまう。何度か繰り返したが駄目だった。

M5StickVとMaix Bitのどちらも同様な症状だった。

最初に書かれているファームウェアが古いものだとどうしても書き込みが安定しないものらしい(?)。

M5StickV(あるいはMaixBit)のUSBケーブルの接続をし直して電源の入れなおして、ファームウエアの書き込みを試すというのを何度か繰り返していたら、書き込みができた。

理由はよくわからないが、リセットのタイミング的なものが関係しているのではないかと思った。

一度新しいファームウェアを入れた後は、次からは普通に書き換えは安定してできるようになった。

いくつかテストをしてみた。

次のようなコードを動かしてみた。
画面にHello, world.という文字列などを表示するものだ。文字に色をつけて表示をしている。

import lcd

lcd.init()
#lcd.clear()
lcd.draw_string(10, 20, "Hello, world.", lcd.BLACK, lcd.WHITE)
lcd.draw_string(10, 40, "This is test.", lcd.RED, lcd.BLACK)
lcd.draw_string(10, 60, "This is test.", lcd.GREEN, lcd.BLACK)
lcd.draw_string(10, 80, "This is test.", lcd.BLUE, lcd.BLACK)

MaixBitだと正しい色が出ない。バグっているようだ。

M5StickVについては、Sipeedのサイトのファームウェアだと正しい色が表示されている。

他に、次のようなコードも試した。
カメラからの画像を表示するものだ。

import sensor
import image
import lcd

lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_vflip(1)
#sensor.set_hmirror(1)
sensor.run(1)
while True:
    img=sensor.snapshot()
    lcd.display(img)

sensor.set_hmirror(1)というのは、カメラからの画像を取得するときに水平方向に反転をする設定だ。

ファームウェアのバージョンによっては、この機能を使うと、カラーの画像の色が狂ってしまい、灰色っぽく表示されてしまう。完全にグレースケールになるわけではなく、強い色については色が反転して出る。という症状がM5StickVで発生した。

とりあえず、lcd.rotation()の機能を使って液晶画面のほうの向きを回転させて、hmirrorの機能を使わないようにしてこのバグを回避した。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.

6 × = 24