Skip to main content
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?
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
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!


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

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?
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.
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.
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.
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!
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?
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
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.....
Hi, I have the same issue now with my ZP100. Flashing white light, any help would be fantastic
After moving to my new house I wanted to reconnect my ZP100 today again. But what a bad surpise: I am facing now same issues as posted here. For me it looks like that backup battery gets weak in this device (if any) and firmware is gone! If a battery is causing this problem a lot more ZP100 users will have the same issue soon (after unplugging power for a while).



Mentioned trick to ping the device also did not helped (it is not longer recognized by my router).



If anybody has an idea to reanimate this device then please let me know.



Katte
Hi Zacharias,

jsut read in your port that you connected to the serial port of the zp100.

Can you share any information how you did find the serial port and how you conencted to it?



Working on something but wasn`t able to msg you since i have < 5 posts.



Thanks,

Rolf
Hi Zacharias,

jsut read in your port that you connected to the serial port of the zp100.

Can you share any information how you did find the serial port and how you conencted to it?



Working on something but wasn`t able to msg you since i have < 5 posts.



Thanks,

Rolf






Any help ?
I'm very interested in this fix... will test and let you know what I find out. Also, would someone please give me a link to the firmware, also on where to find the jtag.



EDIT: OK. I found where to get the firmware... but I still haven't found the serial port. Do you just use the same procedure as if flashing DD-WRT with ethernet port directly connected to computer?
Any more progress here? I bought an old ZP100 at a garage sale recently with the hope of adding it to my existing system. It blinks about 5-10 times at startup the the LED goes solid white but can't seem to connect to my existing system. I've tried a factory reset but not luck. It doesn't stay in linking mode very long (only 6-7 flashes of green white). Assume it's some kind of firmware issue. I don't have a lot of money in the unit so I'm not too worries about competely messing it us. Any thoughts? I'd love to play with it a bit to see if I can get it running.
There is a 4 pin UART connector on the logic board of the ZP100 (1:vcc 2:rx 3:tx 4:gnd). If you have some way to connect to it (I used a buspirate), you can see any info that the bootloader is printing out (and test the flash memory and RAM). My guess, given your description of the failure mode, is that the OS crashes sometime after boot. The serial console isn't gonna be real useful if that is the case, it stops printing stuff out after booting. There is a JTAG port on the logic board, but connecting to it is a major pain, and unless you have a lot of time (and money) to burn I wouldn't recommend messing with it.



Keep in mind that Sonos can replace the unit (for a cost) until you open it. Once it's opened they won't replace it. It might be more worth your while to check with them first, before taking the leap.



If you are going to open up the device you can go ahead and check for any obvious issues (blown caps, dry solder joints, etc.). Bgelb0 reported similar issues here.
@LogicIsHard would you mind sharing where to find the firmware?



@poshul Where can I find the UART header on the board? Is it the header near the front of the device?
Yeah, there are two headers close to each other. The UART is the 4 pin one. The frequency is 38400 (all of the other serial settings are their defaults, which I do not recall off the top of my head). For what it's worth the bootloader is super minimal. You can't load new firmware off of it (as far as I can tell), but it should give you information if the NAND flash has bad blocks, or if the RAM is bad. As for where the firmware is, if you have another zone player check out http://ZP'S_IP_ADDRESS:1400/status/jffs/upgrade.log for information on its last update
@poshul Will give it a shot, thank you!
I have a similar problem I brought a few ZP100's not working. I have repaired the electronics and they now boot and from the led status even appear to try and join my sonos group.

Now here is the strange they are not obtaining a IP address. I can access the ZP100 status page using the default ip address and it seems to have booted not a full boot. I have also used bus pirate and connected to the serial port and appears to be booting. if you press enter on the serial port it says its running BusyBox v1.00-pre3 (2007.03.30-22:08+0000) Built-in shell (ash).



I am wondering if anyone has advice on what to do next or managed to reload the firmware from this point?