Josh Chapman's Lab Notebook

Week 01

January 10, 2006 (1 hour):
Today was our first day of work (class). We had a group meeting over lunch. In this meeting we tossed around quite a few ideas. We thought about laser tag, laser target practice, IPASS(toll road system), Digital Host and a few other handheld projects. We decided to go with the digital host idea and research what parts we would need and how much work it would take.

January 11, 2006 (1 hour):
I spent about an hour today looking up ideas for wireless communication for the handheld digital host idea I had. The more I looked and thought about the idea the less I was sure that it was going to be a tractable idea. I made a list of different things the unit could do and a procedure a user would go through for using it. I brought this list with me to the team meeting we had later on that day.

January 11, 2006 (1 hour):
We had a group meeting today. We discussed what we had all come up with on our "digiHost" idea. Most of the group had found out the same thing as I had which was that this may be a bit to intensive for what we needed to do on this project.

At this time Jared brought up an idea that he had been thinking about. His idea was to have RFID tags on all items at a retail store. An RFID receiver could be placed at the exits and the customer could just walk out the door with their shopping cart. The receiver would scan all the items as well as a special store specific RFID credit card. A receipt could then be e-mailed to the customer.

I really thought this idea sounded like something we should persue. I thought it would be fun and inventive as it is not something that we already see at Walmart or any other retail stores. The entire team agreed that this idea might be fun so we decieded to reasearch it a bit more to learn about RFID and its capabilities.

January 12, 2006 (2 hours):
I spent quite a bit of time today researching the RFID technology online. It is a really neat technology and I can't wait to use it. I am a bit worried about reading all those tags at the same time. Jared seems to think it can be done so I'll listen to any solutions that he might come up with. It also seems like we might have to have a really high power antenna for this application. I'm not sure that any of us know enough about antennas and RF technology to build such a thing.

January 12, 2006 (2.5 hours):
We met today and researched quite a few products as a group. We wrote up or initial proposal as well as deciding who would be responsible for the professional and design homeworks.

WEEK 01 SUMMARY
Accomplishments: Formed our group, discussed ideas and decided on an idea. We wrote up our initial project proposal
Weekly Work Total: 7.5 hours
Project Work Total: 7.5 hours

Week 02

January 18, 2006 (2 hours):
Today, our initial project proposal was returned. Dr. Meyer and the course staff decided that our idea was probably not very tractable within the course of a semester. They did say that if we think we could find and implement the technology we could go ahead with it. In our group meeting we discussed alternative projects with the same RFID theme. We came up with an idea of an RFID controlled garage door opener, but somehow the conversation always came back to RFID checkouts. We all decided that we should stick with this theme, but to make it something where tags are read one at a time. The idea was pretty much for a self check-out system with RFID technology. This would eliminate the need to worry about scanning the product's bar code. You instead would just pass the product near the antenna. Not only does this idea seem much more tractable, but I can't find that any teams have ever done it in the past which makes it unique at least to this class.

January 19, 2006 (0.25 hours):
After class today, the entire team talked to Dr. Meyer about our new idea of the self check-out lane. He agreed that this idea seemed much more tractable. Looks like we have ourselves a project!!

WEEK 02 SUMMARY
Accomplishments: Got our first idea shot down, but came back with a modified idea that was approved. We have an approved project!!
Weekly Work Total: 2.25 hours
Project Work Total: 9.75 hours

Week 03

January 24, 2006(1 hour):
Today we met to come up with our five PSSC's. Needless to say, we went through several variations of five criteria before we picked the five we decided to go with. Follow the link above to see them.

January 25, 2006(1 hour):
We met for lunch and discussed what needed to be done for the proposal. I missed the first part of the meeting but Jared drew a block diagram and we realized that for the most part the final proposal was just like the preliminary one we turned in. Jen agreed to type up the remaining parts.

WEEK 03 SUMMARY
Accomplishments: Made our PSSC's and our final proposal.
Weekly Work Total: 2 hours
Project Work Total: 11.75 hours

Week 04

February 01, 2006(4 hours):
We had a group meeting over lunch today. We discussed the cost of parts we had selected. We mostly agreed on the parts and prices, but I was pretty sure that we could get a better discount or free parts. We talked about calling different companies to try to get them to give us FREE samples or at the very least a much better deal than we could find online. I was assigned to call TI about our RFID reader.

