Main Page
   Weekly Progress
Date Work Planned Work Completed
11/02/99 Research other tuners on the market, finding those which are the most and least expensive, concentrating on tuners which have comparable features to the senior project tuner. Work on web page, getting deliverables from EE 419 uploaded. Searched the International Musical Suppliers home page and found a variety of tuners. A wide variety of tuners from a number of companies were researched. The Korg AT-120 Auto-Chromatic Tuner most closely matches the specifications of the senior project tuner. Also, spent time getting project page running.
11/09/99 Add information from Auto-Chromatic Tuner used in Dingeldine to information already obtained. 

Oral exams

Consolidated information gathered about various Auto-Chromatic Tuners. Studied for and attended Oral Exam in the afternoon.
11/16/99 Gather information from EE 419 deliverables and put information into laboratory notebook. Start researching chips found on the Xilinx home page. Made significant progress on Laboratory notebook documentation. Spent time on Literature/Commercial Search. Further updated the project page.
11/23/99 Complete laboratory notebook information up to this point. Laboratory notebook brought up to date. Pasted in various figures, block diagrams, and flow charts. Also, pasted on-line Auto-Chromatic Tuner information. Included an enlarged pictured of the AT-120 tuner, along with its basic information.
11/30/99 Update project page with latest documents. Work on Senior Project Presentation. Research Xilinx information if time allows. Worked on completing web documentation.
12/02/99 Senior Project Presentation  
12/15/99 Senior Project paper due by this date.  
1/20/00 Assessment of work needed to get system up and running again. Become familiar with Xilinx interfacing. Read last year’s final report more thoroughly. Spent some time on Xilinx web page, but did not make much progress there. Hooked up existing unit and determined that it was not working properly.
1/27/00 Continue learning how to implement code with Xilinx. Start working on Automatic Gain Control. Didn’t feel well in the morning, so was unable to attend morning portion of lab. Met with Dr. Irwin to determine objectives to be met in the near future. Spent a small amount of time on Xilinx.
2/03/00 Look for specific user help on Xilinx. Troubleshoot old tuner. Work on finding a variable resistor for the Automatic Gain Control circuit. Spent the morning first looking at Xilinx, without much progress. With the help of Dr. Irwin, programmed two new GAL’s, inserted them, and still had no results. Spent some more time looking at existing unit. Met with Craig Janus later in the week to get a run-down on the general set-up and suggestions as to how to go about trouble-shooting. Worked on Oral Presentation for Senior Project Progress. 
2/10/00 Deliver Senior Project Progress Presentation. Start an in-depth trouble-shooting of old Auto-

Chromatic Tuner. Find a varistor in the catalogs found in the lounge.

Chose a varistor from Radio Shack’s online catalog. Looked at the existing unit in some more depth, but didn’t see any activity or worthwhile functionality. Spent the majority of the late afternoon searching the Internet for the most desirable varistor to use as part of the Automatic Gain Control circuit.
2/17/00 Make final decisions regarding whether the existing tuner is salvageable. Also, make a final decision regarding whether Xilinx will be used or another programmer. Will also check on whether or not Mr. Gutschlag got hold of another programmer in the past week as an alternative to Xilinx. The morning was spent analyzing the existing tuner, in order to see what type of activity, if any, was coming from the various chips, in particular those related to the microprocessor. This was done by utilizing the Logic Analyzer. The oscillator of the microprocessor was running, along with the ALE pin. There was also some activity seen to the latch, but the ports of the microprocessor appeared inactive. The next step was to write a program to see if the LED lights could be flashed on and off. During the course of the day, code was written and placed on a chip, and the lights were successfully turned on. However, the point was not reached where the lights could be flashed on and off. Also, during the course of the week a varistor was ordered from Radio Shack, which was specified at 10mm and 30 V. The programmer that Mr. Gutschlag was located and will be used for the remainder of the project. A final decision was made not to use Xilinx.
2/24/00 Continue the attempt to flash the LED lights on and off through microprocessor code.  Placed code on two different chips, and proceeded to look at how they affected the LED lights. The "flashing" of the lights was occurring too quickly for the human eye to see, so an oscilloscope was connected to one of the microprocessor ports, P1.0, and the signal was examined. The signal was a very rough square wave. The frequency was measured at 2.61 MHz by the scope. Although a frequency was detected, the wave does not exhibit a very definite "up" and "down" normally seen when a signal is being turned on and off. 

