Tasmota Flash Oukitel P2 Plug
Oukitel P2, also know as Merisny P2, is a 16A rated WiFi controllable plug. It can be purchased for 12USD on Banggood. It is based on the ESP8266 MCU. Works flawlessly with the Tasmota firmware.
I recommend doing an inspection and applying solder where there are weak spots or blank tinned copper pads, e.g. on the left edge of the board the relay output can be a bit sparsely tinned.
Wiring
Esptool
Download the Esptool to erase and flash the Tasmota firmware.
Erase flash
Change the right serial-port, e.g. /dev/tty.usbserial-A98AVCSI
user$ ./esptool.py --port /dev/tty.usbserial-A98AVCSI erase_flash esptool.py v2.5.1 Serial port /dev/tty.usbserial-A98AVCSI Connecting.... Detecting chip type... ESP8266 Chip is ESP8285 Features: WiFi, Embedded Flash MAC: 2c:f4:32:c9:d1:91 Uploading stub... Running stub... Stub running... Erasing flash (this may take a while)... Chip erase completed successfully in 3.7s Hard resetting via RTS pin... user$
Now, unplug and plug-in the ground pin from the serial-adapter to reset the ESP MCU. If the following step does not work, try disabling the 3V3 pin instead - as the sudden external power up might not put the MCU in the upload right state.
Upload firmware
Download the latest Tasmota firmware (tasmota.bin)
user$ ./esptool.py --port /dev/tty.usbserial-A98AVCSI write_flash -fs 1MB -fm dout 0x0 tasmota.bin esptool.py v2.5.1 Serial port /dev/tty.usbserial-A98AVCSI Connecting........_____....._____....._____....._ Detecting chip type... ESP8266 Chip is ESP8285 Features: WiFi, Embedded Flash MAC: 2c:f4:32:c9:d1:91 Uploading stub... Running stub... Stub running... Configuring flash size... Compressed 575616 bytes to 396460... Wrote 575616 bytes (396460 compressed) at 0x00000000 in 35.4 seconds (effective 130.1 kbit/s)... Hash of data verified. Leaving... Hard resetting via RTS pin... user$
Setup
Connect to the device over Wifi as any regular Tasmota device and configure the template to the following:
{"NAME":"Oukitel P2","GPIO":[0,0,52,0,0,0,0,0,0,17,0,21,0],"FLAG":1,"BASE":18}
It provides one ADC0 input, usage undefined at the moment.