Friday, March 1, 2013

Again on Philips CD670 and the CDM/2 cd transport


During the last year BOTH my Philips CD670 cd players have began to express annoying symptoms:
  • randomly unable to read the TOC even with CDs that yesterday successfully played many times;
  • randomly stopping playing with "error" message on the display (mainly when playing your preferred piece of music of your preferred cd...), even with CDs that yesterday played ok many hours;
  • being very very very sensitive to mechanical shocks (I was attempted to use them as earthquake warning tools ...). Even a strong "bass" tune could lead to  the "error" condition as well as my son just walking by in front of it - the cat didn't have the same effect, however...).
Those symptoms led me to think I was facing a tracking problem, so I started investigating the servo controller board.
To make a long story short, here is the result: BOTH players showed the same problem: a crack in the same point of the same strip of the flat ribbon PCBs inside the CDM2. Certainly a design flaw that  manifested itself years and years after production.

The problem is due to the clip keeping the tape in place in the CDM2 frame.
This clip is designed in such a way that it pushes on the tape not in a uniform manner, but on the two outside edges. After years of little stress,  the underlying ribbon strip starts to have continuity problems and eventually breaks.
This is emerging as a potential recurring problem which can affect many CDM2 still out there and can also be the cause of the bad reliability reputation of the CDM2.
Some self explanatory pictures follow.

I also add some pic and information gathered during the troubleshooting process.

The culprits (item 51 in the exploded view in the service manual).

The fix on first player

The fix on second player



Laser current test point - first player
A socket has been installed to facilitate future measurements. The service manual states that 50mV should be present across resistor 3102. The pot was set for 45mV to preserve laser life.



Laser current test point - second player
There is non need to install sockets here. Jumpers are available on the other side of the PCB that are connected to resistor 3102... 
 

Eye pattern on first player 

Eye pattern on second player (much better!)


Jitter of master clock. Similar on both players...

Useful to know: the cd-660/670 players have service modes available for troubleshooting.
Turn on the player while  simultaneously depressing FTS + TRACK< + TRACK>. The player starts in service mode 0 showing a 0 on the display. SM 0 is a sort of standby mode you can use to check various static signals and voltages.
Pressing TRACK> the uP tries to reach service mode 1. SM 1 is still a standby mode, but the focus has been set up. If the player is not able to reach SM 1, the a focus servo subsystem has to be investigated. To reach SM 1 a disk has to be present in the player. With no disk in the player you can monitor the 16 attempts the uP performs to get focus: useful to track both mech and electrical problems. As in SM 1 the laser is turned on I use this mode to adjust the laser current.
Press TRACK> again to reach SM 2. Spindle motor is now on focus is kept but tracking is still disabled.
Press TRACK> again to reach SM 3 where tracking is turned on. Players stay in SM 3 for about 60sec then jump back to SM 0.

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




(see also this related post)


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 (http://www.lancos.com/prog.html), 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.


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 (http://www.lancos.com/prog.html), 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.