Inspiration
One of our team members experienced firsthand how technology-dependent locks can become barriers instead of safeguards. In response, we set out to design a secure locking system that doesn’t rely on QR codes, apps, physical keys or verification codes. Our knock-based lock uses simple, timed patterns that can be performed by anyone — regardless of age, ability, or level of fine motor control — ensuring that security remains accessible, intuitive, and dependable for everyone.
What it does
Our project uses a Touch v1.1 sensor and a microcontroller to detect touch. We sense the intervals between impacts, or knocks, calculating every millisecond and transforming that data readings into a hashed string. This string is then compared to a knock pattern previously set by the user. If these patterns match using our unique algorithm, the door is unlocked. We have also attached a front end to this technology, allowing Google Gemini to randomly generate a knock pattern for you to use as your password. Users can prompt the AI for a password that sounds the way they would like, or simply use their “k” key to type a rhythm that is then converted into a knock pattern. Attached to this website is a backend created using Supabase in conjunction with Node.js, which stores a user’s name and knock pattern for later use.
How we built it
Our timeline was to brainstorm and come up with an MVP on Friday, complete the main coding and setup on Saturday, spend Saturday night debugging and polishing, and finish everything off with our video presentation. Our group of four programmers was split into four distinct roles.
Colin handled the AI agent work with Google Gemini, focusing on prompt engineering the model to output knock patterns based on user input or generate them completely at random. Baines worked on the front end of the website, creating a simple, clean, and on-brand interface to display our project. Theodore was in charge of the hardware, using a touch sensor and a microcontroller to design the physical KnockLock device itself. He also implemented session cookies as well helped guide the overall project. Connor was responsible for the backend and database, where he created a simple and scalable database that tracks each user’s name and their knock pattern, storing both for future use.
Challenges we ran into
Our biggest challenge was taking a group of programmers who work well independently and learning how to work effectively together. It was a completely new experience for the team to collaborate in real time, actively discuss decisions, coordinate through GitHub, and manage our timetable efficiently. One of our biggest learning lessons was dealing with merge conflicts and working on components that were interwoven. We also spent a significant amount of time focusing on smaller issues instead of prioritizing the MVP, which was an important lesson for us.
Accomplishments that we're proud of
Our biggest accomplishments included using a USB-to-serial connection to achieve low-latency communication between a web browser and a sensor. We were able to create a clean, professional introduction to the website with a clearly communicated vibe and purpose. We also effectively prompt-engineered Google Gemini agents to produce a wide variety of accurate and reliable outputs. Additionally, we built a secure, simple database system that is scalable and well-organized.
What we learned
Our biggest issue was getting four strong programmers to work together efficiently. As a group, we had limited experience collaborating closely with other programmers before this project, and while we struggled early on to stay on the same page, we found our stride later. By the end of the project, we had a strong understanding of how to work together in a way that pushed our project’s potential further than we originally planned.
What's next for KnockLock?
If we were to continue development, we would plan to evolve the demo into a fully functioning product that could be sold to homes everywhere. This would include scaling the website into a complete hub for customer support, product management, and knock pattern creation. We would also expand the database to include additional data points such as product accuracy, usage frequency, and customer feedback, all of which would help us continuously improve and grow the product. Ultimately, our goal would be to create something that allows the families who use it to feel safe and secure without relying on a traditional lock.
Built With
- c++
- css
- embedded
- gemini
- javascript
- react
- sql
- supabase
- typescript
Log in or sign up for Devpost to join the conversation.