Welcome to installment number thirty-seven of the Design Challenge Project Summary series here at Element14. For those of you who are new to my content, in this series, I chose a single Design Challenge project from current or past challenges, and write a short summary of the project to date. I am selective about which projects I summarize, as I want to highlight quality content. Unfortunately, projects that stall out, or get abandoned are not chosen for these summaries. Some project creators like to keep their own project summary going, and this series is not meant to overshadow those post, but to highlight each project from an outsider's perspective.
The subject of this installment is project Fingerprint Skeleton Key - by Milos Rasic (milosrasic98) which was part of the Design For a Cause Challenge.
Like many of the design challenges featured here at Element14, the Design For a Cause Challenge was centered around improving the daily lifestyle of individuals who might have a handicap or be disabled in some way. Milos recognized that visually impaired people often have trouble identifying which key to use with each locked item they encounter during their day. The underlying issue here is that keys stored on a traditional ring are often of similar shape and size, leading to confusion when searching for the correct key. To solve this problem, Milos designed a handheld device that stores all of the user’s keys inside, and when a “known” door is approached, the correct key is dispensed.
In the projects introductory post, Milos laid out his plan to build the ultimate key fob by first identifying three different approaches that would be capable of achieving the project’s goal. The first two designs were similar and utilized a servo to select the correct key. While this would technically work, both designs lacked in several key features. (Yes, that pun was intended…) With those two designs out, Milos envisioned a third design based around a system that slides keys in and out of the device. This design would allow the finished device to be more flexible in capacity, and functionality, while still retaining a respectable footprint.
With the device design somewhat settled, Milos moved on to describe his plans for a wireless charging base that also doubles as a location for the key module. This feature would allow the user to press a button on the wireless charging stand, which would cause a buzzer to sound an alarm on the key module thus aiding in identifying its location. He also began discussing how he planned to pull off the lock recognition system, and said that it could involve identification via WiFi, Bluetooth, or NFC, with the latter being the initial choice. He wrapped up the post detailing a few additional features he wanted to add to the key module including a fingerprint sensor for added security, and a fail-safe mechanism in case of electrical or mechanical failures.
Over the following week, Milos began working on the slider mechanism which he broke down into three different parts. The key holder, the key holder tray, and the key selection mechanism. This update centered around building rough prototypes of these three subassemblies. The key tray was up first, and a rough part was soon cut out from some scrap sheet metal, but it was clear that this part needed to be made from 1mm thick aluminum instead. The key holder was up next which was quickly fabricated from the same scrap of sheet metal, and after sourcing a few screws, the first two parts of the assembly were no longer just drawings on paper, but actual prototypes. Milos concluded this update by saying that the second version of this design will be made from thin plywood to help with finalizing the design before cutting the parts out of aluminum.
Week three arrived and it was finally time for work to begin on the RFID system. An Arduino MKR1000 is the heart of the operation with an RC522 RFID module handling the nearfield duties. Milos chose the miguelbalboa RFID library as it’s pretty well documented and is widely used with the RC522, and after a little coding things were ready to test out. If you would like to see the results, click the link above for a demonstration video Milos provided in the update.
With the RFID hardware tested and working, it was time to shift focus to security, after all how safe would it be if anyone could use this device to open doors? To add a sort of firewall to the system Milos used his fourth update to add a capacitive fingerprint reader to the system. A low-cost, self-contained GROW R302 capacitive fingerprint sensor was utilized not only for its capacitive functionality but because all of the fingerprint processing duties are handled within the model itself, leaving the Arduino’s resources free for other duties. Milos used a PC to set up the fingerprint scanner and to store his fingerprints in the device's memory, then was able to connect it to the Arduino using Adafruits Fingerprint Sensor Library. He then wrote a simple test sketch, and things worked well although there were some issues with the USB connection earlier. Check out the full post for the full example code, and a quick demonstration video of the fingerprint scanner in action.
The project’s fifth update briefly covered user feedback and discussed a couple different buzzers that could provide audible feedback, as well as haptic feedback in the form of a gamepad vibration motor. He also provided a small breakdown of what the system’s LED indicator lights mean when displaying various colors and flash patterns. A week later the project’s sixth update arrived and we got our first look at version 2 of the Key Slider Mechanism which had been built out of thin plywood. This second prototype was a bit more refined, and you could start to see the direction that the final design might take.
Milos kicked off week seven by disassembling two magnetic pickup tools to procure the parts necessary to build the key selection mechanism. Once the magnets were disassembled, and the telescoping tubes separated, he was able to use hot glue to secure them to the top of the key slider mechanism. While fairly crude, this solution worked flawlessly and allowed the project to move forward.
The project’s next update arrived a few days later with Milos showing off the quick new addition to the electrical components. Wanting to add a sensor for fall detection, he incorporated an SW-420 vibration sensor module to the circuit and wrote a quick sketch to test things out. Unfortunately, the sensor proved to be too sensitive on this first test run, so adjustments were made in the software to tame things down a little. The rest of the update focused on repurposing an old power bank to add a battery and charging circuit to the mix to provide ample power and easy charging when needed. Milos had originally planned on a more involved power circuit, but time was running low, and this solution met his modified requirements, so he did what any responsible engineer would do, he just made it work.
Update nine was right around the corner, and all of the challengers were scrambling to finish their projects on time, but Milos stayed calm, cool, and collective, and spent this second to last update working on the key selection mechanism. With much of the mechanical assembly completed previously, it was time to add in the servo that would actuate the key sliders. Utilizing the small servo that came with the challenger’s kit, he was able to fit it perfectly into place and add a small pushrod to the end of the servo’s horn. This rod is used to push the key out of the end of the key dongle, and with that working, he was able to move on and finish up the mechanical assembly by adding a locking mechanism that secures the selected key in place for easier use. Milos posted a couple of demonstration videos with this post as well, so click the link above to see both features in action.
The project’s tenth and final update came just as the challenge deadline approached, with Milos detailing final assembly. Pinouts and the final code were provided as well to help guide those following along at home, followed by a couple of demonstration videos, one of which is posted above. The post concluded with some thoughts on future upgrades that would benefit the device’s functionality, and to make the final result a little more polished. He also mentions that a future iteration could include a mechanical lock to further add protection if the finger scanned is not recognized.
This project went on to take home the grand prize for this challenge, and I couldn't agree more with that decision. I’ve followed Milos’ progress since his first design challenge, and every project he works on turns out to be a gem, and I was really happy to see him win this challenge. The Fingerprint Skeleton Key was an excellently executed project, and I learned a lot. If I had to take one thing from this project that I want to work within the future it's the GROW R302 capacitive fingerprint sensor. I always assumed that you needed some hefty processing power to fully utilize these types of sensors, but that is apparently not the case.
That is going to wrap up my project coverage of project Fingerprint Skeleton Key. Congratulations to Milos for earning the top spot, and I can't wait to see what he designs and builds in future challenges. If you would like to learn more about the Design For a Cause Challenge, head over to its main page. That is going to wrap things up for me, so tune in later this week for another Design Challenge Project Summary here at Element14. Until then, Hack The World, and Make Awesome!