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

Userlevel 4
Badge +14
anacapad is the main process running the Sonos system IIRC, and it probably has some watchdog functionality to keep it running.

A few versions back they had some memory leak issue that would OOM kill the anacapad-process, and then you experienced that the process restarted and everything was lost (grouping, queue etc) like if you had rebooted the device, but in the log it just said that it had restarted the anacapad process.

There would probably be some way to stop it and pause the watchdog functionality (ancapactl sounds like a possible candidate as mentioned), another idea is that you might need to kill all processes at once, or a specific process first.

On my output I have 2 high priority processes and 1 low priority process, the low priority process might be a good starting point to check out... 🙂
Userlevel 2
Badge
thanks for all the help its alive with updated firmware
the trick was found in 'grabupgrade' file
# Prevent anacapa from coming back from the dead.
touch /var/run/stopanacapa
#then
killall -9 anacapad
Userlevel 4
Badge +14
Great find! Out of curiosity, did the DHCP issue go away with the updated firmware?
Userlevel 2
Badge
yes they work perfect now
Badge
Hey Chris, Can you give me a little more detail on how you got the new bios loaded on yours? I have it downloaded now i think but i don't understand how to get it on my zp100.

thank you
Userlevel 2
Badge
tbearrows: in order to load a new firmware image this way, you need terminal access to the unit. This is normally very difficult to accomplish, however recently a batch of units showed up in the wild running some sort of manufacturing diagnostic firmware. These units don't get a DHCP address, but you can attach to them using a computer on which you set a static IP address in the subnet of the unit. These units have the serial console enabled on the internal UART port. Using a UART adapter (I recommend the bus-pirate) you can hook up to this port and get terminal access.

The telnet connection is also open on these units, but this requires a password to login.

Also, keep in mind that Sonos support will replace out of warranty units for a really reasonable price, but not after you break the warranty seal.

Hope that helps, let me know if you have any other questions.
Userlevel 2
Chris,
I have the same scenario as you. I can access the info pages at 169.254.1.1:1400. My ZP100 is on the 3.2 diag firmware. I believe I have your steps down but have a couple questions. I can get the firmware using a working Sonos upgrade log but the links in the upgrade log on the old ZP100 are broken. Is the firmware unique to each model?
When you set up your PC to serve the file what specifically did you do? Thanks. I'd love to get this old ZP100 going again.
Badge
Thanks,
I'm able to hit the status page on the default ip and
I tried connecting a serial cable directly to the pins but no luck. I'll try to pick up a bus pirate. Do you know if a direct connected serial cable should work?
Userlevel 2
Badge
No, it should not work connected directly to a serial port. Check out http://electronics.stackexchange.com/questions/110478/difference-between-uart-and-rs232 for an explanation.
Userlevel 2
Badge
use 'internet information services' to setup a pc to host web site- google it there are plenty of site to explain how to set this up. Its also easier the rename the file as a .txt file to download it.
Userlevel 2
Thx, I'll do that.
Userlevel 2
Assuming I get the buspirate connector, how do you get into the zp100? What console app do I run to get into terminal?
Userlevel 2
Can I get some detail on bus pirate kit? What kind of cable/pin need to insert into the 4 UART ports?

Would something like this work?
http://www.ebay.com/itm/Bus-Pirate-v3b-Universal-Interface-With-Probe-Cable-/111055445347?pt=LH_DefaultDomain_0&hash=item19db6b9d63
Userlevel 2
Badge
it looks like it should work but I brought a slightly different version:
https://www.coolcomponents.co.uk/bus-pirate-v3-6-universal-serial-interface.html

