2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

M5StackのUnit Encoderのファームウェア・アップデート

Last updated at Posted at 2023-11-06

はじめに

UnitEncoder1

M5StackにI2Cで接続して使うUnit Encoderを入手しました。

商品ページによると、どうやらファームウェアを書き換えることができるとあります。それならばと書き換えてにチャレンジしてみました。

ファームウェア

GitHubに、説明とバイナリファイルがおいてあります。基本的にこのとおり進めていきました。I2Cプロトコルマップをみると、MODEとRESETが追加されているとあります。カウンターの値を書き込めるのが、地味に嬉しい追加機能です。

V1.1のファームウェアをダウンロードします。

Unit Encoder分解

分解といってもネジひとつはずすだけです。基板にSTM32F030が実装されています。写真上部のスルーホールがフラッシュするためのピンに繋がっているので、ここにライターを接続します。

UnitEncoder2

ライター

本来であればSTMicroelectronics社のSTLINKを使って書き換えます。まあまあの値段でして、私は所有していません。そこでどうするかというと、安いコンパチのSTLINK/V2を使用します。数百円程度で手に入ります。

UnitEncoder3

検索したら、いろいろなところで売ってますね。信頼できるのかどうかはご自身で判断してください。

フラッシュ

フラッシュにはSTM32CubeProgが必要です。STLINKとUnit Encoderを表を参考に繋いでください。まちがえて3.3Vを5Vにしがちですので注意しましょう。

STLINK Encoder
(1) RST R
(2) SWCLK C
(4) SWDIO D
(6) GND G
(8) 3.3V V

ジャンパーワイヤーを使いますが、スルーホールにはんだ付けはしたくありません。バラバラのワイヤーをまとめるため、ピンソケットに挿してまとめました。マスキングテープで留めてもいいかもしれません。

UnitEncoder4

気合で手でおさえます。このままGitHubの説明に従ってSTM32CubeProgで書き込みます。

UnitEncoder5

基板を手でおさえながら、STLINKをPCに接続し、アプリを操作してフラッシュ。これがなかなかうまくいかず、10回目くらいで成功しました😅

I2Cレジスタマップ

GitHubの説明にひとつだけ追加しています。それはRGBのLED NUMを0にすると、2つのLEDをまとめてセットできます。exampleのソースコードには書いてあるのに、なぜかドキュメントには書いてありません。

OPERATION REG MAP 0 1 2 3
MODE (W) 0x00 0=PULSE
1=AB
COUNTER (R/W) 0x01 COUNTER VALUE
L

H
SWITCH (R) 0x02 SWITCH
0 or 1
RGB (W) 0x03 LED NUM
0, 1, 2
R G B
RESET 0x04 1 >= RESET
COUNTER
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?