Final Status Report

During the final week of the project, we finish each out the separate components and combined them to make the final product.

Joe implemented Uart communication between the fingerprint scanner and the PIC. This had been a problem during the past week, but the correct protocol for sending command packets to the fingerprint scanner from the PIC has now been implemented. Using the fingerprint scanner documentation with assistance from a library in C++ for Arduino found on Github, all the necessary fingerprint functionality could then be implemented. The fingerprint scanner is able to perform initiation, enroll, deletion, and fingerprint comparison functions. These were tested by displaying the response from the fingerprint scanner on the LCD display after each command was sent. The response would either return acknowledgement or error messages which could be interpreted using the fingerprint documentation. The fingerprint library was written so that functions could be performed completely after being initiated by one variable in main. The fingerprint scanner was also soldered to a nicer looking proto-board.

As far as sound production, Phil had an issue last week where he was unable to produce appropriate sound from the SD card. The music files were played at lower frequencies than they were supposed, causing the song to play slower than usual and had a large amount of static. Phil was initially using interrupts to send data out to the DAC. This was interrupting the process of reading from the SD and performing DMA transfer. Previously the interrupt triggered a DMA cell transfer and generated a chip select signal for the DAC. This was fixed by moving this functionality outside of the interrupt and little use of the main processor. Chip select was using output compare in dual compare mode. The DMA cell transferred was triggered using a timer. This allowed for a complete transfer of data to the DAC the wav files could be played at normal speeds.

Austin wired the board and did the interfaces. He stripped the board of its spaghetti wires and rewired it beautifully. He made displays for history, enroll, and enrollment list. History included a list ID’s who had rang the doorbell. Enroll includes a song selection screen as well as demo song functionality. He combined code from Phil’s SD card reader to work for the interface, which included creating wrappers and organizing data in a way that it could be used in the rest of the project. The screen and the DAC are on the same SPI channel, so unfortunately it is impossible to use the touch screen while listening to a song. We initially had the screen with the SD card reader, but it caused the SD card reader to stop. Enrollment list displays all the ID’s which are enrolled and the songs which they are mapped to. The ID’s come from the code that Joe worked on.

In the end, we all come together in order incorporate all of the elements into the fingerprint scanning doorbell. This took much effort from all group members to make their separate contributions work together.

Status Report Week 3- Joe

Much progress has been made since last week as far as the fingerprint scanner. Last Tuesday in lab, it was discovered that the assumed wiring of the scanner was incorrect. The correct wiring has been determined. Much time was spent attempting to get UART communication working between the fingerprint scanner and the PIC. It was discovered that the wire which is being used to connect the fingerprint scanner to the breadboard was preventing transmission from the fingerprint scanner to the pic from being received. When held in the right orientation, the fingerprint scanner was able to receive the 12 byte command packet and return a 12 byte response packet as well as a data packet when necessary. I was able to implement both an open command as well as turn on the blue LED in the fingerprint scanner. Now that the communication protocol has been worked out, I will code up a library of functions for the fingerprint scanner to perform the designated functionality as well as find a better way to connect the wires on the fingerprint scanner in order to prevent the PIC from missing transmissions. The fingerprint scanner will be combined with the SD card reader which will be able to play different tones based on the person who rings the doorbell.

Week 2- Joe

After two weeks of working on the project, we realized that our project might be too complex to complete in the given time frame. In order to make the project more manageable, we proposed that the criminal database portion of the project be dropped. This was decide upon because the two main functionalities of the project, the fingerprint scanner and the SD card reader/sound production, have been taking a considerable amount of time thus far and still need large amounts of addition effort to complete. In addition, we could run into difficult down the road with transferring and comparing fingerprint files on the PIC as the details of this have not yet been worked out. Instead, we’d like to have the fingerprint scanner handle all fingerprint comparisons for the time being. This way, the focus of the project could be redirected to the two main elements. The terms of the project were renegotiated with the professor, and he accepted the exclusion of the criminal database.

I attempted to set up UART communication with the fingerprint scanner. This is being done with the aid of a pre-made code on GitHut in C++ for an Arduino. According to the fingerprint scanner datasheet, the scanner takes 12 bytes of data for every command packet, so twelve bytes are sent from the PIC to the fingerprint scanner per action. It has been verified on the scope that this data is being transmitted correctly. At the moment, the fingerprint scanner is having trouble receiving the data. The signal, for some reason, is being pulled down when the TX from the PIC is pulled into the RX of the fingerprint scanner. It was thought that the fingerprint scanner needed more power, but after supplying 5V to the power supply of the scanner instead of 3.3V, it was clear that this was not the case. Further troubling shooting will be completed in lab.

Plans for this coming week include getting the fingerprint scanner to communicate properly and creating methods to carry out the necessary communications between the PIC and fingerprint scanner.

Status Report Week 1- Joe

For this week, my goals were to make the schematic diagram for the system as well as to do research on how the fingerprint scanner will interface with the PIC. I’ve completed the schematic which is included below. This involved looking up how each device will communicate with the PIC and detailing what pins would be used for each device. It has been arranged so that the SD card reader and the Ethernet Module are on one SPI channel, and the LCD and the DAC are on the second SPI channel. The fingerprint scanner will communication via UART connection. In addition, I’ve found a library for the fingerprint scanner on Github.com which is in C++. I also soldered wires to the SD card reader so that it could be plugged into the breadboard and taught Phil how to solder while doing so. For next week, I will be working on converting this library to C and setting up the fingerprint scanner.

Schamtic