After our meeting I spent a lot of time looking at the data sheet for the proposed RFID reader. I started to think that maybe this didnt have an integrated antenna and we might be in for more cost than we thought. I called the TI product info rep. He confirmed my fear that there was no antenna. He did tell me that we could use the 4100 Eval Kit. We can get the kit for $300. I am going to work on trying to find a cheaper option.

I also spent time today researching the module that we wanted from technilogical arts and some alternatives since we could not get them to donate it to us. I found that we really dont need that module. I got on the freescale website and ordered 2 samples of the MC9S12NE64 MCU. I actually received shipping confirmation of these parts only 1 hour later. I decided that it would be nice to have a couple of the DEMO boards for the NE64. They weren't offered as samples, but there was a request form to fill out. I requested 2 free samples of this DEMO board. We just have to wait now to see if we are going to get these.

February 02, 2006(2 hours):
We got the free microcontrollers today from freescale. Wow, that was really fast. I spent some time today looking for alternatives from TI-RFID. I found a company called Intersoft. They have what looks to be very close to what we want to use for our project and it is a lot cheaper. I am going to call them tomorrow to make sure this all will work. I also researched some project enclosures. I have something specific in mind and I think we might have to build it out of our own plastic parts.

WEEK 04 SUMMARY
Accomplishments: Found free parts for most of our expenses and found a much cheaper solution for the RFID reader.
Weekly Work Total: 6 hours
Project Work Total: 17.75 hours

Week 05

February 06, 2006 (2 hours):
Today I woke up to a call by Mr. Legrain from Intersoft. We spent a while on the phone going over some of the technical specifications and physical characteristics of some of their products. He was very helpfull in providing me with the info I needed and telling me which products would probably work best for our project. I told him that I would consult the team and get back with him.

I talked to Jared later about what Mr Legrain had told me and what our options were. We decided to look into geting the WM-RO-MR2 Medium range reader. This reader comes with an antenna already prepackaged and only cost about a fourth of the previously propposed TI reader. We did find that the tags we want to use are 75mm X 75mm which is nearly 3" square. That seemed a bit large to us so we looked at maybe getting some disks they have that are less than an inch in diameter and very thin. These disks could be easily stuck onto the inside of a product or even on the outside if needed. Even if not exactly what you would want to use in the retail world, they will still provide a proof of concept.

After more careful research and talking with Jared, I e-mailed Mr. Legrain back to get some make sure what we decided would work. I also e-mailed the Freescale guy because I dont know what happened to the free demo boards we are supposed to be getting.

February 07, 2006 (4 hours):
We had a major group meeting today to decide our final selection of components. This is made just a bit difficult by the fact the we know Dr. Meyer has rewritten our PSSC's, but we are not sure if any of our implementation has changed. We proceeded with the idea that it had not changed all that much. We decided on our Microcontroller, Graphical LCD display, RFID reader and Keypad. The most controversial was the keypad. We got a free keypad but it was pretty much a peice of junk so we are spending a little more money to get a keypad much better suited to our project needs. We decided on the Intersoft RFID reader mentioned in the previous post. We also discussed homeworks 3 and 4 which are due on friday. I think we have a pretty good leg up on these homeworks and should have no trouble completing them by the deadline. Jonathan brought us some food, what a lovely break. We decided that we need to start figuring out how we are supposed to do all this footprint stuff. Since that seems to be the one thing none of us are sure of we decided that if Jared can't figure it out tonight, then we will go talk to a TA tomorrow or just ask Dr. Meyer about it. This should be a fun week of parts ordering and paper writing.

February 08, 2006 (4 hours):
Today was mostly dedicated to writing my paper. I am in charge of homework 4. I made sure I was doing everything by the rules given to us. We met tonight to look over the two homeworks that Jonathan and I wrote. Jen had some good input on how we could reword some things to make a bit more sense.

February 09, 2006 (2 hours):
I made a drawing of our packaging in CAD as well as some final decisions on how things should be put together.

