Code Monkey home page Code Monkey logo

wz_flash-helper's Introduction

Introduction | Setup | Backup | Restore | Switch firmware | Other options | Screenshots | Build | FAQs | Changelog | Limitation

Features

  • Backup partitions
  • Restore partitions
  • Switch between stock and OpenIPC firmware
  • No need to disassemble your camera
  • Dry run option debugging
  • Initramfs shell for manual debugging if you have serial connection
  • Seamlessly boot with wz_mini_hacks on the next boot
  • Customize partitions with custom scripts support
  • Windows-friendly setup progress

Supported cameras

SoC Camera model Support status Model code
Ingenic T20 Wyze Cam v2 ✅ Supported v2
Wyze Cam Pan ⚠️ Untested pan_v1
Ingenic T31 Wyze Cam v3 ✅ Supported v3
Wyze Cam Floodlight ⚠️ Untested v3
Wyze Cam Pan v2 ⚠️ Untested pan_v2
ATOM Cam 2 ⚠️ Untested v3c

Disclaimer

I am not responsible for bricking someone's cameras.
DO NOT DISCONNECT POWER when the Switch firmware operation is going on, this would brick your camera (unless you know how to recover with Ingenic Cloner or remove the flash chip and use SPI programmer).
It is also possible to brick your camera if you corrupt the U-boot partition with your custom scripts or inject dangerous commands into the configuration files.

Credits

  • Gtxaspec with his ideas, tips, hard work on OpenIPC drivers, U-boot SD card kernel booting, and testing.
  • Mnakada with their Docker image to build the SD card kernel from their repo
  • OpenIPC project and people with their tools, firmware, and tips.

wz_flash-helper's People

Contributors

archandanime avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

farmmanic

wz_flash-helper's Issues

Things that won't be fixed/implemented and Roadmap

Last updated: December 1st, 2023

Bugs/Implementation plan

1. (Not a bug) Backup operation with dry_run enabled generates a directory contains only ID.txt

This behavior works as intended. The partition images are not backed up because the program didn't touch the partitions at all.

2. (Improvement) Make writing a new profile easier

This is a good idea. It could be done by declaring a profile using a json file and write a script to parse it.

However, doing this makes the program lose its flexibility for partition manipulation. Currently there are still a lot of things have not been implemented(eg. manipulate UBI volumes). If it is implemented, it will be the very last thing to be implemented.

Roadmap

v1.0.0

  • Complete support for NAND flash
    • Backup/restore UBI volumes
    • Bad block management for regular partitions

no sdcard reader and no wifi after flashing OpenIPC / thingino

I flashed my Wyze v3 (T31x) via wz_flash-helper with:

  • latest u-boot from @gtxaspec u-boot-ingenic repo
  • openipc_t31x_kernel.bin and openipc_t31x_rootfs.bin from this post

The camera was booting but the sdcard reader and the wifi wasn’t working.

I thought setting the wlanssid wlanpass via setenv and saveenv would fix the wifi issue but unfortunately didn’t.

So I decided to flash a thingino firmware build from @themactep repo.

As both the sdcard reader and the wifi both weren’t working I actually did this by quickly desoldering the GD25B128C chip and flashing the file directly via CH341A. This worked perfectly fine but the sdcard reader and wifi still weren’t working. I assumed the problems exist due to missing or wrong configured GPIO settings and since @archandanime wrote here that the "SD card detect pin" should be set to 62 the first thing I tried was:

setenv gpio_mmc_cd 62
saveenv

This didn’t fix the sdcard reader problem so I took a closer look at the serial output and saw:

GPIO: gpio_mmc_power: No GPIO env settings provided

Unfortunatly I couldn’t find any information regarding the correct setting for this or even better for all GPIOs on wyze v3. Can anyone give me some information on this?

Here is also the full boot output:

Ingenic U-Boot 2013.07-gd350136 (Feb 22 2024 - 08:08:52)

Platform: ISVP (Ingenic XBurst1)
Built profile: T31X
SOC Name: T31ZX
DRAM:  128 MiB

Top of RAM usable for U-Boot at: 84000000
Reserving 689k for U-Boot at: 83f50000
Reserving 32832k for malloc() at: 81f40000
Reserving 32 Bytes for Board Info at: 81f3ffe0
Reserving 124 Bytes for Global Data at: 81f3ff64
Reserving 256k for boot params() at: 81efff64
Stack Pointer at: 81efff48
Now running in RAM - U-Boot at: 83f50000

MMC:   msc: 0
SF:    Vendor: c8
SF:    Detected GD25Q128
Net:   HW Ethernet address: A6:C5:FA:E3:1B:83
In:    serial
Out:   serial
Err:   serial
KEY:   Reset button undefined
GPIO:  Loading gpio_default
GPIO:  25 set to input
GPIO:  25 input pull-down disabled
GPIO:  26 set to input
GPIO:  26 input pull-up disabled
GPIO:  26 input pull-down disabled
ETH:   Searching for valid PHY
ETH:   Error: Invalid PHY configuration.
ETH:   PHY not found!
GPIO:  gpio_default_net: No GPIO env settings provided
GPIO:  gpio_mmc_power: No GPIO env settings provided
GPIO:  Loading gpio_ircut
GPIO:  52 set to input
GPIO:  53 set to input
GPIO:  49 set to input
GPIO:  50 set to input
GPIO:  57 set to input
GPIO:  58 set to input
GPIO:  gpio_user: No GPIO env settings provided
GPIO:  gpio_motor_v: No GPIO env settings provided
GPIO:  gpio_motor_h: No GPIO env settings provided
MMC:   Checking for autoupdate files...
MMC:   Checking for kernel image from MMC...
reading factory_t31_kernel
reading factory_t31_ZMC6tiIDQN
reading factory_ZMC6tiIDQN
MMC:   Kernel file not found.
MMC:   Checking for for boot / env files...
** Bad device mmc 0 **
** Bad device mmc 0 **
KEY:   ###### Press Ctrl-C now to interrupt boot... loading in 3s ######
SF:    Vendor: c8
SF:    Detected GD25Q128
SF:    probe command completed in 4ms
SQ:    SquashFS found at 0x1E0000
SF:    1638400 bytes @ 0x50000 Read: OK
SF:    read command completed in 528ms
###### Booting kernel from Legacy Image at 0x80600000 ######
   Image Name:   Linux-3.10.14__isvp_swan_1.0__-t
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    1631650 Bytes = 1.6 MiB
   Load Address: 80010000
   Entry Point:  803821a0
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK

Starting kernel ...

Not booting after trying to switch to OpenIPC

I followed the guide on here to switch to OpenIPC. Booting to the card worked, I heard the audio prompts saying it was flashing then it said it was rebooting. After the camera rebooted it no longers boots. I checked the SD card and the log files are from the first boot, nothing from the second boot to run the script to set the env variables.

Wyze Cam V3 (t31x)

I used https://github.com/gtxaspec/u-boot-ingenic/releases/download/latest/u-boot-t31x.bin for U-Boot and https://github.com/OpenIPC/firmware/releases/download/latest/openipc.t31-nor-ultimate.tgz for the OpenIPC image.

Any thoughts?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.