Apple Desktop Bus Mouse: Difference between revisions
No edit summary |
|||
| Line 27: | Line 27: | ||
* '''M0142''' – Consolidated model number used from 1988-1993 | * '''M0142''' – Consolidated model number used from 1988-1993 | ||
Despite different model numbers, all variants were functionally identical. Manufacturing occurred in Taiwan (early models), Ireland, and later Singapore facilities. | Despite different model numbers, all variants were functionally identical. Manufacturing occurred in Taiwan (early models), Ireland, USA, and later Singapore and Malaysia facilities. | ||
== Design & Construction == | == Design & Construction == | ||
| Line 37: | Line 37: | ||
The mouse utilized mechanical ball tracking with the following key components: | The mouse utilized mechanical ball tracking with the following key components: | ||
* '''Tracking mechanism:''' 19mm rubber-coated steel ball | * '''Tracking mechanism:''' 19mm rubber-coated steel ball (black on early models, gray on later) | ||
* '''Optical encoders:''' Two perpendicular slotted wheels with infrared LED/phototransistor pairs | * '''Optical encoders:''' Two perpendicular slotted wheels with infrared LED/phototransistor pairs | ||
* '''Controller chip:''' Various manufacturers including: | * '''Controller chip:''' Various manufacturers including: | ||
** Mitsumi custom ADB controller | ** Mitsumi custom ADB controller | ||
** Logitech 42c60p5625 | ** Logitech 42c60p5625 (Taiwan models) | ||
** IC Designs custom ASIC | ** IC Designs custom ASIC | ||
** Alps 820-0232 (USA models) | |||
* '''Microswitch:''' Omron D2F series rated for 1 million clicks | * '''Microswitch:''' Omron D2F series rated for 1 million clicks | ||
* '''Circuit board:''' Single-sided PCB with through-hole components | * '''Circuit board:''' Single-sided PCB with through-hole components | ||
=== Manufacturing Variations === | === Manufacturing Variations === | ||
Five primary internal designs existed across production facilities: | |||
'''Taiwan | '''Taiwan manufacture (Logitech):''' | ||
* | * Model A9M0331 with black ball | ||
* | * Beige PCB top, green bottom | ||
* | * Marked "ADB Mouse by Logitech Rev C2" | ||
* White ball cage | |||
* Part numbers: 400115-400118 | |||
''' | '''Taiwan manufacture (Logitech G5431):''' | ||
* | * Green PCB marked "Logitech AT Rev B" | ||
* | * P/N 200048-00 | ||
* | * Black ball cage | ||
* Part numbers: 400234-400235 | |||
'''USA manufacture (Alps):''' | |||
* Brown PCB stamped 820-0232 | |||
* Gray 25mm ball | |||
* Round retainer with V-notch | |||
* Integrated ball cage | |||
* Part numbers: 815-1090 to 815-1092 | |||
'''USA manufacture (Unknown):''' | |||
* Green PCB stamped 820-0146 | |||
* Gray 25mm ball | |||
* Ribbed retainer with 3 tabs | |||
* White ball cage | |||
* Steel rollers | |||
'''Malaysia manufacture (Mitsumi):''' | |||
* Brown PCB marked Mitsumi | |||
* Gray 25mm ball | |||
* Black ball cage | |||
* Two-screw PCB mounting | |||
* Part numbers: 64-1259 to 64-1262 | |||
== Technical Specifications == | == Technical Specifications == | ||
| Line 85: | Line 110: | ||
* '''Default address:''' $3 (reassignable via bus enumeration) | * '''Default address:''' $3 (reassignable via bus enumeration) | ||
* '''Polling rate:''' ~100 Hz typical | * '''Polling rate:''' ~100 Hz typical | ||
=== Protocol Timing Details === | |||
Each ADB transaction follows this sequence: | |||
# '''Attention signal:''' Host pulls bus low for 800μs | |||
# '''Sync signal:''' Bus high for 70μs | |||
# '''Command byte:''' 8 bits (4-bit address, 2-bit command, 2-bit register) | |||
# '''Stop bit:''' Logic 0 with optional 300μs service request window | |||
# '''Stop-to-start time (Tlt):''' 140-260μs high period | |||
=== Device Registers === | === Device Registers === | ||
| Line 90: | Line 123: | ||
* '''Register 0:''' Mouse movement data (2 bytes) | * '''Register 0:''' Mouse movement data (2 bytes) | ||
** Byte 0: Button state (bit 7) + X movement delta | ** Byte 0: Button state (bit 7) + X movement delta (-127 to +127) | ||
** Byte 1: Button state (bit 7) + Y movement delta | ** Byte 1: Button state (bit 7) + Y movement delta (-127 to +127) | ||
* '''Register 1:''' Reserved (unused) | * '''Register 1:''' Reserved (unused, later used for extended protocol) | ||
* '''Register 2:''' Reserved (unused) | * '''Register 2:''' Reserved (unused) | ||
* '''Register 3:''' Device identification and address | * '''Register 3:''' Device identification and address | ||
** Default handler ID: $01 (standard mouse) | ** Default handler ID: $01 (standard mouse) | ||
** Bits 11-8: Device address (default $3) | |||
** Bits 7-0: Handler ID | |||
=== Tracking Performance === | === Tracking Performance === | ||
* '''Resolution:''' 100 counts per inch (CPI) | * '''Resolution:''' 100 counts per inch (CPI) | ||
* '''Maximum tracking speed:''' 10 inches/second | * '''Maximum tracking speed:''' 10 inches/second | ||
* '''Sampling rate:''' Mechanical encoder dependent (~200 Hz) | * '''Sampling rate:''' Mechanical encoder dependent (~200 Hz) | ||
* '''Encoder wheel slots:''' 36 per wheel (10° resolution) | |||
== ADB System Architecture == | == ADB System Architecture == | ||
| Line 113: | Line 150: | ||
The mouse typically operated at address $3, with the keyboard at address $2. During system initialization, the ADB Manager would enumerate devices and resolve any address conflicts through a sophisticated random address generation scheme. | The mouse typically operated at address $3, with the keyboard at address $2. During system initialization, the ADB Manager would enumerate devices and resolve any address conflicts through a sophisticated random address generation scheme. | ||
== Expanded Troubleshooting & Repair == | |||
=== Diagnostic Procedures === | |||
==== Erratic Cursor Movement ==== | |||
'''Symptoms:''' Jumpy, inconsistent, or drifting cursor movement | |||
'''Root Causes & Solutions:''' | |||
# '''Dirty encoder wheels''' (Most common) | |||
#* Remove ball and inspect encoder wheels for dust/debris | |||
#* Clean wheels with cotton swab and 90%+ isopropyl alcohol | |||
#* Use compressed air to clear encoder slots | |||
#* Ensure LED/phototransistor pairs are clean | |||
# '''Worn ball surface''' | |||
#* Check for flat spots or uneven wear | |||
#* Clean ball with isopropyl alcohol | |||
#* Replace if severely worn (19mm rubber-coated steel ball) | |||
# '''Encoder wheel damage''' | |||
#* Inspect for broken or bent encoder wheel teeth | |||
#* Check encoder shaft for excessive play | |||
#* Replacement requires donor mouse or compatible encoder assembly | |||
# '''Controller chip issues''' | |||
#* Test with known-good ADB system | |||
#* Check for proper +5V supply at controller | |||
#* Controller replacement requires exact matching part | |||
==== Button Failures ==== | |||
'''Symptoms:''' No click, stuck button, double-clicking, intermittent response | |||
'''Microswitch Testing:''' | |||
# Measure resistance across switch terminals (should be <1Ω when pressed) | |||
# Test for proper tactile feedback and audible click | |||
# Check for mechanical obstruction in button mechanism | |||
'''Replacement Procedure:''' | |||
# Compatible switches: Omron D2F-01, D2F-01F, D2F-01F-T | |||
# Specifications: SPDT, 10mA minimum current rating | |||
# Desolder old switch carefully to avoid PCB damage | |||
# Install new switch ensuring proper alignment with button actuator | |||
==== Complete Failure ==== | |||
'''Symptoms:''' No response, system doesn't recognize mouse | |||
'''Systematic Diagnosis:''' | |||
# '''Power verification''' | |||
#* Measure +5V at pin 3 of ADB connector | |||
#* Check ground continuity at pin 4 | |||
#* Typical current draw: 50-80mA during operation | |||
# '''Cable testing''' | |||
#* Check for breaks at strain relief points | |||
#* Test continuity of all four wires end-to-end | |||
#* Common failure point: cable entry to mouse body | |||
# '''ADB communication test''' | |||
#* Use oscilloscope to verify data signal on pin 1 | |||
#* Check for 800μs attention pulse from host | |||
#* Verify mouse responds with register data when polled | |||
# '''Controller diagnostics''' | |||
#* Check crystal oscillator (if present) for proper frequency | |||
#* Verify controller power pins (+5V and ground) | |||
#* Test for shorts on data lines | |||
=== Component-Level Repairs === | |||
==== Circuit Board Repair ==== | |||
'''Common PCB Issues:''' | |||
* Cracked traces near cable entry | |||
* Cold solder joints on through-hole components | |||
* Corrosion from liquid spills | |||
'''Repair Techniques:''' | |||
* Use 30AWG wire for trace repairs | |||
* Reflow all solder joints with flux | |||
* Clean corrosion with white vinegar, then IPA | |||
* Apply conformal coating after repairs | |||
==== Encoder Maintenance ==== | |||
'''Cleaning Procedure:''' | |||
# Remove encoder wheels from shafts | |||
# Clean wheel slots with soft brush | |||
# Clean optical pairs with lens cleaning solution | |||
# Verify proper spring tension on roller shafts | |||
# Apply small amount of silicone lubricant to shafts | |||
'''Alignment Check:''' | |||
* Encoder wheels must be perpendicular | |||
* LED must align with center of phototransistor | |||
* Wheel must pass cleanly through optical gap | |||
* No rubbing or binding during rotation | |||
==== Cable Replacement ==== | |||
'''Required Skills:''' Soldering, cable preparation | |||
'''Procedure:''' | |||
# Source replacement 4-conductor cable with shield | |||
# Match original wire colors if possible: | |||
#* Pin 1 (Data): Usually white or yellow | |||
#* Pin 2 (PSW): Usually black or brown | |||
#* Pin 3 (+5V): Usually red | |||
#* Pin 4 (Ground): Usually green or shield | |||
# Maintain original cable length (approximately 1.2m) | |||
# Use heat shrink tubing at stress points | |||
=== Test Equipment & Tools === | |||
'''Essential Tools:''' | |||
* Digital multimeter with continuity test | |||
* Precision screwdriver set (Phillips #0, #1) | |||
* Desoldering pump or wick | |||
* Temperature-controlled soldering iron (15-25W) | |||
* 90%+ isopropyl alcohol | |||
* Cotton swabs and lint-free cloths | |||
* Compressed air | |||
'''Advanced Diagnostics:''' | |||
* Oscilloscope (10MHz minimum bandwidth) | |||
* Logic analyzer for protocol analysis | |||
* ADB diagnostic software (TechTool, ADB Parser) | |||
* Frequency counter for timing verification | |||
=== Preventive Maintenance Schedule === | |||
'''Monthly:''' | |||
* External cleaning of mouse surface | |||
* Check cable for damage | |||
'''Quarterly:''' | |||
* Remove and clean ball | |||
* Inspect encoder wheels | |||
* Clean mouse pad surface | |||
'''Annually:''' | |||
* Disassemble and deep clean | |||
* Check microswitch operation | |||
* Inspect PCB for damage | |||
* Test on known-good system | |||
== Common Modifications == | == Common Modifications == | ||
=== Two-Button Conversion === | === Two-Button Conversion === | ||
Most ADB controller chips included support for a second button, though Apple never implemented it. Common modifications included: | |||
* Identifying the unused second button pin on the controller chip | * Identifying the unused second button pin on the controller chip (varies by manufacturer) | ||
* Adding a tactile switch connected to this pin and ground | * Adding a tactile switch connected to this pin and ground | ||
* Modifying the case to accommodate the additional button | * Modifying the case to accommodate the additional button | ||
* Software support via third-party control panels | * Software support via third-party control panels (ClickChange, MouseWorks) | ||
=== Optical Sensor Upgrade === | === Optical Sensor Upgrade === | ||
Modern retrofit kits allow replacement of the mechanical ball system with optical tracking: | Modern retrofit kits allow replacement of the mechanical ball system with optical tracking: | ||
* TT Design's ADB Optical Mouse Retro Board | * TT Design's ADB Optical Mouse Retro Board (RP2040-based) | ||
* Uses | * Uses modern optical sensor (PixArt or similar) | ||
* Maintains original 100 CPI default with adjustable settings | * Maintains original 100 CPI default with adjustable settings | ||
* Compatible with original ADB protocol and timing | * Compatible with original ADB protocol and timing | ||
* Requires desoldering original PCB and installing retrofit board | |||
=== Performance Enhancements === | |||
* '''Teflon pad replacement:''' Replace worn pads with PTFE dots | |||
* '''Ball upgrade:''' Replace with precision phenolic resin ball | |||
* '''Spring tension adjustment:''' Optimize encoder wheel pressure | |||
* '''Shielding improvements:''' Add EMI shielding to reduce interference | |||
== Maintenance & Repair == | == Maintenance & Repair == | ||
| Line 137: | Line 323: | ||
Regular maintenance was essential for reliable operation: | Regular maintenance was essential for reliable operation: | ||
# Remove the retaining ring on the bottom of the mouse | # Remove the retaining ring on the bottom of the mouse (rotate counterclockwise) | ||
# Extract the tracking ball | # Extract the tracking ball | ||
# Clean ball with isopropyl alcohol | # Clean ball with isopropyl alcohol | ||
# Remove lint and debris from encoder wheels using compressed air | # Remove lint and debris from encoder wheels using compressed air | ||
# Clean encoder wheel surfaces with cotton swab and IPA | # Clean encoder wheel surfaces with cotton swab and IPA | ||
# Clean mouse pad contacts if present | |||
# Reassemble in reverse order | # Reassemble in reverse order | ||
=== Common Failures === | === Common Failures === | ||
* '''Erratic cursor movement:''' Dirty encoder wheels or worn ball | * '''Erratic cursor movement:''' Dirty encoder wheels or worn ball (80% of issues) | ||
* '''Button failure:''' Worn microswitch (replaceable with D2F series) | * '''Button failure:''' Worn microswitch (replaceable with D2F series) | ||
* '''Intermittent connection:''' Broken wires at cable strain relief | * '''Intermittent connection:''' Broken wires at cable strain relief | ||
| Line 151: | Line 338: | ||
=== ADB Port Safety === | === ADB Port Safety === | ||
The ADB port lacked proper protection against hot-swapping on most systems. Connecting or disconnecting devices while powered could blow the ADB fuse on the motherboard, requiring professional repair or fuse replacement. | The ADB port lacked proper protection against hot-swapping on most systems. Connecting or disconnecting devices while powered could blow the ADB fuse on the motherboard (typically 1.1A polyfuse), requiring professional repair or fuse replacement. | ||
== Historical Context == | == Historical Context == | ||
| Line 169: | Line 356: | ||
* '''Apple IIGS:''' GS/OS with built-in mouse driver | * '''Apple IIGS:''' GS/OS with built-in mouse driver | ||
* '''Macintosh:''' System 3.2 through Mac OS 9.2.2 | * '''Macintosh:''' System 3.2 through Mac OS 9.2.2 | ||
* '''Third-party:''' MouseKeys, QuicKeys, | * '''NeXT:''' Compatible with ADB-equipped NeXT systems | ||
* '''Third-party:''' MouseKeys, QuicKeys, SteerMouse, USB Overdrive (with adapters) | |||
=== Control Panels === | === Control Panels === | ||
* '''Mouse control panel:''' Tracking speed adjustment (System 6.0+) | * '''Mouse control panel:''' Tracking speed adjustment (System 6.0+) | ||
* '''CloseView | * '''CloseView:''' Cursor size and visibility options | ||
* '''Third-party tools:''' Added acceleration curves and button customization | * '''Third-party tools:''' Added acceleration curves and button customization | ||
== Parts & Specifications == | |||
=== Replacement Components === | |||
{| class="wikitable" style="width:70%; text-align:center;" | |||
|+'''Common Replacement Parts''' | |||
! Component !! Specification !! Modern Equivalent | |||
|- | |||
| Microswitch || Omron D2F series || D2F-01F-T, D2FC-F-7N | |||
|- | |||
| Ball || 19mm rubber-coated steel || 3/4" precision bearing ball | |||
|- | |||
| Encoder wheels || 36-slot optical || Custom part (donor required) | |||
|- | |||
| LED || IR 940nm || Standard 3mm IR LED | |||
|- | |||
| Phototransistor || IR sensitive || Standard 3mm phototransistor | |||
|- | |||
| Controller IC || Various proprietary || No direct replacement | |||
|} | |||
=== Electrical Specifications === | |||
* '''Operating voltage:''' 4.75V - 5.25V | |||
* '''Current consumption:''' 50mA typical, 100mA maximum | |||
* '''Data rate:''' 10-50 kbit/s typical | |||
* '''Temperature range:''' 10°C - 40°C operating | |||
* '''Humidity:''' 20% - 80% non-condensing | |||
== Collector Information == | == Collector Information == | ||
| Line 181: | Line 396: | ||
* '''Early models (1986-1988):''' Larger printed label with two screws | * '''Early models (1986-1988):''' Larger printed label with two screws | ||
* '''Later models (1988-1993):''' Smaller label with single center screw | * '''Later models (1988-1993):''' Smaller label with single center screw | ||
* '''Serial number format | * '''Serial number format:''' First letter indicates year, second indicates manufacturing location | ||
=== Condition Assessment === | === Condition Assessment === | ||
* '''Case yellowing:''' Common due to brominated flame retardants | * '''Case yellowing:''' Common due to brominated flame retardants in ABS plastic | ||
* '''Cable integrity:''' Check for cracks at strain relief points | * '''Cable integrity:''' Check for cracks at strain relief points | ||
* '''Mechanical wear:''' Test ball retention and encoder wheel movement | * '''Mechanical wear:''' Test ball retention and encoder wheel movement | ||
| Line 190: | Line 405: | ||
=== Modern Usage === | === Modern Usage === | ||
* '''ADB-to-USB converters:''' Griffin iMate (discontinued), Wombat adapter | * '''ADB-to-USB converters:''' Griffin iMate (discontinued), Wombat adapter, Belkin F5U118 | ||
* '''Retrobrighting:''' Possible but risky for painted Platinum plastic | * '''Retrobrighting:''' Possible but risky for painted Platinum plastic | ||
* '''Replacement parts:''' NOS balls and microswitches still available | * '''Replacement parts:''' NOS balls and microswitches still available | ||
* '''Modern retrofits:''' Optical sensor upgrades maintain vintage appearance | |||
== Related Accessories == | == Related Accessories == | ||
| Line 199: | Line 415: | ||
* [[Macintosh Mouse Pad]] | * [[Macintosh Mouse Pad]] | ||
* [[ADB Extension Cable]] | * [[ADB Extension Cable]] | ||
== See Also == | |||
* [[Apple Desktop Bus]] | |||
* [[Apple Desktop Bus Protocol Specification]] | |||
* [[ADB Device Programming]] | |||
[[Category:Apple Vintage Accessories]] | [[Category:Apple Vintage Accessories]] | ||
[[Category:Apple Desktop Bus]] | [[Category:Apple Desktop Bus]] | ||