Project Journal for -Josh Wai-

=============== Week 15: =================

Entry 4: -----------------------------------------------------------------

Date: apr 25
Start Time: 6pm
Duration: 1hr

  • we are waiting for demoing, just sitting around kinda stressing but also trying not to think too hard about it
  • the demo still doesnt work in the case for the fingerprint but the flash ic works now, which honestly feels like half a win but still not great
  • we decided that we could take it out of the case to try and get it to work to get psdr but lose packaging, because at this point we just needed it to actually function
  • it works outside the case, which made me happy but also kinda annoyed because it meant all that work making the case perfect was basically for nothing
  • i guess we lose on packaging, kinda sucks but at least the important parts actually work now and we can still pass

Entry 3: -----------------------------------------------------------------

Date: apr 25
Start Time: 9am
Duration: 4hrs

  • im back at the lab to see if i can get it to work, feeling a bit better after sleeping but still stressed about this demo
  • stanley told me he got it to work and that it was actually because of a speck of dust in the connector that made the wire loose, which seemed ridiculously small but at least it made sense now, and that deleting the user before adding made the fingerprint work perfectly
  • im glad that at least i was on the right track yesterday, it’s a relief to know my debugging wasn't completely off
  • we are about to do demo, feeling nervous again because it always seems to go wrong right when we actually have to show it
  • the demo still failed with both not working and also we were told to put everything in the case, which i completely forgot about because i was too focused on making everything just work first
  • the case was not designed to have too many long wires and that is something that i overlooked as i had not accounted for the wires being so long, i realized i didn't even measure the wires at all when i was designing it, which feels pretty dumb now
  • it fit in the case but made everything squished together, and it looked messy like everything was about to pop out
  • we should have used shorter wires, they did not need to be this long, it seems obvious now, but we were probably thinking more wire was better for flexibility
  • we dicided to cut the wires a bit to see if it works, even though i was scared it would make things worse
  • crimped and soldered wires because wires are too long, it took forever because none of us are very good at soldering
  • use heat shrink to cover wires, it actually made things look way neater and i felt proud that we thought ahead enough to even have heat shrink around
  • cut wires to save fingerprint sensor, but i kept double-checking if we cut too much because i didn’t want to break anything else
  • even after we cut it, i found out that even if you move the part connecting to the board just a little bit the fingerprint sensor would malfunction, which was incredibly frustrating because i thought shortening the wires would fix that completely
  • the connection is loose, which means i wasted a lot of time soldering and cutting wires for nothing
  • should we solder the inside of the part, stanley asked, and honestly it sounded like a good idea for about half a second
  • no that could short something, and we both agreed it would probably cause more problems than it fixed
  • it couldnt be that there were software errors because it was working before but i will still try to check, just to rule out anything obvious
  • it has to be the wires, because literally every time something moves slightly it breaks again
  • i will start taping down the wires, which feels like a temporary fix but at this point i just need it to work long enough for the demo
  • its still broken at certain angles, so now i’m adding even more tape hoping it’ll stay perfectly still
  • it works!, finally something good happens, but i'm afraid to even breathe too hard near it
  • its not working consistently, which is frustrating because now i don't know if it’s really fixed or just randomly working again
  • we take it out of the case again, and now everything is all tangled up and messy from the tape and shorter wires
  • conclusion is that when its in the case the wires get so squished that it doesnt work, which i guess we should've expected from the start
  • we are going to try and not touch the case since it just worked, and i will come back for demoing later today, i still havent gotten lunch

Entry 2: -----------------------------------------------------------------

Date: Apr 24
Start Time: 4pm
Duration: 10hrs

  • i arrived at the lab for demoing the project, honestly feeling kinda nervous because last time things didn't go so well
  • i went and checked the new design that was printed out, it took me a second to find it because there were a lot of other projects laying around
  • the case was taller and it looks like it will fit everything perfectly, finally something went right for once
  • when it was our time to demo, we were able to get 3 of the 5 psdr, which is decent but obviously not ideal
  • the two that wasnt working was fingerprint and flash ic, and i felt kinda embarrassed because those were supposed to be the coolest features
  • we couldnt prove that the fingerprint works and we couldnt prove that the usb could save the file after moving to another computer, walter looked skeptical but he gave us another chance
  • walter said we would be given another time slot to demo tommorow at 10, which relieved me but also stressed me out because now we have less than 24 hours
  • stanley was feeling sick so he went back with the fingerprint still not fixed, leaving me to figure this mess out alone for now
  • since it was one of our psdr i decided that we had to solve this problem fast, because i really don't want to come back here again for another redo
  • the fingerprint had some todos, i wrote them down on a sticky note so i wouldn’t forget
  • it needed better ui for when the state was unlocked so that the user knows, since right now it's super unclear what's happening
  • the ui also needed to confirm that the usb was locking, because right now you can't even tell if it actually locks or not, it just looks the same
  • i wrote up both of the ui in the code, luckily that didn’t take too long and felt like a small win
  • next i needed to figure out why the fingerprint wasnt working, this was honestly stressing me out because fingerprint always seems to have weird issues
  • the fingerprint was reading only when the user tries to login to the usb, which i thought was the right approach but apparently it’s more complicated
  • but since there is no user we would first need to add one, which i completely overlooked until just now
  • that also didnt work and would always give a bad reading, making me wonder if there's something deeper going wrong here
  • i had to debug fingerprint in another way because clearly whatever i'm doing now isn't working at all
  • i consulted some sources and they said to debug by printing out ack, i honestly had no idea what they were talking about but decided to give it a try anyway
  • i dont know what that means in this context so i have to look at the fingerprint sensor datasheet, which was super dense and confusing
  • the code is set to give bad reading when ack is not ack success but that could mean its ack fail, ack full, ack timeout, which made things even more confusing because now there were multiple reasons why it could fail
  • printing it didnt tell me much, it just spit out random numbers that i couldn't decode right away
  • i researching again, hoping there would be some easy fix online or someone having the exact same problem as me
  • told me to try deleting user since that could stop it too so i tried to delete users, which seemed like an easy solution so i got hopeful again
  • it still didnt work so i thought maybe the wire was loose and it was a hardware problem instead of a software one, because i really didn't want to rewrite any more code tonight
  • i tried to unplug and plug back in everything, hoping that just reconnecting things magically fixed it
  • the fingerprint sensor wire is seemingly loose, because every time i touch it the little lights flicker
  • i keep touching the wires and it resets the uart for the fingerprint so something is loose, making me feel relieved that it might just be a hardware problem
  • nothing is working, and honestly at this point i’m getting super frustrated because it's almost midnight
  • maybe its a problem with uart wire, since the fingerprint communicates through uart and maybe i damaged it somehow
  • stanley is back and i told him that i think either the wires are loose or there are somehow user saved before we even try to set a fingerprint, he agreed that sounded plausible
  • im to tired, my eyes hurt from staring at the screen and poking wires for hours
  • im going to take a nap, hoping i'll wake up with some magical solution or something
  • im back to debugging, but it’s hard to focus because i'm still half-asleep
  • im too tired im going back to sleep, i'll deal with it in the morning before the demo

