Can't flash firmware to Cam Pan

Wow this sounds promising and a faulty bootloader makes perfect sense as none of us has been able to flash firmware of any kind from an SD card… That being said, I’ve been trying to get this running and I’m running into some issues, hopefully you can help sa-pr?

I have the python interpreter installed and running but when I try to run the WyzeUpdater.py script to run from command prompt I keep getting syntax errors and I’m not sure if I should be modifying the script first or its the run command that I’m using that has the issue?

python Users\XXXXX\Downloads\WyzeUpdater-master\wyze_updater.py
File “”, line 1
python Users\XXXXX\Downloads\WyzeUpdater-master\wyze_updater.py
^
SyntaxError: invalid syntax

Perhaps as suggested a more step by step process on how to run this on Windows could be provided?

Can you help with whatever I’m doing wrong here?

My pan cam doesn’t reboot or show any indication that anything different is happening. Also, I’m not getting anything written to the SD.

I tried the original fix-pan.tar and that didn’t seem to do anything.

Then, I customized my fix-pan.tar to include the RTSP firmware demo.bin rather than the originally included firmware. Still nothing.

Please help.

@im.mjb83

I tried to do a write-up on how I got this to go on Windows, but now I get
We’re sorry, but new users are temporarily limited to 3 replies in the same topic.
Sorry, new users can only put 2 links in a post.

So, I will remove the links by taking out the htt

This is what has worked for me.

Download python for windows ps://www.python.org/downloads/ Do the custom install and save your installation in a convenient directory. I put mine directly to C:\Python38-32.

Save this file get-pip.py ps://bootstrap.pypa.io/get-pip.py in Downloads

Open your command prompt.
Windows Key + R
type cmd
Enter.

At the command prompt, type C:\Python38-32\python.exe C:\Users\USERFOLDERNAME\Downloads\get-pip.py
Enter

At the command prompt type C:\Python38-32\Scripts\pip install requests
Enter

Download this file fix-pan.tar https://github.com/agent86ix/wyze-cam-pan-sd-flash-fix/releases/download/0.1.0/fix-pan.tar

Now you should be able to execute a python command like:
C:\Python38-32\python.exe C:\Users\YOURUSERFOLDER\Downloads\WyzeUpdater\WyzeUpdater\wyze_updater.py update -d 2CAA8E9D78A9 -f C:\Users\YOURUSERFOLDER\Downloads\fix-pan.tar

Hope I didn’t miss any steps here. Let me know if you conquer this thing!

Can you add -p 18080 just after update?

I own 7 Pan Cams all with H00 after MAC.
I can easily do upgrades for all of them appart from one that has been accidentally upgraded to 4.10.6.156
It appears that this firmware upgrade disabled all shorts of interventions to the bootloader.

maybe your installed python is 2.x and not 3.x as WyzeUpdater requires

the steps above seem right:

  • you’re using python 3,
  • you installed a missing python module “requests” using pip (the Python package manager)
  • you ran the WyzeUpdater “list” command (in the screenshot at least), to validate access to your Wyze account and your cameras getting their MACs
  • then you tried to send the fix with WyzeUpdater “update” command to a camera selecting it with its MAC address

all good so far. So what that does is that you machine is then “serving” that file to the camera and it is instructing the camera to get it from your machine, the line that says “GET /frimware…” is your camera actually getting the file like it was an OTA (over-the-air) update from Wyze.

Minutes after that you should see your camera rebooting (look for the led changing), after your camera rebooted, if you “Ctrl-C” to stop WyzeUpdater serving the file and re-do a “list” command, your camera should be listed there normally, but now it should have the new boot-loader in place, and if you had and SD with space inserted before running the “update” command, you should have a backup of the original (and faulty) boot-loader there and a text-file log of the update that (the original, without customization) fix-pan.tar file did.

If all above is true, now you should be able to do a normal firmware update using the SD card.

yes, if for some reason the default ports are taken by something else in your machine you can specify any other port you want with that “-p portNumber” option

No, I’m using Python 3.8.5. I’ve tried it on both my Mac and Windows 10 systems with the same result. Any command I type results in “Syntax Error: unexpected character after line continuation character” There is a caret symbol below the last letter of the command. Doesn’t seem to matter what command I type - same results. Can’t for the life of me understand what is going on. Tried to research the error but most of the info is about it being caused by a problem in the python program itself. I was actually thinking of uninstalling and going to an older python version.

Dumb question but do I put the wyze account login and 2FA information directly into the wyzeupdater script file or is it supposed to prompt for this information. So far if I try to run the script it runs and exits.
Using Python 3,8 app on windows 10.

