diff --git a/README.md b/README.md index c9e777ca..7dfdbfc5 100644 --- a/README.md +++ b/README.md @@ -152,6 +152,7 @@ OpenIPC Wiki - [Smartwares CIP-37210](en/device-smartwares-cip-37210.md) - [Foscam X5](en/device-foscam-x5.md) - [TP-Link Tapo C110](en/device-tapo-c110.md) +- [TP-Link Tapo C120](en/device-tapo-c120.md) - [VStarcam pan/tilt (Hi3518EV200 + GC2023)](en/device-vstarcam-hi3518ev200-gc2023.md) - [Xiaomi Mi Camera 2K (MJSXJ03HL)](https://github.com/OpenIPC/device-mjsxj03hl/) - [ATOM Cam / Hualai / Wyze](en/device-wyze-integration.md) diff --git a/en/device-tapo-c120.md b/en/device-tapo-c120.md new file mode 100644 index 00000000..0505bc70 --- /dev/null +++ b/en/device-tapo-c120.md @@ -0,0 +1,87 @@ +# OpenIPC Wiki +[Table of Content](../README.md) + +TP-Link Tapo C120 +--- + +SoC SSC377, sensor SC430AI (4 MP), 16 MB NOR (XM25QH128C), Wi-Fi RTL8188FTV on USB. +Firmware: the +[`ssc377_lite_tp-link-tapo-c120`](https://github.com/OpenIPC/builder/tree/master/devices/ssc377_lite_tp-link-tapo-c120) +device in OpenIPC/builder — 16 MB layout, `rtl8188fu` driver, WPA3-capable `wpa_supplicant`, the IQ file, +and the IR-cut and LED pins. Take the image from the builder releases, or build it yourself with +`./builder.sh ssc377_lite_tp-link-tapo-c120`. The SC430AI sensor driver lives in +[OpenIPC/sensors](https://github.com/OpenIPC/sensors/tree/master/sigmastar/infinity6c). The generic +`ssc377_lite` image is an 8 MB layout with no Wi-Fi driver and does not fit this camera. + +![Bottom side](../images/device-tapo-c120-bottom.jpg) + +### UART +Five pads next to the flash chip on the top side: `VCC TP1 TP2 TP3 TP4` + +VCC | TP2 | TP3 | TP4 +-|-|-|- +3.3V (do not feed) | TX | RX | GND + +115200 8N1. Connect RX (TP3) only after the camera is powered, otherwise it does not boot. + +Stock U-Boot stop string is `slp` (prompt `SigmaStar #`). It has `sf`, `md`, `mw`, `go` but no `mmc`/`fatload`. + +### Flash +Dump the whole chip before writing anything. The OpenIPC bootloader image overwrites data the stock +firmware needs to work, so only a complete backup lets you go back to Tapo. + +The builder image uses the standard OpenIPC 16 MB layout (`kernsize 0x300000`, `rootsize 0xa00000`): +``` +mtdparts=NOR_FLASH:256k(boot),64k(env),3072k(kernel),10240k(rootfs),-(rootfs_data) +``` + +### Sensor +Detection works by itself: `ipcinfo -s` prints `sc430ai`, and after start `logread | grep "Sensor index"` +shows `2688x1520@30fps`. The builder device ships the IQ file as `/etc/sensors/sc430ai.bin`; on any +other image take it out of your own stock firmware dump (`binwalk` finds the squashfs). + +### GPIO +IRCut | IRLed | WhiteLed | RedLed | GreenLed | WiFi power +-|-|-|-|-|- +GPIO81 | GPIO12 GPIO13 | GPIO14 | GPIO10 | GPIO11 | GPIO42 + +IR cut: high = day. LEDs: high = on. Speaker amplifier (GPIO48) is handled by the audio driver. + +``` +curl http://localhost/api/v1/config --data-binary @- <<'EOF' +{ + "nightMode": { + "irCutPin1": 81, + "irCutSingleInvert": true, + "backlightPin": 14 + } +} +EOF +``` + +--- + +### Wireless +The RTL8188FTV is powered through GPIO42; the builder device's `/etc/wireless/usb` has the entry: +``` +if [ "$1" = "rtl8188fu-tapo-c120" ]; then + set_gpio 42 1 + sleep 2 + modprobe 8188fu + exit 0 +fi +``` + +``` +fw_setenv wlandev rtl8188fu-tapo-c120 +fw_setenv wlanssid Router +fw_setenv wlanpass 12345678 +``` + +Driver: `BR2_PACKAGE_RTL8188FU_OPENIPC=y` (`8188fu` from openipc/realtek-wlan, branch `rtl8188fu`). +The device selects `BR2_PACKAGE_WPA_SUPPLICANT_OPENIPC=y`, a wpa_supplicant with SAE, but the stock +`wlan0` script still writes a WPA2-PSK config: a WPA3-only network needs `key_mgmt=SAE` in +`/tmp/wpa_supplicant.conf` until that script learns it. + +### Ethernet +`J2` (marked ETH) on the bottom side has TX/RX from the internal PHY, no connector fitted. diff --git a/en/firmware-sensors.md b/en/firmware-sensors.md index 0d10baef..704698f3 100644 --- a/en/firmware-sensors.md +++ b/en/firmware-sensors.md @@ -30,6 +30,7 @@ or even that it will be included with the final binary for that SoC. Some additi - [Rockchip RV11xx](https://github.com/OpenIPC/firmware/tree/master/general/package/rockchip-osdrv-rv11xx/files/sensor) - [Sigmastar MSC313E](https://github.com/OpenIPC/firmware/tree/master/general/package/sigmastar-osdrv-msc313e/files/sensor) - [Sigmastar SSC335](https://github.com/OpenIPC/firmware/tree/master/general/package/sigmastar-osdrv-ssc335/files/sensor) +- [Sigmastar Infinity6C (SSC377)](https://github.com/OpenIPC/sensors/tree/master/sigmastar/infinity6c) - [Xiongmai XM510](https://github.com/OpenIPC/firmware/tree/master/general/package/xiongmai-osdrv-xm510/files/sensor) - [Xiongmai XM530](https://github.com/OpenIPC/firmware/tree/master/general/package/xiongmai-osdrv-xm530/files/sensor) diff --git a/en/tp-link.md b/en/tp-link.md index 26407743..7453543c 100644 --- a/en/tp-link.md +++ b/en/tp-link.md @@ -8,7 +8,7 @@ TP-Link | TP-Link Tapo C110 | TP33A | | 25Q64 | SSW101B | 2AXJ4C110 | | TP-Link Tapo C110 (V1) | SSC335 | SC3335 | 25Q64 | SSW101B | | | TP-Link Tapo C110 (V2) | SSC333 | SC3338 | 25Q64 | SSW101B | TE7KC110 | -| TP-Link Tapo C120 | SSC377 | | 25Q128 | RTL8188FTV | 2AXJ4C120 | +| TP-Link Tapo C120 | SSC377 | SC430AI | 25Q128 | RTL8188FTV | 2AXJ4C120 | | TP-Link Tapo C125 | SSC377D | | 25Q64 | SW6355 | 2AXJ4C125 | | TP-Link Tapo C200 | RTS3903 | SC2232H | 25Q64 | RTL8188FTV | TE7C200 | | TP-Link Tapo C200V2 | RTS3903N | | 25Q64 | RTL8188FTV | 2AXJ4C200V2 | diff --git a/images/device-tapo-c120-bottom.jpg b/images/device-tapo-c120-bottom.jpg new file mode 100644 index 00000000..c4ed5dc3 Binary files /dev/null and b/images/device-tapo-c120-bottom.jpg differ