Entry 1: -----------------------------------------------------------------

Date: apr 23
Start Time: 9pm
Duration: 1hr

  • i was told today that we have to change the cad design again for the mechanical part, which honestly kinda sucks because i thought we were done with that
  • apparently the lcd screen was still too tall with all its wires sticking out and the little components on the back
  • i have to go back into onshape and make the case taller so all the stuff can actually fit inside and not get squished
  • it hit me just now that we never actually checked if everything would fit inside the case before because we always did our testing outside, which was pretty dumb now that i think about it
  • i logged into onshape and used the move face tool to carefully stretch out the back side of the case to make more space
  • after extending the outside, i did the same thing for the inside walls, moving them up so everything would have enough room inside
  • i added around 8 mm of extra space just to be safe since the stands we're using take up about 5 mm and the connectors and other parts measure around 21 mm total
  • honestly, this took longer than i thought because i had to double-check all my measurements to make sure i didn’t mess anything up again
  • i finished up the design adjustments, exported the file, and sent it over to abs so we can hopefully get it printed soon

  • citations:
  • Adafruit Industries, "UART Fingerprint Reader User Manual," [Online]. Available: https://engineering.purdue.edu/477grp20/Files/refs/UART-Fingerprint-Reader-UserManual.pdf. [Accessed: 25-Apr-2025].
    images:
example1 example1 example1 example1 example1 example1 example1 example1 example1 example1

=============== Week 14: =================

Entry 2: -----------------------------------------------------------------

Date: apr 16
Start Time: 7pm
Duration: 5hr

  • Spent a lot of time struggling to figure out why the USB wasn't working.
  • I think if I find one good YouTube video tutorial it will fix everything.
  • Watched these:
    • https://www.youtube.com/watch?v=aEwwQMdKd-c
      • Was about:
        • Phil explained how we can connect an STM32 microcontroller with an SD card and USB so that it acts like a USB thumb drive. The STM32 basically lets the computer talk directly to the SD card like it’s plugged into a USB adapter. He said it's a neat way to save files or move stuff around without needing a regular card reader.
        • He talked about the hardware parts we need like the STM32 microcontroller, SD card slot, and USB type-C connector. He showed how the schematic and PCB layout look, especially important stuff like how the SDMMC pins are connected for fast data transfer. He also mentioned we need to make sure the wiring is neat because messy wiring could slow things down or cause problems.
        • Phil showed step by step how to set things up in STM32CubeIDE, picking the right settings for USB and SDMMC. He mentioned it's important to choose the right pins and speeds for everything to work properly. He clicked through some menus and explained that sometimes STM32CubeIDE can be confusing, so you have to double-check each step to make sure nothing's missed.
        • He also talked about using the USB Mass Storage Class. He explained which middleware settings we need to change and how to handle reading and writing data. Basically, how we connect the SD card storage to the USB interface. Phil said that if the middleware settings aren't right, the computer might not even see the SD card, so it's important to pay attention here. He showed a few lines of code and said that it's pretty straightforward once you know what you're looking at.
        • At the end, he tested how fast the data transfers between the computer and the SD card. The speeds weren’t super fast because of the USB full-speed limit, but he mentioned we could tweak things like the media packet size to make it faster. Phil tried copying some big files just to see how long it would take and said he noticed the speed improved a little after tweaking the settings. He said it's not perfect, but definitely good enough for most small projects.
        • I tried to implement but it wasn't working.
    • https://www.youtube.com/watch?v=x_5rYfAyqq0
      • Was about:
        • Phil introduces the custom PCB designed with an STM32F405 microcontroller and various components, including USB and SPI interfaces, for functionality. He explains the layout and additional parts that enhance the project, like an RGB LED and sensors.
        • After assembling the board, the first step involves checking for shorts and voltage levels to ensure proper power delivery to the microcontroller, confirming a safe startup process.
        • Phil transitions to programming the microcontroller using STM32 Cube IDE, highlighting the steps for creating a new project, assigning pins, and setting configurations for peripherals like SPI and USB.
        • He demonstrates how to implement PWM control for the RGB LED, explaining the coding process to dynamically adjust brightness via timers and incorporating delays for visual effects.
        • The video covers implementing USB communication through a virtual comport, allowing data transmission to a host computer. Phil illustrates how to set this up and test it with logging software.
        • The tutorial includes writing low-level drivers for an SPI-based gyroscope and accelerometer, detailing the communication protocol and how to read sensor data using polling methods.
        • This video didn't help much either.
    • https://www.youtube.com/watch?v=92A98iEFmaA
      • Was about:
        • The presenter outlines how to send data from the microcontroller to the connected PC. After configuring the project and generating the necessary code, the tutorial demonstrates the use of the usbd_cdc_if.c file to transmit data over USB, showing a successful transmission every second.
        • Next, the video explains how to set up the microcontroller to receive data. It involves defining a buffer to store incoming data and modifying the cdc_if.c file to handle data reception using the memcpy function. This section emphasizes how to ensure the buffer is correctly cleared before receiving new data to avoid preserving old data.
        • This video was useful for understanding how to get the microcontroller to receive data.

    Entry 1: -----------------------------------------------------------------

    Date: apr 15
    Start Time: 8pm
    Duration: 3.5

    • we have a new issue for the mechanical design
    • the lcd has electronics on the back so we can't just glue it on the case
    • i need to make it so that it can be propped up
    • i started thinking about ways i could do this but i wasn’t sure at first
    • i thought maybe i could make some small supports or a little frame inside the case
    • i measured the lcd again to double-check how thick it is because i forgot the exact measurements from last time
    • after measuring, i opened up my design on the computer and watched some youtube videos to try to sketch out some possible frames
    • https://www.youtube.com/watch?v=ZinL1jtKVRE
    • video said:
      • first thing you should do is add parts you already have into your cad software. that way you can make sure things fit right and you know where all the wires and ports go. it makes designing easier so you don’t have to fix things a hundred times.
      • if you're adding a touchscreen, use spots that are already there for screws and mounts. this makes it cheaper and easier, and other people can copy your design without having special parts made.
      • when you put stuff in your design, make sure nothing is touching the touchscreen part. if stuff touches the screen it could mess it up and make it hard to use.
      • start with basic things like screw holes and mounts before you add complicated parts. that way it’s simpler to put together and easier to print out.
      • leave a little extra room around things like holes in case stuff doesn't fit perfectly when you print it. this helps make sure you don’t have problems fitting things together later.
    • this video was cool to learn but was mostly talking about putting the lcd in the case, not outside
    • the first frame i drew was too big and blocked the electronics on the back, so i had to redo it
    • i decided to add little tabs on each side of the lcd frame that would hold it without touching the electronics parts
    • it took me a few tries to get the tabs right; at first, they were too thin and seemed like they might break
    • after a while, i got the tabs looking strong enough and in the right spots
    • then i added some screw holes on the tabs to make sure the lcd would stay secure and not move around inside the case
    • i made sure to leave enough space behind the lcd for wires and stuff because i remembered we had problems last time with cables not fitting
    • after i finished designing the tabs and the screw holes, i thought it would be good to double-check the overall case dimensions again
    • i found out the new frame made the case a bit thicker, so i had to update the measurements for the back piece of the case too
    • this design actually probably won’t work because it will cause the case bottom to snap since it’s so thin
    • i just remembered walter mentioning the standoffs that we can use
    • if we glue that on the case with the lcd screwed on, it could work
    • citations:

