2014. december 8.

Repairing Commodore 1351 mouse

I have a Commodore 1351 mouse bought ages ago, for chips. It wasn't functioning properly, since the horizontal movement didn't work. It was sitting in the drawer, waiting to be repaired, until this week. Since I managed to copy GEOS to a spare floppy disk, with my new ZoomFloppy device, it was high time to use it. The symptoms are: it moves the cursor up and down properly, however no horizontal movements at all.

Opened up the casing of the mouse, I found it quite dirty, collected a lot of small particles everywhere around the sensing wheel as well, so my first move was to get rid of that oily dirt, and clean the casing too. The easiest way to clean the PCB, and grease, particles, is to use break cleaner spray used for cars. It dissolves every kind of oils, and sticky dirt, and sublimates very quickly leaving a clean surface afterwards. For the housing I used Domestos, an aggressive whitening cleaner could be easily obtained here around.

Small blue spots are the IR emitters
Cleaning wasn't enough though. I quickly checked the cable with multimeter resistance measurement, looking for incontinent, however I have found everything all right. My next move was to observe whether the infrared transmitters emit light or not. It is a little tricky, since you can not see IR light, however, digital cameras can... like the ones can be found on smart phones. You just need some darker places to see those small bright spots. As you can observe on the picture I took, those IR transmitters are visible as bright blue spots on the picture. You could also observe, that one of them (lower right hand corner) is emitting dimmer than the others. This could be a problem, since probably it's light is not enough to sense movement. Probably that particular LED is getting worn out, but still operational though.

Blue resistors are the new ones
Since I didn't have any spare parts to replace those, and didn't even seemed to be an easy run, I checked the device further. Putting to good use my oscilloscope again, measuring all of the IR receivers on the other side of the wheels, opposite to the IR transmitters, while I was rotating the wheel in front of them. As I measured, I realized that the ones associated to vertical movement, modulates the 5V power source between roughly 0V and 3.8-4.1V. However, the receiver on the X axis, opposite to the brighter emitter modulates between 0V-3V, and the one opposite to the dimmer emitter between 0V-1.8V. But at least, it was a sign, that the receivers are also in working condition.

Commodore 1351 connected to C=64
Traced back the PCB from the IR receivers, I concluded that it works the following way: they are sourced from the 5V power line, and connected to the IC with different kind of pull down resistors, to make the 0V when they don't see any IR light, and closer to 5V when they are. However, I was surprised, that every IR receivers had different pull down resistors in place, probably manufacture time compensation of small differences. The 4 resistors varied from 5.5kOhm to 12kOhm. I quickly need to add, that the two smallest resistors were connected to the X axis receivers. This means, that probably sometime they were capable to drive more current, either because the emitters were brighter, or the receivers degraded by time. So, my theory was: swapping the two small resistors for bigger ones, makes the receivers pull up the line more easily, which means higher amplitude oscillation compared to 0V-1.8V.

C=64 with 1351 mouse, running GEOS
At first I soldered out the two resistors, and added 9.9kOhm ones instead. Checked again on the oscilloscope, nice high amplitude produced by all receivers. Still in the taken apart state, I connected to the C=64, loaded up GEOS, and tested rotating with fingers the individual wheels: works perfectly! Nice job! Assembling together with it's house, I was eager to click around in GEOS... and came the disappointment: the X axis didn't work again. Taking it apart again, checking soldered connections again, everything is fine. Connecting the raw PCB to the C=64, it also works fine! Ok, probably it was some temporary thing, maybe a connection problem. Assembling together again, and testing: X axis doesn't work again. Hmm... probably the PCB, and the housing of the wheels + IR emitters and receivers bends, when I tight down with screws, and gets the two receivers out of alignment. I have loosen the lower screw, and TADA! Works! A little bit unreliable on the X axis sometimes, but at least it works. Now I know, it is a misalignment issue from now on (mechanical).  But at least it became usable. I have a working Commodore 1351 mouse finally!

Nincsenek megjegyzések:

Megjegyzés küldése