We met tonight to make sure everything was put together correctly for the homeworks and to make sure we are going to be ready to start putting this project together soon. We did decide today that we should put a printer on our design, but Dr. Meyer told us not to worry about putting it in our homeworks due tomorrow.

WEEK 05 SUMMARY
Accomplishments: Finalized component selection and turned in HW3 and HW4.
Weekly Work Total:12 hours
Project Work Total:29.75 hours

Week 06

February 15, 2006 (1 hour):
I am summing up all the mini group meetings we had this week into this one entry. We talked about ordering things. I gave everyone more crap about buying the retarted huge keypad, but we went with it anyway. We have most of the parts ordered now except for the power supply components. I am going to the office hours on friday to see what exactly we might need for the power supply.

February 17, 2006 (1 hour):
I came to office hours today to learn about how we should do our power supply. When i got here, Jonathan was already here and talking about the power supply. So I listened intently and added some appropriate questions. It looks like we will go with plugging 2 cords into the wall instead of guessing about the capabilities of the wall-wart that comes with the printer. I am going to look up parts from maxim that will supply a regulated 5V and 3.3V all in one chip - How Amazing.

WEEK 06 SUMMARY
Accomplishments: Made sure that most of the parts were ordered and learned about the power supply.
Weekly Work Total:2 hours
Project Work Total:31.75 hours

Week 07

February 21, 2006 (2 hours):
I spent some time in the lab today. We tried to talk to the course staff about a few things, I believe that we had a breakdown in communication because we did not really get the help we needed. Apparently Jared is having trouble knowing how to do the routing. I would help, but I know much less than he does about the program. I focused instead on learning about the RS232 DB9 interface. We got the RFID reader and it communicates with RS232. I want to learn how to make my own plug so that I can start testing it with some software. I got most of my info from the Zytrax website.

February 22, 2006 (4 hours):
Today I worked on getting our hardware working. I started with the RFID. I soldered the correct wires to an RS232 plug and used the 12V power supply to power it. Using Hyper-Terminal in Windows I could read the serial numbers off of the tags. It is a big relief to know that it works. The read range is even close to how we'd like it. I numbered and documented the serial numbers of all 13 tags we have. This will be usefull when making our database later.

I also got out our Eval board for the 9S12NE64. I started testing to see if i could get it to work. I finally got everything on the eval board to work and moved on to CodeWarrior. CodeWarrior was a bear at first, but once i figured everything out and got the correct registration code, everything went smoothly.

February 23, 2006 (2 hours):
Today I was going to make sure that the board would work with the BDM module too, but I need to get ahold of chuck sometime. I am hoping that he has a BDM module and we dont have to buy our own.

I helped Jared, just a little, with the PCB layout. I found some traces that were at bad angles. I felt like i was being more harm than good though so I left. I spent some time tonight reading the papers that Jared and Jen wrote. Tried to find any errors and such. They looked pretty good to me. I was, however, really tired.

WEEK 07 SUMMARY
Accomplishments: Got the RFID reader to work and the Eval board functioning.
Weekly Work Total: 8 hours
Project Work Total: 39.75 hours

Week 08

February 27, 2006 (2 hours):
I worked on my part of the Project design review slide show. I also practiced for about an hour what I was going to say. I am kinda nervous about not doing the presentation correctly.

February 28, 2006 (2 hours):
We gave our presentation today in front of two other teams and the course staff. I feel like it went fairly well. We got some valuable feedback from the staff. We then reviewed another teams presentation. It was slightly comforting to see that they got as much critisizm as us.

March 02, 2006 (1 hour):
I finally got the DEMO9S12NE64 module in the mail. I was beginning to think that it was never going to come. It is nice because I can use it to test out some of the software while in my own room, instead of going to the lab. I read up on its documentation and figured out how to use it.

WEEK 08 SUMMARY
Accomplishments: Gave our presentation and played around with the DEMO board, learning its features.
Weekly Work Total: 5 hours
Project Work Total: 44.75 hours

Week 09

March 06, 2006 (5 hours):
I spent a lot of time today reading about the SCI on the MC9S12NE64. I need to know how to work these things if I am going to get the RFID reader and the printer to work properly. I have a good understanding now of what they do and how they work.

