|
After the optical mouse in
Excuse was found to be speed limited, a search for a faster mouse was
undertaken. Apparently, the timing was right because Microsoft
just introduces the IntelliMouse and Logitech came out with the MX
series of mice. Both advertised speed rand of up to 40 inches per
second. PS2 compatible examples of both were purchased.
Both the IntelliMouse and
the MX300 were tried with the PAK VIA. Both worked with the
following changes: First, a 10K pull up resistor was added to the
mouse clock pin. I assume that the pull up resistor is required to
indicate to the mouse that PS2 mode is required. Second, a warm
reset of the PAK VIA and mouse are required after power-on. After
the warm reset, a delay is required before either mouse can be used.
The IntelliMouse requires 1.6 seconds delay and the MX300 requires 1.1
seconds delay.
Upon
disassembly, the Microsoft mouse appeared to be way too complicated to
hack, so it went into daily duty replacing the ball mouse on my main
computer. The Logitech MX300 was much simpler with a familiar
Agilent Optical Mouse chip and a Cypress micro controller. The
Agilent chip was marked "A2020" so I assumed that it was a ADNS2020.
No chip is listed on their web site with that number and a request for a
data sheet was ignored.
Much
of the MX300 PCB was dedicated to wheels and buttons that were not
needed. Those parts of the board were cut off with a Moto-tool.
The resulting, smaller board can be seen in the photos. The board
could be cut more, but it is good enough for now. Note: The
newer MX310 appears to have a simpler board so may be cut down more.
The
electronics were installed in a test Sumo and everything worked!
Since the desired
measure is forward speed, the technique used is to a) clear the mouse
buffer, b) wait a few milliseconds, c) read the mouse buffer.
Theoretically, the milliseconds wait time could be used to scale the
output to a useable level.
Interesting observation:
The PAK VIA sends a maximum of "01111111". That is the output at
about 28 to 30 inches per second. Increasing the speed up to 36
inches per second does not change the output of "01111111". There
was no overflow indication at this higher speed.
Several alternative
programs were developed to test the functions. The mouse would
sense whenever the Sumo was slowed or stopped by an obstacle and would
initiate evasive action (spinning). Even climbing a ramp was
detected and evasive action was initiated remarkably quickly. But
the mouse occasionally picked up a dead spot on the Sumo ring and spun.
The mouse was mounted too high off of the surface for 100% reliable
operation. Lowering the mouse was not practical, so the
experimental chassis was disassembled and redesigned to place the mouse
very close to the surface. The new chassis is under construction
now and experiments will soon continue. |