Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
87 changes: 87 additions & 0 deletions en/device-tapo-c120.md
Original file line number Diff line number Diff line change
@@ -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.
1 change: 1 addition & 0 deletions en/firmware-sensors.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
2 changes: 1 addition & 1 deletion en/tp-link.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
Expand Down
Binary file added images/device-tapo-c120-bottom.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.