I also installed CodeWarrior onto my home machine and will be using my DEMO9S12NE64 to develope code on. I once again wish that I had a BDM module. I just have to remind myself to ask Chuck tomorrow or Wednesday when we do our TCSP.

Jared and I also worked in the lab for a few hours tonight. We found that ecn has its own SMTP server. We accessed that server and sent an e-mail using commands such as "HELO" and "MAIL FROM". We think that this is how we are going to implement the e-mailing of receipts in our project.
We then moved on to modifying an SMTP (openTCP) code example to fit a test we could do with our demo board. We changed the server to the ecn server and put in all the correct IP addresses and masks. Now the only problem is that we are not sure how to get anything not on the ecn server to be able to Transmit and Receive the correct packets. We tried it with Jared's laptop, but it did not work.

March 07, 2006 (1 hours):
Today I went to the lab and got a BDM module from Chuck. Thanks! I was excited about the BDM module so I decided to try it out. I spent the rest of my free hour playing with CodeWarrior and the BDM, trying to get it to download code to the microcontroller. I was unsuccesful in my attempts, but I can say that I came away with a bit more knowledge on setting up targets in CodeWarrior.

March 08, 2006 (6 hours):
After our TSCP progress briefing the entire group stayed in Lab to work. Jared and Jonathan finished up the PCB layout. I started researching the BDM module and tried to find more info on how it might work. After Jared finished with the layout we focused on getting the startup code that was included with the DEMO board to link correctly for the P&E ICD, which is the BDM module we had. It took several iterations of changing settings and files as well as some pure dumb luck, but we finally got it to build. The reasons why it took so long are a bit foggy, but becoming clearer. It linked correctly but still could not communicate with the BDM module.

After a break for lunch I came back. In a mad moment of genius I realized that our BDM module wanted 5V but our processor only outputs 3.3V. With a quick visit to Chuck, I accquired a new BDM module (the P&E Multilink) that worked from 2V - 6V. With the new BDM module the code downloaded to the board with no problems.

The new problem now seems to be getting a connection between the DEMO board and the PC in lab via the Ethernet. I tried several ways of getting a link established, but none seemed to work. I ended my day of 477 work with this problem still unsolved.

WEEK 09 SUMMARY
Accomplishments: Got BDM module and got it to work with the DEMO boards. Worked on Ethernet problems
Weekly Work Total:12 hours
Project Work Total:56.75 hours

Week 10

SPRING BREAK :
Other than a small amount of thinking about the project. Nothing usefull was accomplished by me this week.

WEEK 10 SUMMARY
Accomplishments: Spring Break in Phoenix
Weekly Work Total: 0 hours
Project Work Total: 56.75 hours

Week 11

March 22, 2006 (4 hours):
Today I focused on the ethernet functionality. Something is not being setup correctly when we use the BDM to load code. If the BDM is used, the connection will not be established. I believe it is something in the way the memory is initialized. I could not figure out how to coorect this problem so I reloaded the serial monitor code. With this I used the example code sent with the MC and got a link to establish. I then worked on trying to setup SMTP to send myself an e-mail. After a long while of debugging the code I found that it is unable to accquire a socket. I'm not entirely sure how to fix the problem. My suspision is that it could be a problem with the ECN network security not allowing my board to communicate. I tried to fix this by giving my DEMO board the same MAC address, IP address and Default Gateway that the Lab PC had. This still did not fix the problem.
I also got our Teams PCB board from "the box". I did some basic testing for shorts and connectivity. Our power and ground traces are all free of shorts and our distinct voltage rails are all isolated.

March 24, 2006 (5 hours):
My main goal today was to get the ethernet working correctly. I was all amped up to do some test code for some other parts of the project, but I found out that those have already been completed. I started with code from the "connector_app" that came with the demo boards and Eval board. This code works wonderfully when using the Serial Monitor as a target. Unfortunatly we need to get it to work when using the BDM. I spent a significant ammount of time today copying code over to a project that is set up to use the BDM as a target. After several unsuccessfull attempts, I feel that the problem might be in the .prm file that we are using. There is one that has things set for the serial monitor, but nothing for the P&E Multilink target. My feeling is that we are setting up a portion of memory incorrectly. My next goal is to play around with this file and see if I can't figure something out from that. I e-mailed the customer support peopel from Metrowerks. I expect to hear back from them on monday since it was already about 5 o'clock when I sent it.
Another thing that a former student in the course told me to check is that sometimes when using the BDM things that require specific timing may mess up. I'm not sure if this is the case though since the BDM is only being used to load code and not to step through it at this point.

