Home
Group Members
Schedule
Abstract
Proposal
Update 1
Update 2
Project Report
Status
Presentation
ToDoList

This page logs our current progress in completing our project. We will try to keep this as up to date as possible (whatever that means).

April 9, 2000

Created basic project web page
Wrote project abstract and linked to web page
Finished project proposal

Week 4 -- Get the Camera Working and Interfaced to the FPGA

Monday, April 17:   Ask Chris for 128K memory (2 chips) and a 24MHz clock.
Tuesday, April 18:   Installed memory and clock on board.  Set up camera circuit, and verified wiring was correct with Chris.  Tests on the new memory failed.  Chris verified these results, found the memory chip was bad, and replaced it.  
Wednesday, April 19:   Worked on testing the camera.  When downloading camera interface program to FPGA, the config command didn't return immediately as expected.  Troubleshooting revealed that our ribbon connector between the camera and the board wasn't working.  Used ribbon connector from Carl's board, and it worked fine.  Tested all pins on our ribbon connector, can't find a problem.  We're not sure why our connector won't work.  
Camera image now appears on the screen, but we're disappointed to see that the image is shaky.  This must be resolved otherwise we will not be able to map the laser beam to the mouse pointer without shaking the mouse pointer.  Carl's camera does not do this and we're not sure why ours does.
However, we tested the image with a bright light  and a laser pointer.  Both appear as a bright yellow light on the VGA image. We are a little concerned that there is no difference in appearance between a bright white light and the bright laser light. Discussed that we may have to consider using filters.  However, this might not be a problem considering lights are usually turned down when projection is used.  We attempted to test the camera on an actual projector in a classroom, but were unable to get programs that download to the board (xsload and config) to work on the laptop we were using.  We will need to do this testing at a later time to determine how much room lights will affect our captured image.  
Thursday, April 20:   Found downloads for XSTools on Web. Need to install on Anita's laptop.
Found info on connecting to CSEPCLAB domain. Will work on if needed.
Worked with Carl on Camera. When we hooked it up for him, the
shakiness disappeared (of course! :) ). He said that it was probably noise on the Frame Start signal. He said our other tape cord was simply too long, that's why it didn't work. Asked Chris to shorten it, he said to cut it shorter.  
CAMERA SEEMS TO WORK!!! Next we need to work on lowering light threshold - maybe to the point that the laser is the only thing that it sees??
Friday, April 21:   Worked on lab 4.  Found information on web on how to install XSTools on laptop.  Also found info on connecting laptop to CSEPCLAB Domain.  Updated web page.  Somehow lost Frontpage theme on updated pages.  Will try and figure this out / fix on Saturday from lab.
Saturday, April 22:  Installed ioport program on laptop.  It seems to work fine.
Having issues with xsload program on laptop. The laptop we are using has Windows 2000 on it, and the xsload program appears to be setup only for nt. We are currently working on issues with writing an environment variable to autoexec.bat to 'hack' it, and make it work in W2K.
Worked on lab 4.
Talked about how to put crosshairs on brightest spot in image from
camera.
Wrote code (untested and uncompiled) for finding brightest spot from camera. 

Week 5 -- Obtain Laser Pointer coordinates from camera image and use ‘crosshair’ to display on monitor and calibrate

Monday, April 24:  Group Meeting with Professor Ebeling and get very useful feedback.  Ideas on where to find information on PS/2 mouse port. Need to figure out how to configure the camera to filter out low intensity light and color map the highest intensity light to be white.        
Working on finding the laser point (i.e., the brightest spot in the image).
Tuesday, April 25:  get part 2 lab4 working. start on part3.
Receive useful web pages for PS/2 mouse from Professor Ebeling.  Able to filter out low intensity light before displaying to the monitor and color map the highest intensity light to be white (it was yellow before).
Wednesday, April 26:  Working on finding the laser point in the image... almost there.
Debug part3 lab4.
Research PS/2 mouse configuration on the internet.
Thursday, April 27:  Installed XSTOOLS on Anita 's laptop and works fine
Go down EE1 building classroom to test the camera on actual projector -> need a monitor to visually observe the image.
Debug part3 lab4 - find out how to use debug in KeilC software
Tracking the laser point when it is in the camera image. Works correctly and we can demo it at the Engineering Open House tomorrow (or actually later today since I'm here so late... but it is definitely worth it)!
Friday, April 28:  Demo the cross-hairs working at the Engineering Open House. Get a lot of positive feedback about our project.
Begin looking into the problem of removing the cross-hairs when no laser pointer is in the image.
Saturday, April 29:  Demo for the Engineering Open House. We received a lot of positive feedback. There were two overwhelming reactions. How are we going to get a button to work? Anita has taken this part of the project and is
researching the best solution. The other response was when can I buy one of these???? This question is still up in the air. :)
After the Open House, fixed the problem of having the cross-hairs displayed even when the laser pointer was not in the image. Noticed another bug. When moving the laser pointer outside the camera range to the right, the cross-hairs wrap around to the beginning of the image and are still tracking the laser. Probably due to the fact that the camera is taking a larger image than we are displaying. Need to discuss how to solve the problem of wrap around.
Try to find out how Mouse interact with PC -> need some kind of intermediate connection for testing.  Get some useful PS/2 sources.
Sunday, April 30:  Day off from the project - do assignments for other classes!! Much needed!!! ;)

