アットウィキロゴ

ファームウェアの改変方法

目的

このページでは吸い出したファームウェアをパソコン上で書き換える方法を説明します。
次のような場合に、以下の手順に従って書き換えることが可能です。

  • 言語設定を日本語以外にしたまま吸い出してしまった
  • 名前を後から変えたくなった
  • 誕生日の設定を間違えていた

尚、このページはこちらのサイトの情報を元に書きました。

必要なもの

  • ファームウェアファイル (firmware.bin)
  • バイナリエディタ (Stirling がオススメ)
  • CRC16(Modbus) を算出出来る術(今回はこちらのオンラインサイト)

方法

変更手順

例として、言語設定を書き換える方法で説明します。

  1. バイナリエディタで firmware.bin を開く。
  2. アドレス 0x03FE64 の値を 0x00 に書き換える。
    (日本語:0×00 英語:0×01 フランス語:0×02 ドイツ語:0×03 イタリア語:0×04 スペイン語:0×05)
  3. 0x03FE00 から 0x03FE6F までをコピーして、上記 CRC16(Modbus) 算出サイトの入力欄にペーストして、Hex にチェックを入れてぽちっとする。
  4. 算出された CRC-16 (Modbus) を 0x03FE72 と 0x03FE73 に書き込む。
    ただし算出された値が 0x B8 A7 だった場合、書き込むのは 0x A7 B8 にする。(1バイト目と2バイト目を逆転させる)
  5. 同様にアドレス 0x03FF64 の値を 0x00 に書き換えて 0x03FF00 から 0x03FF6F までをコピーして、CRC16(Modbus) を算出し、その値を逆転させて 0x03FF72 と 0x03FF73 に書き込む。
  6. 保存する。

以上です。
適宜バイナリエディタのマーク機能等を使って、間違えたアドレスを書き換えないようにしてください。
尚、CRC があわない場合や、値が想定外範囲 (例:誕生月を 12 月にしたくて 0x12 とやっちゃうと、18 月になるので想定範囲外)な場合は、初期設定の画面からスタートになります。

分かりやすくするために画像にしました。

#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (stirling.png)
  • 青い部分が言語設定の部分です。(正確にはその下部3ビット分です)
  • 薄い赤い部分が設定値を書き込む部分であり、CRC16(Modbus) を算出する元となる値です。
  • 緑の部分が反転させた CRC16(Modbus) を書き込む部分です。
  • 名前やコメントを編集する際は、メニューで文字コードを utf-16(unicode) にして下さい。

アドレス一覧

アドレス一覧
FW アドレス RAM アドレス バイト数 値の意味
0×03Fx00 0×023FFC80 1 バージョン (デフォルトは 0x05?)
0×03Fx02 0×027FFC82 1 ユーザーカラー ※1
0×03Fx03 0×027FFC83 1 誕生月
0×03Fx04 0×027FFC84 1 誕生日
0×03Fx06 0×027FFC86 20 名前 (UTF-16)
0×03Fx1A 0×027FFC9A 1/2 名前の文字数(例:名前が 10 文字なら 0x0A に。)
0×03Fx1C 0×027FFC9C 52 コメント (UTF-16)
0×03Fx50 0×027FFCD0 1/2 コメントの文字数
0×03Fx52 0×027FFCD2 1 アラームの時(hour)
0×03Fx53 0×027FFCD3 1 アラームの分(minute)
0×03Fx56 0×027FFCD6 1 0×80=enable alarm, bit 0..6=enable?
0×027FFCD8 12 タッチスクリーンキャリブレーションデータ
0×027FFCE4 bit 0..2 言語設定 ※2
0×027FFCE4 bit 3 GBAソフトの画面 (0=上画面, 1=下画面)
0×027FFCE4 bit 6 起動モード 0=マニュアルモード, 1=オートモード
WIFI power calibration
0×03Fx70 1/2 update counter (used to check latest)
0×03Fx72 2 CRC16(Modbus)

アドレスの 0x03F x XX の x は E か F で読み替えてください。

※1 ユーザーカラー一覧
値(10進数) 色 RGB
0 グレー (12, 16, 19)
1 茶色 (23, 9, 0)
2 赤 (31, 0, 3)
3 ピンク (31, 17, 31)
4 オレンジ (31, 18, 0)
5 黄色 (30, 28, 0)
6 黄緑 (21, 31, 0)
7 緑 (0, 31, 0)
8 深緑 (0, 20, 7)
9 青緑 (9, 27, 17)
10 水色 (6, 23, 30)
11 青 (0, 11, 30)
12 群青 (0, 0, 1)
13 青紫 (17, 0, 26)
14 赤紫 (26, 0, 29)
15 マゼンタ (31, 0, 1)


※2 言語設定一覧
言語 値
日本語 0
英語 1
フランス語 2
ドイツ語 3
イタリア語 4
スペイン語 5

変更例

  • 例1:言語設定でスペイン語にしたければ、0x03Fx64 (つまり 0x03FE64 と 0x03FF64) を 0x05 に書き換えて、CRC 算出&書き換え。
  • 例2:名前を hogehoge にしたければ、0×03Fx06 を起点に hogehoge と (画像のようになるように右半分の部分で) 入力し、ついで 0×03Fx1A を 8 文字にあわせて 0x08 と書き換えて、CRC 算出&書き換え。
  • 例3:誕生日を 12 月 23 日にしたければ、0×03Fx03 を 0x0C、0×03Fx04 を 0x17 に書き換えて、CRC 算出&書き換え。
  • 例4:ユーザーカラーを水色にしたければ、0×03Fx02 を 0x0A に書き換えて、CRC算出&書き換え。
最終更新:2009年03月05日 17:39