A Beogram 8002 that I am currently working on exhibited a strange issue after I had it fully restored and mechanically adjusted (i.e. the arms were perfectly orthogonal to the carriage rods and the end switch was set to a position where the arm would drop properly at the LP setdown point): Whenever I activated STOP or the arm auto-returned after playing a record, the carriage would bump into its mechanical limit and tilt upwards a bit. Not very beolovely! This meant the carriage motor somehow did not shut down soon enough after the end switch activated.
This was odd, since the end switch was adjusted for a perfect arm drop onto an LP run in groove, i.e. this issue could not be fixed by changing the end switch position a bit inward so the carriage would travel less far towards its home location. On another 8002 that I have currently on the bench everything worked nicely, i.e. the carriage traveled not as far after triggering the switch and the carriage did not bang into the rod support.
After a bit of head scratching I set up my portable DS-213 oscilloscope to do some measurements on these two Beograms. I measured one of the rotary encoders (blue) vs. the carriage motor voltage, hoping to learn something about the microcontroller timing of the carriage motor operation.
This figure compares the measurements for the problematic unit (top) and the normal one (bottom):
The problematic unit has a 100ms delay between switch activation and shut down of the carriage motor. I should point out here that the stop of the encoder signal coincides with the switch activation since the switch not only interfaces with pin 32 on the uController, but also directly turns off the power to the IR diode in the encoder.
A good question here is 'why did they set it up like this and not just use the encoder steps to determine an exact end of travel for the carriage?' Oh, the mysteries of vintage B&O!..;-). I would certainly not have designed it like this. Maybe a constraint was that not enough I/O pins were available and they had to combine a number of control items on a single pin.
Anyway, in contrast to this measurement the 'normal' 8002 only shows a ~70ms delay. In other words, the problematic 8002 runs the carriage motor about 50% longer than the good one after the end switch is triggered. This suggests that the two microcontrollers have different programming since the motor shutdown is directly controlled by pin 26 (">>") of the controller. In other words there was nothing to fix. Everything was mechanically and electronically in good shape, just the controller did some slightly different controlling!
My big question was how to alleviate this issue without the ability to change the firmware on the chip. In the end I saw only one way to deal with this: Slow down the carriage speed a bit during return to the home position. Luckily, there is a pretty straight forward way to do this!
This shows the relevant portion of the circuit diagram:
The shown circuit snippet is the half of the motor H-bridge that takes care of rightward (>) motion of the carriage. The opamp IC2 drives the TR3/4 push-pull stage that provides the motor current to OM1. The opamp itself is controlled by comparing the voltage at the + input with the voltage at the - input. The + input is connected to pin 26 of the uController via D7 and to the >> photoresistor in the black box on the keypad PCB via D8.
The voltage coming from the >> photoresistor ranges from 0.62V (if the calibration screws are adjusted properly) to about 3.2V depending on how hard the >> button is pressed.
This told me that the voltage control range tops out at about 3.2V, corresponding to full speed of the carriage. When carriage return is activated by pin 26, however, it applies the full logic voltage of about 4.8V or so, reduced to about 4.2V by D7. This means the the opamp is driven into saturation and puts out its maximum voltage.
My goal was to reduce the carriage speed enough so the carriage would stop slightly before from the mechanical end of travel during the 100ms after the end switch is triggered. This meant I had to reduce the voltage after D7 below 3.2V. I added a 1MOhm trimmer between D7 and the 1MOhm resistor R34, thereby forming a voltage divider that would allow me adjusting the voltage at the + input down to ~50% with the trimmer. For this I removed D7 and put it on the solder side of the board together with the trimmer for better access. Here an impression of this temporary experimental setup:
As expected the voltage yielding a sufficient speed reduction to prevent crashing the carriage was below 3.2V:
This voltage corresponded to ~840kOhm trimmer resistance (trimmer needs to be disconnected for an accurate measurement). With this resistance in place the carriage stopped about ~1mm before the mechanical end of travel, which in turn corresponded to a 9 mm distance between carriage and encoder housing:
All this was measured with the switch set to a position where the arm would drop perfectly into the center of the run in groove allowing time for the output relay to open before the needle would meet the music:
After this successful experiment, I replaced D7 with a small replacement circuit composed of a 820kOhm 0603 SMD resistor and the original diode on a Dremeled 1x6 piece stretch of prototyping board (it seems despite the 'analog' appearance of these 1980s boards they actually put the solder points on a 0.1" matrix!..;-):
Here an impression of the little board replacing the originally lonely D7 on the component side:
After this I tested the unit again and everything still worked! A promising sign!...;-). All good again in Beogram 8002 land! I should point out here that the 'apparent speed' of the carriage return only changed little, i.e. the casual observer will most likely not notice that the return speed was reduced a bit.
On to writing the main post about the restoration of this unit!