The varistors ordered from Radio Shack arrived during the course of the week. Also, time was spent on developing a layout for the case of the Auto-Chromatic tuner, taking into consideration the desire for an LCD type display and a larger series of LED’s to indicate how close the pitch is to center. Finally, time was devoted to reading about Automatic Gain Control from several documents provided by Dr. Irwin.

3/2/00 Continue work with the existing unit, to determine whether code sent through the microprocessor is functioning as expected. During the week, start looking on-line at possible box units for the tuner when it is packaged.   During the course of this lab day significant progress was made in getting the existing unit up and running again.  After many attempts at programming and re-programming both the GAL and EPROM chips, a test program on an EPROM finally worked as anticipated.  It would appear that all of the old GAL chips being programmed were not working correctly.  After speaking with Mr. Gutschlag, I was able to get some brand new Lattice GAL 22V10 chips.  Once they were programmed with tuner1.jed and tuner2.jed, and then replaced on the board; the test program tuncalc3.asm worked correctly.  The LED lights flashed on, then off, in a sequence from left to right.  As they flashed on and off, the analog meter moved incrementally towards the center, then would drop back to the far left as the far left LED was about to light up again.  As the sequence started each time, the note also incremented, starting at C0, then going to D b 0, etc. up to B b 0; then it started over. Since this program was determined to work correctly, no further time was spent on the program that attempted to flash the LED lights on and off. 
3/9/00 Find out which program was used at the end of last semester for the Auto-Chromatic Tuner; and after this is determined check to see whether it works as expected.  Start an in-depth look at Automatic Gain Control, testing an amplifier with various varistors used in series with the output resistor.  On this day started work on Automatic Gain Control, since the variety of varistors arrived from Panasonic.  Set up a generic gain amplifier, then placed the output capacitor in parallel with the resistor Rf in order to determine what, if any, effect the varistor had on the overall gain.  No definitive information was determinded during the day.  The day was also taken up partially by the EE 402 presentation. 
3/13-3/15 No specific plan is mapped out for Spring Break.  The  overriding goal is to get caught up on the project.  A major priority is trying to determine whether the tuner is working as it did at the end of last semester.  Also, it is important to continue more extensive work with Automatic Gain Control.  In spending the extra time, more familiarity will be gained with the existing hardware and software, which will be helpful as more work is completed during the rest of the semester. Significant progress has been made on the existing unit.  Part of Monday was spent looking through the old code to gain more of an understanding as to how it all works in relationship to the overall tuner.  A determination was made that test3.asm must have been the final program used in the EPROM last semester.  Some problems occurred while trying to test whether test3.asm worked as anticipated.  On Tuesday the system was set up correctly, and the tuner worked correctly when a variety of pitches were sent in via a speaker hooked up to a function generator.  The 'A' note was tested throughout the range, and was successfully recognized by the tuner as A1-A9.  There were, however, some problems at the extreme ends of the range.  The highest octave in particular was not able to recognize the 'A' note.  This could be a result of a lack of quality in the speakers.  Also, extensive tests have been run for the Automatic Gain Control.  Intitially, the circuit was set up with a resistor, capacitor, and varistor all in series for the output portion.  As it turned out, the capacitor was interfering too much with the gain response, and was thus removed for the time being.  Responses with a gain of 100 before the varistor were taken for all of the different varistors.  This exercise yielded that the wider the diameter of the varistor, the more significant impact it had on the overall gain.  As the diameter became wider, the overall gain became smaller.  The same relationship was seen in testing an amplifier with a gain of 20 before the insertion of the varistor.  This information will have to be considered now in how an effective Automatic Gain Control circuit may be built for the tuner.
3/23/00 Look at existing software and determine how to expand the digital tuning from 5 LED lights to 7 or 9 LED lights. Spent the day examining last year's code, and began to make modifications the the orignal code.  Also, looked at the Automatic Gain Control circuit using a V-I curve tracer.  This helped determine that the impedance of the varistors was ex tremely high (on the order of 20 Mohms).  Because of this fact, the circuit tested over Spring Break was not useful for our purposes.  The high Megaohm resistance will not change the overall gain of the circuit, and furhtermore it was not cutting off until around 20-22 V.  The desired cut-off was closer to 13 V.
3/30/00 Continue working with the software, learning how the different files work together and which parts will eventually need to be modified to include Manual Tune and Auto-Reference Pitch Modes.  Worked on software for the majority of the day.  Also, placed finishing touches on the Oral Presentation slides.  At 3pm I gave my Oral Presentation #2 to Dr. Anakwa and Dr. Irwin.  Afterwards, met and decided to start testing an Automatic Gain Control circuit involving an FET in the feedback loop, rather than a resistor in series with a varistor. 
4/6/00 Explore the practicality of another Automatic Gain Control circuit.  Again, continue working on the software. Worked on an Automatic Gain Control circuit which utilized an FET.  Struggled with finding a set-up which would work as desired.  Eventually received some help from Dr. Irwin regarding choice of transistor and desired parameters.  A desired response has not yet been found, but it looks like the theory will be used, just not in the exact set-up as originally thought. 
During the week a rough draft of the final project presentation was formulated and delivered for the speech coach. 
4/13/00 Work on finding a workable Automatic Gain Control system.  Look over former code with Dr. Irwin to receive help in how to implement Manual Tune Mode.  Finished testing of high range of the existing tuner, until it hurt my ears.  Specifically, tested C8-B8 octave.  For the most part, the tones were all accepted, with some inconsistency. 
Worked on software routines, made some changes to tuner1.abl and tuner2.abl which removed the test_vector routines.  Also, started to make modifications to allow for 9 LED lights.  Looked for information regarding the pinout of the Lattice 22v10, but had trouble finding worthwhile information.  Had some misunderstanding of how the numbers in the tables HSTART and LSTART work.

