Tapo C320WS v1.0: Internet, Infrared, Spotlight, Recording not working after stuck firmware update
Summary:
My C320WS v1.0 has auto-update firmware setting enabled. One midnight it attempted to download the latest firmware 1.3.9. It's been stuck on installing latest firmware for days. I restarted the camera via the Tapo app after waiting a few days with no progress. The current firmware version now only shows "(4555)", unlike other cameras that show the whole string "1.3.9 Build 231024 Rel.59054n(4555)". Furthermore, the Tapo app reports that "The Tapo device can only be controlled locally", despite the camera being connected to a router with internet access. Functions such as internet, infrared mode, spotlight, & recording no longer work since the update has been stuck prior to rebooting.
Potential cause:
The internet service went out by the time the firmware update is ongoing. This has likely caused the firmware update to be interrupted midway. The firmware couldn't have been installed completely into the camera since the camera didn't reboot automatically afterwards. The camera right now might be running on an incomplete firmware.
Starting from the time when the failed firmware download has initiated, the following functions no longer work:
- Internet (WiFi and ethernet).The camera won't detect an internet connection (checked via the Tapo app and diagnostic logs). In the Tapo app, the following banner can be read: "The Tapo device can only be controlled locally". Other Tapo cameras connected to the same network are able to detect internet just fine.
- Infrared mode (manual & auto). The infrared mode won't toggle on during evenings. Worse yet, it won't toggle at all when manually set in Tapo app. Normally, the camera would produce a clicking sound when switching modes, but there is no such sound at all.
- Spotlight. Similar to the Infrared mode, the spotlight won't turn on when manually controlled via the Tapo app.
- Recording. The SD card no longer receives real-time continuous recording clips after rebooting the camera for the first time during the stuck firmware update that lasted for days. The "Playback & Download" menu only shows the clips recorded before the stuck firmware update has occurred.
What still works are:
- Talk. You can speak to the camera via the Tapo app.
- Alarm. A wailing sound sequence can be played when the alarm is toggled on in the Tapo app.
- Camera Account. Useful for streaming the camera's video output to the web via ONVIF intranet protocol.
I did the following in attempt to repair the camera:
- Soft-reset the camera via the Tapo app.
- Hard-reset the camera by pushing the hardware reset button for at least 5 seconds until the camera says "Reset successful. Rebooting...".
- Change the router DNS to 8.8.8.8 and 8.8.4.4.
- Disable whitelisting/blacklisting devices.
- Reset the router to factory settings.
- Disable router firewall.
- Connect the camera to the router via WiFi and ethernet cable.
- Connect the camera to a different router with internet connection.
- Save diagnostic logs to the MicroSD card.
I can further confirm that the camera couldn't really detect an internet connection (even with an ethernet cable plugged in) based on the diagnostic logs here:
[2023-11-18 10:31:19][40;31m[ERROR][0m[cet][http_evbuffer_writeout]-2067: HTTP connection write error 104, stop write and end connection(fd 36) [2023-11-18 10:31:19][40;31m[ERROR][0m[cet][http_evbuffer_writeout]-2067: HTTP connection write error 32, stop write and end connection(fd 36) [2023-11-18 10:31:19][40;31m[ERROR][0m[cet][http_evbuffer_writeout]-2067: HTTP connection write error 32, stop write and end connection(fd 36) [2023-11-18 10:31:19][40;31m[ERROR][0m[cet][http_evbuffer_writeout]-2067: HTTP connection write error 32, stop write and end connection(fd 36) [2023-11-18 10:31:19][40;33m[WARN][0m[cet][http_connection_state_machine]-3508: Closed by peer, [2023-11-18 10:31:19][40;32m[INFO][0m[cet][http_connection_free]-3892: close http_connection fd: 36, method: POST, uri: (null) [2023-11-18 10:31:26][45;37m[WARN][0m[cloudiot]socket_fd,c:498(socket_dns_request_timeout)-- host: security,iot,i,tplinknbu,com, DNS timeout [2023-11-18 10:31:28][41;37m[ERROR][0m[cloudiot]http_client,c:54(http_client_timeout_handler)-- http connect timeout, req type: 0, [dsd] ubus_call(125): ubus invoke error: cloudiot,check_fw_version, ret=7 [dsd] ubus_call(125): ubus invoke error: cloudiot,check_fw_version, ret=7 [dsd] ubus_call(125): ubus invoke error: cloudiot,check_fw_version, ret=7 [dsd] ubus_call(125): ubus invoke error: cloudiot,check_fw_version, ret=7 [dsd] ubus_call(125): ubus invoke error: cloudiot,check_fw_version, ret=7 [dsd] ubus_call(125): ubus invoke error: cloudiot,check_fw_version, ret=7
I'm hoping for some assistance. If there is a way to flash a firmware via the MicroSD card, please let me know. Better yet, a previous stable firmware will do, and I no longer wish to let the camera update on its own.