ZP100 not booting


Userlevel 2
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.

197 replies

Hi,
Uart port on the top logic board near wireless card on the front side, you have 4 holes.
1:3.3v
2:RX
3:TX
4:GND
Badge
I've read through 99% of this thread and it really helped to get me onto the right track.
I was able to avoid dealing with UART / Serial connection and create a script right on my ZP100 via web browser.
I did assign myself a static IP of 169.254.1.2 and plug directly to one of ZP100 built-in ethernet ports.
I followed multiple instructions here to get the appropriate update file and saving it as "fw.upd", by substituting my ZP100 serial, id and householdid, using the following as a base:
http://update-firmware.sonos.com/firmware/Gold/28.1-83251-v5.2-pcyakr-RC4/28.1-83040-1-1.upd?cmaj=27&cmin=2&cbld=80271&subm=3&rev=2®=1&serial=XXXXX&sonosid=XXXXX&householdid=XXXXXX
Easiest way to start a web server to serve the file was to let PHP serve content from current directory with following: sudo php -S 0.0.0.0:80
Here are the URLs I've hit to create and run my script :)


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


I assume that I got lucky and my ZP100 came with diagnostics firmware.. I could run any command with "http://169.254.1.1:1400/diag/cgi-bin/" by adding the full path of the desired binary to it and passing arguments as you normally would in linux CLI. Few characters had to be double quoted or used as HEX values..

After running it, my ZP100 lid up, I've hit the magic combo to connect to the Controller and it was added to the existing setup within seconds!

Thanks to everyone contributing, it really helped!
Badge

how to upload the downloaded firmware to the zone player

You should be able to pull it from the ZP itself via the terminal, since you have BusPirate connected.
If you are able to get the console / terminal, do the following:
0. Start a webserver on your computer, so that you can "serve" the downloaded firmware file via HTTP. I've done it with PHP, and so can you if you have PHP installed: php -S 0.0.0.0:8080
1. stop anacapa process:
code:
$ touch /var/run/stopanacapa
# this prevents it from starting
code:
$ ps | grep anac | awk '{print $1}' | xargs kill -9
# this kill all ancapa processes
2. Run the upgrade tool:
code:
$ upgrade -fH http://169.254.1.2:8080/fw.upd
# make sure to use correct IP/PORT and file name instead of mine :)
3. Allow anacapa to start (probably unnecessary):
code:
$ rm /var/run/stopanacap
Badge
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?
Badge
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!
kivulallo,

A bad capacitor is likely. At this point I recommend a very thorough visual inspection. Bad capacitors often give themselves away with physical signs of distress, such as leakage or bulges. Look for discolored areas and bad solder joints. A good visual inspection is worth many hours of troubleshooting.

I don't know the DC power supply voltages for ZP100, but you can probably guess them. If you have an oscilloscope, look at the power supply wave forms. Another technique if you have a digital voltmeter, is to set the meter to measure only the AC component, then check the DC power supplies. A high reading indicates ripple and a likely bad capacitor.

Another technique is to "thump" the boards with a plastic tool the weight of a common pencil. A healthy board will not respond to these "thumps". Quite often one can use lighter thumps and locate a defective component or connection. If you are unlucky the thumps will mechanically cause a temporary repair and the symptoms will go away -- for a while. You'll know that the problem is mechanical, but not exactly where.
So - I had the same issue white light flashing couldn’t connect and no IP address being taken (Wireshark showing zilch)

Years ago I used to fix car radios by putting them in the freezer for 2 days. Apparently clears the electronics.

So I thought what the heck I’ll try - so I put the ZP100 in the freezer for 2 days. Took it out tonight, powered it up (careful with the ice) and hey presto I can reset and it’s now connecting.

Fingers X’d it still works when fully thawed but it is working...

I know it sounds odd but this did work for me..
So worked fine over night to this morning, I needed to put the cover back on so unpowered and repowered to see if it would keep its settings and it has reverted back to the flashing white light again....
Badge
Rabbs, did you manage to upgrade it once it had booted??
HI. Where to download latest firmware for zp100(play5) and a100(sub) ?
Userlevel 7
Badge +22
From your Sonos Controller, look under settings and Check for Updates.
Hi, I am aware of that option. The issue is that it is bricked.
Then I'd recommend a call to Sonos to discuss it.

If it's bricked, a download of firmware wouldn't make any difference, you wouldn't be able to load it. And Sonos doesn't post downloadable versions of their software as packages, they only have the online update option.
Look through this thread for links. You should be able to download firmware from somewhere to your computer and then host on webserver and use UART cable to connect to sonos and then Update the firmware. But do not know where to get latent firmware. Good luck.
Hello everyone, I have a zp100 bought on eBay constantly flashing white, not pinged. also bought PL2303HX cable firm FTDI USB to TTL module data conversion adapter Arduino memory UART via RS232 I read the topic several times but did not understand how to update the firmware, and if possible, write a command line Windows. forgive me for my English.
Rincon boot loader version 1.0-27270(ZP) (32M SDRAM). Press 'h' for help.
SDRAM test...
Memory test iteration 0
SDRAM test complete
Attempting to autoboot from NAND device
NAND ID is 20:75
32M NAND flash (ST NAND256W3A) detected
Uncorrectable ECC error, page 0 (first half)
No valid partition table, defaulting to old boot mechanism
nand_load: page appears to be blank, page 512
Sorry, autoboot failed


nand dead?
Zacharias,

First post! Welcome to the forums.

If the unit will not boot or reset you are stuck and a stop payment would be your best bet.

