これは、https://github.com/pvvx/THB2 からのフォークです。PHY622x2 チップセットに基づく Tuya デバイス用のカスタム ファームウェアです。
インストール手順はここでも説明されています: https://youtu.be/AD2KduDTjf8
| 1バーツ | 2バーツ | 3バーツ | BTH01 | TH05_V1.3 | TH05_V1.4 | TH05F |
|---|---|---|---|---|---|---|
このファームウェアは、ホーム アシスタントおよび BTHome 形式で実行されるその他のソフトウェアで動作します。
すべてのファームウェアは、CHT8215 (CHT8310)、CHT8305、AHT20..30 のセンサーのいずれかをサポートしています。
BLE OTA のセットアップと作成のためのソフトウェア: PHY62x2BTHome.html。
OTA ファイルの PHY62x2BTHome.html へのアップロードは自動的に行われます。 OTA のためにこのリポジトリからファイルをダウンロードする必要はありません。
PHY62x2BTHome.html をオフラインで実行するには、HTML ファイルをローカル フォルダーにコピーするだけです。
デバイスを操作するには、USB-COM アダプターを介してFW Bootファームウェアをデバイスに書き込む必要があります。ブート ファームウェアは、機能が制限されたプログラムであり、安全な OTA アップデートを提供します。
次に、OTA タブから PHY62x2BTHome.html の BLE 接続を使用して、 FW APPのメイン動作プログラムを記録します。
FW APP USB-COMアダプターを使用して録画することもできます。 ブート ファームウェアには最小限の機能が備わっています。 FW Boot 、 FW APPのフル機能バージョン ( .binファイル) を OTA 経由でダウンロードする場合にのみ使用されます。
| デバイス | ブートファイル | OTAファイル | プリント基板のラベル貼り付け |
|---|---|---|---|
| 1バーツ | BOOT_THB1_v18.hex | THB1_v18.bin | いいえ |
| 2バーツ | BOOT_THB2_v18.hex | THB2_v18.bin | いいえ |
| 3バーツ | BOOT_THB2_v18.hex | THB2_v18.bin | いいえ |
| BTH01 | BOOT_BTH01_v18.hex | BTH01_v18.bin | いいえ |
| TH05_V1.4 | BOOT_TH05_v18.hex | TH05_v18.bin | TH05_V1.4、TH05_V1.5、TH05_V1.6 (チップ: BL55028) |
| TH05_V1.3 | BOOT_TH05D_v18.hex | TH05D_v18.bin | RSH-TH05-V1.3 (チップ: BL55072) |
| TH05F | BOOT_TH05F_v18.hex | TH05F_v18.bin | TH05Y_V1.1、TH05Y_V1.2 (チップ: QD01 2332 NT) |
メインのファームウェア ファイル、BOOT_XXX_vXX.hex (USB-COM アダプタ経由のプログラミング用) および XXX_vXX.bin (OTA 用) は、bin ディレクトリにあります。
OTA 経由でブートを更新するためのファイルは、update_boot ディレクトリにあります。 OTA 経由でブートを更新するプロセスは安全ではありません。これを行う前にバッテリー残量を確認してください。ブートが正常に動作している場合は、新しいバージョンに更新する必要はありません。ブートを新しいバージョンに置き換える必要性については、後で発表されます。
FW Boot' version is **v1.7** for devices with CHT8305 sensor. For other variants,バージョンv1.4以降は「FW ブート」は必要ありません。
デフォルト設定の場合:
| バージョン | 説明 |
|---|---|
| 1.0 |
|
| 1.1 |
|
| 1.2 |
|
| 1.3 |
|
| 1.4 |
|
| 1.5 |
|
| 1.6 |
|
| 1.7 |
|
| 1.8ベータ版 |
|
3.3V 出力の USB-COM アダプターを介してブート プログラムをデバイスにフラッシュすることができます。
| アダプタ | デバイス |
|---|---|
| GND | -Vbat |
| +3.3V | +Vbat |
| テキサス州 | RX1 |
| RX | TX1 |
| RTS | リセット |
アダプターに RST ピンがない場合は、RESET ピンを GND (-Vbat) に短絡し、スクリプトの開始時にすぐに開きます (数回の試行がかかる場合があります)。
デバイスのピンの名前は、リンク先の説明に記載されています。
pip3 install -r requirements.txt
特定のデバイスに必要な BOOT_XXX_vXX.hex ファイルを bin ディレクトリからダウンロードします。
走る:
python3 rdwr_phy62x2.py -p COM11 -e -r wh BOOT_XXX_vXX.hex
ブートフラッシュが完了しました。デバイスは動作しており、アダプターを切断できます。
OTA 経由でファームウェアのフルバージョンをダウンロードします。これを行うには:
Connectボタンをクリックし、デバイスを探して接続します。OTAタブに移動し、必要なファームウェア ( .bin ) を選択して、 Startをクリックします。デバイスが再起動し、使用できるようになります。
オプション:
- フラッシュ全体を事前にワイプするには、
-aオプションを使用します。- フラッシュ ワークスペースを事前にワイプするには、
-eオプションを使用します。- USB-COM アダプターを使用すると、メイン ファームウェア (APP) をすぐに書き込むことができます。
python3 rdwr_phy62x2.py -p COM11 -r we 0x10000 XXX_vXX.bin
python3 rdwr_phy62x2.py -p COM11 -r rc 0x11000000 0x80000 ff_thb2.bin
特定のデバイス タイプ用のオリジナルの Tuya ファームウェアは、この README の冒頭にある表のリンクから入手できます。
python3 rdwr_phy62x2.py -p COM11 -b 1000000 -r we 0 ff_thb2.bin
すべての USB-COM アダプタが 1M ビットをサポートしているわけではありません。次に、
-b 1000000オプションを削除するか、別のボーレートを選択します。
| 住所 | 説明 | サイズ |
|---|---|---|
| 0x00000 | 使用ROM | 8キロバイト |
| 0x02000 | ROMのブート情報 | 4キロバイト |
| 0x03000 | OTA機能によるFWブート | 52キロバイト |
| 0x10000 | FWアプリ | 128キロバイト |
| 0x30000 | 履歴の記録 | 304キロバイト |
| 0x7C000 | 設定の保存 (EEP) | 16キロバイト |
FW Bootは OTA 機能がありますが、履歴機能やその他のアドオンはありません。これは、失敗した更新または不正な更新に対する OTA を処理するために使用されます。
FW APPは OTA 機能がありません。OTA の場合はFW Bootで再起動されます。追加の機能と拡張機能があります。
デバイスの電源が入っているときのボタンの動作:
起動時にボタンを押すと必ずFW Boot開始されます。
ボタンが押されていない場合は、 FW APPエントリがチェックされるかどうかがチェックされます。 FW APPがある場合は、 FW APP起動します。 FW APPがない場合は、 FW Bootが起動します。
画面付き温度計では、時刻表示がオンになっていない場合、起動中または再起動中に短時間、次のメッセージが表示されます。
「Bot 14」 - FW Bootバージョン 1.4
「APP 15」 - FW APPバージョン 1.5
FW APPからFW Bootを強制的に再起動するには 2 つの方法があります。
Serviceメニューに7233コマンドを入力します。完全な再起動: PHY62x2BTHome.html プログラムの
Serviceメニューで7201コマンドを入力します。
USB-UARTアダプターを介して、起動直後にAPPを書き込むことができます。例えば:
python3 rdwr_phy62x2.py -p COM11 -e wh ./bin/BOOT_TH05V13_v13.hex
python3 rdwr_phy62x2.py -p COM11 -r we 0x10000 ./bin/TH05V13_v13.bin
バージョン 1.2 以降、リード スイッチに接続されたピンまたは GND に短絡された接点のポーリングがサポートされています。
最大スイッチング周波数は 1 秒あたり 100 回です。
接点がガタつく場合は、接点をコンデンサで短絡することをお勧めします。
閉じるときまたは開くときに、5 つの BLE 広告のブロックが 50 ミリ秒後に連続して送信されます。
「Open」イベントごとにカウンターが追加されます。
カウンタ値は、各「Open/Close」イベントとともに送信されます。
温度計基板の入力接点:
RXとラベル付けされています。RXとラベル付けされています。RXとラベル付けされています。RX2とラベル付けされています。RX0とラベル付けされています。RX2とラベル付けされています。 

「TX」または「TX2」というラベルが付いたプリント基板上の接点は、温度と湿度のヒステリシス設定値で制御されます。反転出力制御への切り替えが可能です。
設定はPHY62x2BTHome.htmlプログラムで行います。
出力動作はヒステリシス値を設定することで割り当てられます。
基本パラメータを初期値にリセットするには、Android スマートフォンと「nRFConnect」アプリを使用します。デバイスに接続し、特性0xFFF4を持つサービス0xFCD2に56書き込みます。

間隔が 10 秒を超える場合は、規格上の最大値である 10 秒が設定されます。他の設定も同様に行います。ただし、すべての BT アダプターが 10 秒の接続間隔で動作できるわけではありません。
ファームウェアの構築には、GNU Arm Embedded Toolchain が使用されます。
Eclipse で作業するには、プロジェクトのインポートを使用し、toolchain.path をインストールします。
PHY62xx チップの詳細については、これを参照してください。