LisaList2

General Category => LisaList2 => Topic started by: patrick on February 03, 2019, 10:11:01 am

Title: Widget Repairs
Post by: patrick on February 03, 2019, 10:11:01 am
There have been some questions concerning Widget which I would like to comment on. As the old mails have not been transferred to this forum and it is not clear yet how this will be done I will include the relevant parts as quotes.


Ray: Jan 03 08:10AM -0800 

> Replacing that board fixed the spindle which now spins and unlike the
> first Widget, this one is quieter, however I've not been able to get it
> to unclamp the brake solenoid by replacing the boards and the wide
> ribbon cable between the top board and the back plane motherboard, nor
> by replacing all the boards.

The brake solenoid is released by the servo reset /SRst pulse. To release it manually, momentary short pin 3 of U8 (74LS09) to ground. Or pin 4 of the motor PCB if you suspect a bad connection from controller to motor.

> I get various different errors when swapping out various boards from 81,
> 82, and 85 and am wondering how to debug the issue.

Not at all. 81 means "drive not ready" (after 100 seconds), 82 means "bad response" (drive did not send 0x01 after /PCmd set low) and 83 means "status returned not zero". 84 indicates an invalid boot file, 85 a timeout after initial handshake. All these errors tell you to call your Authorized Apple Dealer and get your unit fixed.

To check what really went wrong you have to read the extended status from the Widget controller. This can be done with WidEx (on an Apple ///), with Tom's NeoWidEx (on a Lisa) or my UsbWidEx (separate unit that connects to a PC).

> Anyone know which board returns status to the Lisa - that is where are
> these 00's and FF's coming from? Is it the top controller or the
> motherboard?

Of course, this is done by the controller. The drive itself is dumb, it gets serial commands for the servo (like "recal", "go forward by +33 tracks") and it sends and receives a bitstream to resp. from the heads. Like a floppy drive or an old MFM unit. You can talk to the controller without the drive attached. Of course then you would be limited to selftest and status reporting.

> I notice there is a cylindrical sensor next to the drive spindle that's
> screwed in and points to the edge of the spindle;

That's a tacho sensor that generates the Index and Sector pulses. Widget is hard-sectored. The index pulse is generated once per revolution (every 19,4 ms), the sector pulse approximately every millisecond. Without an oscilloscope you could measure the frequency at pin 12 (Index) and pin 39 (sector) of the controller Z8, or even listen to them (51,5 Hz resp 1 kHz).



Tom: Jan 03 03:58PM -0800

> First of all, whenever you select any of the commands from the menu, if it
> hasn't had a chance to talk to the disk yet, it requests sector $FFFFFF to
> find out what's attached. Then, if the disk doesn't respond in a Widgety
> way, it refuses to run any of the Widget commands.

Ok, that might have been the second best idea. A drive that has detected some internal fault will disable the ProFile (0x00, 01, 02) and Widget System (0x26 00, 26 01) commands. To get block 0xFFFFFF from such a drive you would have to use the Read_ID command (0x12 00 ED with handshake 02/55). Reading Controller and Servo status should always be possible. These commands would not hurt a ProFile/XProfile/IDEfile, they will be ignored.



Jason: Jan 04 11:47AM -0500

> What does the light on the top of the controller do? (Not the READY light
> that faces forward)

It is illuminated when either PowerOk is low or /CRes asserted, or when the controller wrote a zero into address 01800h. It is toggled every 100 ms in the "MsWait" delay routine.

The LED on the motor PCB indicates the /WRTSAFE signal. A second LED can be connected to J5 at the controller board. Usually /WRTSAFE is active whenever the heads have been settled on a track, i.e. no seek is taking place.

> If the brake coil is bad, you could move it out of the way for testing.

Right. But don't forget to move it back into position before the drive is moved or tilted! Never move the heads while the disk is not spinning. They need some minimum speed to lift from the surface, otherwise they will scratch it.

> Note that if you swap the motherboard you have to re-adjust the pots. I
> think this adjustment needs doing if the head servo board is swapped too.

Also correct. The motherboard has to be adjusted to match the optics inside the drive, and Tacho Gain and Offset have to be adjusted together with the servo board. The latter is not so critical, i.e a drive with swapped servo will work in most cases. But never separate mechanics and motherboard unless you know what you are doing.


Patrick
Title: Re: Widget Repairs
Post by: rayarachelian on February 03, 2019, 10:04:47 pm
Hi @patrick, many thanks for this (as well as to Tom and Jason)

Quote
Also correct. The motherboard has to be adjusted to match the optics inside the drive, and Tacho Gain and Offset have to be adjusted together with the servo board. The latter is not so critical, i.e a drive with swapped servo will work in most cases. But never separate mechanics and motherboard unless you know what you are doing.
What's the adjustment procedure, so there's some trimpots on that board, but how are they adjusted? I think from what I remember, there's a bank of 4 trimpots there, but they're on the inside when the drive is assembled and can't be adjusted while the drive is running.
Here's an image of one of these boards currently on ebay, there's a row of 3 trimpots horizontally at the top and another of 4 vertically down in the center top.As the two card edge connectors are on this side of the board, they face towards the drive and thus aren't adjustable while the drive is on.(This is from:  https://www.ebay.com/itm/Apple-Lisa-Widget-Motherboard-Part-6770103/143054651506 (https://www.ebay.com/itm/Apple-Lisa-Widget-Motherboard-Part-6770103/143054651506) which is from VintageMicros.)

 (https://i.ebayimg.com/images/g/igsAAOSwLEtYimT7/s-l1600.jpg)
I suppose my best bet would be to find the original motherboard that came with this Widget and mount it again rather than attempting to adjust this.
(The good news is that I didn't touch any of the trimpots on these, I merely swapped out cards with spares until I got the first Widget working, but this one still has issues.)

It seems to be impossible to adjust these with the Widget on. You'd need to power the widget off, unplug the motherboard, adjust it slightly, plug it back in, power it on, and repeat.Or is there a better way to do that, or did Apple have some other way of setting these up originally?
Title: Re: Widget Repairs
Post by: patrick on February 04, 2019, 04:59:37 pm
Referring to your picture, the upper row from left to right: Tacho Offset, LED current, Tacho gain.

Below that, from top to bottom: A', B', B, A amplitude.

Adjustment procedure is as follows:

1) unscrew the motherboard but leave it connected to the HDA. Put it on its back and plug in the servo board. Apply power. The spindle motor should run.
 
2) measure voltage at TP5 (the single pin next to the empty 16pin socket in the upper right of the picture). Should be 3.6 V +/- 0.2 V, this means 20 mA. Adjust with the LED current pot. Sometimes it is necessary to change R34, on most boards this resistor is in a socket.

3.6 V is the specification value. Some of my (good) drives measure lower voltages. Leave it as it is if it works. More current means more stress to the LED.


3) connect an oscilloscope in X-Y mode to TP8 (Y), TP9 (X) at  the servo board. Set to 2 V/div Set both channels to Gnd to center the spot, then back to DC.

