Skip to content

Installation: General

Sergi Esteve edited this page Nov 19, 2025 · 4 revisions

Installation Methods

There are lots of ways to install firmware on hardware devices, and different vendors and hardware designs have different approaches. Below is a list of methods to replace the stock firmware on your camera, listed from the most reliable to the easiest:

Programming with CH341A, off-board

image

This method requires desoldering the flash chip and reprogramming it in a programmer.

Requirements:

  • Soldering station
  • CH341a programmer
  • SOIC8 chip adapter
  • Soldering skills

Programming with CH341A, in-place

image

This method requires a programmer with a programming clip.

Requirements:

  • CH341a programmer
  • SOIC8 programming clip

Programming via serial connection

image

This method requires a serial connection and access to U-Boot shell. The firmware image can be read from an SD card, or downloaded from a TFTP server over an Ethernet connection, or uploaded over serial link using a modem protocol.

Requirements:

  • UART adapter

Programming over USB port with Cloner tool

image

This method requires a USB OTG port on the camera and Ingenic USB Cloner tool.

Requirements:

  • USB cable with data lines

image

Programming from an SD card with a magic filename

image

Please check No Tool Installation method if that method exists for your camera. Check the list at Thingino Installers.

Requirements:

  • SD card

Programming from a sideloaded system

Try wz_mini_hacks and get creative (requires SD card slot).

Programming from within the stock system

Break the stock Linux password and get access to the shell (requires a UART connection)

... maybe something else

In Details

This document outlines several methods of installation, each tailored to accommodate the unique characteristics of various devices. Some installation methods are straightforward and do not require the user to open the device, such as using USB recovery methods or SD card installations. However, other methods may necessitate physically opening the device to access interfaces like UART. The following sections provide detailed instructions for each method, ensuring you can successfully install the software on your device regardless of its design or vendor.

Using the Ingenic USB Cloner tool

If your camera has a USB port, there is a good chance that you can install the firmware using Ingenic USB Cloner.

From the U-Boot Shell

Important

Some manufacturers customize the bootloader by changing the key sequence or stop string to enter the shell, limit the commands available, etc. The following are general instructions.

  1. Follow steps 1-4 from the previous chapter.
  2. Create a serial connection to the UART port of the camera.
  3. While booting, press Ctrl-c to get into the bootloader shell.

Make sure the card is readable by the bootloader. Run mmc rescan followed by mmcinfo to verify the size of the card.

ingenic_T31L# mmc rescan
ingenic_T31L# mmcinfo   
Device: msc
Manufacturer ID: 0
OEM: 3000
Name: APPSD 
Tran Speed: 50000000
Rd Block Len: 512
SD version 2.0
High Capacity: No
Capacity: 60 MiB
Bus Width: 4-bit

Run fatls mmc 0 to check the contents of the card.

ingenic_T31L# fatls mmc 0
  8388608   autoupdate-full.bin 

1 file(s), 0 dir(s)

Execute the following commands line by line.

Use setenv flashsize 0x800000; for an 8MB flash chip, setenv flashsize 0x1000000; for a 16MB flash chip.

setenv flashsize 0x800000;
setenv baseaddr 0x82000000;
mw.b ${baseaddr} 0xff ${flashsize};
fatload mmc 0:1 ${baseaddr} autoupdate-full.bin;
sf probe 0; sf erase 0x0 ${flashsize};
sf write ${baseaddr} 0x0 ${filesize};
reset

From another firmware

Download the U-Boot image for your camera from https://github.com/gtxaspec/u-boot-ingenic/releases/, flash it to the first partition (mtd0), wipe the existing environment (mtd1) and reboot.

root@openipc-t31:~# curl -L -s -o /tmp/uboot.bin https://github.com/gtxaspec/u-boot-ingenic/releases/latest/download/u-boot-isvp_t31_sfcnor_lite.bin
root@openipc-t31:~# flashcp /tmp/uboot.bin /dev/mtd0
root@openipc-t31:~# flash_eraseall /dev/mtd1
root@openipc-t31:~# reboot

If your camera has an SD card slot, download the latest Thingino firmware for your camera from https://github.com/themactep/thingino-firmware/releases and save it as autoupdate-full.bin to a FAT32 formatted SD card. Insert the card into the camera and reboot. The camera will reflash itself and reboot again to populate the environment. You should now have a Thingino camera.

If your camera does not have an SD card slot, update the boot arguments to replace the dynamic overlay size with a hard-coded value to overcome the limitations of the existing kernel, enable the updates, and reboot again.

root@openipc-t31:~# fw_setenv bootargs 'mem=${osmem} rmem=${rmem} console=${serialport},${baudrate}n8 panic=${panic_timeout} root=/dev/mtdblock3 rootfstype=squashfs init=/init mtdparts=jz_sfc:256k(boot),64k(env),${kern_size}(kernel),${rootfs_size}(rootfs),1024k(rootfs_data)${update}'
root@openipc-t31:~# fw_setenv enable_updates true
root@openipc-t31:~# reboot

