I started to reverse engineering the Gardena Battery Rain Water Tank Pump 2000/2 in 2022. Unfortunately, I found out that the microcontroller cannot be read out (https://electronics.stackexchange.com/questions/629883/gardena-battery-rain-water-tank-pump-2000-2-swd-interface). Therefore, I have temporarily suspended the project.
I have a garden and would like to water it automatically with rain. For this I bought a «Gardena Battery Rain Water Tank Pump 2000/2» and would like to control via an ESP microcontroller.
Gardena Battery Rain Water Tank Pump 2000/2 18V P4A - Article No. 14602
- Website: https://www.gardena.com/int/products/lawn-care/grass-trimmers/system-battery-p4a-pba-18v-45/970508501/
- Manuel: https://www.gardena.com/tdrdownload//pub000081324/doc000149307 or Manuel
Gardena System Battery P4A PBA 18V/45 - Article No. 14903-20
- Website: https://www.gardena.com/int/products/watering/pump/battery-rain-water-tank-pump-2000-2-li-18-ready-to-use-set/970511001/
- Manuel: https://www.gardena.com/tdrdownload//pub000081354/doc000149497 or Manuel
| Description | Pin |
|---|---|
| Plus (+) | 1 |
| NTC | 2 |
| ID | 3 |
| Minus (-) | 4 |
After opening the control panel, I found that the board is molded in black plastic.
Label Description: HW: 3.1.4A3 | SW: 3.1.0 | 20210819
I removed the plastic from the board.
- www.leli.asia
- E123995
- LKS-181P_V3.1.0_20200806
- A109742 2021 04 12
Nuvoton NuMicro ML51TC0AE
- https://www.nuvoton.com/products/microcontrollers/8bit-8051-mcus/low-power-ml51-series/ml51tc0ae/
- https://www.nuvoton.com/export/resource-files/DS_ML51_ML54_ML56_Series_EN_Rev2.02.pdf or Datasheet
Nuvoton NU-Link + TX
| Description | Pin | Pin | Description |
|---|---|---|---|
| TX | 1 | 2 | GND |
| VCC | 3 | 4 | DAT |
| RST | 5 | 6 | CLK |
Baudrate: 9600 8N1
RAW FE323B553A30302E30303B493A30302E30303B54413A3030302E303B4572723A30303B534D4F3A3032333B4254523A3030306B303B53564E3A30332E31303B54533A3030302E303B42543A305F303B41493A3030303030323130303B18FD FE323B553A32302E34313B493A30302E30303B54413A3032352E343B4572723A30303B534D4F3A3032333B4254523A3034376B353B53564E3A30332E31303B54533A3032352E373B42543A335F313B41493A3030303030323130313B19FD FE323B553A32302E34303B493A30302E30303B54413A3032352E343B4572723A30303B534D4F3A3032333B4254523A3034376B353B53564E3A30332E31303B54533A3032352E383B42543A335F313B41493A3030303034313130323B13FD FE323B553A32302E34303B493A30302E30303B54413A3032352E343B4572723A30303B534D4F3A3032333B4254523A3034376B353B53564E3A30332E31303B54533A3032352E383B42543A335F313B41493A3030303034313130333B12FD
HEX and ASCII
| First Byte | ? | Batt. V | Batt. A | Batt. Temp | Error | SMO | Batt. Type. Rev | Software Ver. | Temp | Batt. Type | Auto Incremental | Checksum | Last Byte |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FB | U | I | TA | Err | SMO | BTR | SVN | TS | BT | AI | CS | LB | |
| 0xFE | 2 | 00.00 | 00.00 | 000.0 | 00 | 023 | 000k0 | 03.10 | 000.0 | 0_0 | 000002100 | 0x18 | 0xFD |
| 0xFE | 2 | 20.41 | 00.00 | 025.4 | 00 | 023 | 047k5 | 03.10 | 025.7 | 3_1 | 000002101 | 0x19 | 0xFD |
| 0xFE | 2 | 20.40 | 00.00 | 025.4 | 00 | 023 | 047k5 | 03.10 | 025.8 | 3_1 | 000041102 | 0x13 | 0xFD |
| 0xFE | 2 | 20.40 | 00.00 | 025.4 | 00 | 023 | 047k5 | 03.10 | 025.8 | 3_1 | 000041103 | 0x12 | 0xFD |
Checksume: To create the checksum, start reading after the first byte, end before the checksum byte and calculate the checksum using the CheckSum8 Xor algorithm.
HEX and ASCII without BATTERY DATA CABLE
| FB | U | I | TA | Err | SMO | BTR | SVN | TS | BT | AI | CS | LB | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0xFE | 2 | 00.00 | 00.00 | 000.0 | 00 | 023 | 000k0 | 03.10 | 000.0 | 0_0 | 000002100 | 0x18 | 0xFD |
| 0xFE | 2 | 20.46 | 00.00 | -20.0 | 00 | 023 | 999k9 | 03.10 | 024.6 | 0_0 | 000002101 | - | 0xFD |
| 0xFE | 2 | 20.46 | 00.00 | -20.0 | 07 | 023 | 999k9 | 03.10 | 024.6 | 0_0 | 000031102 | - | 0xFD |
HEX and ASCII without BATTERY DATA CABLE AND PUMP
| FB | U | I | TA | Err | SMO | BTR | SVN | TS | BT | AI | CS | LB | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0xFE | 2 | 00.00 | 00.00 | 000.0 | 00 | 023 | 000k0 | 03.10 | 000.0 | 0_0 | 000041000 | 0x1E | 0xFD |
| 0xFE | 2 | 20.46 | 00.00 | -20.0 | 00 | 023 | 999k9 | 03.10 | 026.1 | 0_0 | 000041001 | - | 0x02 |
HEX and ASCII without PUMP
| FB | U | I | TA | Err | SMO | BTR | SVN | TS | BT | AI | CS | LB | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0xFE | 2 | 00.00 | 00.00 | 000.0 | 00 | 023 | 000k0 | 03.10 | 000.0 | 0_0 | 000001000 | 0x1A | 0xFD |
| 0xFE | 2 | 20.39 | 00.00 | 025.4 | 00 | 023 | 047k5 | 03.10 | 025.7 | 3_1 | 000041001 | 0x11 | 0xFD |
| 0xFE | 2 | 20.39 | 00.00 | 025.4 | 00 | 023 | 047k5 | 03.10 | 025.8 | 3_1 | 000041002 | 0x12 | 0xFD |
| 0xFE | 2 | 20.39 | 00.00 | 025.4 | 00 | 023 | 047k5 | 03.10 | 025.8 | 3_1 | 000041003 | 0x13 | 0xFD |
HEX and ASCII without PUMP und Power Up
| FB | U | I | TA | Err | SMO | BTR | SVN | TS | BT | AI | CS | LB | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0xFE | 2 | 00.00 | 00.00 | 000.0 | 00 | 023 | 000k0 | 03.10 | 000.0 | 0_0 | 000002100 | 0x18 | 0xFD |
| 0xFE | 2 | 20.40 | 00.00 | 025.3 | 00 | 023 | 047k5 | 03.10 | 025.7 | 3_1 | 000002101 | 0x11 | 0xFD |
| 0xFE | 2 | 20.39 | 00.00 | 025.4 | 00 | 023 | 047k5 | 03.10 | 025.8 | 3_1 | 000002102 | 0x1F | 0xFD |
| 0xFE | 2 | 20.39 | 00.00 | 025.4 | 08 | 023 | 047k5 | 03.10 | 025.8 | 3_1 | 000032103 | 0x15 | 0xFD |
| 0xFE | 2 | 20.39 | 00.00 | 025.4 | 08 | 023 | 047k5 | 03.10 | 025.8 | 3_1 | 000032103 | 0x15 | 0xFD |
Gardena
- https://gitlab.com/nbrgmn/wall-e-esp8266-automower/-/tree/develop
- https://www.roboter-forum.com/index.php?thread/12310-wlan-anbindung-gardena-r40li-hausautomatisierung-fernbedienung-etc/&pageNo=2
- https://www.youtube.com/watch?v=DqCoxzLTGXg&t=567s
Arduino Logic Analyzer
Arduino Baudrate Finder
Checksum Calculator
Battery Hack Sheet
STACKOVERFLOW