Came in Friday to do more work.  Looked through a copy of Bob and Craig's lab notebooks more extensively.  In Craig's notebook there was useful information regarding the look-up tables and how they relate to the frequency and the digital tuning LED's.  Placed the two sets of tables I found in this year's lab notebook. 
Worked on a potential configuration for the 9 LED's in relation to "cents".  Looked at the final "user interface" from last year and saw that all of the pins on GAL #1 were used, and all but 4 pins on the GAL #2 were also in use.  This means that the tuning LED's cannot be expanded without a major re-working of both the hardware and the software. 
From this point, time has been spent looking at test3.asm in order to expand for manual and auto tune modes to be fully functional..  The little time remaining Friday was spent on this, as well as a portion of Tuesday morning.

4/20/00 All time will be devoted to expanding last year's software to include manual tune mode and an auto-tune mode which does not require user octave input. Talked with Dr. Irwin about the planned method for auto-tune mode.  Bob and Craig had planned to use an overflow counter, and each time the octave experienced overflow, a register would then be incremented to indicate the change in octave.  It was decided that the project would become an In Progress, so the remainder of the semester was devoted to other couorse work and studying for finals.
8/24/00 Meet with Dr. Irwin to discuss the status of the project and goals to be reached for completion.  Find a spot to work, and determine whether the existing unit is working. In meeting with Dr. Irwin, decided that the items to be completed are:  AGC, software, and digital tuning bar.  I was given an article n a possible implementation of AGC using a digital potentiometer.  The software should be completed to include auto-tune without pre-selecting the octave, and manual tuning mode.  Also, the tables should be expanded for up to 9 LED's, and research done on how much more memory a 9 LED capacity would require.
8/31/00 Look at article on AGC and determine what parts need to be ordered.  Start looking at software tables and determine a method for completing auto-tune and manual tune modes. Read the article "Digital potentiometer controls AGC circuit" out of EDN magazine.  Looked at datasheets of the parts mentioned in the article and determined whether or not to order the specific parts mentioned.  Talked it over with Dr. Irwin, and decided to order the X9C103P from Xicor, the LM 393N from Philips Semiconductor, and the TL084CN from ON Semiconductor.
Also spent time looking at software of test3.asm in order to determine the necessary adjustments for auto-tune mode.
9/7/00 Continue working on software for auto-tune mode. Made observations on what was going on with the polloct subroutine and also the dbtset (divide-by-two set).  In the morning spent a great deal of time trying to figure out how to make auto-tune work if the original concept was to start in the lowest octave, and then subsequently use the divide-by-two to search higher octaves.  Because of how the tables were set up, this was not the right way to think about the problem.  Talked over possible methods that would work, and then spent the remainder of the afternoon thinking out a way to best implement it and looked up an overflow pin in an Intel Microprocessor data book, specifically the Timer 0 overflow flag.
9/14/00 Continue working on software for auto-tune mode. Again, time has been devoted to thinking through the best method for implementing auto-tune mode.  The basic outline is to start searching from the 9th octave.  When the timing is taken, if an overflow occurs, then the divide-by-two will be accessed, and the next lowest octave searched through.  The main concern right now has to do with whether or not the overflow flag will be set correctly or not.  The value being checked in the code is TF0.  If this flag is set, the code jumps to the subroutine divide, which goes to the next lowest octave.  Modifications were made to the Timer 0 Service Routine to include this checking of the overflow and decrementing the octave, then searching again.
9/21/00 Continue working on software for auto-tune mode, and look at the best way to implement manual tuning mode.  Also, perform further expansion on the tables in tuner1.asm and tuner2.asm Completed a first draft of test4a.asm, which will ultimately implement auto-tuning mode.  Started to think through a method to implement manual tuning mode.  Also, expanded another portion of tuner2.asm to include 9 LED's.
9/28/00 Learn how to use new Chip Writer and program.  Look at how the Timer 0 overflow works in the code. Spent a good deal of time working with the Chip Writer after lunch.  Talked with Chris Mattus about getting the Data I/O Chipwriter software onto the PC I'm using in the lab.  Used Chip Writer in one of the computer labs that had the necessary software, had some trouble getting an EPROM programmed.   The portion of the lab day not spent on Chip Writer was spent pondering the problem of the Timer 0 overflow, and how to check whether overflow has occurred and decide whether or not to perform the divide-by-two function.
10/5/00 Work on implementing Auto Tune mode. Did some reading in the 8051 Intel Manual to understand more fully how the Timer overflow works.  Learned some useful information, but still working through how to best perform the sequence of event s necessary for full implementation of Auto Tune mode.  Came up with two different subtroutines for tmr0srv.  Attempted to program EPROM's with these 2 progrrams, but continued to have errors and lack of success.  Installed RChipSim on the PC for building & downloading hex files from the *.asm files. Talked with Dr. Irwin about project goals, decided to concentrate only on implementing Auto Tune mode.Agreed to meet with Jose during the week to learn how to utilize the Keil software package.  Met with Jose the following Wednesday evening and learned some of the basics of the Keil program and saw some examples of how to utilize it. 
10/12/00 Start utilizing the Keil software package, continue working on Auto Tune mode. Dealt with errors in converting files from *.asm in RChipSim to *.a51 in Keil.  Made the slight changes needed to succesfully complile the program.  Later in the lab day learned from Jose how to make a project, which allows complilation and the creation of a hex file, which is used to write to the EPROM.  Talked with Dr. Irwin about the possibility of having a separate interrupt routine for when Timer 0 overflows, which I now realize is already implemented through tmr0srv.  Again, looked at the Intel Manual to try to understand what Bob and Craig did, and look for information which may give me a better understanding of how to best work with the overflow.  Thought that one EPROM was prorammed succesfully, but when inserted into the tuner, came up with some very strange and inconsistent displays.  Continued to experience difficulties in programming EPROM's, e-mailed Dr. Irwin at the end fo the day to see if I could get some new/different EPROM's to work with.  On Tuesday attempted to program with one of the different EPROM's, and had success.  Tested whether the program worked, but it simply displayed the 9 octave (from which the auto-tune search begins), and did nothing when an input tone of A=440Hz was sent to the microphone.  Once again, time will be spent looking at Bob and Craig's original code, trying to understand how the External Interrupt works in relation to the Timer 0 Overflow.
10/19/00 Work on Auto Tune mode. Was able to see auto-tune work when going from higher octaves to lower octaves.  (e.g.t-started with A6, then A5, then A4 and successfully auto-tuned).  It did not, however work the other way, because in going from a lower octave to a higher octave the overflow is not set, and the Timer 0 Interrupt is never reached.  This caused some problems and inconsistencies in the display.  Throughout the day continued to make slight modifications to the code in order to get auto-tune mode working as desired.  This required more extensive thought as to how the sequence of events with the timer, look-up procedure, and interrupts work together.  At the end of the lab day finally came up with a program that performed auto-tune regardless of which octaves were tuned in which order.  In the early afternoon met with Dr. Irwin to determine what else needs to be done to complete the project.  Came up with possible dates for the project demo and final presentation. 
10/26/00 Determine how Bob and Craig planned to check which mode they were in to assess whether auto or manual tune should be performed.  Find a good output reference pitch waveform that sounds desirable for Auto Reference Pitch Mode.  Perform further testing and any other optimization to the current EPROM program which performs auto-tune. Experimented with different duty cycles to see which would give the most desirable output tone for Audible Reference Pitch mode.  Determined that a square wave with 50% duty cycle produced the most desirable tone.  Also made the decision that no further work would be performed on manual tune, the scope is too large.  This will be completed by a future project group.  Worked on a program to determine whether the mode switch was working properly, and determined that it was not. 
10/27/00 Successfully demonstrated the Autochromatic Instrument Tuner with the enhancements added during the course of the project.  This completed the laboratory work of the project, and led to preparing the final presentation and paper.

Main Page