Monday, January 30, 2012

A ponyprog EEPROM programmer implementation

To fix a tv set I had to build a EEPROM programmer for NVM3060 EEPROMs.

At first I believed it was possible to use my i2c EEPROM programmer I use for 24CXX memories, but I have soon realized that NVM memories follow a different signaling standard called IM-BUS.

Googling around I've found the PonyProg project from Claudio Lanconelli (, an EEPROM programmer able to rely with this kind of memories. It is a funny programmer built of a "mother" board and many "daughter" boards, one for each memory and PICs family the programmer is able to deal with.

So I implemented the motherboard and the daughter board for NVM memories.

The motherborad was simplified as I considered it a little redundant. In fact the external power supply circuitry (Q4,Q6)  is, in my honest opinion, not needed and can be replaced by a simple jumper.
Aside is my modification manually depicted on the original diagram. JP2 is in fact used to switch between the external power supply and the internal power recovered from the RS232 by mean of D1, D2, D3.

I tested it in both configurations. Trying to deal with an NVM chip using the internally recovered power supply leads to read/write errors because the NVM is pulling too much current. Switching to the external supply things went fine with no problem.

If you need to program an NVM memory and don't have time left to build your own programmer, just send me your chip and image file and I'll be happy to program it for you.

Have you found this information useful? Please support my effort. Thank you!

Seleco BS700.4 turns in standby after 5 minutes

My Seleco 14SE112 (BS700.4 chassis) started suffering a weird problem: it turned back in standby mode after exactly 300 seconds (5 min) since startup.
Observing the screen picture carefully I also noticed that colors were too shining, like the color setting was set to MAX.
While tuning brightness and contrast from the OSD menu worked fine,  color setting had no effect.
To make a long story short it was the processor EEPROM that lost its content.
It is an NVM3060 chip, a not so common EEPROM type.

Googling around I found the PonyProg project from Claudio Lanconelli (, an EEPROM programmer software. One of the suggested hardware interfaces, the SIProg interface, is able to manage this kind of memories. It is a funny interface built of  a "mother" board and many "daughter" boards, one for each memory and PICs families the programmer is able to deal with.
So I spent some night in building the motherboard and the NVM daughter board (I've slightly modded the motherboard to keep it as simple as needed - see my other post about ponyprog/SIprog implementation/modding).

I have been also able to find a ROM image for the bs700.4 on the Internet..
Loading the EEPROM with the new image fixed the problem.