January 14 (2 hours):
Met as a team after class to discuss preliminary project proposal.
January 15, 2010 (1 hours):
Met as a team to discuss design implementation and assign different components to research.
WEEK 01 SUMMARY
Accomplishments: Submitted preliminary project proposal.
Weekly Work Total: 3 hours
Project Work Total: 3 hours
January 20, 2010 (4 hours):
Met as a team to formulate PSSC for presentation in class. The team also solidified part requirements and packaging ideas, which included the design of custom clear keys and the use of an LCD monitor under the keys to change the key characters.
January 21, 2010 (3 hours):
Met as a team to finish the final project proposal. Researched ways to implement VGA, Unicode, and a touch screen in the design.
WEEK 02 SUMMARY
Accomplishments: PSSC and project proposal finalized.
Weekly Work Total: 7 hours
Project Work Total: 10 hours
January 24, 2010 (2 hours):
Browsed the internet for a touchscreen solution. Settled on the LCD-010, which is designed for electronic projects and has sample code for a range of microcontrollers listed on the Gravitech page.
January 27, 2010 (1 hours):
Met as a team to discuss what parts we would select for our major components and what interface standard we would use for the computer interface.
January 28, 2010 (3 hours):
Met as a team to discuss design requirements. Discussed options for microcontrollers and determined what information still needed to be researched before a final microcontroller selection could be made. Divided the parts among group members to be researched. Objective of research was to determine the number of pins required for each component and electrical characteristics.
January 30, 2010 (3 hours):
Found electrical schematic for LCD and datasheets for the LCD and onboard graphics controller, touch screen controller, and octal bus transceivers. Determined that the LCD requires a +5V supply, but all onboard chips are +3.3V.
1. LCD Schematic
2. Graphics Controller
3. Touch Controller
4. Octal Bus Transceiver
5. Summary of Pins
WEEK 03 SUMMARY
Accomplishments: Design constraints set for selecting components.
Weekly Work Total: 9 hours
Project Work Total: 19 hours
January 31, 2010 (2 hours):
Met as a group to discuss our individual findings for components. Selected a microcontroller and FPGA for generating VGA output to the LCD screen that will display the characters under the screen.
Chose the following components:
Microchip PIC32MX575F512L microcontroller
Altera Cyclone II FPGA
3M SD card reader
Atmel Flash IC chip
The PIC microcontroller was chosen because it has 3 SPI ports, which will be needed to read the touch coordinates from the touch screen, as well as interface with the SD card reader, and Flash chip.
February 4, 2010 (3 hours):
Met as a group to complete HW3: Design Constraints Analysis.
WEEK 04 SUMMARY
Accomplishments: Completed the Design Constraint Analysis and chose the major components for the project.
Weekly Work Total: 5 hours
Project Work Total: 24 hours
February 9, 2010 (2 hours):
Met as a group to prepare for TCSP 3 and begin HW4. Created a 3D CAD drawing that would give a fairly accurate representation of the position of each component within the overall package. Then we made a preliminary layout for the keyboard PCB and the motherboard PCB.
February 10, 2010 (3 hours):
Met as a group before class to complete TCSP 3.
Met as a group again later to create a parts list and order the major project components. During the TCSP presentation, David suggested using a daisy chain of shift registers to read the entire keyboard layout at once instead of using the PLD design. This requires an additional SPI interface to connect the keyboard to the microcontroller, so a different microcontroller was chosen from the same PIC family, which has 4 SPI ports.
February 11, 2010 (6 hours):
Talked with Chuck after class about how to create the keys for the keyboard. He was confident that we could find pushbuttons/switches small enough to fit under each key. He also suggested that I check the board manufacturer's web site to see what all they offer in the $33 Each package, which is the one that we will be using in the course. Unfortunately, they do not do any cutouts or tabs on the boards, so the slots that the transparent keys are mounted over will have to be cut in house, which Chuck says is not a big deal. We just have to remember to draw the slot outline on the PCB's solder mask and keep traces as far from the cutout edges as possible.
I downloaded the demo version of PADS and completed the first 2 of 4 tutorials on the website.
Met as a team later to complete HW4.
WEEK 05 SUMMARY
Accomplishments: Ordered parts, chose more appropriate microcontroller, and created CAD drawings of the package and PCB designs.
Weekly Work Total: 11 hours
Project Work Total: 35 hours
February 14, 2010 (7 hours):
Continued working through the PADS tutorials, including the microcontroller tutorial.
Met as a group to begin HW5: Theory of Operation and Hardware Design Narrative. We created a much more detailed layout of the keyboard PCB with the footprints for the shift registers instead of the PLDs used previously. We also researched and chose resistor packs and very small push buttons to be used to implement the key-press circuits. The following two pushbutton options were discussed:
The pushbuttons were chosen for their small footprints, which is a requirement to fit all of the pushbuttons on our keyboard PCB with enough room to spare for signal traces for each one.
10 K 15 resistor pack
The resistor packs were chosen to save space on the PCB rather than place individual resistors for each signal trace on the board.
February 15, 2010 (5 hours):
Today I finished the PADS tutorials in preparation for creating the schematics for the keyboard and mainboard PCBs. I then began searching through the microcontroller documentation for pinouts. I needed to determine which pins were for general purpose I/O (GPIO) as well as determine which pins were used for the SPI ports, since our design requires all 4 SPI interfaces. The pin-out diagram for out microcontroller package documents which peripherals and ports each of the pins is mapped to.
I assigned the SPI ports to all of the peripherals first, and then I assigned all of the pins on Port E to the touch screen graphics data port for simplicity. The rest of the connections are control signals that were assigned to GPIO in a configuration that I felt would be easiest for PCB layout.
February 16, 2010 (4 hours):
The microcontroller has several sets of power and ground pins, which each need bypass capacitors placed placed across them. Section 2 of the microcontroller documentation has a recommended layout which I duplicated in our schematic. CEFC is used to stabalize the internal regulator and was recommended to be 10uF in the Electrical Specifications section of the documentation.
I also searched through the documentation for the pins which will be required for programming and debugging. The PIC32 has both ICSP and JTAG pins for programming and debugging the microcontroller. It was recommended that they all have 50ohm resistors in series for ESD protection.
I created a PCB footprint and schematic symbol in my PADS library for the microcontroller. I labeled the function of each pin in the schematic as it pertains to our design instead of labeling every function that each pin is capable of, as in the pin-out diagram in the documentation.
February 17, 2010 (5 hours):
Finished the first draft of the microcontroller schematic for the TCSP presentation. I created a sheet for the microcontroller in PADS with off page connectors to the other peripherals to make the schematic easier to read.
I consulted with Luke about how the FPGA would be implemented and what connections would need to be made to the FPGA, both to the microcontroller and the flash memory. To make the connections to the VGA connector, I found a chart online with the VGA pinout and a brief description of each pin's function.
I continued to create schematic symbols in my PADS library for the other major design components on the mainboard.
February 18, 2010 (5 hours):
Today I finished the mainboard schematic except for the power supply circuit and keyboard, which are being drawn up by Dhruv. Using PADS, the power and ground nets from the power supply circuit will automatically be connected to the rest of the design once the power supply sheet is added.
The first draft, which was submitted for homework 5 can be found here.
I found a website for the SD card pin-outs and used the following diagram for our schematic:
February 19, 2010 (1 hour):
Today I looked over all of the schematics, including the Power and Keyboard schematics drawn up by Dhruv to double check for mistakes before submission. I then purchased the LCD-010 touch screen.
WEEK 06 SUMMARY
Accomplishments: This week, I searched through the microcontroller documentation to find pin-outs, electrical requirements, and programming pins. I then decided which pins would need to be used in our design, such as the SPI ports, and organized the connections for the easiest PCB layout. Once this was done, I created schematic symbols and PCB footprints for all of the major components and completed the first draft of the mainboard schematic in PADS.
Weekly Work Total: 27 hours
Project Work Total: 62 hours
February 21 (3 hours):
Dhruv and Luke ordered several of the parts and sent me a BOM so that I could get PCB footprint information for our specific parts. I then worked to create PCB footprints and link them with the schematic file in PADS.
I manually created the SD card footprint from the datasheet.
February 22, 2010 (4 hours):
I spoke with Dhruv and we decided it would be best if we divided the PCB work between the two of us, so I will be designing the mainboard layout and he will take the keyboard layout. I spoke with Chuck about which headers we had available in lab for making connections to things off of the board. He pointed out the 0.1" pin pitch headers in lab and said that there are tools in lab for making connectors to mate with them. It also happens that PADS has a generic footprint for headers with this pitch already. I updated the schematic with connectors for the keyboard and PS/2 and linked the connectors to these PCB header footprints. I also added a schematic symbol and PCB footprint to my PADS library for the SPI flash memory chip in the new BOM, and added a sheet for the SPI flash to the mainboard schematic file.
February 23, 2010 (10 hours):
I added the power supply schematic as a new sheet in the PADS mainboard schematic. PADS already had PCB footprints for the regulators, and a 0.1" header will be used to connect to the AC/DC converter card. I created a custom footprint for the current limiters, which was just 2 plated through holes spaced according to the datasheet. I noticed that the 3.3V regulator was only rated for 250mA, which may not be adequate given all of the 3.3V parts. I placed all of the footprints on a preliminary board layout for the TCSP and looked at different layout possibilities to minimize trace length and reduce the number of vias. The correct PCB footprint for the FPGA is yet to be determined.
February 24, 2010 (12 hours):
I spoke with Dhruv after the TCSP presentation and we decided that the voltage regulators would be in drop-out since they were being supplied by switching voltage supplies with exactly 3.3V and 5V outputs in the current design. The voltage regulators need an input voltage that is higher than the output voltage, so the 3.3V switching regulator will be removed from the design and the 5V AC/DC converter will supply the 5V rail. This should be fine since the only 5V part is the touch screen, and it has a 3.3V regulator on board. I added up the power requirements for all of the parts we have so far, and found that our current 3.3V regulator does not supply enough current to make me feel comfortable with it. I found another 3.3V regulator from Microchip which uses the 3 lead TO-220 package, which is a very standard package and pin-out for voltage regulators, including some already in lab.
With these changes, I redrew the power supply schematic and linked the components to PCB footprints in PADS.
Luke determined exactly which FPGA package we will be needing for our design, and I found pinout descriptions on the Altera website. I updated our schematic to reflect the recommended capacitor placements and power requirements of the FPGA. The core voltage of the FPGA is 1.2V, instead of 3.3V, so another regulator was added to the power supply circuit. I also changed the PCB footprint linked to the schematic for the FPGA.
February 25, 2010 (11 hours):
Today I created a new PCB layout, again taking trace length and the number of vias into account. I used the 1206 package for all of the capacitors and resistors, which is surface mount, and placed all of the bypass capacitors on the bottom layer, underneath the supplied IC whenever possible. For both the microcontroller and FPGA, the capacitors were specified to be within 1/4" of the power and ground pins. The FPGA was very difficult to fit all of the capacitors next to and run all of the traces to the power and ground pins, especially since there are two power nets on the FPGA. Once all of the bypass capacitors were placed, I ran the power and ground traces first, with an effort to minimize the size of current loops on the board since these would create noise in the data lines. I also avoided making right angles whenever possible, which could create manufacturing problems. For the sake of time, and because I know more design changes are coming, I autorouted the rest of the traces. This will be inadequate for the final design, since the autorouter does not make very smart decisions when it comes to the previously mentioned considerations.
Version 1 of the Schematic
Version 1 of the PCB
WEEK 07 SUMMARY
Weekly Work Total: 40 hours
Project Work Total: 102 hours
March 2 (10 hours):
The FPGA is capable of doing much more than what we need it to do (displaying a static VGA image). So, since the image we are displaying is static and very simple, we will generate our own VGA signals and get rid of the FPGA, since it would require another programmer, a 1.2V power supply net, and quite a bit of real estate on the PCB to do a very simple task. Luke and Ethan created a block diagram and a new list of parts for the VGA circuit, which I used to update the schematic and PCB footprints in my PADS library.
In addition to the components indicated in the block diagram, I added a level translator recommended by Chuck to interface the 3.3V logic of the SRAM IC to the 5V logic of the PLDs, which will generate the sync pulses.
The new schematic for the VGA circuit is as follows:
With the FPGA now removed from the design, the 1.2V regulator is no longer necessary. The current limiters were also removed from the power supply design since they weren't necessary, resulting in the following design:
Once the schematic was updated, the new netlist was pushed to PADS Layout, and a new PCB layout was created. Again, I manually rounted the power and ground traces to ensure that current loops were minimized, and manually connected the bypass capacitors to the appropriate power and ground pins on all of the ICs. Once this was done, I autorouted the rest of the traces since a few more modifications to the VGA circuit are still being discussed.
Design Review Schematic
Design Review Mainboard
March 3 (3 hours):
We met as a team to finalize the design review presentation and play devil's advocate for each other.
WEEK 08 SUMMARY
Accomplishments: This week, a new VGA circuit was designed and the schematic was updated to reflect the changes, removing the FPGA. The new schematic symbols and PCB footprints for the new parts in the VGA circuit were created in my PADS library. A new PCB was created for this major design change, and after the power and ground traces were routed, the rest of the traces were autorouted for the Design Review.
Weekly Work Total: 13 hours
Project Work Total: 115 hours
March 7 (8 hours):
Met in the lab to start testing the VGA circuit, which was constructed using PLDs and an oscillator on a bread board to drive the VGA monitor pins. The PCB layout for the design review was very disorganized and routing all of the traces with two 100 pin ICs on the board has become very challenging. In an attempt to simplify the layout, I again looked at the microcontroller pin-out diagram to rethink pin assignments. The SRAM IC has a 17-bit address bus and an 8-bit data bus, which connect to the microcontroller, so I reassigned the microcontroller pins so that these traces could all be run between the two ICs without needing to cross over each other at any point. I did the same for as many control signals as possible from the microcontroller.
March 8 (12 hours):
Continued to update the microcontroller pin assignments and make the changes to the mainboard schematic.
My teammates worked all night to get the VGA test circuit working so far as to display an all white screen on the monitor. I discussed the changes to the circuit with them, which included a new (3rd) PLD for shifting the display bits out from the SRAM data bus to the VGA RGB pins. Testing of the VGA circuit continued, but now the goal is to create a bit pattern on the screen using DIP switches to simulate the SRAM data bus. Once this is accomplished, the VGA circuit schematic can be finalized.
March 9 (14 hours):
In the morning I met with Luke to finalize the VGA schematic. The design we were using yesterday worked once a few changes were made to the PLD timing.
Resistor dividers were placed at the RGB pins of the VGA connector to allow us to adjust the voltage swing in the final build. Sockets will be used for the PLDs on the final board, but they will have the same PCB footprint. We also updated the programming connector to match the connector used with the Microchip programmer. With the schematic finalized, and the PCB footprints all positioned to minimize trace length and vias, I made a 1:1 printout of the board to ensure that all of the parts fit on their respective footprints with ample room to solder. I then began to manually route every single trace on the mainboard using PADS Router.
March 10 (5 hours):
Today, I added mounting holes to the mainboard PCB and a fourth PLD to AND the RGB signals together with the H-sync pulse. We then got the proof-of-parts completed.
PCB Top Layer
PCB Bottom Layer
WEEK 09 SUMMARY
Accomplishments: This week the schematic was finalized once the VGA circuit had been constructed and tested. I reassigned most of the microcontroller pins to make trace routing more organized. The PCB layout for the mainboard was then finalized and every trace was manually routed. The mounting holes were added to the four corners of the board and 1:1 printouts were made to ensure that all of the parts fit on their respective footprints. Once this was done, the proof-of-parts was completed, and we started the process of ordering our printed circuit boards.
Weekly Work Total: 39 hours
Project Work Total: 154 hours
WEEK 10 SUMMARY
Accomplishments: Spring Break. Got a tan from some natural sunlight instead of flourescent bulbs.
Weekly Work Total: 0 hours
Project Work Total: 154 hours
WEEK 11 SUMMARY
Weekly Work Total: 0 hours
Project Work Total: 154 hours
March 29 (2 hours):
Updated Homework 6 to reflect the latest design.
March 30 (1 hour):
We got our PCBs in today. Dhruv started soldering a few components to the mainboard.
March 31 (4 hours):
Dhruv and I soldered the microcontroller and corresponding capacitors and resistors on the mainboard. The ICD3 programmer identified the microcontroller correctly and loaded a test program onto the microcontroller for the first time.
April 1 (1 hour):
Checked the cable connections for the touch screen and connected it for testing with Ethan's code.
WEEK 12 SUMMARY
Accomplishments: This week all of my time devoted to the project was spent soldering components to the PCBs, which we received at the beginning of the week, and providing support for the people writing software by answering questions related to the schematic. At this point, nothing appears to be wrong with the schematic or PCB design, so I have taken a slight step back from the project for the time being while the software is written.
Weekly Work Total: 8 hours
Project Work Total: 164 hours
April 7 (3 hours):
Dhruv and I handed our keyboard PCB over to Chuck, so that he could cut the slots in it that will go under the rows of keys. I then began soldering the pushbuttons for the keyboard keys after Dhruv soldered the tiny resistor packs on. I also pulled a PS/2 cable off of an old keyboard and put a connector on the end of it to interface the clock and data lines to our mainboard.
April 8 (1 hours):
I continued soldering the pushbuttons to the keyboard PCB.
April 9 (1 hours):
Still soldering the last of the pushbuttons to the keyboard PCB.
WEEK 13 SUMMARY
Accomplishments: This week we got the slots cut in the keyboard PCB and soldered the pushbuttons to it for the keyboard keys. I also put a PS/2 cable together for interfacing our mainboard to a PC. The rest of the team worked on debugging the software.
Weekly Work Total: 5 hours
Project Work Total: 169 hours
April 11 (3 hours):
Dhruv finished soldering the pushbuttons to the board along with the shift registers. I began making a cable for the keyboard PCB and soldering the headers to the board, but discovered that the bottom copper layer had been replaced with the top layer when manufactured. Fortunately, the bottom layer connections can be replaced by soldering wires to the vias.
I also helped Luke troubleshoot/test the new touch circuit for the Nintendo DS screen.
April 13 (2 hours):
The microcontroller mysteriously stopped programming today, so Chuck had to remove it for us. Dhruv soldered the spare microcontroller on, and the board would not power up anymore. Dhruv and I discovered that there was a short between the 3.3V power and ground rails on the board. Using an idea from David to use the Agilent DMM in lab in 4-wire mode, we checked the resistance between the power and ground rails at various parts of the board. In 4-wire mode, the DMM can measure resistance with micro-ohm accuracy, which allowed us to narrow the location of the short down to an area near the microcontroller. Under further inspection, Dhruv found a solder bridge as thin as a hair between a power and ground pin on the microcontroller. After removing that, operation returned to normal.
April 16 (9 hours):
Today I purchased two different types of adhesive to test on the keyboard keys for gluing the Plexiglas squares to the pushbuttons. One was fast drying Krazy glue, and the other was Elmer's Stix-all cement, which takes a full day to cure, but is designed to withstand vibrations. I fasted two pushbuttons to a plastic square, one with each type of adhesive and left it to cure over the weekend.
The blue mark represents the Elmer's cement.
I made a run to Lafayette Electronic to purchase some wiring and connectors for the AC to DC power supply circuit. A panel mount AC socket will be used to connect the case to the 110V wall outlet, and then inside the case, a Y-splitter will connect the monitor and AC/DC power supply to the 110VAC source.
I also purchased a SPST switch, which will be placed in the AC line wire to switch the 110VAC source to both the monitor and AC/DC board on and off.
I then used 16 AWG wire to make a cable that will connect the AC/DC power supply board to the main board, and cut the 3-prong AC plug off of the end of a cable to attach it to the AC/DC power supply input.
After attaching the AC plug to the AC/DC power supply, I tested it to ensure that 5V were being output. I then connected the supply to the mainboard and successfully powered it using the AC/DC supply board.
I finished the day by continuing to flywire the keyboard PCB.
WEEK 14 SUMMARY
Accomplishments: This week, after discovering the mistake on the keyboard PCB, we began flywiring to all of the vias to recreate the bottom layer connections. We also got a touch screen solution working using a Nintendo DS touch screen and comparators. After the microcontroller stopped working, we soldered a new one in place and got the mainboard fully functional again after removing a solder bridge.
Weekly Work Total: 14 hours
Project Work Total: 183 hours
April 21 (6 hours):
Dhruv and I finally finished flywiring the Keyboard PCB. I made a cable to connect the Keyboard PCB to the Mainboard PCB using a color code for each connection while Dhruv checked some nets on the keyboard for continutity.
Keyboard Cable Color Code:
Power --> red
Ground --> black
Clock --> yellow
Data --> white
Parallel/Serial Select --> purple
Dhruv found that the clock signal did not have continuity to all of the shift registers, and after examining the flywire connections, we found that one was missing. After this fix, the board connections all seemed to be OK.
Luke and Ethan wrote a program that would read the status of the board and then serially transmit the databits back out. By monitoring the clock and data output signals on the oscilloscope, we were able to verify the keyboard functionality by pressing each key one by one and watching the data bits change on the output in real time.
April 22 (2 hours):
I decided that the best option for a faceplate for the HULK would be a rigid piece of plastic. This would be easier to make cutouts in, and it would not pose a danger of shorting connections on the Keyboard PCB. I spoke to Meyer Plastics in Lafayette, and they recommended a type of PVC board and agreed to cut an 18"x18" piece for us out of their stock. Ethan and I laid the components in the aluminum case that we will be using and measured all of the appropriate dimensions for cutouts in the case and faceplate.
WEEK 15 SUMMARY
Accomplishments: This week, the flywiring was completed and the connections on the keyboard PCB were all checked to ensure that the flywiring had been done correctly. The keyboard functionality was then checked by writing a program that would read the state of the keyboard and then write the data bits back on the data output pin. The data output and clock were monitored using an oscilloscope. The packaging design was finalized and the rest of the materials for packaging the project were acquired.
Weekly Work Total: 8 hours
Project Work Total: 191 hours
April 25 (8 hours):
The code for the PS/2 connection and the keyboard are both working separately on the development board, and Luke is working to combine the code to allow us to type on the keyboard and transmit the data to a computer. The code for the touchscreen is also working by itself, but could be combined with the others to allow us to change the language being transmitted for a demonstration in the near future. In order to do this, I first needed to construct the circuit that will interface the Nintendo DS touch screen with our mainboard via comparators. The touch screen is a resistive film, so using our setup, we will connect the Y-axis pins to power and ground and one of the X-axis pins will output a voltage dependent on where along the Y-axis the screen is touched. Thus, using 3 comparators, each set to transition to a high output at different input voltage levels determined by voltage dividers, the screen can be divided into three separtate regions, and the microcontroller will be able to tell which region is being pressed by the outputs of the three comparators.
The circuit was contructed using the LM339, which has 4 comparators with a common power input, and 3 potentiometers to set the three screen regions. Three 10K pull-up resistors are required at the output of each comparator. Red wire is connected to the power supply, black is connected to ground, and green, blue, and yellow are connected to the comparator outputs.
After constructing the touch screen circuit, I moved on to the PS/2 interface circuit, which just uses 2 BJTs (one for data and one for clock) to interface the microcontroller to the 5V logic within the computer PS/2 port. The base of the BJT connects to the microcontroller output pin, and allows the microcontroller to pull the signal low. The input pins connected directly to the PS/2 port are 5V tollerant. The pull-up resistor is internal to the computer, so it is not necessary on our interface.
The black wire is connected to ground, and the 3-pin header interfaces to the PS/2 cable, which consists of clock, data, and the shielding (ground). For simplicity, the 6-pin header for signal and ground wires was aranged to connect to pins 19-24 on the mainboard's 24-pin header (ground being pin 24).
April 26 (8 hours):
Today we did some trouble shooting on the keyboard PCB. The code to read the state of the keyboard is working, but the H-key is tied high as seen below.
After pulling several pushbuttons off of the board, I discovered that the signal trace was being shorted to one of the power pads on an adjacent switch through a solder bridge. After a few failed attempts to remove the bridge and solder the pushbutton back on, we decided to just cut the signal trace and flywire around the damaged trace. The solder mask had been damaged, and due to the close proximity of the trace and power pad, it would have been very difficult to stop the solder from flowing between the two.
The signal traces for the C and V keys, and the M and comma keys were also shorted to each other. This problem has yet to be solved but can be taken into account in the code. Chuck helped us trouble shoot the problem by removing the shift register and resistor pack, and after removing both pushbuttons as well, the problem remained. No solder bridges were found or damaged traces.
I then marked up the Plexiglas for all of our keys and Chuck began cutting them on the shear. Once the remaining shorts on the key signals are found we can glue all of the keys to the board.
April 27 (3 hours):
Last night Luke and Dhruv discovered that the X and Y axes on the DS touch screen were flipped, so the X and Y axis connections had to be flipped on the circuit. I updated the touch screen schematic to reflect this and added the pull-up resistors for a more accurate record of the circuit.
We will be switching between English, Greek, Russian for our demonstration, so I first created a unicode chart to be inserted into the code for the Russian keyboard characters using this Cyrillic Unicode chart(link). I then finished cutting out the 61 plastic keys to be glued to the keyboard. We then connected the keyboard and PS/2 interface to the microcontroller development board, and began debugging the latest code to use the keyboard to send characters directly to the computer, which was successfully done by the end of the night.
April 28 (7 hours):
Today's focus was on creating detailed documentation of the packaging design with dimensions accurate enough to create all of the cutouts and holes required for mounting all of the components. I started by laying out the components from the top view, looking down at the keyboard and screen. The following is the result:
The mainboard will be placed beneath the monitor in the cavity where the monitor stand used to be attached. In order for this to work, the monitor must be installed after the mainboard is already in place, so the monitor must be mounted 1/2" from the left edge to slip past the 1/2" lip around the top of the case when being mounted. The monitor must also be pressed tightly against the top of the case to make as much room for the mainboard and cables as possible. The touch screen and circuit will be placed in the upper right corner of the screen, and the keyboard PCB will be placed in the lower right corner. The keyboard keys have a 9"x5" viewable area when packaged, and the touchscreen has a 2"x2" viewable area when packaged, so the plastic faceplate will only have these two cutouts. Foam rubber will be placed between the monitor screen and the keyboard and touch circuit. The foam rubber will be cut thick enough to clamp the two boards between the monitor and the plastic face plate and hold them in place using friction. Small amounts of adhesive will be applied if friction alone proves to be insufficient.
On the front view of the case, the cavity for the mainboard is indicated along with the location of the mainboard and SD card. A slot will need to be cut in the aluminum for the SD card, which will be done using a jigsaw.
The location of the power supply card is also indicated for reference.
On the right side of the case, the AC power plug will be mounted along with the power switch for the entire unit. Mounting holes for the power supply board are also indicated.
On the bottom of the case, mounting holes will be drilled for the mainboard, and the monitor also has four mounting holes on the back, which I will utilize to secure the monitor if I can find the appropriate screws.
April 29 (10 hours):
The goal for today was to make all of the cutouts in the project packaging. I cut all of the square cutouts in both the plastic faceplate and the aluminum case using a jigsaw, and I used a drill press for all of the mounting holes. I used self-tapping screws to create the threads in the aluminum for securing the faceplate to the case.
Right Side View:
Internal Mounting Holes:
Later in the evening, I helped Luke and Dhruv troubleshoot the PS/2 implementation on the mainboard. It works correctly on the development board but fails on the mainboard. After hours of troubleshooting and searching through the code for errors, we determined that the microcontroller functions correctly when the PS/2 interface circuit is not attached, but as soon as the interface circuit is attached to the microcontroller pins, the clock and data output pins on the microcontroller output a nearly constant 0.8V. The load of the BJTs is causing the microcontroller to malfunction, so the BJTs are most likely not biased in the correct operating region. If this is the problem, it does not explain why the circuit works when interfaced to the development board.
April 30 (3 hours):
After researching BJT characteristics and looking over the 2N3704 datasheet, I learned the following. The transistor has a Vbe-on = 0.6V which explains why the clock and data pins where stuck at around 1V. Also, the gain is around 200, so assuming the PS/2 host (computer) has a pull-up resistor of around 10K, the BJT should be biased for a collector current Ic=5mA, resulting in the following bias circuit:
In the lab, a 91K resistor was the closest value available. Once the resistors were added to the circuit, the PS/2 interface began working, just as it did on the development board.
WEEK 16 SUMMARY
Accomplishments: This past week, the PS/2 interface circuit was constructed and designed to connect to the 24-pin header on the mainboard since it requires 4 microcontroller pins and a different touch screen is now being used. After testing and debugging with both the development board and mainboard, it was discovered that a gross oversite was made by neglecting to place resistors between the microcontroller pin and the base pins of the transistors. The new touch screen control circuit was also constructed and tested. The code for reading the state of the keyboard was debugged, and we determined that one of the keys was shorted to power (h), and two pairs of keys were shorted together (comma -> m and c -> v). With Chuck's help, we found the short for 'h', but we were unable to find the others without making potentially damaging actions. The cutouts for the packaging were also made, and some of the components were mounted to the frame. At the end of the week, three PSSCs were functioning together on the mainboard and were checked off by Malek.
Weekly Work Total: 39 hours
Project Work Total: 230 hours
May 2 (4 hours):
Luke and I worked on debugging the SD card on the mainboard. It worked correctly on the development board, but when ported to the mainboard, it failed. We narrowed down the point of failure in the code by setting flags in the code and setting the oscilloscope to trigger on the flag. Using this method, we determined that the SPI port was not communicating with the SD card, so we removed the card and probed the SPI signals directly. Doing this we found that the MISO pin connected to the SD card slot on the motherboard was not working, even when programmed as a GPIO pin and set to toggle. After setting the pin to toggle at a very low frequency, however, we noticed that the waveform resembled that of a cold solder joint. After adding solder to the microcontroller pin, the MISO pin began toggling correctly on the SD card slot. Luke then discovered, however, that the code was not designed to address any more than two SPI ports, and our microcontroller has four. So, since the SD card is on SPI channel 3, the libraries themselves will need to be modified.
WEEK 17 SUMMARY
Weekly Work Total: 4 hours
Project Work Total: 234 hours