Hello,
I have recently purchased Automatic Fish Feeder from eBay.
It has XT-BL12 chiplet inside. Inside this chiplet, it has BL602. I have successfully soldered my UART jig to it, and flashed OpenBelken firmware.
Wi-Fi, MQTT works. I can also turn LED on/off, and rotate the drum.
I have few questions:
I have soldered DS18B20 temperature sensor to GPIO17. I have put 150k rezistor between data (GPIO17) and VCC, GND to GND.
But I haven't found out how to configure it properly. GPIO mapper wizzard from the web doesn't help. Toggling the drum doesn't turn it off after one rotation, it keeps rotating. I have to turn it off manually. I know that with Tasmota, identical problem is solved by setting pulsetime1. How can I do the same thing here, ie: Turning the drum will toggle-off automatically after it finishes its single rotation.
Second issue is that the default template doesn't know anything about temp sensor. I can't pick pin type from pre-defined list.
It doesn't read correct values.
.
And last, if I'll exclude HomeAssistant for now, how can I automate or mimic behavior of stock firmware, eg: When the drum rotates, LED blinks. When the button is pressed, it turns the drum once. If long-press is used, it forces an action (Pairing on stock, but I would prefer either reboot or safe mode).
To summ things up, I have so far identified GPIO03 as a button, GPIO04 as a LED, and GPIO05 as a drum rotation. Setting it to PWM allows me to rotate it through button on board's GUI. GPIO17 has a temp sensor connected.
I was able to put button and drum rotation to one group, so by pressing the button, the drum rotates (and never stop until pressed again). Toggle in the UI thinks it is a light.
I am sorry if it was already discussed elsewhere....I tried to search for either BL602 controlling a motor, or BL602 used in fish feeder units, but haven't found anything. Most feeders uses different chiplets which usually work well with Tasmota.
I have also tried to use gui flasher app to parse tuya mcu gpio config, but the app tells me that there was an error (tried both on Linux and Windows) while choosing tuyamcu dump binary file. The app refuses to download or read from BL602, because it was made for different chip. But it is able to verify connectivity from the unit over network, reads its chip, firmware version, etc. Is there a better or other way for BL602 to convert/parse tuyaMCU GPIO config?
Also, the unit prints "boot incompletes 1" in its gui. Should I be worried?
Update: I've read a bit more about drivers to start. I have tried to work with autoexec.bat, letting it start TuyaMCU, but there is no mention of this driver in logs, even though I set them to debug level verbosity. And if I'll try to start it manually, I'll get this:
Technically, this feeder was sorta no-name, came with specific app (Vanters), and while it does work similarly to other tuya devices (pairing mode, etc), it used some other noname vendor's cloud. I was looking to achieve two goals:
a) cut it off from chinese cloud services and allow direct LAN control (apart from endless drum rotation, this was achieved. I can control and automate the feeding using HA
b) Read temperature values from connected sensor. So far, I haven't found a way how, although the same procedure with Tasmota wasn't a problem.
I am attaching TuyaConfig dump made using web client.
Update2:
Bellow button config works, eg: rotates the drum only once, both toggle and the button:
In General/Flags, I had to enable "Flag 6 - [BTN] Instant touch reaction instead of waiting for release (aka SetOption 13)"
Apart from it thinking about the toggle being a LED light, it works. Only thing remaining is the temp sensor. To me, it seems like device class isn't defined in OpenBeken.
========================================================================================================
Update3:
As for HA integration, I did this:
configuration.yaml
I have added helpers to serve as a counter(s), and input boolean toggles to serve as a virtual on-off switch. I have two feeders, one based off of WBR3 - so used with TuyaLocal, and second one with BL602 I am playing with now, named Feeder1 (Tabs).
Aquarium LED Strip as seen in the dash panel screenshot is different controller entity not related to BL602
I have recently purchased Automatic Fish Feeder from eBay.
It has XT-BL12 chiplet inside. Inside this chiplet, it has BL602. I have successfully soldered my UART jig to it, and flashed OpenBelken firmware.
Wi-Fi, MQTT works. I can also turn LED on/off, and rotate the drum.
I have few questions:
I have soldered DS18B20 temperature sensor to GPIO17. I have put 150k rezistor between data (GPIO17) and VCC, GND to GND.
But I haven't found out how to configure it properly. GPIO mapper wizzard from the web doesn't help. Toggling the drum doesn't turn it off after one rotation, it keeps rotating. I have to turn it off manually. I know that with Tasmota, identical problem is solved by setting pulsetime1. How can I do the same thing here, ie: Turning the drum will toggle-off automatically after it finishes its single rotation.
Second issue is that the default template doesn't know anything about temp sensor. I can't pick pin type from pre-defined list.
It doesn't read correct values.

And last, if I'll exclude HomeAssistant for now, how can I automate or mimic behavior of stock firmware, eg: When the drum rotates, LED blinks. When the button is pressed, it turns the drum once. If long-press is used, it forces an action (Pairing on stock, but I would prefer either reboot or safe mode).

