From: jlb31348@uxa.cso.uiuc.edu (Jim Brain)
Newsgroups: sci.virtual-worlds
Subject: TECH: PowerGlove stuff continued...
Date: 15 Apr 92 01:02:08 GMT
Organization: University of Illinois at Urbana
Originator: hlab@milton.u.washington.edu


I have received an overwhelming amount of responses for info on both my
box and the command set.  I have also noticed that many people are trying
to do thre same thing.  Many want to know just what this box actually
does and what it will cost.  The first question I can answer, the second I
cannot.  I will tell everyone that the box will definitely be made available
for purchase, but at least not until I finish my Semester Exams.  It should
be ready days after that, though.  The only thing holding me up is a little
cash, someone to etch the boards, and that stupid pg connector.  One of the
group thinks he has someone who can supply the connector, but I have not seen
them yet.  (And NO, I will not sell the box without the proper connector, 
because someone will probably fry my goodies inside while hooking it up, and
besides, it just won't look as nice.)  I will tell you some of the neat stuff
I did today on it just to keep everyone updated.:

I finally got another whole unit ready for a beta tester at the U of I.  The 
Music department will be using it to hook up to a MIDI controller to allow
dancers to play music while dancing, I suppose.  Anyway, the unit I gave him
is more bulkier than the finished unit will be simply because of this.  I am
using the HC11 controller (Just like Ron Minelli) to do the dirty work.  The
HC11 was picked simply because I use it for my other work and both Ron's and
AGE's code runs on Motorola processors.  Anyway, the uP can be run in two modes.
One, called single chip mode, lets you have no outside circuitry like RAM or
EPROM to bog you down, but lets you put your code on an on-board EEPROM. (This
is also just like Ron's).  However, I am not done testing, so I chose the
other mode, which is called multiplexed mode, where you provide EPROM and 
control circuitry.  That is what the two prototypes have.  Enough of that.

On to the middle of the day.  I satrted rewriting the code to allow the uP to 
figure out what command was being asked in one comparison,  (Like ON GOSUB in
BASIC) instead of 16. I also fixed some problem with the controller emulating
Ron's Commands.  After I debugged my code, (I hate debugging uP code on the
target system) I proceeded to tidy up the timing constants.  I also figured
I would try to get that elusive 9th (or 10th if you count the start char A0)
byte of data.  I compiled, ran and WOW!!!!

Whereas, we had about 25 packets of data per second before, we now have about
45 to 50 now.  Those little lights on the L bar just seem to stay on
constantly since I am polling so fast.  Anyway, I am amazed.  

Things to do before putting it on the market.  next week I will implement
the Interrupt driven serial routine that another person in SIGARCH is working
on.  After debugging these are the last things to do.

Add support for a second glove in code  (should take a few cut and paste ops 
and allocating some more memory ~~2 hours)

Add SEGA Glasses support.  May take 1 day to get it down right.

Add the following commands:

Change baud rate to: 300-9600
Change packet length to X,XY,XYZ,XYZrot,...
or maybe just send a two byte string with bits equal to one if you want that
piece of data.  ( I like this one better)
do Z deglitching.  Anyone who has added the Z stuff to Dave Stamp's code
is free to email me.

I am nixing super hires mode (above -125 to 125), since the new code is 
glitch free (I needed the glitching to give me the values to average)

Then pump the baud rate up to 38400.  Yes it can be done, but I have to
change the timing loops.  ( May not do this for first version.  After all, who
needs it?)

Am I missing any goodies.  The nice thing I saw today is that you can run both
stuff written for Ron's Box and the AGE box without flipping switches, setting
bits or sending special commands.  It flips to the new mode when it 
encounters that mode's command set.  Even the packets are changed to reflect
the emulation.  I am sooo happy it works.  Can you tell?

I have one question to ask.  I will implement the baud rate thing merely because
I want it, but does anyone know of a good way to check to make sure that
the main computer has changed to the new baud rate and change back if the
effort is unsuccessful?  I was thinking of looking for a specific flag char
from the host computer after changing baud rates, but what is a good flag?

One last thing.  Will add ports so that users who are daring can solder wires 
to the resistive pads that tell how far the fingers are bent, so that those
users can get 8 bits oif resolution for the fingers. may not do in version 1.

weel, I have an exam tomorrow, so I will quit, but I will be thinking about i
it always.  ARRRRRGHHHH  EEEXXXAAAMMMM!!!!

Jim Brain

-- 
Nothing is better than Eternal Happiness.             jlb31348@uxa.cso.uiuc.edu
A ham sandwich is better than nothing.                                Jim Brain
Therefore, a ham sandwich is better than eternal happiness.