Camera: TP‐Link Tapo C100 C110 C111 - themactep/thingino-firmware GitHub Wiki

TP-Link Tapo C100/C110/C111

(UART + SD card method)

This guide documents the process of flashing Thingino firmware onto a **TP-Link Tapo C100/C110/C111 using UART access to U-Boot and an SD card.

ℹ️ Information

The Tapo C100/C110 have several different hardware revisions and not all are compatible with Thingino. See Below for known information.

C100

Version Supported Comments
v1.0 Uses Realtek RTS3903N SoC.
v4.0 (v2.0) Uses Realtek RTS3903N SoC. Sticker on board shows v2.0
v4.20 T31L, SC2336, RTL8188FTV, 8MB
v4.26 T31L, SC2336, RTL8188FTV, 8MB
v4.60 T31L, SC2336, RTL8188FTV, 8MB
v4.80 T31L, SC2336, RTL8188FTV, 8MB
v5.0 T23N, SC2336P, WQ9001, 8MB
v5.6 T23N, SC2336P, WQ9001, 8MB

C110/C111

Version Supported Comments
v1.80
v2.26 Uses SigmaStar SSC333 SoC. Appears to be supported by OpenIPC (1) (2)
v2.60 (v2.20) Uses SigmaStar SSC333 SoC. Sticker on board show v2.2. Appears to be supported by OpenIPC (1) (2)
v3.0 T23N, SC3336, WQ9001, 8MB
v3.60 T23N, SC3336, WQ9001, 8MB. Missing UART resistors, require bridging resistor pads.

Requirements

  • USB-to-UART adapter (3.3V TTL only, not RS-232)
  • Soldering iron with fine tip, flux, thin solder
  • MicroSD card (all contents will be destroyed)
  • Linux PC (or equivalent) with raw disk access
  • Correct Thingino firmware build for the C110 v3.6 hardware

Part 1 — UART setup

1. Locate UART pads

Open the camera (disassembly guide) and locate the UART test pads on the PCB (TX, RX, GND).
Use a multimeter to confirm GND.

2. Missing resistors near UART pads (important)

Some Tapo C110 v3.6 boards ship with missing resistors near the UART pads.
If UART does not work initially, inspect the PCB closely. Missing Resistors

You may need to bridge the resistor pads with solder to restore UART communication.

3. Wire the UART adapter

Camera UART Adapter
GND GND
TX RX
RX TX
  • Do NOT connect 5V
  • Power the camera normally

4. Serial settings

  • Baud rate: 115200
  • Data bits: 8
  • Parity: None
  • Stop bits: 1
  • Flow control: Off

5. Interrupt U-Boot

Power on the camera and watch UART output.

When you see:

Autobooting in 1 seconds

Repeatedly type:

slp

You should land at a U-Boot prompt.


Reference (camwit):
https://github.com/themactep/thingino-firmware/discussions/400#discussioncomment-14245236

Part 2 — Backing up the original firmware

You will back up the entire SPI flash to an SD card, then extract it on a PC.

⚠️ SD card warning

All existing data on the SD card will be erased.

1. Insert the SD card and enter U-Boot

Interrupt boot using slp.

2. Run the backup commands

Enter commands one line at a time. Do NOT paste all lines at once.

mw.b 0x80600000 0xff 0x800000
sf probe 0; sf read 0x80600000 0x0 0x800000
mmc dev 0; mmc erase 0x10 0x4000; mmc write 0x80600000 0x10 0x4000

This:

  • Clears RAM
  • Reads 8 MB from SPI flash
  • Writes it to the SD card

3. Extract the backup on a Linux PC

sudo dd bs=512 skip=16 count=16384 if=/dev/sda of=./fulldump.bin

Replace /dev/sda with your actual SD card device.

4. Verify the backup

ls -lh fulldump.bin
sha256sum fulldump.bin

Expected size:

  • 8,388,608 bytes (8 MB)

Store this backup safely.


Part 3 — Flashing Thingino firmware

⚠️ WARNING

This process can permanently brick the camera if done incorrectly.
You must create and verify a full firmware backup before flashing.


Reference (camwit):
https://github.com/themactep/thingino-firmware/discussions/400#discussioncomment-14468801

1. Prepare the SD card

  • Format as FAT32
  • Copy the firmware to the SD root (example: upg.bin)

2. Boot into U-Boot

Interrupt autoboot using:

slp

3. Flash the firmware

Replace upg.bin if your filename differs. Run these commands, one at a time.

mmc rescan
sf probe 0
fatls mmc 0:1
fatload mmc 0:1 0x82000000 upg.bin
sf erase 0 0x800000

NOTE:
sf erase wipes the entire flash. This is the point of no return. (This will take a minute to complete)

sf write 0x82000000 0 ${filesize}
reset

4. Optional: verify the flash (recommended)

sf read 0x83000000 0 ${filesize}
cmp.b 0x83000000 0x82000000 ${filesize}

No differences = success.


Part 4 — Initial configuration

1. Connect to Thingino Wi‑Fi

After first boot, connect to:

THINGINO-****

Then open:

2. Complete setup

  • Set hostname
  • Set password
  • Configure Wi‑Fi
  • Apply settings and reboot

Part 5 — Web UI access & fixes

1. Access the web interface

Open:

http://[hostname].local

UART tip:
Log in via serial as root using your set password.
The camera IP will be shown on UART.

2. Fix frozen video issue

In the web UI:

  1. Settings → Streamer / OSD → Main Stream
  2. Change Buffers from 12
  3. Save config
  4. Restart streamer

3. Optional: restore original MAC address

If printed on the camera label:

  • Settings → Network
  • Set MAC to match the label

Credits