If the ZP100 has been sitting for a while, it will not recognize any of the newer components. First, you'll need to update the ZP100's firmware with the ZP100 isolated from any current units (remove power from them). Once updated, a healthy ZP100 can be added to your system and it will be fine. Be sure to factory reset the ZP100 before adding it to your system.
Userlevel 2
bummer. i'm stuck with the unit.

i had a wireless router that refused to boot after a failed firmware update. it was possible to update the firmware via one of the network ports and a linux box to bring it back. i'm sure the zp100 would have a similar tool. at this point i guess i'm completely reliant on the kindness of sonos support or somebody with inside knowledge of how the boot process works, or in this case doesn't.
Zacharias,

If there is some sort of boot trick, it has not been published.
Userlevel 2
Will have a poke around to see what I can find re. flash chip etc.
I see on these forums someone had a ZP100 that would become unresponsive after a certain period of time. Also somebody else who had flash problems that would disappear and reappear with firmware updates.

"Worse, the two dmesg reports on the bad box showed multiple flash memory errors. First were several "Empty flash at xxxxxx ends at xxxxx" at different memory locations, followed later by bad file checks (Data CRC failed on node at xxxx) corresponding to the locations in the previous warnings. "

So looks like I've got a starting point.

Would really appreciate if somebody else with a working ZP100 could email me their

http://Sonos's IP address:1400/status/jffs/upgrade.log

or the firmware download link from within that file.

cheers!
Userlevel 2
Upon further inspection, whilst the warranty seal etc was in place this unit has been repaired before, I am assuming by Sonos. It has had several components replaced near the ethernet ports and in the power supply section.

It tests with a healthy 1.5v from the regulator for the Renasas cpu supply voltage.

Is there some kind of serial monitor pinout or jtag diagram available for this board? I really need some way of finding out what has gone wrong.

Buzz you mentioned on the forum having a sometimes functional ZP100, can you post the firmware download link from your update.log file please?
Userlevel 2
Here's the update:

Found the serial port, and can interact with the bootloader via terminal:

Still need some firmware!

Rincon boot loader version 0.16-11080(ZP) (32M SDRAM). Press 'h' for help.
SDRAM test...
Memory test iteration 0
SDRAM test complete
Attempting to autoboot from NAND device
NAND ID is EC:75
32M NAND flash (Samsung K9F5608U0C) detected
NAND flash block 321 is bad
NAND flash block 323 is bad
NAND flash block 325 is bad
NAND flash block 327 is bad
NAND flash block 331 is bad
NAND flash block 333 is bad
NAND flash block 335 is bad
NAND flash block 337 is bad
NAND flash block 339 is bad
NAND flash block 341 is bad
NAND flash block 343 is bad
NAND flash block 345 is bad
NAND flash block 347 is bad
NAND flash block 349 is bad
NAND flash block 353 is bad
NAND flash block 355 is bad
NAND flash block 359 is bad
NAND flash block 361 is bad
NAND flash block 363 is bad
NAND flash block 365 is bad
NAND flash block 369 is bad
NAND flash block 371 is bad
NAND flash block 373 is bad
NAND flash block 375 is bad
NAND flash block 377 is bad
NAND flash block 379 is bad
NAND flash block 381 is bad
NAND flash block 385 is bad
NAND flash block 387 is bad
NAND flash block 389 is bad
NAND flash block 391 is bad
NAND flash block 393 is bad
NAND flash block 395 is bad
NAND flash block 399 is bad
NAND flash block 405 is bad
NAND flash block 407 is bad
No valid partition table, defaulting to old boot mechanism
nand_load: page appears to be blank, page 512
Sorry, autoboot failed
>
Rincon boot loader version 0.16-11080(ZP) (32M SDRAM). Press 'h' for help.
SDRAM test...
Memory test iteration 0
SDRAM test complete
Attempting to autoboot from NAND device
NAND ID is EC:75
32M NAND flash (Samsung K9F5608U0C) detected
NAND flash block 321 is bad
NAND flash block 323 is bad
NAND flash block 325 is bad
NAND flash block 327 is bad
NAND flash block 331 is bad
NAND flash block 333 is bad
NAND flash block 335 is bad
NAND flash block 337 is bad
NAND flash block 339 is bad
NAND flash block 341 is bad
NAND flash block 343 is bad
NAND flash block 345 is bad
NAND flash block 347 is bad
NAND flash block 349 is bad
NAND flash block 353 is bad
NAND flash block 355 is bad
NAND flash block 359 is bad
NAND flash block 361 is bad
NAND flash block 363 is bad
NAND flash block 365 is bad
NAND flash block 369 is bad
NAND flash block 371 is bad
NAND flash block 373 is bad
NAND flash block 375 is bad
NAND flash block 377 is bad
NAND flash block 379 is bad
NAND flash block 381 is bad
NAND flash block 385 is bad
NAND flash block 387 is bad
NAND flash block 389 is bad
NAND flash block 391 is bad
NAND flash block 393 is bad
NAND flash block 395 is bad
NAND flash block 399 is bad
NAND flash block 405 is bad
NAND flash block 407 is bad
No valid partition table, defaulting to old boot mechanism
nand_load: page appears to be blank, page 512
Sorry, autoboot failed
> h
Rincon boot loader version 0.16-11080(ZP) (32M SDRAM). Press 'h' for help.
h - help
m - SDRAM test
i - print NAND device ID
n - NAND device scan
x - NAND device destructive test
y - NAND device dump first page
p - Program NAND device
b - Boot the Linux kernel from NAND device
d - Boot diagnostics from NAND device
Badge
Check your PM.
If the technique works to bring the device back alive, I would be rather curious to see what/where/how you got it back.....
Userlevel 2
Hi, I have the same issue now with my ZP100. Flashing white light, any help would be fantastic