Este é um fork de: https://github.com/pvvx/THB2 Firmware personalizado para dispositivos Tuya baseados no chipset PHY622x2.
As etapas de instalação também são explicadas aqui: https://youtu.be/AD2KduDTjf8
| THB1 | THB2 | THB 3 | BTH01 | TH05_V1.3 | TH05_V1.4 | TH05F |
|---|---|---|---|---|---|---|
Este firmware funciona com Home Assistant e outros softwares executados no formato BTHome.
Todo firmware suporta qualquer um destes sensores: CHT8215 (CHT8310), CHT8305, AHT20..30.
Software para configurar e fazer BLE OTA: PHY62x2BTHome.html.
O upload de arquivos OTA para PHY62x2BTHome.html é automático. Você não precisa baixar arquivos deste repositório para OTA.
Para executar PHY62x2BTHome.html offline, basta copiar o arquivo html para uma pasta local.
Para trabalhar com o dispositivo, você precisa gravar o firmware FW Boot no dispositivo por meio de um adaptador USB-COM. O firmware de inicialização é um programa com funcionalidade reduzida e fornece atualizações OTA seguras.
A seguir, utilizando a conexão BLE em PHY62x2BTHome.html através da aba OTA, é gravado o principal programa operacional do FW APP .
FW APP também pode ser gravado usando um adaptador USB-COM. O firmware de inicialização possui funções mínimas. FW Boot é usado apenas para baixar via OTA a versão completa do FW APP (arquivos .bin ).
| Dispositivo | Arquivo de inicialização | Arquivo OTA | Rotulagem de placas de circuito impresso |
|---|---|---|---|
| THB1 | BOOT_THB1_v18.hex | THB1_v18.bin | não |
| THB2 | BOOT_THB2_v18.hex | THB2_v18.bin | não |
| THB 3 | BOOT_THB2_v18.hex | THB2_v18.bin | não |
| BTH01 | BOOT_BTH01_v18.hex | BTH01_v18.bin | não |
| TH05_V1.4 | BOOT_TH05_v18.hex | TH05_v18.bin | TH05_V1.4, TH05_V1.5, TH05_V1.6 (chip: BL55028) |
| TH05_V1.3 | BOOT_TH05D_v18.hex | TH05D_v18.bin | RSH-TH05-V1.3 (chip: BL55072) |
| TH05F | BOOT_TH05F_v18.hex | TH05F_v18.bin | TH05Y_V1.1, TH05Y_V1.2 (chip: QD01 2332 NT) |
Os principais arquivos de firmware, BOOT_XXX_vXX.hex (para programação via adaptador USB-COM) e XXX_vXX.bin (para OTA), estão localizados no diretório bin.
Os arquivos para atualização de inicialização via OTA estão localizados no diretório update_boot. O processo de atualização de inicialização via OTA não é seguro. Verifique o nível da bateria antes de fazer isso. Se a inicialização estiver funcionando bem, não há necessidade de atualizar para a nova versão. A necessidade de substituir o boot por uma nova versão será anunciada posteriormente.
A
FW Boot' version is **v1.7** for devices with CHT8305 sensor. For other variants,a inicialização do FW não é necessária a partir da versão v1.4 .
Com configurações padrão :
| Versão | Descrição |
|---|---|
| 1,0 |
|
| 1.1 |
|
| 1.2 |
|
| 1.3 |
|
| 1.4 |
|
| 1,5 |
|
| 1.6 |
|
| 1.7 |
|
| 1.8beta |
|
É possível atualizar o dispositivo com o programa Boot via adaptador USB-COM com saídas de 3,3V.
| Adaptador | Dispositivo |
|---|---|
| GND | -Vbat |
| +3,3 V | +Vbat |
| Texas | RX1 |
| RX | TX1 |
| RTS | REINICIAR |
Se não houver nenhum pino RST no adaptador, coloque o pino RESET em curto com GND (-Vbat) e abra-o rapidamente quando o script for iniciado (podem ser necessárias algumas tentativas).
O nome dos pinos do dispositivo pode ser encontrado na descrição nos links:
pip3 install -r requirements.txt
Baixe o arquivo BOOT_XXX_vXX.hex necessário para o dispositivo específico no diretório bin.
Correr:
python3 rdwr_phy62x2.py -p COM11 -e -r wh BOOT_XXX_vXX.hex
O flash de inicialização está completo. O dispositivo está operacional e o adaptador pode ser desconectado.
Baixe a versão completa do firmware via OTA. Para fazer isso:
Connect , procure o dispositivo e conecte-se.OTA , selecione o firmware necessário ( .bin ) e clique em Start .O dispositivo deve reiniciar e estar pronto para uso.
Opcional:
- Para limpar previamente todo o flash, use a opção
-a.- Para limpar previamente o espaço de trabalho flash, use a opção
-e.- Com o adaptador USB-COM é possível escrever o firmware principal (APP) imediatamente:
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
O firmware original do Tuya para um tipo de dispositivo específico pode ser obtido nos links da tabela no início deste README.
python3 rdwr_phy62x2.py -p COM11 -b 1000000 -r we 0 ff_thb2.bin
Nem todos os adaptadores USB-COM suportam 1Mbit. Em seguida, remova a opção
-b 1000000ou selecione uma taxa de transmissão diferente.
| Endereço | Descrição | Tamanho |
|---|---|---|
| 0x00000 | ROM usada | 8 quilobytes |
| 0x02000 | Informações de inicialização para ROM | 4 quilobytes |
| 0x03000 | Inicialização FW com função OTA | 52 quilobytes |
| 0x10000 | APLICATIVO FW | 128 quilobytes |
| 0x30000 | Gravação de histórico | 304 quilobytes |
| 0x7C000 | Salvar configurações (EEP) | 16 quilobytes |
FW Boot possui uma função OTA, mas não possui uma função de histórico ou quaisquer outros complementos. Ele é usado para lidar com OTA em caso de atualizações incorretas ou com falha.
FW APP não tem função OTA, para OTA ele reinicia em FW Boot . Possui recursos e extensões adicionais.
Ação do botão quando o dispositivo está ligado:
Se o botão for pressionado na inicialização, FW Boot sempre será iniciado.
Se o botão não for pressionado, a entrada FW APP será verificada ou não. Se houver um FW APP , ele inicia o FW APP . Se não houver FW APP , FW Boot será iniciado.
Em termômetros com tela, se a exibição da hora não estiver ligada, durante a inicialização ou reinicialização, o seguinte será exibido por um breve período:
"Bot 14" - FW Boot versão 1.4
"APP 15" - FW APP versão 1.5
Existem duas maneiras de forçar a reinicialização do FW Boot a partir FW APP :
7233 no menu Service do programa PHY62x2BTHome.html.Reinicialização completa: Digite o comando
7201no menuServicedo programa PHY62x2BTHome.html.
Através do adaptador USB-UART, o APP pode ser gravado imediatamente após a inicialização. Por exemplo:
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
Desde a versão 1.2 é suportado o polling de um pino conectado a um reed switch ou um contato em curto com GND.
A frequência máxima de comutação é de 100 vezes por segundo.
Se o contato estiver chacoalhando, é aconselhável desviar o contato com um capacitor.
Ao fechar ou abrir, um bloco de 5 anúncios BLE é transmitido um após o outro após um período de 50 ms.
A cada evento “Aberto” é adicionado um contador.
O valor do contador é transmitido junto com cada evento "Abrir/Fechar".
Contato de entrada na placa do termômetro:
RX .RX .RX .RX2 .RX0 .RX2 . 

O contato na placa de circuito impresso identificado como “TX” ou “TX2” é controlado com pontos de ajuste de histerese para temperatura e umidade. É possível mudar para controle de saída inverso.
A configuração é feita no programa PHY62x2BTHome.html.
A operação de saída é atribuída definindo o valor da histerese:
Para redefinir os parâmetros básicos para os valores iniciais, use um smartphone Android e o aplicativo "nRFConnect". Conecte-se ao dispositivo e no serviço 0xFCD2 com característica 0xFFF4 escreva 56 .

Se o intervalo for superior a 10 segundos, será definido 10 segundos, pois é o máximo no padrão. O mesmo acontece com outras configurações. Porém, nem todos os adaptadores BT podem funcionar com intervalo de 10 segundos para conexão.
O GNU Arm Embedded Toolchain é usado para construir o firmware.
Para trabalhar no Eclipse, use a importação do projeto e instale o toolchain.path.
Veja isto para obter mais informações sobre os chips PHY62xx.