Skip to main content
Contributor III
April 6, 2013

ZP100 not booting

Hi,

I've recently acquired a ZP100 however it looks to be stuck in the boot process with a single white light flashing endlessly.

It doesn't appear responsive to holding the mute button on bootup. On powerup all of the network port light flash briefly and the connection lights are solid if wired to bridge via ethernet.

I know this is an old product and I know it is my fault for purchasing it, but is there any other reset tricks or way to update the firmware to get out of this loop?
    This topic has been closed for further comments. You can use the search bar to find a similar topic, or create a new one by clicking Create Topic at the top of the page.

    192 replies

    Lyricist II
    October 21, 2015
    anapsix,

    thank you so much for the detailed info.
    I have couple other questions, hope you won't mind answering

    1) Do i run PHP after i have put UART in bridge mode?
    2) php i got was by setting up in the windows program, additional features. Where will i run the above commands that you have mentioned? Is it in the browser? Sorry for asking these questions as these are totally new to me and hope you won't mind helping.

    Thanks again.
    Contributor I
    October 31, 2015
    I have not had any success connecting my Z80 unit to the J1000 connection and was hoping someone could help.

    I am getting no output from the board, but can connect to the board via the IP address and 1400 port and view the log. I have 2 units and have tried swapping the top board out, with the same results as noted below.

    Using this USB to serial unit: http://www.amazon.com/gp/product/B011CDF3W8

    VCC pin is connected to pin 1, TX to pin 2, RX to pin 3, GND to pin 4
    Connection using "screen /dev/cu.usbserial-AI02SZYS" is successful, but no output occurs when the ZP80 is plugged in
    I've also tried picocom using "picocom -b 9600 /dev/cu.usbserial-AI02SZYS"
    I'm using a Mac, OS X 10.10.5 and it shows the device in the system report
    I've tried reversed the pin-out, but the screen terminates when power is supplied to the ZP80

    In the 2nd pic, you will see a set of green, red, black and white wires. Those are just being used to wedge the connector pins into the holes, since I wasn't getting a solid connection using the standard pins on the connection cable.
    anapsix
    Lyricist II
    November 22, 2015
    Sorry for such a delay in responding..

    1) Do i run PHP after i have put UART in bridge mode?
    2) php i got was by setting up in the windows program, additional features. Where will i run the above commands that you have mentioned? Is it in the browser

    I start PHP in server mode only to serve files (the firmware update file), so that the upgrade program that I run on the ZP100 would be able to get it from some place.
    In my case, it get's it from PHP served directory.
    You can use Apache, Nginx or any other web-server.. even IIS if you are on Windows.
    You should run your web server after you find a way to control ZP. Either though UART terminal or like I did it via web-browser hack.
    if you can test if you can do it my way by connecting to the ZP100 built-in switch, assigning your computer 169.254.1.2 IP and directing your browser to "http://169.254.1.1:1400/diag/cgi-bin/bin/echo yes we can".
    If you'll see a page with "yes we can", you can use my method.
    If you are able to get a terminal console with UART method, it's just as good..
    Makes sense?
    Lyricist I
    December 3, 2015
    Thanks everyone for your posts. Using what is here, I've been able to recover two ZP100s that were loading the diagnostic firmware with a bus pirate.

    I have a third that boots past the serial connection and gets an IP address from my router. The white light however stays blinking and it never gets to the point where I can add it to the rest of my sonos system.

    When booting, even though it grabs an IP and responds to pings, it doesn't serve up the web pages with status, etc.

    A factory reset gets it blinking orange, but there it stays.

    Is it possible to have it revert back to the diagnostic firmware so I can reflash it? Any other suggestions?

    Thanks


    Hi everyone, I recently bought a second hand ZP100 and it's displaying the exact same issues as enton is describing. When I first got the unit home I added it to my existing system (without factory reset) and all seemed OK for a while. I then noticed that some of my other units were dropping out randomly and then the ZP100 disappeared so I disconnected it and tried to do a factory reset. This resulted in a continuous orange/white flashing light that never turns green. If I power on normally I just get a flashing white light that never turns green. With the unit plugged in via ethernet to my router I can see its IP address but can't access any of the status web pages etc. Any suggestions about where to start? Or is it a lost cause?!
    MrBob
    Lyricist II
    April 27, 2016
    To all the contributors, thank you so much for all the trial and error and documenting your solutions. I have a ZP100 with the same symptoms as most others with 3.2-29243-diag firmware. I can access it via the the default IP 169.254.1.1:1400/status, etc. I have ordered a USB to UART card but in the meantime I finally finished reading the last few entries of this thread and found the url solution. Yeah, it sure seemed to me that there ought to be a way.... btw, I am not proficient in LINUX.

    @anapsix
    I have the ZP100 connected to a local router configured for 169.254.x.x with internet access. My laptop is assigned 169.254.1.2. I am using XAMPP under WIN7 as a web server from my laptop. Since I'm not a linux guy, I don't understand you comment about the PHP server and running the command sudo php -S 0.0.0.00. I did however, place the fw.upd file in the C:\xampp\apache/ directory, in the C:\xammp directory and also in the root C:\

    I can run "http://169.254.1.1:1400/diag/cgi-bin/bin/echo yes we can" and indeed see the response "yes we can".

    As I run each of the URL scripts you provided above, I don't see any browser feedback except for the very last url. The response is:
    awk: cmd. line:1: Unexpected end of string
    wget: server returned error 404: HTTP/1.1 404 Not Found
    Read failure 0
    WGET exited with 1
    Upgrade failed: (11) upgrade file download failed
    pull_upgrade failed

    When I look at the apache logs, it shows:
    169.254.1.1 - - [27/Apr/2016:17:38:09 -0500] "GET /fw.upd HTTP/1.1" 404 1056 "-" "Wget"

    Should I be seeing some sort of echo response from the first 5 url scripts?

    Any idea what my error means? Is my web server just not finding the file or is it a format issue?
    Headliner II
    April 28, 2016

    @anapsix
    I have the ZP100 connected to a local router configured for 169.254.x.x with internet access. My laptop is assigned 169.254.1.2. I am using XAMPP under WIN7 as a web server from my laptop. Since I'm not a linux guy, I don't understand you comment about the PHP server and running the command sudo php -S 0.0.0.00. I did however, place the fw.upd file in the C:\xampp\apache/ directory, in the C:\xammp directory and also in the root C:\

    I can run "http://169.254.1.1:1400/diag/cgi-bin/bin/echo yes we can" and indeed see the response "yes we can".

    As I run each of the URL scripts you provided above, I don't see any browser feedback except for the very last url. The response is:
    awk: cmd. line:1: Unexpected end of string
    wget: server returned error 404: HTTP/1.1 404 Not Found
    Read failure 0
    WGET exited with 1
    Upgrade failed: (11) upgrade file download failed
    pull_upgrade failed

    When I look at the apache logs, it shows:
    169.254.1.1 - - [27/Apr/2016:17:38:09 -0500] "GET /fw.upd HTTP/1.1" 404 1056 "-" "Wget"

    Should I be seeing some sort of echo response from the first 5 url scripts?

    Any idea what my error means? Is my web server just not finding the file or is it a format issue?


    Sounds like your ZP100 reach your machine, but the file is in the wrong folder. I don't recall how xampp is set up, but I think you should have a folder called "htdocs" somewhere under c:\xampp somewhere, you should put the file in there. Some web servers also need a defined mime-type configured for specific suffixes (IIS for example) in order to serve the file but I don't think apache cares about that.
    MrBob
    Lyricist II
    April 28, 2016
    @jishi - Thanks. placing the file under htdocs resolved the problem of finding the update file.

    I am still having problems though. I still see no feedback until running the last url script above, but this time, instead of text in the browser window, I receive a download of the run.sh file. opening it as a text file I see:

    awk: cmd. line:1: Unexpected end of string
    upgrade
    version 28.1-83040
    compatible with Sonos Zone Player submodels 0-16 revisions 0-4294967294 (any region)
    compatible with hardware feature set 1d
    My hardware feature set is 0
    Upgrade supports all my features
    /-\|/-\|/- several lines of giberrish-\|/-\|/-\|/-\|/-\|/-\|
    Upgrade file is good
    Using new partition format mode
    Destination section 0 generation 11
    Operating in redundant partition mode (not changing partition table)
    Executing upgrade script...failed
    Upgrade failed: (35)
    failure reading upgrade script file
    pull_upgrade failed

    No error logs from the apache server; looks lile it served the file ok.
    Still investigating.
    MrBob
    Lyricist II
    April 28, 2016
    Got it! I have successfully run the upgrade via the url script! I did however have to modify one of the url scripts which I believe has an error.
    @anapsix - maybe you (or one of the other folks) could verify....

    In the steps anapsix outlines above as steps #1, #2 and #3 for a terminal based upgrade, step #2 is shown as:
    $ ps | grep anac | awk '{print $1}' | xargs kill -9

    Comparing that with the url script for that step which is:
    http://169.254.1.1:1400/diag/cgi-bin/bin/echo ps "|" grep anac "|" awk "{print %5C$1}" "|" xargs kill -9 >> /tmp/run.sh

    It appeared to me that the script is missing the single quotation mark before and after the {print $1}, so I simply added them and BAM!
    Success!

    So, to (hopefully) clarify, the (proper) url scripts that I used to take a ZP100 with 3.2-29243-diag firmware with a default IP of 169.254.1.1 should be:

    http://169.254.1.1:1400/diag/cgi-bin/bin/echo touch /var/run/stopanacapa > /tmp/run.sh
    http://169.254.1.1:1400/diag/cgi-bin/bin/echo ps "|" grep anac "|" awk "'{print %5C$1}'" "|" xargs kill -9 >> /tmp/run.sh
    http://169.254.1.1:1400/diag/cgi-bin/bin/echo upgrade -fH http://169.254.1.2/fw.upd ">>" /jffs/log.txt >> /tmp/run.sh
    http://169.254.1.1:1400/diag/cgi-bin/bin/echo rm /var/run/stopanacapa >> /tmp/run.sh
    http://169.254.1.1:1400/diag/cgi-bin/bin/chmod 755 /tmp/run.sh
    http://169.254.1.1:1400/diag/cgi-bin/tmp/run.sh

    Thanks to the group for sharing your knowledge!
    MrBob
    Lyricist II
    April 28, 2016
    As a final note for the upgrade, I used a command way back in the thread to get the software download and it was 28.1-83040-1-1.upd. I later followed the instructions to use a path from my current working system and of course substituting the proper sonosid, etc. That downloaded a file named 31.8-24090-1-16.upd. I probably should have used that file for the upgrade but I stuck with the older 28-1 file.

    After the successful upgrade, I tried to add the ZP100 to my current system and it really hosed everything up. Got to the update software part and gave an error 1101. I reset the system and tried again. As soon as I plugged in the ZP100, the rest of the sonos system went down again, I unplugged the rest of the system, set up the ZP100 as a new system, it updated to 39.1-26010 and worked well. I then did a factory reset and tried to add it back to my original system. Plugged everything back in, everything was acting fine with the ZP100 plugged in waiting to be added. I added it to the system and the controller updated the rest of my system to 39.1-2600. ZP100 is working great!

    One negative side effect (I think) is that when the system updated to 39.1, it is now giving me some sort of error (warning): "Some Sonos players are using the wireless connection from your range extender device. You will be unable to play music in a group of rooms including such a player. To ensure playback in all grouped rooms, you will need a Sonos BOOST or a player permanently wired to your router."

    I don't know if this is a result of the update to 31.9 or if it's because I powered down all the Sonos equipment and maybe they associated differently when they restarted. I'll check with Sonos Technical support later. Anyway, probably a subject for another thread but I thought that I would mention the issue here of updating the ZP100 to 28.1 and trying to add it to a currently updated system. It might be better to get the latest download first.
    Contributor III
    April 28, 2016
    Good to know. FYI for anyone else doing this, I think it may be possible to keep serial access after the upgrade by running:
    "mdputil -wfF 3" prior to upgrading to the upgrade. YMMV, I'm not responsible if you brick the device.