I use hyper terminal to access it
Userlevel 2
OK...I think I understand but I want to confirm my understanding along with more questions

  • System will be booted, but IP Address cannot be acquired due to diagnostic firmware.
  • Unit will have default IP address of 169.254.1.1. Can get to it via http:169.254.1.1:1400/status to see the system log
  • But cannot change or upload firmware via HTTP. Must use UART adaptor to access as console [list]
  • use the 4-pin UART port on motherboard
  • get a UART TTL interface, prefer buspirate. This basically provide console interface using USB port on PC
  • Connect UART card to USB on PC
  • UART will emulate a COM port. Run Hyper Terminal to access through the COM port

  • download the latest firmware. Save on local computer
  • rename the file to .txt for easy upload
  • set up pc as file server.
  • upload the firmware from file server
    [/list]
    Questions:
    1. once I have access via HT, I will have remote shell like other linux shell?
    2. I can run some command to download the firmware from the file server? it's it wget? or the 'grabupdate' script?
  • Userlevel 2
    Got the Silicon Lab CP210x USB to UART bridge. Supposedly work the same as Bus Pirate.
    got the pin to map as below:
    1:3V3
    2:RX
    3:TX
    4:GND

    Driver install and COM4 is enable in my PC.

    Launch Hyper Terminal and set COM4 to as follow 38400/8/None/1/Hardware

    Then connect. Hyper Terminal show sucessful connection status.
    The ZP100 is on. Can access via default http://169.254.1.1:1400/status.

    But I'm staring at blank screen on Hyper Terminal.
    What should I see if everything work? Is there some command to send/received between Hyper Terminal and ZP100?

    Also tried telnet. Got Rincon login screen. But obviously can't get in since no root passwd.
    Userlevel 2
    Badge
    My experience with the console has been through Linux, so I can't speak to any windows specific issues. First things first, just try hitting enter in the hyperterm window, IIRC the ZP doesn't send anything automatically when you plug in the UART. If you still don't get a command prompt power cycle the ZP100 while the UART is connected. When the ZP powers on it should send a bunch of stuff to the terminal about the bootloader, if you see that (and it doesn't look like gibberish) your connection setting are are correct, otherwise check to make sure you have a good connection to the UART header.
    Badge
    I picked up a bus pirate but this is my first experience with it and I'm having trouble getting anything out of it. I'm not sure if the connections and settings are correct. Can someone confirm the steps and connections from the bus pirate?

    Thank you for all the help so far...
    Userlevel 2
    Badge
    @tbearrows: PMed
    Userlevel 2
    At the OS level, the UART device is detect and enable. But nothing show up when connecting through either cu on linux or Hyper Terminal on Window.

    Its hard to get the pin to snuggly fit onto the port. Seem like the port a bit bigger than the standard IC chip pin, like this one: https://c1.staticflickr.com/3/2774/4149942841_209b609977.jpg

    What kind of connector are you using?
    Badge
    had to get my post up to 5

    Thanks
    Userlevel 2
    I used to be able to get to the default http://169.254.1.1:1400/status. But that appears to be broken as well. Can't ping it either.
    Probably as result of twiddling with UART hearder/ports that may short something else. Now the ZP100 is a brick.
    Userlevel 2
    Badge
    @Andres,
    Firstly might be worth checking the upgrade log files, this should tell you what version of firmware is loaded. Others on this forum have commented its only diag software that will allow you to access via the uart port to enable you to upgrade the software.
    Userlevel 2
    Badge
    @soyuppy, I'd be suprised if you managed to brick it from the UART connector. I know the one I learned on took waay more abuse (including hooking the UART up to RS232 voltage) without dying. Have you tried unplugging the UART and rebooting the device? It's possible that your UART connection is shorting something. When you reboot the device, take a look at the lights on the ethernet ports. If they flash when you plug in the power the board is (probably) not fried.

    I'm just using this sort of cable http://amzn.com/B00A6SOGC4 .

    My exprience has been on linux: use minicom to attach to your ttyUSB device and setting up the speed and flow control settings there (check out http://www.wiki.xilinx.com/Setup+a+Serial+Console for a rough explanation).
    Userlevel 2
    Success!

    I connected my ZP100 (with white blinking led) to a bus pirate (v2, SparkFun with cable) as follows:

    On the ZP100 there is a J1000 port with pins 1 to 4 numbered. Connect:
    Pin 1: white
    Pin 2: brown
    Pin 3: orange
    Pin 4: black

    Then use PuTTY (windows) and connect to Serial COM3 with speed 115200.
    Use the following options
    m (switch mode)
    3 (UART)
    7 (38400 speed)
    1 (8, NONE bits/parity)
    1 (stop bits)
    1 (idle 1 receive polarity)
    2 (3.3V)
    (1) (UART bridge)

    I then got:
    Rincon boot loader version 0.16-11080(ZP) (32M SDRAM). Press 'h' for help.
    SDRAM test...
    Memory test iteration 0
    Memory test fail @ 8C4F25D4 - D90A7081 != D91A7081
    SDRAM test complete
    SDRAM test failed, autoboot aborted
    >

    After pressing 'h':
    > 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

    After pressing 'b':
    > NAND ID is EC:75
    32M NAND flash (Samsung K9F5608U0C) detected
    Section 0 is provisionally good, kernel on partition 1, generation 7
    Section 1 is provisionally good, kernel on partition 4, generation 6
    Attempting to boot kernel from partition 1

    And hurray! The zoneplayer booted and showed up the Sonos controller! I then could update the firmware.

    I'm now going to attempt to replace the memory chip.