Overview

   This quarter, for CSE466 we were given complete liberty as to what we wanted to design for the final project.  As an extension of the concepts we had learned in the class, we decided to make a gravity based pointer device.  The original concept we developed was an accelerometer driven USB joystick that was useable under a Windows environment.  

    While this seemed like a very feasible task initially, we soon learned that there were some real problems with this model.  First, since we planned on using a StrongARM SA-1100 processor on a CerfBoard to process our hardware output, we were heavily dependant on finding a good open-source USB driver for the Cerf.  We did manage to find a partial USB Master driver for StrongARM Linux, but since the Windows machine that we were planning on connecting to needed to be a Master as well, we could not use this driver.  This effectively stripped us of our planned communications bus.

    The next real problem we were faced with was a direct result of the first.  Most joysticks are analog devices.  Since we could no longer use the USB bus (which is digital), we now had to either emulate a standard joystick (meaning we needed to output an analog signal) or move to an interface device that was digital in nature.  We decided to go with a digital input device and emulate a mouse.

    Now we had a device and no means of data transmission.  We decided to use a communication protocol that was well developed under both the Linux and Windows platforms, TCP/IP.  We figured that this would allow us to get the information between the platforms with minimal conflict and allow us to concentrate on turning accelerometer readings in the hardware into mouse movements on the Windows machine.

    This breakdown lead to the development of the three main components of our project:

The development of these three components will be explained in detail on the following pages.

Next - The Accelerometer Interface