Benutzerdefinierte Firmware für Tuya-Geräte basierend auf dem PHY622x2-Chipsatz.
THB1 | THB2 | THB3 | BTH01 | TH05_V1.3 | TH05_V1.4 | TH05F |
---|---|---|---|---|---|---|
Diese Firmware funktioniert mit Home Assistant und anderer Software, die im BTHome-Format ausgeführt wird.
Die gesamte Firmware unterstützt einen dieser Sensoren: CHT8215 (CHT8310), CHT8305, AHT20..30.
Software zum Einrichten und Erstellen von BLE OTA: PHY62x2BTHome.html.
Das Hochladen von OTA-Dateien auf PHY62x2BTHome.html erfolgt automatisch. Für OTA müssen Sie keine Dateien aus diesem Repository herunterladen.
Um PHY62x2BTHome.html offline auszuführen, kopieren Sie einfach die HTML-Datei in einen lokalen Ordner.
Um mit dem Gerät arbeiten zu können, müssen Sie die FW Boot
-Firmware über einen USB-COM-Adapter auf das Gerät schreiben. Boot-Firmware ist ein Programm mit eingeschränkter Funktionalität und bietet sichere OTA-Updates.
Anschließend wird mithilfe der BLE-Verbindung in PHY62x2BTHome.html über die Registerkarte OTA das Hauptbetriebsprogramm der FW APP
aufgezeichnet.
FW APP
kann auch mit einem USB-COM-Adapter aufgezeichnet werden. Die Boot-Firmware verfügt über minimale Funktionen. FW Boot
wird nur zum Herunterladen der Vollversion der FW APP
( .bin
Dateien) über OTA verwendet.
Gerät | Boot-Datei | OTA-Datei | Beschriftung von Leiterplatten |
---|---|---|---|
THB1 | BOOT_THB1_v19.hex | THB1_v19.bin | NEIN |
THB2 | BOOT_THB2_v19.hex | THB2_v19.bin | NEIN |
THB3 | BOOT_THB2_v19.hex | THB2_v19.bin | NEIN |
BTH01 | BOOT_BTH01_v19.hex | BTH01_v19.bin | NEIN |
TH05_V1.4 | BOOT_TH05_v19.hex | TH05_v19.bin | TH05_V1.4, TH05_V1.5, TH05_V1.6 (Chip: BL55028) |
TH05_V1.3 | BOOT_TH05D_v19.hex | TH05D_v19.bin | RSH-TH05-V1.3 (Chip: BL55072) |
TH05F | BOOT_TH05F_v19.hex | TH05F_v19.bin | TH05Y_V1.1, TH05Y_V1.2 (Chip: QD01 2332 NT) |
Die wichtigsten Firmware-Dateien BOOT_XXX_vXX.hex (für die Programmierung über USB-COM-Adapter) und XXX_vXX.bin (für OTA) befinden sich im bin-Verzeichnis.
Dateien zum Aktualisieren des Bootvorgangs über OTA befinden sich im Verzeichnis update_boot. **
Die aktuelle „FW Boot“-Version ist v1.9 für alle Geräte (Fehler behoben).
Firmware | Sensor SDA/SCL/Leistung | LCD SDA/SCL/Stromversorgung | Schlüssel | LED | TRG(TX) | IN(RX) |
---|---|---|---|---|---|---|
THB1 | P18/P20/- | P34/P33/- | P01 | - | P09 | P10 |
THB2 | P18/P20/- | - | P07 | P26 | P20 | P18 |
THB3 | P18/P20/- | P34/P33/- | P01 | - | P09 | P10 |
BTH01 | P33/P34/P00 | - | P14 | P15 | P20 | P18 |
TH05 | P33/P34/P00 | P33/P34/P02 | P14 | - | P20 | P18 |
TH05D | P31/P32/- | P11/P14/- | P02 | - | P09 | P10 |
TH05F | P33/P34/P00 | P26/P31/P02 | P14 | - | P20 | P18 |
Mit Standardeinstellungen :
Version | Beschreibung |
---|---|
1,0 |
|
1.1 |
|
1.2 |
|
1.3 |
|
1.4 |
|
1.5 |
|
1.6 |
|
1.7 |
|
1.8 |
|
1.9 |
|
Es ist möglich, das Gerät mit dem Boot-Programm über einen USB-COM-Adapter mit 3,3-V-Ausgängen zu flashen.
Adapter | Gerät |
---|---|
GND | -Vbat |
+3,3V | +Vbat |
TX | RX1 |
RX | TX1 |
RTS | ZURÜCKSETZEN |
Wenn am Adapter kein RST-Pin vorhanden ist, schließen Sie den RESET-Pin mit GND (-Vbat) kurz und öffnen Sie ihn schnell, wenn das Skript startet (es kann einige Versuche dauern).
Die Bezeichnung der Pins am Gerät finden Sie in der Beschreibung unter den Links:
pip3 install -r requirements.txt
Laden Sie die für das jeweilige Gerät erforderliche Datei BOOT_XXX_vXX.hex aus dem bin-Verzeichnis herunter.
Laufen:
python3 rdwr_phy62x2.py -p COM11 -e -r wh BOOT_XXX_vXX.hex
Das Boot-Flashen ist abgeschlossen. Das Gerät ist betriebsbereit und der Adapter kann abgezogen werden.
Laden Sie die Vollversion der Firmware über OTA herunter. Gehen Sie dazu wie folgt vor:
Connect
, suchen Sie nach dem Gerät und stellen Sie eine Verbindung her.OTA
, wählen Sie die erforderliche Firmware ( .bin
) aus und klicken Sie auf Start
.Das Gerät sollte neu starten und betriebsbereit sein.
Optional:
- Um den gesamten Flash vorab zu löschen, verwenden Sie die Option
-a
.- Um den Flash-Arbeitsbereich vorab zu löschen, verwenden Sie die Option
-e
.- Mit dem USB-COM-Adapter ist es möglich, die Haupt-Firmware (APP) sofort zu schreiben:
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
Die Original-Tuya-Firmware für einen bestimmten Gerätetyp kann über die Links in der Tabelle am Anfang dieser README-Datei bezogen werden.
python3 rdwr_phy62x2.py -p COM11 -b 1000000 -r we 0 ff_thb2.bin
Nicht alle USB-COM-Adapter unterstützen 1 Mbit. Entfernen Sie dann die Option
-b 1000000
oder wählen Sie eine andere Baudrate.
Adresse | Beschreibung | Größe |
---|---|---|
0x00000 | Verwendetes ROM | 8 Kilobyte |
0x02000 | Boot-Info für ROM | 4 Kilobyte |
0x03000 | FW-Boot mit OTA-Funktion | 52 Kilobyte |
0x10000 | FW-APP | 128 Kilobyte |
0x30000 | Verlaufsaufzeichnung | 304 Kilobyte |
0x7C000 | Einstellungen speichern (EEP) | 16 Kilobyte |
FW Boot
verfügt über eine OTA-Funktion, verfügt jedoch nicht über eine Verlaufsfunktion oder andere Add-Ons. Es wird verwendet, um OTA bei fehlgeschlagenen oder falschen Aktualisierungen zu behandeln.
FW APP
hat keine OTA-Funktion, für OTA startet es im FW Boot
neu. Es verfügt über zusätzliche Funktionen und Erweiterungen.
Aktion der Taste beim Einschalten des Geräts:
Wenn die Taste beim Start gedrückt wird, startet immer FW Boot
.
Wenn die Taste nicht gedrückt wird, wird der FW APP
Eintrag überprüft oder nicht. Wenn eine FW APP
vorhanden ist, wird die FW APP
gestartet. Wenn keine FW APP
vorhanden ist, wird FW Boot
gestartet.
Bei Thermometern mit Bildschirm wird bei nicht eingeschalteter Zeitanzeige beim Start oder Neustart kurzzeitig Folgendes angezeigt:
„Bot 14“ – FW Boot
Version 1.4
„APP 15“ – FW APP
Version 1.5
Es gibt zwei Möglichkeiten, einen Neustart zum FW Boot
von FW APP
aus zu erzwingen:
7233
im Service
des Programms PHY62x2BTHome.html ein.Vollständiger Neustart: Geben Sie im
Service
des Programms PHY62x2BTHome.html den Befehl7201
ein.
Über den USB-UART-Adapter kann die APP sofort nach dem Booten geschrieben werden. Zum Beispiel:
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
Seit Version 1.2 wird die Abfrage eines mit einem Reed-Schalter verbundenen Pins oder eines mit GND kurzgeschlossenen Kontakts unterstützt.
Die maximale Schaltfrequenz beträgt 100 Mal pro Sekunde.
Wenn der Kontakt klappert, empfiehlt es sich, den Kontakt mit einem Kondensator zu überbrücken.
Beim Schließen oder Öffnen wird nach einer Zeitspanne von 50 ms ein Block von 5 BLE-Advertisements nacheinander gesendet.
Bei jedem „Offen“-Ereignis wird ein Zähler hinzugefügt.
Der Zählerstand wird zusammen mit jedem „Open/Close“-Ereignis übertragen.
Eingangskontakt auf der Thermometerplatine:
RX
.RX
.RX
.RX2
.RX0
.RX2
. Der mit „TX“ oder „TX2“ beschriftete Kontakt auf der Leiterplatte wird mit Hysterese-Sollwerten für Temperatur und Luftfeuchtigkeit gesteuert. Es besteht die Möglichkeit, auf eine inverse Leistungsregelung umzuschalten.
Die Einstellung erfolgt im Programm PHY62x2BTHome.html.
Der Ausgangsbetrieb wird durch Einstellen des Hysteresewerts zugewiesen:
Um Grundparameter auf Ausgangswerte zurückzusetzen, nehmen Sie ein Android-Smartphone und die App „nRFConnect“. Verbinden Sie sich mit dem Gerät und schreiben Sie im Dienst 0xFCD2
mit der Charakteristik 0xFFF4
56
.
Wenn das Intervall mehr als 10 Sekunden beträgt, werden 10 Sekunden eingestellt, da dies das Maximum im Standard ist. Nehmen Sie auch andere Einstellungen vor. Allerdings können nicht alle BT-Adapter mit einem 10-Sekunden-Intervall für die Verbindung arbeiten.
Zum Erstellen der Firmware wird die GNU Arm Embedded Toolchain verwendet.
Um in Eclipse zu arbeiten, verwenden Sie den Projektimport und installieren Sie toolchain.path.
Weitere Informationen zu PHY62xx-Chips finden Sie hier.