It will prompt for username and password. Then, it will send the code to your phone.

There seems to be something run with your python installation, or the way you are invoking/running it, I also have 3.8.5, freshly installed and had no problems, that’s such an early error that I don’t think is related to the missing library “requests” from the default installation, but you may try to get it with “pip”.

Try these simple commands bellow to see if your python installation is working properly (replace path-to with your local appropriate path):

path-to\python.exe --version
should print the python version

path-to\python.exe -c "from datetime import date; print('Today:', date.today())"
should print today’s date, like: Today: 2020-09-01

path-to\python.exe -m pip list
should list the modules installed, see if requests is among them, otherwise install it with:
path-to\python.exe -m pip install requests

now, if you run WyzeUpdater with no parameters it should print some help message:
path-to\python.exe path-to\wyze_updater.py
should show:

usage: wyze_updater.py [-h] [--user USER] [-password PASSWORD] [--debug] {list,update} ...
wyze_updater.py: error: the following arguments are required: action

I’m by no means a python expert, there may be errors above or way better suggestions, I hope this helps.

About how many “minutes?” My cam doesn’t reboot and no logs are written to the SD card. Danget!

Looks like the fix doesn’t work for the cams with updated firmware version 4.10.6.156. :frowning_face:

Thanks. Everyone of the command lines you provided work correctly and the requests module shows as installed. Not sure what is wrong but will keep trying.

Not sure what I was doing wrong but I’m now able to run the updater. It seems to progress normally until it tries to actually push the new firmware. The … progress indicators seem to go on continually with no indication of completion. Been about 10 minutes. I’m wondering if the issue is related to the fact that the camera has the 4.10.6.156 currently installed. I’ve seen some posts where this presents a problem? I also recall seeing something about the Wyze cams requiring https .vs. http connection. the updater appears to be using http.

It was just ~2 min. for me @jenniferlee. I did hold from updating to the latest 4.10.6.156, I stayed in 4.10.5.111 until running this. to fix boot-loader.

On the use of SSL (HTTP vs HTTPS) @hcdhoward, try it, just add -s to the command-line, but for that one to work you have to be inside of the tool’s folder when you run it, since it tries to access a cert&key in its testcert/ folder. It worked for me both with SSL and without.

I had one Pan on Firmware 4.10.6.152 that accepted the new bootloader without a problem using WyzeUpdater but my other Pan with Firmware 4.10.6.156 refuses to accept it using the same process. Looks like it’s fair to say that they changed something with the latest firmware that’s broken this workaround.

As I stated on a previous post, It seems that 4.10.6.156 disabled manual firmware updates.
I can confirm this now, all my other cameras update normally.
Here is the command i use on a linux machine:

sudo python3 wyze_updater.py update -d 2CAA8E9DDXXX -f firmwares/fix-pan.tar

if you want to run on ssl (https) then use the -s flag:
sudo python3 wyze_updater.py update -d 2CAA8E9DDXXX -f firmwares/fix-pan.tar -s

So my pan cam is at 4.10.6.156, does that mean I cannot update manually? Any way to roll back the firmware? Can Wyze support help?

Finally figured out how to get the firmware updater working and have the same issue as above, just sits there trying to serve up the fix-pan.tar firmware and does not seem to complete. Looks like Wyze is a non-starter for me as I am trying to use them with my synology surveillance system, Shame really as the two V2 cams seem to work fairly well and the cam pan would make a nice addition. Wyze probably needs to update their web site to explain that you cannot add RTSP to the latest version of the pan cam (or update it manually). Will keep monitoring this thread for a solution but meanwhile off to look at other cameras.
Thanks for all the tips on how to get the python scripts working.

I think I’ve followed all the steps here, was I supposed to modify the wyze_updater.py file before loading it? I get the following error when I try to run:

C:\Users\asd>python.exe -m pip list
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
certifi (2020.6.20)
chardet (3.0.4)
idna (2.10)
pip (9.0.1)
requests (2.24.0)
setuptools (28.8.0)
urllib3 (1.25.10)
You are using pip version 9.0.1, however version 20.2.2 is available.
You should consider upgrading via the ‘python -m pip install --upgrade pip’ command.

C:\Users\asd>python.exe C:\Users\aaabbbccc\Downloads\WyzeUpdater-master\wyze_updater.py
File “C:\Users\asd\Downloads\WyzeUpdater-master\wyze_updater.py”, line 250
print(“.”, end=“”, flush=True)
^
SyntaxError: invalid syntax