Week 6 -- Send mouse coordinates to laptop via PS/2 port

Monday, May 1st: Ask Chris for intermediate connection for the mouse.
Update Project status.
Hook up a logic analyzer to the mouse to see if the bit streams it was sending followed the PS/2 protocol we had researched. 
Begin to combine our camera interface (finding the cross hairs) with the XBus interface (interfacing the FPGA with the microcontroller). We want to use the microcontroller to talk to the PS/2 mouse port, so we need to send the coordinates of the laser point to the microcontroller. This will probably take a while to get all the bugs worked out (just like everything else). :)
Tuesday, May 2nd:  Got Mouse for testing - started taking it apart.  Working on sending coordinates to the PS/2 port.
Wednesday, May 3rd:  Put together laser pointer.  Works great!  Continued work on PS/2 port.  Worked on XBus interface.  Had a bunch of questions.
Thursday, May 4th:  Studied for 477 midterm on Friday!
Friday, May 5th:  MIDTERM!  Tried to download pictures from Rebekah's camera for use in our presentation on Monday, had some issues.
Saturday, May 6th:  Worked more on XBus interface.  Did a bunch of research into drivers, etc., for mouse port.  Appears we can use the pen unidriver to run our laser mouse with just a couple of tweaks.  Also might be able to use the calibration applet that it includes.  Wrote outline for presentation on Monday.
Sunday, May 7th:  Got pictures off Rebekah's camera for use in presentation.  They're pretty cool!  Wrote presentation to be given in class on Monday.  We're the first to present. :)  

Week 7 -- Work on mapping between camera pixels, laptop pixels, and projection screen pixels.  Work on steadying mouse movements on projected screen.

Monday, May 8th:  Gave presentation in lecture.  It went great!  Met with Carl about status of our project, and timing issues.  Seems putting mouse driver code in the microcontroller will still work fine.  We must've done something wrong when we tried to figure it out.   
Tuesday, May 9th:  Working on getting laptop on network so we can download Microsoft DDK to write / tweak driver & calibration app.   Working on logic for PS/2 Port.  
Wednesday, May 10th:  compile the code to send something to the computer.  Get problem with the clock signal (not stable.) - debug it
Thursday, May 11th:  Fix clock's problem in lab hours.  Find out the mouse actually send 4 packets instead of 3 (as it says in docs).  rewrite the code.
Friday, May 12th:  Burned CD of Windows 2000 DDK and WinNT 4.0 DDK
Saturday, May 13th:  Loaded Windows DDK on laptop. Compiled all drivers and examples included. 
Sunday, May 14th:  Do some tests on PS/2 mouse and found some issue:  
- L & R mouse click just send blank packets --> how computer knows when which one is click???
- there's a time out between packets sent (not saying in doc) --> modified our clock code

Week 8 – Add buttons to laser interface for standard mouse click

Monday, May 15th:  Bought book on windows drivers to help out
Search for PS/2 male - male cable. Do some research on how to send device ID to computer when it's power up. Couldn't find anything useful.
Tuesday, May 16th: Got cable from Chris Morgan. Got problem with timer 1 interrupt when running debugging.
Wednesday, May 17th: Find out the debug has no timer 1 checking. 
Change the code to not using time 1 for time out.  Put everything in timer 0 instead 
Thursday, May 18th:  day off
Friday, May 19th:  Walking through to make sure the data is synchronous with the clock using debug in Keil C.  Test it with the oscilloscope and find out that the clock signal is not working the way the debug tells (it's always high.)
working on drivers. 
Saturday, May 20th: still working on the driver and PS/2.
Sunday, May 21st:  Mouse clock is still not working. 
Update web page.
keep working on the driver.
Show other group about our project.

Week 9 – Flex Time and Final Project Documentation (or not :) )

