Build Log

Week of January 8, 2024

Planning

  • Questions for first meeting:
    • Create a separate page for build log?
    • Power source during capstone symposium?
  • Tasks for everyone
    • Adrian: frontend + mobile (ios OR android)
    • Adam: backend + desktop (windows)
    • Cameron: embedded (NFC)
    • Jonah: build door (machining, 3D printing, power management)
    • Allen: assembly + testing of handle and integrated systems (electrical + mechanical)
  • Machine handle (by first week of february)
  • 3D printing enclosure, a lot of the internal components
    • SLA or SLS

Week of January 15, 2024

Hardware

  • Finalized CAD and BOM for the lock (@AllenZhang2989)
  • Started manufacturing and procurement of parts (@AllenZhang2989)
  • Test door designed and constructed (@jonahbelman)
    • Next steps are to route out cavities for lock faceplate and strike/power in
  • Strike designed to take 12 V and output desired power to charge onboard batteries (@jonahbelman)
  • Latch BOM finalized (@jonahbelman)

Software

Embedded

  • Experimented with I2C protocol for PN532 (@CameronKinsella)
  • Discovered the PN532 breakout board is unresponsive with both primary communication protocols (@CameronKinsella)

Week of January 22, 2024

Hardware

Software

  • Implement table & modal functionality for frontend admin dashboard (@AdrianJendo in #3, #4. #5)

Embedded

  • Went to MME clinic to analyze I2C signals. Discovered that the ESP32 is sending signals but PN532 is unresponsive (@AllenZhang2989, @CameronKinsella)
  • Tested I2C protocol with a different sensor to confirm that microcontroller is working properly and PN532 is broken (@CameronKinsella)

Week of January 29, 2024

Hardware

  • Began testing of unlocking mechanisms (@AllenZhang2989)
  • Modifying and redesigning unlocking mechanisms to improve functionality(@AllenZhang2989)
  • Machined OTs components to suit prototype design (@jonahbelman)
  • Manyfacturing second itsrations of enclosure components (@jonahbelman)

Software

  • Implement settings modal for frontend admin dashboard (@AdrianJendo in #8)
  • Research ios NFC functionality to determine development constraints (@AdrianJendo):

    • https://developer.apple.com/wallet/get-started/
    • https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/PassKit_PG/YourFirst.html
  • Add in backend workflow and basic db setup, including API documentation setup (@ABarroso647 in #6)

  • Add in local docker backend functionality (@ABarroso647 in #6)

Embedded

Week of February 5, 2024

Hardware

Software

  • Add in user initial user route functionality as well as api documentation (@ABarroso647 in #12)

Embedded

Week of February 12, 2024

Embedded

  • Implemented logic for YubiKey challenge/response on embedded system (@CameronKinsella)
  • Successfully stored private key in persistent flash storage (@CameronKinsella)

Software

Week of February 19, 2024

Hardware

  • Testing and iterating upon locking mechanism to add robustness (@AllenZhang2989)

Software

  • Implemented end-to-end webauthn protocol for user registration / authentication (@AdrianJendo in #15 and #24)
  • Implemented remaining backend tables (@AdrianJendo in #19)

  • Re-rewrote backend such that calls can be done with generic functions which could apply to any table type (@ABarroso647 in #22)

  • Added GitHub Actions for PR continuous integration status checks (@CameronKinsella in #20)

Embedded

Week of February 26, 2024

Hardware

  • Continued testing and improving upon the locking mechanism (@AllenZhang2989)
  • Starting to place and position the internal electronics for optimal NFC sensing (@AllenZhang2989)
  • Waterjet and welded faceplate sheets (@jonahbelman)

Software

  • Updated table design and state to begin utilizing real data (@AdrianJendo in #29)
  • Add in functionality for role and door tables and their associations (@ABarroso647 in #25)

  • Add in base functionality for user patch requests

  • Implemented automatic TLS for production (@CameronKinsella in #27)

Embedded

Week of March 4, 2024

Embedded

  • Modified YubiKey HMAC (ykhmac) challenge-response C code to successfully compile and link with ESP-IDF sys crate (@CameronKinsella in #7)
  • Created PN532 module and example (@CameronKinsella in #7)
  • Created bindings for C code and added ykhmac module for interfacing with bindings (@CameronKinsella in #7)
  • Created ykhmac example demonstrating challenge-response flow with YubiKeys through NFC (@CameronKinsella in #7)

Software

ALL

  • Setup/ran full authentication demo showcasing both access denied and granted cases and full locking and unlocking functionality. (All)

Week of March 11, 2024

Hardware

Software

  • Added in alternative flow for yubikey registration and unlocking (@ABarroso647 in #41)
  • Updated email aesthetics to look nicer on all email platforms (@ABarroso647 in #42)
  • Added tracking for a user's last time in aka last time using the door (@ABarroso647 in #43)
  • Added the ability to delete a user's creds for revoking purposes (@ABarroso647 in #45)

Embedded

  • Fixed unreliability when writing encrypted secret to non-volatile storage.
  • Added support for addressable LED to indicate authentication status (@CameronKinsella in #9)
  • Created example for YubiKey and passkey authentication demo (@CameronKinsella in #8)

Week of March 18, 2024

Hardware

  • Reliability testing the full system and troubleshooting issues (@AllenZhang2989)
  • Designed and built a tap pad that will be used to demonstrate the access management capabilities of our product (@AllenZhang2989)
  • Constructed door frame and jamb for display (@jonahbelman)

Software