[BK7231N / CB3S] Generic Tuya Water Pump flashing and setup OpenBK7231N_QIO_1.17.240.bin
TL;DR
- An ultra-cheap Chinese Tuya house-plant water pump with a CB3S module and an unlabeled SOP16 custom MCU was flashed with OpenBeken.
- The CB3S drives the pump motor on P7, the LEDs on P8, and receives both front buttons through the custom MCU on P14.
- OpenBK7231N_QIO_1.17.240.bin uploaded with hid_download_py on the third attempt using the power-cycling method, without grounding the reset pin.
- Clicking the pump button toggles the pump, while the Wi‑Fi button triggers AP mode through OpenBeken event handlers.
- The two buttons are only simulated as one input by the custom MCU, so they do not behave independently.
Hello again! It's been a while since I last posted. Found this ultra-cheap house plant water pump from China and I was pretty determined to make it work with open source firmware, whatever is inside.
Turns out there's a CB3S inside along with some unlabeled custom MCU in a SOP16 package. Probably designed that way to facilitate battery powered mode, which the PCB does seem to be fully capable of doing but the pump plastic housing was refactored and modified for USB powering instead. The two buttons on the front panel are wired through the custom MCU which is connected only via P14 to the CB3S. Luckily the CB3S directly controls the two LEDs and the pump motor through P7 and P8.
Using hid_download_py I managed to upload OpenBeken to the module from the third attempt using the power-cycling method because of lack of hands to ground the reset pin.
sudo ./uartprogram /home/ivan/Downloads/OpenBK7231N_QIO_1.17.240.bin -d /dev/ttyUSB0 -w -s 0x0 -uIt took me some trial and error but eventually I figured out the two buttons could be utilized by listening for short click and long hold on the same input as it seems the custom MCU is simulating a single button on that input pin. Tapping the wifi button generates a long press event and tapping the pump power button generates a short click event. Pressing the buttons any other way doesn't produce any different events. That's just how the custom MCU behaves.
Adding
backlog AddEventHandler OnClick 14 ToggleChannel 1; AddEventHandler OnHoldStart 14 backlog OpenAPAdding template as response to this post after I get a thread ID.
Added after 1 [minutes]:
Here's the template I am using:
{
"vendor": "Tuya",
"bDetailed": "0",
"name": "Tuya Generic Water Pump",
"model": "WIFI-V1.11",
"chip": "BK7231N",
"board": "WIFI-V1.11",
"flags": "1024",
"keywords": [
"CB3S",
"BK7231N",
"water",
"pump"
],
"pins": {
"7": "Rel;1",
"8": "WifiLED_n;0",
"14": "Btn;2"
},
"command": "backlog AddEventHandler OnClick 14 ToggleChannel 1; AddEventHandler OnHoldStart 14 backlog OpenAP",
"image": "https://obrazki.elektroda.pl/2842963700_1694381412_thumb.jpg",
"wiki": "https://www.elektroda.com/rtvforum/viewtopic.php?p=20728797#20728797"
}
Comments
Very good and comprehensive review. Futhermore, it's a new device to me. I haven't seen that one yet. Well done! So it's an USB-powered one? What kind of USB adapter is recommended, will 500mA be enough?... [Read more]
Thanks! Good questions, but unfortunately I don't have a ready answer. The device is USB powered. The PCB is equipped for battery mode, all the necessary circuitry is there. The plastic housing even has... [Read more]