March 25, 2006 (3.25 hours):
In looking through the files that were included in the CD that came with the DEMO board I finally found a project that was already set up for the P&E BDM. I tested it and everything finally worked together. We can load code with the BDM and use an ethernet connection. After I figured that out I went to the lab with the rest of the team. We found one other way to get the code to work with the BDM as well. I read the Ethernet manual which ran me through the EMAC and EPHY parts of the integrated ethernet controller.
After getting the ethernet to work. I modifide the address.c file to use the Hardware Address, IP and Default Gateway of the lab PC. Jared and I then hooked up the board to the ECN conncection, made sure the lab PC was no longer connected. We were then able to ping the Demo board successfully. This was the extent of our testing for the day, but the major accomplishment was that we got the ehternet to work correctly. Next task is to figure out how to send our own custom packets.

WEEK 11 SUMMARY
Accomplishments: Got the PCB board and did some basic tests. Figured out solutions to our Ethernet problems.
Weekly Work Total: 12.25 hours
Project Work Total: 69 hours

Week 12

March 27, 2006 (3 hours):
Today in lab, I decided to get the SMTP working or at the very least get some TCP/IP packets to work. I set up the SMTP Client Codethat we have been using. This code was obtained from Viola Systems, and uses OpenTCP. Once i set up the correct IP address for the smtp.ecn.purdue.edu server and set the port to 587 in the above file, I expected it to work. In the SMTP Callbacks code I set my e-mail address as the one to send to. I plugged it in, but nothing ever really happend. I took a couple hours of stepping through the code to see exactly what was supposed to happen and where it was supposed to happen. The code seemed to always fail in the section where it gets a socket. I found out that this was because I had not initialized my TCP stack. After initializing the TCP stack, the code sent a connect request, but then never received a return packet. I read so much code that I now completely understand how the SMTP code works, and i feel that the problem may be that ECN is not sending us packets, or somehow blocking us from seeing network traffice even though the board has the same IP address and MAC address as the lab computer did. For some reason it seems as if we are no longer able to ping the board with this new code.

March 28, 2006 (5 hours):
Today was another frustrating day in lab. Jared and I worked on Ethernet code for a long time. We tried to figure out why we can ping the board when there is a very limited versioin of packet handling implemented, but can not, when there is a full fledged OpenTCP stack. We tried to carefully copy certain parts of code to the main board. After testing and testing for quite a while Jared left. I stayed another hour trying to get things working.

We had a group meeting tonight to discuss how we wanted to implement the actuall code that will be running our project. We decided to make a mix of the methods taught in class and go with what we call "IFDPSM" - Interupt Flag Driven, Polling State Machine. The meeting seemed to drag on forever, but we got some meaningfull things accomplished including our Software TSCP for this week.

March 29, 2006 (1 hour):
Nick advised me today to install Ethereal onto the lab computer and watch to see if ECN was sending back packets to our DEMO board, This way I would know if we were supposed to be getting packets back or even if we were sending to wrong packets. I installed the program and played with it for a few minutes. I did not do any extensive testing with it, but I could see all the different packets running around on our LAN which was pretty neat.

March 30, 2006 (3 hours):
Today all I focused on was writing the Patent Liability Analysis paper. I had researched patents that our project might infringe on earlier in the week. I found that US PATENT 6 547 040 and US PATENT 5 992 570 are patents that exist already and might be substantially the same as our project. The first one listed would be an infringement by the doctrine of equivalents only if we are performinig the function in substantially the same way. I don't feel that we are. I think that our implementation is much different. The second one listed seems to cover all self-checkouts so that would be considered a literal infringement.