=============== Week 13: =================

Entry 2: -----------------------------------------------------------------

Date: apr 10
Start Time: 6pm
Duration: 4hrs

  • went to the lab today, where we gathered as a team to further develop the project and tackle ongoing design challenges
  • was informed of an additional issue with the case—this time relating to its overall dimensions
  • discovered that the current case design is too small to accommodate all the external components comfortably, indicating that there’s insufficient space for the pieces on the exterior
  • determined that the case needs to be both wider and longer to provide adequate clearance and ensure reliable integration of all parts
  • carefully measured each critical component—the lcd screen, the fingerprint sensor, and the keypad—to obtain precise dimensions
  • plotted these measurements on the case design to verify that each part fits within the available space
  • moved into the transformation phase of the case redesign, integrating these new measurements into the overall geometry
  • expanded the top section of the case horizontally, extending its width on both sides so that there is sufficient room for additional components and internal support structures
  • adjusted the bottom half of the case, increasing its width along both sides to ensure alignment and balance between the top and bottom pieces
  • elongated both the top and bottom parts, effectively increasing the case’s depth to meet the new spatial demands dictated by the components’ arrangements
  • redrew the parameters for the internal structure that holds the lid in place, ensuring optimal alignment and functionality
  • revisited the design of the screw holes, redrawing every hole for the fasteners to match the revised dimensions of both the case and lid, ensuring a secure and stable assembly
  • remeasured the revised dimensions of the connector areas that interface with the lcd, fingerprint sensor, and keypad
  • redrew the mounting holes on the lid to ensure the sensors and display align perfectly with their corresponding cutouts on the case
  • redesigned the cable routing by remaking the holes that accommodate the wires connecting the electronic components to the pcb board, ensuring efficient cable management and minimal interference with the case structure
example1 example1

Entry 1: -----------------------------------------------------------------

Date: apr 8
Start Time: 7pm
Duration: 4hrs

  • the team recently pointed out an issue with the current case design that I hadn't realized before
  • initially, I believed that the bottom half of the case was supposed to be permanently glued to the top half as part of the final assembly process
  • however, after speaking with the rest of the team, it turns out there was a miscommunication—we were never planning to use glue, and the parts were supposed to be mechanically joined instead
  • without any sort of fastening method in place, the bottom part of the case will simply fall off due to gravity, which obviously isn’t acceptable for a functioning product
  • because of this issue, I now have to revisit and completely redo the design of the case to ensure the two parts stay together securely without relying on adhesives
  • instead of keeping the original two-halves approach (where the top and bottom were symmetrical or joined at a seam), I’m changing the design so the case consists of a main body with a removable lid
  • this new approach should simplify assembly, make the enclosure easier to open for maintenance, and provide a more stable overall structure
  • to start this redesign, I began by creating a new version of the bottom part of the case
  • I used the extrude tool in the CAD software to remove the outer edges and features that were previously meant to align with the top glued section, since they’re no longer necessary
  • for the new top section of the case, I increased its width slightly so I could include internal supporting beams or flanges along the inner perimeter
  • these beams will serve as a mounting base where the lid can rest and be screwed in place, providing both structural support and alignment
  • I then used the extrude tool again to extend these support structures and added pilot holes in specific positions for screw mounting
  • I carefully measured and positioned the screw holes to ensure they align properly with corresponding holes in the new lid design
  • on the lid, I added matching screw holes based on the exact coordinates of the ones in the top part of the case, so the two components will line up correctly and form a tight seal when assembled
  • I’m planning to use standard machine screws and possibly embedded threaded inserts if needed, depending on material strength and ease of assembly

=============== Week 12: =================

Entry 4: -----------------------------------------------------------------

Date: mar 4
Start Time: 6pm
Duration: 4hrs

example1 example1 example1 example1 example1 example1 example1 example1

Entry 3: -----------------------------------------------------------------

Date: mar 2
Start Time: 12:30
Duration: 2hrs

  • we are soldering parts on the board
  • it seemed like fun so i asked to try
  • i did one of the pins
  • i went through another rework of the case
  • i forgot to get the measures of all the holes and thought i could just eye ball the measurements but decided that was a bad idea
  • i had to measure the lcd found it to be 80mm x 36mm x 10.2mm and i had to give it a hole and decided it to be 8.3mm x 30mm
  • had to measure the keypad, found it to be: 64.00mm x 51.00mm x 11.00mm and gave it a hole of 26mm x 9mm
  • did the same for finger print sensor: 20.5mm x 55.0mm x 24.50mm and gave it a hole of 24mm x 6.5mm
  • i went and adjusted each part to match the new dimensions that i measured
example1

Entry 2: -----------------------------------------------------------------

Date: mar 31
Start Time: 9pm
Duration: 3hrs

example1 example1

Entry 1: -----------------------------------------------------------------

Date: mar 30
Start Time: 8pm
Duration: 5hrs

example1 example1 example1 example1 example1

