Z-Wave the public standard

Unable to program blank chip ZM5101


Dear all,

I’m trying to program some ZM5101 blank chips using the ZM4125-S module on ZDP03A Dev Platform. All my attempts are failing, both if I use the SPI or UART interfaces. Probably I’m skipping some steps, but I could not identify which ones. Is there someone already completing the same or similar procedure? Which docs should I use?

Thanks in advance and feel free to ask me more details if interested…



The PC Programmer is the tool you should be using. https://www.silabs.com/documents/login/user-guides/INS10679-Instruction-Z-Wave-Programmer-User-Guide.pdf
Be sure to select the 500 series tab. Note that I think it defaults to 300 series which will not work.

Generally the 500 series chip are programmed in-system via the 10 pin header on the ZDP03A. While you can program the chips before assembly that is not the typical method. The 10 pin header uses SPI.


Thanks for ytour answer! I was able to move forward, in some way, but there are some strange things that I would like to share. As previously said, I’m using only the ZDP03A and here below there are my concerns:

  • The first reason for which the programmer did not work was because it was not possible to detect the Chip Type. I was sure, reading the DS, that every Z-Wave chip has a JEDEC signature, explaining which device family it was. Is it not correct? To move on I modified the Programmer source code in order to select always the ZW050x family.
  • In this way I was able to interact with the ZM5101 chip but I see only that all the flash memory is black. If I read the NVM or the flash, there are only 0xFF codes. Again, the strange thing is that the Lock Bits are all set. Reading back the protection block I get 0-63 protected blocks. Is it correct?
  • In the end, every programming operation are now failing because the SRAM in “invalid”. If I read the SRAM content from the specific tab nothing is displayed on the output panel and if I try to program and calibrate the chip the procedure stops when using the SRAM to manipulate the calibration parameters.

Have you any suggestion?

Thanks a lot!


Hi again,

In addition to my previous post, have you any ISP to suggest, in order to understand if there could be an alternative path?



You should be using the ZDP03A programmer - https://www.digikey.com/product-detail/en/silicon-labs/ACC-DEVPLATP03A/703-1053-ND/2139694
The other option is the Equinox family of programmers but these are quite expensive.

Details on the programming are in: https://www.silabs.com/documents/login/user-guides/INS11681-Instruction-500-Series-Z-Wave-Chip-Programming-Mode.pdf. This document has the JEDEC signature.
But you shouldn’t need to go to this level of detail. The PC programmer should do all the work for you. You do not need to alter the source code of the PC Programmer. It should remember which tab you used last and default to the 500 series the next time you open it.

I suspect you are not really “acquiring” the chip and the data looks like all FFs but really the SPI pin is just always high and has not properly gone into programming mode.

Click on Tools->Detect Target. The bottom of the window should say the Target type in socket is ZW050x.
Click on the NVR tab, then Read. You should get a block of data which should not be all FFs. If that doesn’t work, then you have a connection problem.
Make sure the MISO and MOSI pins are correct and the RESET is connected.


You are absolutely RIGHT! There was a connection fault between the chip and the NVM that generates all the described issues! Once soldered back a new NVM everything works perfectly!

Thanks a lot!