March 31, 2006 (3 hours):
I was advised by a fellow student, that perhaps we should just connect our DEMO board to the PC and see if packets flow when connected. I didn't see the harm in this so away I went. It actually worked. The board didn't send out any packets of its own at first, but I could see that it was reading the ones that were being sent out by the PC. I could ping the board now and watch it respond. I set up an http server on the board with an example website that freescale had made for testing. When I loaded this onto the board and tried pulling it up in a web browser it worked. I could see on Ethereal that a bunch of TCP packets were transferred. The board can indeed send packets. I talked to Nick about what would be the best way to send information in our project. I think what we will do is create custom UDP packets. These will be either Request packets from the microcontroller or Response packets from the computer. I already have code i wrote in another class for a simple UDP server. I will either use this code or port it over to Java for the server. The client will be set up on the board. I think that all this will take is some custom handling of the UDP packets. I am guessing that all we will need to look for is the header to see what type of packet it is and then two data fields. One field will be the product name and the other will be the price of the product. If the name is '0' or '/0' we can assume that the item is not found and display that on the LCD.

WEEK 12 SUMMARY
Accomplishments: We got certain aspects of ethernet working. We figured out how we will implement our code. I got HW9 done. We decided to use UDP packets to do ethernet communication.
Weekly Work Total: 15 hours
Project Work Total: 84 hours

Week 13

April 4, 2006 (6 hours):
Today we decided that the best way to go about accessing data from our remote database would be by using UDP between the RFID Xpr3ss and the computer. I have a little experiance with writting servers from other classes so i went to town on this one. I decided to use JAVA because it has been a long time since i've used it and I wanted to brush up on it. Also JAVA is fairly versitile as far as what type of PC you run it on. I spent of lot of my time today researching JAVA and UDP and actually starting on the code for the server.

April 5, 2006 (6 hours):
Ethernet cable stuff - JAVA UDP server (completed) We soldered on our second to last part last night. We waited until today to test it. It was our ethernet jack. Everything else worked pretty much on the first try we gave it so we were very surprised when we loaded up the ethernet test code, plugged it in and NOTHING HAPPENED. We tested all the pertinant parts and it seemed like everything should work. After going over the schematic. Jared and Jen found out that a couple of wires were crossed. It was the Tx and Rx lines and the +/- of those were switches also. I have a friend who makes CAT5 cables so we decided to see if a custom cable might work. We made one with the correct lines crossed. We plugged the cable in when we got back reloaded the software, hit run and it worked. A potentially fatal (to our project) mistake turned out to have a fairly simple fix.

Also today I spent a while finishing up the UDP server. I have it fully functioning now, but still need to add a few basic functionalities such as keeping track of the order, and knowing when the order is over and things like that. This is only for the server to know when to send the e-mail. All the actual functionality will still be implimented on the microcontroller.

This is the one line of code that calls the UDP server thread that i have linked above: UDP server Main.

April 6, 2006 (5 hours):
My main focus tonight was to implement a client on the EVAL board that could communicate with the server I wrote for the computer. I ran into a lot of problems. It seems that after a link is established it still takes the computer a good five seconds or so to finish getting its link and initializing everything it needs to do. This was causing me to think that packets werent successfully sending, when really it was just a matter of not waiting long enough. So i put a long wait loop in the code (about 9-10 seconds) to be sure the computer would be ready. I finally got it to the point where I can push a button and have it send a specific packet to the server. The server sends a packet back, but I am not correctly handling it in the microcontroller yet. I will not post the code yet, because it is a jumbled mess of different files right now. After i get it functioning fully I will post a link to it.

April 7, 2006 (3 hours):
I worked on the UDP client today. I made sure that it would receive the package sent to it by the server and that it could parse the message correctly. The functionality that I have implemented now sends a command with a serial number. The serial number is then looked up in the database on the server. The server then sends back a packet containing the item name and the price of the item. The client then receives that info and parses it into seperate stings. The name and price strings will be used to send to the LCD and the printer for a receipt if requested. I still need to implement the parts of the client that will respond in different ways to the two different packets it could receive.

The client code - Still named after the ConnectorApp from which it got its roots: UDP client.

WEEK13 SUMMARY
Accomplishments:Finished basic UDP server, The Eval board can send UDP packet to server. Also finished the basic UDP client. Functionality still needs added to client and server.
Weekly Work Total:20 hours
Project Work Total:104 hours

Week 14