Monday, May 22nd:  Mouse clock works!  Updated web page again.  Talked about not using software driver, but instead either doing calibration and relative coordinates in hardware.  Think software driver will work fine, but not sure if it will work in 2 weeks or not.  Options include either using touch screen interface and driver (which uses the serial port) or doing it in hardware and using the PS/2 port to ship it to the computer.  ISSUES:  seems the touch screen (and we think the mouse too) is pinged by the computer to see what type of device it is.  We'll have to figure out how to 'answer' this ping, no matter which way we end up going.
Tuesday, May 23rd:  WE MOVED THE MOUSE ON THE COMPUTER!!! YEAH!!!  Go, ANH!!!!   In other, much less exciting news, we got the XBus interface imported into the Camera project.  We are also working on the correlation between camera pixels and screen pixels in hardware.  We are now testing the XBus interface also.  We still have our fingers crossed that this will all work in 10 days. :)
Wednesday, May 24th:   Worked with Carl to try and find one extra pin we needed.  We're going to try to use the new XESS board, but we need one more pin.  Talked with Carl about it, and mapped out what we have connected to what pin vs. what we still need.  He's helping us check to see if we can 'magically' find another pin.  
Thursday, May 25th:   Tried to use EEPROM to config camera, which would free up enough pins for the XBUS.  It didn't work.  Seems this board doesn't have a pin connected that the old board does, which is used in the EEPROM config circuit. :(    
Friday, May 26th:   Continued working with Carl about pin issues.  He suggested we have another board set up to config the camera, and then just unhook the camera from that board once it is configured.  Scheduling time to meet with Carl about this.
Saturday, May 27th:  Day off!
Sunday, May 28th:    Worked on presentation of Project HEAD CASE for class on Wednesday.

Week 10 – Flex Time and Final Project Demo

Monday, May 29th:  Worked with Carl on setting up extra camera board to config camera.  In the laser spot module, got algorithm for finding 2 and 3 pixels in a row working.  There might be an issue with the laser spot not being 3 pixels if it is very far away.  Will test in classroom.  Re-wired and cleaned up board.  Continued working on project Head Case presentation.
Tuesday, May 30th:  Met and worked on presentation.  Tried to integrate project parts by adding XBUS interface, having problems config'ing camera.  Trying to meet with Carl tomorrow for help.  Updated web page.
Wednesday, May 31st:  Anh gave presentation in class on project Head Case.  Great Job, Anh!!  Met with Carl about camera config problems.  Turns out, we had some bad parts.  Switched out parts, and now that part works fine.  We tried to uncomment the XBUS pins in the .ucf file in the FPGA code, and got errors.  Xilinx wouldn't implement the project.  We noticed two signals com0 and com1 didn't have an IBUF on the input, so after we added those, we got rid of the first errors, but encountered more.  We sent Carl more mail about our newest problems.  We added a reset switch to the board so we can use the Atmel microcontroller, and we integrated all of our microcontroller code into one project.  This way, as soon as we figure out the XBUS implementation pin errors we are getting, we can put it all together, and in Anh's now famous saying "plug and pray". :)
Thursday, June 1st:   Worked with Carl to resolve pin issues.  Think we have enough pins now. Will integrate project on Saturday.    
Friday, June 2nd:   Day off!  Needed to finish other final projects.    
Saturday, June 3rd:  Tried to fully integrate project.  Had problems hooking up CLK, as pin 28 was being driven low.  
Sunday, June 4th:  Worked on final presentation.
Monday, June 5th:  Gave final presentation in class.  Click here to see it!  Got past CLK pin issues - they're not exactly fixed, but we have a lame workaround.  Now trying to integrate project.  Turns out PS2 stuff needs XSPORT1 and then XSPORT0, which messes up something with the Atmel chip (this worked on the Oki).  Working on PS2 code to fix this.
Tuesday, June 6th:  Got PS/2 code working on the Atmel chip.  However, when we try and put in on the camera board, absolutely nothing happens.  After extensive testing, seems to be that it works great on the new XS40 board, but not at all on the old XS40 board.  Things that make you go Hmmmm..... sent Carl mail, hoping for more assistance. :)  Working on final documentation.
Wednesday, June 7th:  Continued work on final documentation.  Still haven't gotten anywhere with the old XS40 board / new XS40 board issues.
Thursday, June 8th:  Handed in final documentation.  Demo'ed project to Carl.  Seems Rebekah and Anita might continue work on Laser Mouse this summer with Carl's help.  Final Status:  We have the Camera & FPGA modules working correctly, and the find and track the brightest spot.  We test this by having showing crosshairs where the bright spot is on the VGA monitor.  We also have the correlation and calculation and the PS/2 modules working together in the microcontroller.  We can run a test program that moves the mouse on the computer in a pattern, through our PS/2 hookup.  However, the two pieces can't be tested together, due to the old XS40 board / new XS40 board issues described above.

 

 

 

 

Copyright Group B, CSE 477, Spring '00.
For problems or questions regarding this web contact cse477-groupb@cs.washington.edu.
Last updated: June 09, 2000.