=============== Week 11: =================

Entry 1: -----------------------------------------------------------------

Date: mar 28
Start Time: 12 noon
Duration: 5hr

  • figuring out regulations for a usb drive
    • my project is a usb drive—a small, portable storage device.
    • list relevant regulatory bodies/certifications:
      • fcc: check if the usb drive needs testing for electromagnetic interference, even if it doesn’t have wireless capabilities.
      • ul/iec: look into electrical safety standards for consumer electronics.
      • ce marking (europe): consider if i plan to sell it in europe.
      • rohs: check compliance for the use of hazardous substances in electronics.
    • plan initial research:
      • write down the key rules and requirements from each agency.
      • note that even a usb drive may need labeling (e.g., fcc id, ce mark) and safety tests.
  • researching the certification requirements
    • fcc requirements:
      • looked up fcc guidelines for devices with potential electromagnetic interference.
      • noted that even simple electronics like a usb drive may need testing under fcc part 15.
    • ul/iec standards:
      • checked which ul or iec standards apply to small electronic devices.
      • wrote down safety tests that might be required for a low-power consumer device.
    • ce marking and rohs:
      • researched the process for ce marking—documenting compliance with eu safety and environmental standards.
      • noted rohs requirements to ensure the usb drive uses compliant materials.
  • patent and commercial product search for usb drives
    • preparing for the patent search:
      • listed key functions of my usb drive:
        • data storage and transfer.
        • physical design of 3d printed case
        • keypad, lcd, fingerprint sensor
    • conducting the search:
    • recording information:
      • wrote down the filing date, patent numbers, and brief summaries of each.
      • for commercial products, noted key features and any known patents listed in their datasheets or websites.
  • comparing my usb drive design to existing patents
    • analysis of patent a:
      • uses an nfc device to unlock the drive.
      • we use the keypad password directly.
    • analysis of patent b:
      • has a keypad similar to ours.
      • they don’t have a fingerprint sensor.
    • analysis of patent c:
      • more of a data storage encryption patent.
    • risk consideration:
      • our design is entirely different from these patents except for the keypad one where ours is remotely similar.
  • summarizing findings and citing sources
    • compile regulatory and patent information:
      • organized notes on requirements.
      • prepared a summary for each of the three patents and the commercial product’s features.
    • create ieee-style references:
      • cited sources.
      • made sure to include all links to official regulatory pages and patent sources.
citations:

=============== Week 9: =================

Entry 3: -----------------------------------------------------------------

