Add TP-Link Tapo C120 device page - #549
Conversation
PR Summary by QodoDocument OpenIPC setup for TP-Link Tapo C120
AI Description
Diagram
High-Level Assessment
Files changed (3)
|
Code Review by Qodo
1.
|
UART pads, full-chip backup warning, partition sizes for the 3 MB kernel, GPIO map (IR cut, IR/white/status LEDs, Wi-Fi power), sensor IQ file location, RTL8188FTV bring-up. Fills the sensor column for the C120 in the TP-Link table and lists Infinity6C in the sensor index.
|
Reworked per the review: no stock firmware paths or partition names any more (backup warning kept, in external terms), sensor support now points at the driver/loader PRs with a way to verify detection, and Infinity6C is in the sensor index. Commit message and description updated too. |
openipc-ai
left a comment
There was a problem hiding this comment.
The rework reads well and the C110-style structure is the right shape for this. One factual inconsistency and one pointer.
The mtdparts does not match the firmware the page tells you to flash. The layout given is 3072k(kernel),9216k(rootfs) — a 16 MB split — while the page says to use ssc377_lite, which is BR2_OPENIPC_FLASH_SIZE="8" and builds to caps of 2048 KB kernel and 5120 KB squashfs. Add the CONFIG_CFG80211=y kernel the Wireless section calls for (the tree ships =m for infinity6c) and the IQ file copied by hand, and the page is describing a custom build from top to bottom without saying so. Either say plainly that this needs a self-built 16 MB image, or — better — point at a builder device once one exists; I've suggested that to you on OpenIPC/firmware#2445.
Small one: the Wireless section sends readers to build 8188fu from openipc/realtek-wlan branch rtl8188fu. That is accurate, but it is also exactly what BR2_PACKAGE_RTL8188FU_OPENIPC=y already builds — same repo, same branch. Naming the symbol saves people a manual kernel-module build.
The page described a hand-built image without saying so: a 3 MB kernel with cfg80211 built in, a hand-copied IQ file, a 9216k rootfs. The builder device ssc377_lite_tp-link-tapo-c120 holds all of that, on the stock infinity6c kernel (cfg80211 as a module works with 8188fu) and the standard 16 MB layout. Name the rtl8188fu Buildroot symbol instead of the manual module build, and say that WPA3-only networks still need a hand-written SAE config until the firmware follow-up lands.
|
Both fixed. The page now points at the OpenIPC/builder device |
openipc-ai
left a comment
There was a problem hiding this comment.
Both findings are fixed: the layout is the standard 16 MB map and matches the device, and the Wireless section names BR2_PACKAGE_RTL8188FU_OPENIPC=y instead of a manual module build. Approving — the wiki has no CI, so nothing else gates this.
One thing has gone stale underneath you in the last hour, though: all four are merged now.
- OpenIPC/sensors#7 →
0294a00 - OpenIPC/firmware#2445 →
e155691a - OpenIPC/firmware#2449 →
4d145e6c - OpenIPC/builder#162 →
5e1bb928
So the opening paragraph's "until those and the builder device are merged, build the device yourself" no longer applies, and the builder link points at a closed PR rather than the device. Worth a last pass before this goes in: point at devices/ssc377_lite_tp-link-tapo-c120 on master, and say the image comes from the builder release. Everything below that paragraph reads correctly as it stands.
For the record, the builder CI build of the device reproduced your hardware numbers exactly — uImage 1991KB/2048KB, rootfs.squashfs 5384KB/8192KB, 2808KB of headroom.
ssc377_raptor is ssc377d_raptor on the suffixless 64 MB part: 16 MB NOR, 8192k rootfs, no radio. ssc377_tapo_c120 derives from it and adds what that camera has -- an RTL8188FTV on USB, the supplicant, and a baked U-Boot environment whose one non-default line is wlandev. The radio needs two pins driven before it exists, and both are board knowledge, which is why this is a target and not a symbol: GPIO 42 (PAD_FUART_RX) gates the radio's supply. This tree's kernel holds it low -- the infinity6c padmux table muxes the pad to PWM0 at boot and an idle PWM output is a low -- while the vendor's device tree leaves it alone. A gpio export claims the pad back, so the arm in /etc/wireless/usb needs no kernel change. OpenIPC/builder#57 and the C120 page in OpenIPC/wiki#549 drive the same pin. GPIO 8 (PAD_UART1_TX) is the chip enable, pulsed the way the stock firmware's tmpd_insmod_driver does it: low a second, high, two more, insmod. The vendor's kernel carries the same pad table as ours, so the number means the same thing here. Detection cannot find a radio whose power is off, so wlandev has to be set before S40network runs; on a camera with no login yet the only place for that is the environment, hence the mkenvimage blob written through make_full_image.sh's ENV_BIN. Board status, from one C120: the full image boots, the baked environment is read, the arm runs, and the enable net rises on its own once it does -- GPIO 42 gating the supply is confirmed on that unit. Enumeration and association are not verified: the unit's RTL8188FTV had been damaged before the arm was corrected and never came up.
Device page for the TP-Link Tapo C120 (SSC377 + SC430AI + RTL8188FTV), in the style of the C110 page: UART pads, full-chip backup warning,
mtdpartsfor the 3 MB kernel, GPIO table with the majestic config block, how to check sensor detection and where the IQ file goes, and the Wi-Fi bring-up (/etc/wireless/usbentry,wlandev).One photo of the bottom side of the board. Adds the TOC line, fills the sensor column in
en/tp-link.md, and lists Infinity6C in the sensor index.Related: OpenIPC/sensors#7 (SC430AI driver), OpenIPC/firmware#2445 (
load_sigmastar).