To summ things up, I have so far identified GPIO03 as a button, GPIO04 as a LED, and GPIO05 as a drum rotation. Setting it to PWM allows me to rotate it through button on board's GUI. GPIO17 has a temp sensor connected.
I was able to put button and drum rotation to one group, so by pressing the button, the drum rotates (and never stop until pressed again). Toggle in the UI thinks it is a light.

I am sorry if it was already discussed elsewhere....I tried to search for either BL602 controlling a motor, or BL602 used in fish feeder units, but haven't found anything. Most feeders uses different chiplets which usually work well with Tasmota.
I have also tried to use gui flasher app to parse tuya mcu gpio config, but the app tells me that there was an error (tried both on Linux and Windows) while choosing tuyamcu dump binary file. The app refuses to download or read from BL602, because it was made for different chip. But it is able to verify connectivity from the unit over network, reads its chip, firmware version, etc. Is there a better or other way for BL602 to convert/parse tuyaMCU GPIO config?
Also, the unit prints "boot incompletes 1" in its gui. Should I be worried?
Update: I've read a bit more about drivers to start. I have tried to work with autoexec.bat, letting it start TuyaMCU, but there is no mention of this driver in logs, even though I set them to debug level verbosity. And if I'll try to start it manually, I'll get this:
Info:MAIN:Driver TuyaMCU is not known in this build.
Info:MAIN:Available drivers:
Info:MAIN:NTP
Info:MAIN:, RN8209
Info:MAIN:, BL0942
Info:MAIN:, BL0937
Info:MAIN:, CSE7766
Info:MAIN:, DDP
Info:MAIN:, SSDP
Info:MAIN:, DGR
Info:MAIN:, Wemo
Info:MAIN:, SM2135
Info:MAIN:, BP5758D
Info:MAIN:, BP1658CJ
Info:MAIN:, SM2235
Info:CMD:[WebApp Cmd 'startDriver TuyaMCU' Result] OK
Technically, this feeder was sorta no-name, came with specific app (Vanters), and while it does work similarly to other tuya devices (pairing mode, etc), it used some other noname vendor's cloud. I was looking to achieve two goals:
a) cut it off from chinese cloud services and allow direct LAN control (apart from endless drum rotation, this was achieved. I can control and automate the feeding using HA
b) Read temperature values from connected sensor. So far, I haven't found a way how, although the same procedure with Tasmota wasn't a problem.
I am attaching TuyaConfig dump made using web client.
Update2:
Bellow button config works, eg: rotates the drum only once, both toggle and the button:
{
"vendor": "Vanters",
"bDetailed": "0",
"name": "Automatic Fish Feeder",
"model": "ANT325 V0",
"chip": "BL602",
"board": "XT-BL12",
"flags": "-2080373664",
"keywords": [
"Feed",
"Fish"
],
"pins": {
"2": "Btn_n;1",
"3": "Btn;2",
"4": "WifiLED_n;0",
"5": "PWM;3"
},
"command": "waitFor WiFiState 4;waitFor MQTTState 1",
"image": "https://obrazki.elektroda.pl/YOUR_IMAGE.jpg",
"wiki": "https://www.elektroda.com/rtvforum/topic_YOUR_TOPIC.html"
}

In General/Flags, I had to enable "Flag 6 - [BTN] Instant touch reaction instead of waiting for release (aka SetOption 13)"
Apart from it thinking about the toggle being a LED light, it works. Only thing remaining is the temp sensor. To me, it seems like device class isn't defined in OpenBeken.
========================================================================================================
Update3:
As for HA integration, I did this:
configuration.yaml
- platform: template
sensors:
fish_feed_time_tabs:
friendly_name: "Last Fish Feeding - Tabs"
value_template: >
{%- set time = (as_timestamp(now()) - as_timestamp(states.counter.number_of_feedings_tabs.last_changed)) | int %}
{%- set minutes = ((time % 3600) // 60) %}
{%- set minutes = '{}minutes'.format(minutes) if minutes > 0 else '' %}
{%- set hours = ((time % 86400) // 3600) %}
{%- set hours = '{}hours '.format(hours) if hours > 0 else '' %}
{%- set days = (time // 86400) %}
{%- set days = '{}days '.format(days) if days > 0 else '' %}
{{ 'Less than 1 minute' if time < 60 else days + hours + minutes }} ago
mqtt:
switch:
- unique_id: "feeder1.iot.lan_switch"
name: Feed
command_topic: "cmnd/Feeding/led_enableAll"
state_topic: "Feeding/led_enableAll/get"
availability_topic: "Feeding/connected"
payload_on: 1
payload_off: 0
- unique_id: "feeder1.iot.lan_reboot"
name: Reboot
command_topic: "cmnd/Feeding/restart"
availability_topic: "Feeding/connected"
payload_on: 1
payload_off: 0
state_off: "Feeding/online"
state_on: "Feeding/offline"
I have added helpers to serve as a counter(s), and input boolean toggles to serve as a virtual on-off switch. I have two feeders, one based off of WBR3 - so used with TuyaLocal, and second one with BL602 I am playing with now, named Feeder1 (Tabs).

Aquarium LED Strip as seen in the dash panel screenshot is different controller entity not related to BL602