4) pulse /SRst low to release the brake. This is pin 28 of the edge connector, or pin 1 of IC U6 (75451). You hear a loud click.

5) send alternate seeks to the servo to move the heads +/-100 tracks. Or disconnect the voice coil (while power is off!) an move the head manually back and forward. Observe the pattern on the oscilloscope. It should be a circle with a radius of approximately 5 V (2.5 div). Adjust pots if necessary. A' controls top, B' right side, B left side, A bottom.

LED current has an influence on the size of the circle. If it looks good but is just to big, reduce LED current.


6) connect scope to TP9 on the servo board, trigger at TP27. Set to 5 V/div, 5 ms/div.

7) send alternate seeks to the servo to move the heads +/-100 tracks. Adjust Tach Gain so that the waveform is 35 ms long

8) connect scope to TP7 on the servo board.

9) send recal to the servo. Adjust Tacho Offset for 0 V. Recheck Tach Gain setting.

10) do alternate seeks with different amplitudes or butterfly seeks. Drives with sticky bearings will not work properly at nominal velocity. If the heads lose position during large seeks or bang into the endstops, reduce Tach gain. Some Widgets prefer it slower.

Good luck!


Patrick

Title: Re: Widget Repairs
Post by: rayarachelian on February 04, 2019, 10:56:23 pm
Oh wow! Thank you for this, this is gold!