Finally, download and flash the full thingino image for your camera. This will overwrite everything in the flash chip.

root@openipc-t31:~# curl -L -s -o /tmp/fw.bin https://github.com/themactep/thingino-firmware/releases/download/firmware/thingino-vanhua_l34.bin
root@openipc-t31:~# flashcp /tmp/fw.bin /dev/mtd6
root@openipc-t31:~# reboot
  1. Wiki Home
  2. About the Project
    1. Contributions
    2. Features
    3. Project Philosophy
    4. Releases
  3. Getting Started
    1. FAQ
    2. Glossary
    3. Hardware Identification
    4. Image Builder
    5. USB Boot Mode
    6. Ingenic USB Cloner
      1. OTG Booting
    7. PPSTRONG
    8. Installation: General
    9. Installation: No Tools Methods
    10. Resources and Links
    11. Support Community
    12. Troubleshooting
    13. UART Connection
    14. Updating Firmware
    15. Unbricking
    16. Web UI
  4. Supported Cameras
    1. Cameras
    2. 360 AP1PA3
    3. AliExpress LTIA‐37FJZ (Vanhua Z55 module)
    4. AOQEE C1
    5. Aosu C5L
    6. Cinnado
      1. Cinnado D1 2K
      2. Cinnado D1 3K
    7. Dekco DC5L
    8. Eufy
      1. Eufy E210 Outdoor Cam
      2. Eufy E220
    9. Galayou/Wansview
      1. Galayou G2
      2. Galayou G7
      3. Wansview W6
      4. Wansview W7/Galayou Y4
    10. Hualai (Wyze/Atom/Neos/Personal)
      1. Dafang Upgrading for Wyze v2
      2. NEOS conversion
      3. Personal Cam Pan and Cam 2
      4. Wyze Cam Pan V1
      5. Wyze Doorbell (V1)
        1. Chime Reverse Engineering
        2. Flashing VDB1 over UART (YMODEM)
        3. MQTT Control and Monitoring
      6. Wyze v2/Neos SmartCam/ATOM Cam 1
      7. Wyze v3
      8. Wyze Accessories
    11. iFlytek XFP301‐M
    12. Jienuo JN-107-AR-E-WIFI
    13. Jooan A6M
    14. LaView L2
    15. LongPlus X07
    16. LSC 3215672
    17. Sannce I21AG
    18. Sonoff Cam‐S2 and B1P
    19. TP-Link Tapo C100/C110/C111
    20. Wuuk Y0510
    21. Xiaomi
      1. Xiaomi Mijia1080p (SXJ02ZM)
      2. Xiaomi MJSXJ03HL
      3. Xiaomi Outdoor Camera AW200 (MJSXJ05HL)
  5. Configuration
    1. Administration
    2. Automation
      1. Configuring camera using runonce.sh script
    3. Cron jobs
    4. General
    5. LED Indicators
    6. Lighting
    7. Media Streaming Endpoints
    8. Network Storage
    9. Networking
      1. DHCP: Timezone
      2. Wireless Networking
      3. USB Direct w CDC (NCM)
      4. USB Ethernet Networking
      5. Remote Access
      6. VPN
        1. Tailscale
        2. Wireguard
        3. Zerotier
      7. Wi-Fi
        1. Self Hosted AP
        2. Tips and Tricks
      8. WWAN (Cellular)
    10. Night Mode
    11. ONVIF
    12. OSD (On-screen Display)
    13. Plugins
      1. Motion Guard
      2. Yandex Disk
    14. SSH Access Keys
    15. Wi-Fi Access
    16. Provisioning
    17. Streamer Bitrate Control
    18. Video Rotation
  6. Integration
    1. Home Assistant
    2. Frigate
    3. Ingenic A1/$15 NVR
    4. LightNVR
    5. Mobile Apps
    6. MQTT Integration
    7. Telegram Bot Integration
    8. Virtual Webcam on Linux
    9. Mainsail (Klipper)
  7. Development
    1. Booting
      1. Boot: MMC SD
      2. Boot: NFS
    2. CH341A Programmer
    3. RTSP Players
    4. Flash Chips
    5. go2rtc
    6. Porting Guide
    7. Ingenic Platform Capability Matrix
    8. Ingenic Image Processor
    9. ISP Reserved Memory (RMEM)
    10. Debugging
    11. Software
      1. Building From Sources
      2. Buildroot
      3. Toolchain
      4. Choice of JSON library
    12. SSL and TLS Web UI in thingino
    13. Tech Info
      1. Hardware
      2. PWM Info
      3. Supported Hardware
      4. T23 GPIOs
      5. T31 GPIOs
    14. U-Boot Cheatsheet
    15. Zeratul/Atlas/Tassadar
    16. Resources

Clone this wiki locally