M5StickVの起動音がうるさいので黙らせた話


概要

M5StickV 買っちゃいました。
で、とりあえず色々遊ぼうと思ったんですけど、こいつ、、
起動したら「ピコーン!」
充電しようと思ってケーブル挿したら「ピコーン!」
再起動したら「ピコーン!」
って、ピコーン!ピコーン!うるさいんですよ。
というわけで、まずは静かにさせることにしました。


WAV ファイルを鳴らさなければいい

結論としてはこれだけ。flash に書かれている boot.py の WAV ファイル鳴らしているところを消せばいいんですけど、なかなかいうことを聞いてくれない。

uPyLoader を使ってみた → 不安定

本体フラッシュの boot.py を書き換えるのに uPyLoader をお勧めしている記事が何個か見つかったので試してみたのですが、どうにも不安定。書き込みが成功したり失敗したり、というか、一度だけ書き込みが成功して、それ以降失敗続きです。書き込み成功した1回はいったい何だったのだろう、、?

ampy も使ってみた → GETできない

ampy も使ってみたのだけど、あまり状況変わらず。> ampy ls /flash とかでファイル一覧は取得できるのだけど、> ampy get /flash/boot.py だとエラーを吐いて止まる。使い方が違うのかな?(よく分かってない)

シリアル接続して pye コマンド【成功】

TeraTerm でシリアル接続してコマンドラインから >>> pye('/flash/boot.py') で書き換えるのが結局安定してて一番早かった。
書き換えに成功するなら後は簡単。

boot.py
try:
    player = audio.Audio(path = "/flash/ding.wav")
    #player.volume(100)
    player.volume(10)
    wav_info = player.play_process(wav_dev)
    wav_dev.channel_config(wav_dev.CHANNEL_1, I2S.TRANSMITTER,resolution = I2S.RESOLUTION_16_BIT, align_mode = I2S.STANDARD_MODE)
    wav_dev.set_sample_rate(wav_info[1])
    while True:
        ret = player.play()
        if ret == None:
            break
        elif ret==0:
            break
    player.finish()
except:
    pass

30行目くらいから起動音の再生処理が書いてあるので、この辺を消せばいいんだけど、簡単に音量を 100 → 10 に変更してみた。このくらいの音量にすると全然聞こえない。もう少し大きくてもいいかもしれない。

まとめ

boot.py の簡単な修正なら pye コマンドが簡単だった。
uPyLoader や ampy での書き換えがうまくいかないのがイマイチ納得いかないのでもうちょっと試してみようと思う。今後必要になるだろうし、、(上手くいかない理由をご存知の方いらっしゃいましたら教えてください m(_ _)m