Skip to content

Community Workflow Example ‐ Upgrading Firmware

NuttyJitters edited this page Feb 27, 2026 · 1 revision

Full upgrade without leaving command line

Here is an example workflow for updating cameras that are already running Thingino firmware. This process is entirely from the command line and performs a Full Update. The Full Update removes any configuration and settings that you have set in your camera, and this workflow aims to simplify the process to restore those settings and configurations without needing to change each camera through the Web UI. This example is for cameras that do not have internet access, but the same steps can be used whether the cameras have internet access or not. SSH from a local pc is used to connect to the cameras from the command line. Each camera has different settings (fps, pan/tilt home position, etc.) which are applied through the command line after the update.


Initial Setup

The one-time upfront effort with this process is

  • Insert a Fat32 SD Card into the camera with a uenv.txt file for Wi-Fi configuration
  • Create a configuration file for each camera.

This upfront work is optional since the Thingino Configuration Portal could be used to setup Wi-Fi, and the Thingino Web UI could be used to configure the camera settings. However, without these optional items the process cannot be completed entirely from the command line.

uenv.txt

A file named uenv.txt is on the Fat32 SD Card of the camera to automatically connect to Wi-Fi. Contents of the uenv.txt: wlan_ssid=nameofyournetwork wlan_pass=yourwirelessnetworkpass

Configuration File

The configuration file will set the specific camera settings after the upgrade is complete. This file is a shell script that is run after the firmware upgrade is complete. The JCT SET command is used to modify Thingino settings such as FPS and pan/tilt home positions. Take a look at this example file content and expand on it to fit your needs. Check out all the settings that can be configured by investigating the .json Thingino configuration files in /etc.

jct /etc/prudynt.json set stream0.fps 20
jct /etc/prudynt.json set stream0.gop 20
jct /etc/prudynt.json set stream1.fps 5
jct /etc/prudynt.json set stream1.gop 5
jct /etc/motors.json set motors.gpio_pan "54 52 53 64"
jct /etc/motors.json set motors.gpio_tilt "61 62 63 51"
jct /etc/motors.json set motors.pos_0 "1990,796"
jct /etc/thingino.json set webui.paranoid true
tzselect -n Chicago

Use .sh as the extension for the filename.


Upgrade Steps

  • Build updated firmware locally or download the latest file from thingino.com. Verify it is the correct file for the target camera hardware.

  • Copy the firmware to the camera through an ssh session. Note: if using scp to copy the file from Windows remember to use scp -O option (upper case oh). scp -O for example:

      scp -O c:\CameraFirmware\firmware_filename.bin root@camera_ip:/tmp/
    
  • Upgrade the camera from ssh with the firmware file. Use offline mode for sysupgrade (the -x option) if the camera does not have internet.

      sysupgrade -x /tmp/<firmware_filename>
    
    • The camera will update the firmware and automatically join your Wi-Fi network due to the uenv.txt on the SD Card. Note: If a person is not utilizing the uenv.txt to configure Wi-Fi, then use the Thingino Configuration Portal for configuring Wi-Fi and the root password.
  • SSH to the camera to set the root password. you will be prompted to set the root password after logging in for the first time (default password is root). Note: If a person is not utilizing the uenv.txt to configure Wi-Fi, then use the Thingino Configuration Portal will for configuring Wi-Fi and the root password.

  • From SSH, copy the configuration shell script to the camera and ensure it is executable with

      chmod +x <shell_script_filename>.sh
    
  • Run the shell script from SSH.

      <shell_script_filename>.sh
    
  • Reboot from SSH

      reboot
    
  • Validate that the camera is working and that the settings are correct.

In summary:

  • Obtain the appropriate firmware file and copy it to the camera
  • Run sysupgrade -x
  • Configure Wi-Fi connection (this is automatic with uenv.txt on SD) and set root password
  • Copy a configuration script to the camera and run it
  • Reboot
  1. Wiki Home
  2. About the Project
    1. Contributions
    2. Features
    3. Project Philosophy
    4. Releases
  3. Getting Started
    1. FAQ
    2. Hardware Identification
    3. Ingenic USB Cloner
      1. OTG Booting
    4. PPSTRONG
    5. Installation: General
    6. Installation: No Tools Methods
    7. Resources and Links
    8. Support Community
    9. Troubleshooting
    10. UART Connection
    11. Updating Firmware
    12. Unbricking
    13. 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. Personalcam
      4. Wyze Cam Pan V1
      5. Wyze Doorbell (V1)
        1. Chime Reverse Engineering
      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
    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
    3. Cron jobs
    4. General
    5. LED Indicators
    6. Lighting
    7. Media Streaming Endpoints
    8. Network Storage
    9. Networking
      1. Wireless Networking
      2. USB Direct w CDC
      3. USB Ethernet Networking
      4. Remote Access
      5. VPN
        1. Tailscale
        2. Wireguard
        3. Zerotier
      6. Wi-Fi
        1. Self Hosted AP
        2. Tips and Tricks
      7. 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
  6. Integration
    1. Home Assistant
    2. Frigate
    3. Ingenic A1/$15 NVR
    4. Mobile Apps
    5. MQTT Integration
    6. Virtual Webcam on Linux
    7. 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