Firmware personalizado para dispositivos Tuya baseado no chipset PHY622x2.
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_v19.hex | THB1_v19.bin | não |
THB2 | BOOT_THB2_v19.hex | THB2_v19.bin | não |
THB 3 | BOOT_THB2_v19.hex | THB2_v19.bin | não |
BTH01 | BOOT_BTH01_v19.hex | BTH01_v19.bin | não |
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) |
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. **
A versão atual do `FW Boot' é v1.9 para todos os dispositivos (erros corrigidos).
Firmware | Sensor SDA/SCL/Potência | LCD SDA/SCL/Alimentação | Chave | LIDERADO | TRG(TX) | ENTRADA(RX) |
---|---|---|---|---|---|---|
THB1 | P18/P20/- | P34/P33/- | P01 | - | P09 | P10 |
THB2 | P18/P20/- | - | P07 | P26 | P20 | P18 |
THB 3 | 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 |
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,8 |
|
1,9 |
|
É 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 1000000
ou 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
7201
no menuService
do 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.