Date: mar 14
Start Time: 4pm
Duration: 2hrs

  • I'm going to improve my USB code to get it ready for testing
  • I ran into some problems so I watched some YouTube videos to help
  • USB Communication Setup in CubeMX
    • Project setup in CubeMX
    • Setting up a project for STM32F103C8 in CubeMX
    • Configuring external crystal for the clock
    • Setting USB device class as communication device CDC
    • Ensuring correct clock setup for USB functionality
    • Sending data to PC
    • After generating code modifying usbd_cdc_if.c
    • Using cdc_transmit_fs to send data
    • Demonstrating successful transmission every second
    • Receiving data from PC
    • Defining a buffer to store incoming data
    • Modifying cdc_if.c to handle reception with memcpy
    • Clearing buffer before receiving new data to avoid old data issues
    • Debugging & buffer management
    • Monitoring buffer content during operation
    • Using memset to clear previous data before new reception
    • Application & use cases
    • Useful for STM32 Blue Pill users
    • Enables USB communication without UART
    • Simplifies data transfer for various embedded applications
  • How to use Flash Drive with STM32 || USB HOST MSC || CubeIDE
    • Intro: STM32 can act as a USB host for mass storage MSC allows connecting a flash drive for read/write operations
    • Project setup in CubeIDE: Walkthrough of creating a new CubeIDE project for STM32F4 Discovery
    • Configuring necessary pins and enabling USB OTG FS
    • VBUS & GPIO settings: Need to enable VBUS to power the flash drive
    • Set specific GPIO pin low to supply power
    • USB file operations: Modify code to handle file operations
    • Steps: Mount USB, create/write files, directories, update content
    • Testing: Code is built, flashed, demonstration of file creation, directory structure, and results upon reconnection
  • Introduction to USB in Projects
    • Intro to USB in projects: Most electronics projects need some kind of output and many are switching from serial ports to USB because it's easier to use
    • USB is simpler than older methods but it can be tricky to set up because of all the documentation
    • Choosing the right microcontroller: The ATmega 16u2 microcontroller is good for USB because it's similar to other AVR chips and has built-in USB support
    • It's a good choice for beginners because it doesn't require learning a lot of new stuff and gives you the USB features you need
    • Building a prototype setup: The video shows how to build a simple prototype with the parts needed to make USB work
    • Includes picking the right crystal for the USB clock and setting up the basic circuit
    • Understanding the USB protocol: The video explains the USB protocol, including how the physical connection works, how data is sent, and the different types of packets like token, data, and handshake packets
    • It also talks about how transactions happen in USB communication
    • Implementing USB in code: The video shows how to use libraries to make coding USB projects easier
    • It suggests starting with a simple USB keyboard using the LUFA library and changing the example code to fit your needs so you can add more features to your project
  • Citations:
    • D. J. Rushing, "The Age of AI and Our Human Future | Dr. Kai-Fu Lee | TED," YouTube, 4 Mar. 2020. [Online]. Available: https://www.youtube.com/watch?v=92A98iEFmaA. [Accessed: 14 Mar. 2025].
    • S. N. Raskar, "How to Build a Great Product: The 5-Minute Hack," YouTube, 15 Jan. 2021. [Online]. Available: https://www.youtube.com/watch?v=_bfROydrssA. [Accessed: 14 Mar. 2025].
    • M. J. Tennenbaum, "The Science of Learning," YouTube, 19 Jul. 2019. [Online]. Available: https://www.youtube.com/watch?v=HbQ6q3skZgw. [Accessed: 14 Mar. 2025].

    Entry 2: -----------------------------------------------------------------

    Date: mar 13
    Start Time: 9pm
    Duration: 4hrs

    • Started on changing the PCB case design
    • Following a YouTube tutorial on how to make the CAD drawing
    • First, make a copy of the PCB board from a STEP file that ABS gave me
    • Use the derive tool to import the PCB board
    • Transform the PCB board to the middle of the screen
    • Make a plane that is a bit lower than the default board plane
    • Make a sketch on the new plane
    • Use the "use" tool to make an outline of the PCB board
    • Make the lines into construction lines so that it doesn't mess with the real thing
    • Make peg circles that are bigger than the PCB board holes for mounting on the sketch
    • Fillet the corners to make them round
    • Make another line surrounding the first outline
    • Use the extrude tool to make the actual case 3D from the sketch
    • Notice that the PCB board has sharp angles and ask ABS if it should be sharp or round
    • ABS says it should be round and then changes the STEP file again
    • Reimport the new STEP file
    • Having problems with the sketch that I made
    • After deleting the old PCB board, the sketch says there are pieces missing so it can't load correctly
    • Don't know how to make the sketch point to the new PCB board
    • Try to copy the sketch into a new sketch based on the new board STEP file
    • Copy and pasting is difficult for no reason
    • Computer is not fit to handle all this processing
    • Switch to Stanley's gaming laptop to see if it is faster
    • It is faster
    • Found out how to copy and paste by selecting sketch 1 and putting it in sketch 2
    • Found out it's not really the computer, it's also the network since I am using Onshape web version
    • Copy and paste is messed up again
    • Decide to start from scratch, think that will be faster than waiting for this program to load every time
    • Made the sketch again and extruded it
    • Made the pegs and the holes for the screws
    • Made the top part of the case and the bottom part of the case
    • Made the top part of the case a bit taller than the bottom part
    • Making it different than the previous one because this time I know a bit more about what I am doing
    example1 example1 example1 example1 example1 example1 example1

    Entry 1: -----------------------------------------------------------------

    Date: mar 12
    Start Time: 12:30
    Duration: 2hrs

    • Last week was presentations so Prof Walter had a lot to say regarding our PCB design and schematics:
      • Make the LCD 3.3 pass longer to dissipate the heat
      • Best to make battery to and path shorter and more direct
      • Make a connected via to ground at the side of the board
      • Can change some routing to the back
      • Add ESD protection for keypad and fingerprint sensor, add some diodes
      • Get rid of acute angles
      • Moating around the clock
      • We have basically nothing for footprint verification
      • We need reset button, MCU, flash IC, ESD protection chip, LDO, USB connector, USB female connector, debug headers, programming headers
    • Checked with Brandon to review what I had so far for the USB code
    • Went over the usb_cdc_if file
    • Watched and learned from Stanley while he was editing the PCB design

    =============== Week 8: =================

    Entry 4: -----------------------------------------------------------------

    Date: mar 6
    Start Time: 10pm
    Duration: 4hrs

    • I am at the lab after a midterm to work on the presentation with the group.
    • It's late but the presentation is tomorrow so we need to get it done right.
    • I need to tweak the CAD model for the presentation.
    • I talked and finalized what our design would look like.
    • I asked where the parts should be, whether inside the case with the case covering the parts or having them outside the case.
    • The case would have to be made surrounding the PCB board and then the parts will be glued onto the case.
    • Stanley found an old project that we could base our casing on.
    • I asked if the PCB should be mounted.
    • We decided to mount it on pegs and have two of them in holes.
    • The other two holes will be screwed in which will fix the PCB onto the case.
    • We decided that we want to glue the parts onto the top of the case so that we won’t have to make pegs for each separate part.
    • We are starting to practice for the presentation.
    • We are staying way too late, I think our productivity is going down because of it.
    • Example of some of my presentation notes:
      • PSDR1: We need an LCD display for the user to interface with.
      • PSDR2: For our drive to work, we need it to be able to store data into memory.
      • PSDR3: Since we have USB built into our microcontroller, we can directly communicate with the host computer to transfer data.
      • PSDR4: We opted to put a fingerprint sensor so that there is a convenient alternative to access the USB drive.
      • PSDR5: With all these components, we will need to write software to tell the LCD what to display.
      • Starch PSDR: If we have extra time to spare, we will implement encryption and decryption for the data so that someone can't just open our case, desolder the flash chips, and get all the data.
    • example1
    example1

    Entry 3: -----------------------------------------------------------------

    Date: mar 5
    Start Time: 4:30
    Duration: 1hr

    -i listened to another groups presentation to learn how they did the slides and what they talked about -i took note of the things they did well and the things they could improve on -i noticed that they had a lot of pictures and that made the presentation more engaging -some guy brought props so i had an idea for our presentation

    Entry 2: -----------------------------------------------------------------

    Date: mar 5
    Start Time: 12:30
    Duration: 3hrs

    • I am at the lab to work on the presentation.
    • There's no mandatory lab but I want to go to work on the project with my team.
    • There's no one here so I'll start working on the project.
    • Starting to work on PPT slides.
    • Finding the template for Purdue slides.
    • Adding outline slides.
    • Adding title slides.
    • Adding intro.
    • Adding major component slide.
    • Adding block diagram slide.
    • Adding packaging design slide.
    • Adding electrical schematic slide.
    • Adding PCB layout slide.
    • Adding prototyping process slide.
    • Adding software slide.
    • Adding timeline slide.
    • Searching for a picture to use for our STM32.
    • Changing the format of the template to fit our topic.
    • Brandon comes in and we start to work on the slides together.
    • We add the pictures of the STM32 and the LCD screen.
    • Helping Brandon test the LCD, he gets locked out of his phone so I am there to help document the process.

    Entry 1: -----------------------------------------------------------------

    Date: mar 3
    Start Time: 7pm
    Duration: 0.5 hrs

    • im tring to get stm32 cube ide to work on mac
    • didnt work
    • tried it on windows
    • still didn’t work
    • researched and tried to find out what’s wrong
    • found out need to login
    • login doesn’t work on mac
    • tried on windows
    • worked
    • finally

    =============== Week 7: =================

    Entry 1: -----------------------------------------------------------------

    Date: feb 26
    Start Time: 12
    Duration: 2.5hrs

    • today stanley was stripping wires and offered to let me try
    • it was not easy and i cut a wire by accident
    • brandon did too
    • stanley said it was better to bend the wire then rip it
    • i tried that but i couldn’t get it right so i left it to him
    • stanley also had to tin wires since the usb wire and the sensor wire has frayed and become separate
    • he asked me if i want to try and i said yes because soldering sounds fun
    • i did solder once before but im not very experienced
    • stanley did the first wire and it came out ok but when we tested it it still was too frayed
    • we decide to watch a video on how to tin wires
    • here is what i learned:
      • The video begins with an overview of the importance of tinning wires before soldering, emphasizing that solder flows where solder has been applied.
      • The speaker discusses improper tinning methods, specifically criticizing the practice of applying a large blob of solder directly onto the wire, which results in a messy appearance and potential oxidation issues.
      • He highlights that while this method may technically achieve tinning, it does not produce a clean or effective result.
      • To properly tin wires, the speaker advises twisting the wires tightly, regardless of the direction of the twist, to ensure a solid connection.
      • He demonstrates the technique by first cleaning the soldering iron tip and applying a small amount of solder to enhance thermal transfer.
      • The soldering iron should be placed on the wire to heat it, allowing capillary action to draw the solder into the wire once it reaches the appropriate temperature.
      • After tinning both wires, the speaker emphasizes the importance of cutting the ends of the wires to create a flat surface for joining.
      • He advises that the lengths of the wires should be similar, although precision is not critical.
      • The speaker reminds viewers to place shrink wrap on the wires before soldering the joint to ensure proper insulation afterward.
      • The speaker demonstrates how to reflow the tinned wires together by applying solder with the soldering iron, emphasizing the need for a steady hand during this process.
      • He notes that there will be sufficient mechanical strength in the joint as long as it is not subjected to pulling forces.
    • we figured that we had to twist the wires
    • after twisting the wire i soldered one and it went pretty well
    • i tested the wire and it worked so we knew twisting it was the trick
    • i did the rest of the usb wires and i found that it was hard to evenly distribute the solder onto the wire since it was to thin
    • i went for a brushing technique to try and get most of the solder on there
    example1 example2 citations:
      NVIDIA GTC, "Real-Time Ray Tracing with RTX", YouTube, Feb. 2023. [Online]. Available: https://www.youtube.com/watch?v=pRPF4wpXX9Q. [Accessed: Feb. 26, 2025].

    =============== Week 6: =================

    Entry 3: -----------------------------------------------------------------

    Date: feb 20
    Start Time: 8pm
    Duration: 2hrs

    • today, i started setting up stm32cubeide on my windows computer
    • i went to stmicroelectronics' official website to download stm32cubeide. after registering, i selected the windows version and started the download.
    • once the download was finished, i ran the installer with welcome screen license agreement install folder and all that
    • the installation took a few minutes. after it was done, i clicked "finish" to launch stm32cubeide.
    • when i opened the ide, it asked me to choose a workspace directory. i went with the default path:
    • then, the ide opened with a welcome screen showing various resources and links
    • to get familiar with the ide, i decided to create a simple led blink project:
      • starting a new project:
        • went to file > new > stm32 project
        • in the "target selection" window, used the "part number search" to find stm32 nuclei
        • selected the mcu from the list and clicked "next"
      • project setup:
        • named the project
        • made sure "targeted project type" was set to "stm32cube" and toolchain to "stm32cubeide"
        • clicked "finish"
    • a prompt asked if i wanted to initialize all peripherals with their default mode. i chose "yes," and the "pinout & configuration" tab opened.
    • in the "pinout & configuration" tab:
      • system core settings:
        • expanded "system core" and selected "sys"
        • in the "debug" dropdown, chose "serial wire" to enable debugging via swd
      • rcc (reset and clock control):
        • selected "rcc" under "system core"
      • usart2 configuration (for serial communication):
        • expanded "connectivity" and selected "usart2"
        • enabled "asynchronous" mode
    • switched to the "clock configuration" tab to set up the system clocks:
    • saved the configuration (ctrl + s). a prompt asked to generate the initialization code; i confirmed. the ide generated the necessary boilerplate code and opened the main.c file.

    Entry 2: -----------------------------------------------------------------

    Date: feb 19
    Start Time: 12:30
    Duration: 2.5 hrs

    • today we had a pre lab meeting
    • walter talked about deadline of prototype nearing
    • he gave us some tips during our meeting
    • in order to debug lcd screen must be removable
    • we have to consider the placements of the parts
    • maybe we can even extend and glue in to the outer
    • we were trying to make the lcd screen work
    • the oscilloscope we were using wasn’t displaying what we wanted
    • we figured the scaling is all wrong
    • actually we missed that the wire wasn’t completely connected so that was the problem the whole time
    • i tried to download the stm32cube ide on the rented laptop
    • i was not able to download because i needed admin password
    • the GTA said the password was on the board which i completely forgot
    • i tried the password but it still didn’t work
    • apparently i have to have the installer in the temp folder
    • it still doesn’t work
    • im waiting for them to finish their meeting with another group so we are back to helping brandon
    • he is sending the right things to turn on the screen
    • we found out that his placement of the board was wrong and chip select was wrong
    • now the thing is sending the wrong things
    • i was now told to contact tjbaker for the laptop to work

    Entry 1: -----------------------------------------------------------------

    Date: feb 18
    Start Time: 9pm
    Duration: 1 hr

    • Watched a YouTube video on introduction to USB in projects
      • USB is widely used due to its ease of use compared to older serial ports
      • Simplifies device connections but can be complex to implement due to extensive documentation
    • Choosing the right microcontroller
      • ATmega 16u2 is recommended for beginners due to built-in USB hardware
      • Similar to other AVR microcontrollers, reducing the need for new skills
    • Building a prototype setup
      • Video explains how to assemble a basic circuit for USB functionality
      • Includes selecting an appropriate crystal for USB clock requirements
    • Understanding the USB protocol
      • Covers physical interface, data encoding, and packet types
      • Explains token, data, and handshake packets, along with transaction processes
    • Implementing USB in code
      • Suggests using libraries like LUFA to simplify USB coding
      • Demonstrates starting with a USB keyboard example and modifying code for personal projects
    • Future learning and debugging tools
      • Mentions future USB-related content for further learning
      • Recommends debugging tools for monitoring USB activity on different systems
  • citations:
  • Electroboom, “How to implement USB in your projects!,” YouTube, Feb. 21, 2024. [Online]. Available: https://www.youtube.com/watch?v=HbQ6q3skZgw.

  • =============== Week 5: =================

    Entry 1: -----------------------------------------------------------------

    Date: Feb 12
    Start Time: 12:30
    Duration: 2.5 hrs

    • we started lab with the pre meeting with prof walter
    • my teammate showed me the keypad code he finished working and it was cool to see it work making the lights blink
    • my teammate briefed me about part of our design, that i need to learn how to write the data somewhere and then he will handle taking that data and passing it to the flash memory
    • i worked a little more on my cad for the casing adding the bottom part
    • i couldn’t figure out how to copy the part so i looked up on youtube to figure that out
    • found this video that helped me: https://www.youtube.com/watch?v=D3Qf4Dak4RI
    • next i needed to flip and rotate the thing
    • found this guide on that: https://forum.onshape.com/discussion/20902/how-do-i-flip-my-part
    • it didn’t exactly explain how to actually rotate it so i had to experiment a little
    • remove the holes for part 2
    • brandon was having issues setting up
    • walter is here for the team meeting and talked about what we added
    • walter says we should add stretch functionality and have it described
    • he asked what type usb is it, a or c, it was type A
    • ta says we should put in more mechanical detail
    • he says we can add that after doing the mechanical overview this week
    • walter talked about the difficulty rating and says it was average of 1
    • bonus for not libraries of code but self written
    • walter says i should add where the pcb will go in the cad
    • he says also to make sure where the key pad and fingerprint will go
    • i need to learn how the usb mass storage system works
    • im learning to see how brandon is setting up stm32 cube ice to make sure that i don’t run into the same problem
    • i need to download stm32 cube ice
    • i went on the website to check the size
    • i need to decide whether to download it on my mac or my windows
    • i also need to learn stuff about the stm32
    • uploaded software overview doc to the website
    citations: example1 example1

    =============== Week 4: =================

    Entry 4: -----------------------------------------------------------------

    Date: Feb 7
    Start Time: 10pm
    Duration: 1hr

    • for some reason i can’t connect to the purdue vpn again and that means i can’t access the group website
    • example1
    • the app tells me to contact the admin so i tried but Itap seemed to be down and their website for this vpn stuff was not very updated
    • i tried using just webvpn instead of webvpn2 but that didn’t work, i wasn’t getting the usual option to login with my password
    • i made sure the app was up to date and all that but it still wasn’t working
    • i feel like i tried everything and nothing was fixing the issue
    • i decided that i should just reinstall the whole thing
    • reinstalling worked! and now webvpn works

    Entry 3: -----------------------------------------------------------------

    Date: Feb 7
    Start Time: 4pm
    Duration: 3.5hr

    • today i wanted to learn how to actually use cad and so i went on the website onshore to learn more about how to make a casing for our project.
    • i decided that i would read and learn from the quickstart guide from inside the onshape software itself. it taught things like making an indention in a machine for holding thing together. its basically just something that someone might use this software to make from the cad blueprint. the task was to make a 2 inch incision longer into a 3 inch one. that was pretty easy to do so i moved on to the next steps and it was basically more of the same thing just following step by step directions to modifying this object. I felt like this wasn’t the best way to learn so instead I opted to go on youtube to learn more about how to use this software
    • i learned on youtube to create a shape like a rectangle and then make that rectangle from 2d to 3d using the excursion tool and after i did that, i could also use the same tool to make holes in the block by cutting a circle into the block. then i learned to shave off the sharp edges with eh fillet tool. now that I made a pretty good looking lid i watched another video that taught me how to make cases as a plastic cover
    • https://www.youtube.com/watch?v=2utLjjkXpIg
    • https://www.youtube.com/watch?v=b60p8Un8VAY
    • i kindof messed around with the software for quite sometime because it was kind of fun like i started to make cars and trucks
    • this was important for our project because we need a casing for our electronics and we decided that 3d printing it would be the solution
    • i made a super rough draft and in no way is this representive of the final product since we havent even completely decide what it would look like
    example1

    Entry 2: -----------------------------------------------------------------

    Date: FEB 5
    Start Time: 8pm
    Duration: 1.25hr

    • i wanted to learn about 3d printing for our project so i went on youtube to watch some videos about it
    • https://www.youtube.com/watch?v=2vFdwz4U1VQ
      • this video was about
        • fdm vs resin printing
          • fdm is when you melt filament layer by layer to make stuff
          • resin printing uses uv light to harden resin in a vat
          • fdm is more common but it gives lower resolution prints
          • resin printing gives smoother more precise prints but it needs more cleanup because the resin is toxic
        • fdm printer components
          • a typical fdm printer has a print bed a hot end and an extruder
          • the print bed is where you put the object
          • many printers have automatic bed leveling for better print quality
        • 3d models and slicing software
          • you need a 3d model to print something
          • you can create a model in software like blender or tinkercad
          • the model is turned into an stl file
          • slicing software like cura or prusaslicer makes a gcode file for the printer
          • the gcode file tells the printer exactly what to do
        • filament selection
          • choosing the right filament is important for printing
          • common types are pla petg and abs
          • pla is easy to use and is available a lot
          • petg is stronger and lasts longer
          • abs is durable but can be tricky to print with
          • beginners should start with pla or pla plus
        • troubleshooting techniques
          • common problems are first layer adhesion issues layer shifts and inconsistent extrusion
          • cleaning the bed leveling it right and checking belt tension can help
          • using fewer supports and optimizing infill can improve your print
    • https://www.youtube.com/watch?v=nb-Bzf4nQdE
    • this video was about:
      • definition of a 3d printer:
        • a 3d printer is a machine that makes objects by adding layers
        • it builds parts in 3d using an additive process instead of cutting away material
      • types of 3d printing processes:
        • there are two main methods: filament based and resin based printing
        • filament printers melt material to form parts
        • resin printers use light to cure resin into parts
        • future episodes will explore these methods in more detail
      • applications of 3d printing:
        • 3d printers are used for both decorative and functional items
        • they can create parts, tools, and useful objects
        • it's important to know if it's for a hobby or for practical use
      • the role of open source in 3d printing development:
        • open source ideas have made 3d printing more accessible
        • the community works together to improve designs
        • this collaboration is different from closed source methods that keep info secret
    • citations:
    • "3D PRINTING 101: The ULTIMATE Beginner's Guide," YouTube, 2023. [Online]. Available: https://www.youtube.com/watch?v=2vFdwz4U1VQ. [Accessed: Feb. 5, 2025].
    • Thomas Sanladerer, "3D Printing Basics! (Ep1)," YouTube, Aug. 2019. [Online]. Available: https://www.youtube.com/watch?v=nb-Bzf4nQdE. [Accessed: Feb. 5, 2025].

    • Entry 1: -----------------------------------------------------------------

      Date: Feb 3
      Start Time: 7pm
      Duration: 2

      • today we were looking for lcd screens for our project and we had to pick one before we started making our prototype.
      • i was browsing and i found i went on websites like adafruit, amazon, ali express, digikeys, sparkfun.
      • i compared them and couldn’t decide which one to use. my teammate found one after a while so i decided to work on something else.
      • i went back to brainstorming about how the casing of the project would look like.
      • i went online for inspiration and talked to my teammates about what our final product will look like.
      example1 example1 example1 example1

      =============== Week 3: =================

      Entry 3: -----------------------------------------------------------------

      Date: January 30
      Start Time: 9pm
      Duration: 3.5 hours

      • we are going to be 3d printing the case so i need to learn how to do that
      • i first need to find a software that i will use for the cad to make the 3d models
      • some of the ones i found were onshape, fusion 360, and tinkercadd
      • onshape
        • pros:
          • onshape's entirely cloud-based platform allows for real-time collaboration, which is beneficial for team projects
          • platform independence: being browser-based, it works across various operating systems without the need for installations
        • cons:
          • a stable internet connection is essential; offline work isnt feasible
          • steep learning curve: the array of features can be overwhelming for newcomers
          • subscription model for private projects
      • fusion 360
        • pros:
          • comprehensive toolset: combines cad, cam, and cae, making it versatile for various design and manufacturing needs
          • offers free licenses for hobbyists and small businesses, which is a plus
          • allows for offline work, with cloud features available when connected
        • cons:
          • the extensive features can be daunting for those focusing on basic designs
          • professionnal use entails subscription fees
          • performance requirements: running complex simulations may demand a robust computer setup
      • tinkercad
        • pros:
          • user-friendly interface: ideal for beginners, with an intuitive drag-and-drop system
          • free and accessible: being browser-based and free makes it easily accessible for quick projects
          • quick learning curve
        • cons:
          • limited functionality: lacks advanced features needed for complex designs
          • basic export options: supports standard formats like stl but may lack advanced file types
      • Chose Onshape for convenience
      • made an account and gave it a test
      example3

      Entry 2: -----------------------------------------------------------------

      Date: January 29
      Start Time: 9:30pm
      Duration: 4 hours

      • i need to learn spi nand commands for the usb to read and write data
      • some takeaways and summaries:
        • write enable (06h):
          • before performing any write or erase operations, its essential to set the write enable latch (wel) bit to 1 this is achieved by sending the write enable command (06h)
        • page program (02h):
          • to write data to the flash memory, the page program command (02h) is used the typical sequence involves:
          • issuing the write enable command (06h)
          • sending the page program command (02h) along with the target address and the data to be written
          • monitoring the status register to confirm the completion of the program operation
        • read data (03h):
          • reading data from the flash involves:
          • sending the read data command (03h) followed by the address from which data is to be read
          • the device then outputs the data starting from the specified address
        • block erase (d8h):
          • before writing new data, its often necessary to erase the existing data the block erase command (d8h) is used for this purpose:
          • issue the write enable command (06h)
          • send the block erase command (d8h) along with the address of the block to be erased
          • check the status register to ensure the erase operation is complete
        • still learning
      • Wanted to learn more about hardware encryption vs software encryption
        • read articles on hardware vs software encryption to understand which approach is more secure and practical
        • this is important for our design to see what we want to move forward with
      • checkout how other companies are doing these sort of things
        • looked at how products like ironkey and yubikey handle authentication
        • it seems they use hardware encryption
        • yubikey doesnt seem to store info so that is useless to me
      example1

      Entry 1: -----------------------------------------------------------------

      Date: January 27th
      Start Time: 12:30pm
      Duration: 1.5 hours

      • Worked on functional specifications for our project
      • This helps our project because it gives a clear outline and plan of what we are doing and our specifications and ideas and basically everything we brainstorm
      • Researched operating temperature of typical thumb drives
      • This is important because we need to know the operating temperatures so we dont somehow burn our electronics or destroy something
      • We also want to know at what temperatures a normal thumb drive can operate so that we can base it off that on our own device and make it as close to market standards as possible
      • Researched typical use case for encrypted USB drives
      • Wanted to know what most people do with the device which will give us better ideas on what we need to make our product cater towards and to meet the customers recommendations and requirements
      • Helps us pinpoint the target market and who we are appealing to

      =============== Week 2: =================

      Entry 4: -----------------------------------------------------------------

      Date: January 21st
      Start Time: 10:50am
      Duration: 2.25 hours

      • Prof Walter lab pre meeting, talked about prototype due in 5 weeks
      • Looked at a fingerprint sensor adapter thinking it was a fingerprint sensor https://www.mikroe.com/fingerprint-3-click
      • Listened to Prof feedback and suggestions for more specific details, implementation and better PSDR

      Entry 3: -----------------------------------------------------------------

      Date: January 21st
      Start Time: 10:50am
      Duration: 1 hours

      example3

      Entry 2: -----------------------------------------------------------------

      Date: January 20th
      Start Time: 4:25pm
      Duration: 1 hours

      • Went to check out ECE machine lab and becktol
      • Watched a video a teammate sent about STM32 USB microcontroller tutorial https://youtu.be/aEwwQMdKd-c
      • Video was about:
        • Introduction to STM32 and SD card interfacing
        • Software Setup with STM32CubeIDE
        • Implementing USB MSC
        • Performance Testing Functionality


      Entry 1: -----------------------------------------------------------------

      Date: January 20th
      Start Time: 11:37am
      Duration: 1 hours

      • Began brainstorming components to use
      • Searched for fingerprint sensors, found Adafruit one, R308
      • Found optical, capacitive, and ultrasonic fingerprint sensors
      • Optical uses lights
      • Capacitive has an array of capacitors
      • Ultrasonic uses a more concentrated version of sonar to map a 3D fingerprint
      example1

      =============== Week 1: =================

      Entry 2: -----------------------------------------------------------------

      Date: January 14th
      Start Time: 4:25pm
      Duration: 1.5 hours

      • Learned more about USB
      • Watched USB keyboard video https://youtu.be/wdgULBpRoXk
      • Video was about:
        • Understanding PS2 Keyboard Protocol
        • Exploring USB Keyboard Protocol
        • Data Transmission and Oscilloscope Analysis
      • Watched USB device video https://youtu.be/N0O5Uwc3C0o
      • Video was about:
        • Data Encoding for Key Presses
        • Initial USB Device Communication
        • Capturing USB Communication Packets
      • Searched how USB works and checked articles https://developerhelp.microchip.com/xwiki/bin/view/applications/usb/how-it-works/


      Entry 1: -----------------------------------------------------------------

      Date: January 13th
      Start Time: 11:37am
      Duration: 2 hours

      • Took tour of the lab
      • Started website of project
      • Set up template files
      • Found out can't edit website at the same time with another person
      • Used VSCode Live Share to edit together
      • Assigned software lead role