April 11, 2006 (3 hours):
Today I tried to help out in the lab, but there was really no room so I left early. We met up later as a team to work on the TCSP for the week. I helped format the PowerPoint slides. I was assigned to go over the potential failures for the voltage regulators. All three regulators had the same three failures. They could either have an output of 0 volts, over spec voltage or random sparatic voltage output. These each present different problems, but the first two have a higher potential of causing excessive heat or fire. The third one shouldn't cause danger as long as its random output is within the normal voltage.

April 12, 2006 (3 hours):
Jared, Jen and I went into the lab today to figure out what was going wrong with the keypad circuit. Apparently there were problems when the microcontroller was scanning the keypad. Some of the button presses were not registering and some were registering as the wrong button. We tried making a key trigger an interupt, making it strobe columns in different orders and a few other things in the process. We ended up handling the strobing of the rows in a timer interupt and then just scanned the columns in the main code. This worked, but was 1 column off. I suggested that maybe we were incrementing the column counter too soon.. Turns out i was right, and the next iteration of the code worked.

I also spent a few minutes commenting the Java server so that in the next couple of days i can make sure it is fully implemented and functions exactly how we want.

April 13, 2006 (1 hour):
I updated the client code to correctly handle two different types of returns from the server. It needs to be able to split an item name and price from an item data packet or get the pin number from the packet. I just did this by checking the size of the data in the packet.

April 14, 2006 (2 hours):
Today, I worked on more of the UDP server. I really just added some comments to myself and no major functionallity. I then helped Jared understand how the entire UDP communication worked so that he could incorporate the code I had written into the main loop of our overall project code.

April 15, 2006 (2 hours):
Today I worked on yet even more of the UDP server. I added the ability for the server to handle a request of any type and return the appropriate message. If the command is for Item data, the server will return the name of the item and the price. For User Data, It returns the pin of the user. I just wrote that and realized that the server is also supposed to return the name of the user. A command of S means that the shopping is done and we should add the sent item to the list of items to be sent in the e-mail receipt. Finally, a command of M means that the items are done sending from the client and the server should go ahead and send the e-mail. I still have to add the lists that will keep track of the name and price for the items in the e-mailed receipt.

I also decided today that I should look into how to implement the e-mailing using JAVA. We will send e-mail via the server rather than straight from the chip. This makes sense because this way the code on the chip can be reduced to only handling UDP and all the overhead can be taken care of on the main PC. I not only looked into how to implement e-mail, but i found that i had time to actually write the code. In the link to the UDP server given above, you can find the SendMail() function. This function uses SMTP to send an e-mail to a specified address. Actually doing this in the lab might be a little bit tricky. We were planning to use a laptop that had both wireless and a wired ethernet connection. The wired connection would communicate with the board, and the wireless would communicate with Purdue AirLink(PAL). When I tested this out, it seems that some sort of authentication is needed when connecting to smtp.ecn.purdue.edu on PAL. To fix this problem we are planning on bringing in a router. One other team is using a router in the lab so we believe that this is a viable solution. Using the wired connection, I was aele to successfully e-mail pre-formatted receipts to Jared, Jonathan and myself.

Thanks to Jared and myself the code for the on-chip UDP client is pretty much finished. There still might be a few updates to be made, in which case the file linked will be changed.

WEEK 14 SUMMARY
Accomplishments: - Helped with HW11 presentation
- Fixed the keypad code
- Nearly completed the UDP Server.
- Successfully e-mailed a receipt
Weekly Work Total: 10 Hours
Project Work Total: 114 Hours

Week 15

April 17, 2006 (3 hours):
I was away for the weekend, so I am not exactly sure what all was completed in my absence, therefore, I did not work on any code today. Instead I worked on the packaging for our project. We recently obtained a really nice enclosure from OKW Enclosures. It has a nice sloped front that is perfect for positioning the keypad and LCD in easy to use and read locations. It needed a few modifications in order to fit everything inside. I spent today cutting out the appropriate plastic and drilling holes in the aluminum for the keypad. The plastic that was removed from the inside made room for the circuitry of the LCD and also for the printer. The printer will actually stick out the back of the case about an inch. This is ok because in a real application there would be a larger cabinent behind all the parts. It also allows us easy access to change the paper in case it runs out.

April 19, 2006 (3 hours):
Today we had our final progress breifing. We were able to announce that our project was completely functional but that we just had to finish the packaging. I stayed in lab afterwards and worked on more of the packaging. I made an autoCAD drawing of the faceplate and sent it off to get holes cut in it for the LCD. We also had an optional X cut in the face. This X is going to be for looks only. It will be a part of rfid X press. Hopefully we will get some blue LED's to shine through. I also cut some more holes in the plastic. We test fitted everything that we could and drilled all the mounting holes for the printer and PCB board.

We video taped our PSSC's in action without being in the packaging. Just in case something happens and the project breaks before we get it all together, we want to make sure that we have proof that it did work at some point.

Tonight I took the packaging home with me. I painted it a nice black color to match the rest of our parts. It looks much better now than it did with the stock cream color.

April 20, 2006 (3 hours):
The first time I was in lab today we were taping our PSSC video. It was pretty sweet to see that our project worked. We did however find an odd bug in the clock that changed the time wrong at noon. This was a very simple fix and we finished the PSSC video.
After all my classes I got the now dry case and brought it back to the lab. Our face-plate was back from the machine shop. Jared had attached the LCD screen in its correct place. I attached everything onto the case and put it all together. I plugged it in and attached it to the server on the PC. It booted up correctly, but when I scanned a key-fob it input random key presses. After many attempts at fixing the keypad we found that the aluminum faceplate had a lot of interferance in it. We attached a wire to ground and attached it to the face plate. This took care of the interferance problems and the project functioned correctly in its case. I must say that the packaging looks pretty cool. Here are a few photos of the project. FrontPic1, FrontPic2, RearPic. As mentioned before, the connectors and the printer sticking out the back are not much of a problem because typically this product would be mounted in some type of a deeper device.

April 21, 2006 (4 hours):
With everything finally working in its final packaging we had Nick check out our PSSC's. It is nice to know that these are out of the way. We still have dreams of making the packaging look nicer with a nice acrylic cover for the faceplate and some blue lights to light up the X we had drilled in. We had a mini team meeting and discussed who would be looking into what papers that are due next week.

Tonight Jared and I spent a couple hours cutting and drilling a peice of acrylic that he got at Home Depot. We installed this onto the face plate of the case. This adds protection for the LCD and also makes the project look quite a bit more impressive. There are plans in the mix for getting a couple of 4" cold cathode lights to light up the X. These lights run off of 12V which we already have on the board and draw a mere 5mA which we can deffinatly afford to source. It is great to know that we have all the functionality done and can now focus on aspects of the design that make it more appealing to the consumer.

WEEK 15 SUMMARY
Accomplishments: Modified the packaging and packaged the project. We also sucessfully demonstrated all five of our PSSC's
Weekly Work Total: 13 Hours
Project Work Total: 127 Hours

Week 16

April 26, 2006 (3 hours):
Today I started making sure we had everything ready for the final report. I sent out e-mails earlier in the week reminding everyone to start editing their old papers. I spent a few hours today editing the packaging and patent homeworks. I received pretty good grades on those to start out with so there was not a whole lot that i had to edit. I also started writing the parts of the final report that were not from any old homeworks. I wrote the abstract and the PSSC section.

April 27, 2006 (2 hours):
I read over and made a few changes to the Senior Design Report that Jen had written. I also looked at the user manual, but it seemed to be written fairly well and needed no modifications. I also looked over the slides that we were going to present in the ECE 270 class tomorrow. I worked on the final report a bit more.

April 29, 2006 (1 hour):
I have everything done for the final report that i can do without everyone elses edited papers. I sent out an e-mail reminding everyone to keep working on the editing. The final User Manual and Senior Design Reoport are done, so I looked them over for any errors.

April 30, 2006 (3 hours):
I worked in the lab on doing an autoCAD drawing of our project. I made a front and side view of the main unit and of the RFID scanner. Later tonight we all met to make sure that the final report was done. We finished it all and are ready to print it out tomorrow and get it bound and turn it in. The Final Report can be found here. I had fun with senior design this semester. I feel that i've learned a lot.

WEEK 16 SUMMARY
Accomplishments: Finished all the papers and gave a presentation at ECE270. Weekly Work Total: 9 Hours
Project Work Total: 136 Hours