SecondFactorKeypad (Parts Crib)
The presentation for this hardware project has been completed and the build instructions for replicating the device is in the README for the project.
Redesigned PCB to include LED lights and Piezzo speaker to indicate correct/incorrect pin.
First 3D printing attempt at Idealab failed due to problems with filament. Vertical support on second 3D printed case was too high. Due to time restriction opted for a acrylic Case instead. This has added advantage of making LEDs easily visible withing creating holes for them in the case. Unfortunately didn't communicate need for clear acrylic case, will be sending for a clear top case this week. However, for the presentation I purchased an enclosure that fit my project from Amazon and milled holes using a Dremel handtool and circular saw.
Case used during presentation with old PCB:
Updated PCB:
Failed 3D printed case:
Presentation slides have been completed and can be found under the documentation folder
The snap-fit enclosure case for the keypad will have a support cross-section for the keypad to rest on as its current cantilevered position will damage the sockets/pins when pressure is applied to the buttons.
The files can be found at:
Update: As of November 26, 2019. The enclosure has finished printing but is currently in solution to remove the support material. The tentative date for completion is November 27, 2019.
The 12-Button Keypad uses a grid with switches were connections are closed and a lower resistance allows 5V to pass through. This method for reading key presses doesn’t require seperate pins for power and ground so powering up this PCB is as simple as plugging in the the input pins into the socket on the PCB connecting it to the inputs A0-A8 on the Nucleo-32.
As the images below show. The PCB is powered on and is communicating key presses serially to a terminal:
The first soldering of headers on the PCB was done on the wrong side of the board. I managed to desolder the headers and solder them back on the component side of the board. There is continuity between the headers and the development board and keypad work as they did on the breadboard:
While the original PCB was designed with LED’s and a Piezzo Buzzer in mind, I’ve decided to forego them as their functionality (notifiying a user of a correct or incorrect input) can be more easily implmented using Raspberry Pi which will be connected using the USB port on the Nucleo-32.
Besides that, the project is on schedule and no new parts were required.
It turns out that when I had straightened the header on the keypad, the contact between the solder and the copper surface flexed, taking the copper surface pads off the keypad with the exception of pins 8 and 4, which are for row 2 and column 1 respectively. This is likely why 4 was the only button working on the keypad.
I ordered and received another keypad:
This added an additional $15.75 to the budget (includeing shipping).
The new keypad works perfectly. Screenshots of the output and the code used.
The code was sourced from a tutorial example at: Robojax 4x3 Keypad Example
My code file can be found at: sotfware/blink_example1.ino
Soldered Header pins on to the Keypad. Red light and three buzzes when when entered number doesn’t match hardcoded value. Green light and single alarm when correct.
The Keypad appears to be defective. When running the only number that produces an output is 4. Also, when measuring the resistance between the corresponding col and row pins for each number, there is an open circuit with the exception of 4.
The rest of the components on the breadboard are working fine and I’ve ordered another keypad from Digikey to replace the defective one.
These designs are temporary as I'm using a Nucleo-32 instead of the STM32 blue pill board. I'm in the process of making designs with custom header pins based on the Nucleo L432KC in Fritzing
All parts arrived together on Tuesday, October 1, 2019
The Green and Red LED lights are for prototyping on the breadboard. The Nucleo L432KC has a built in debugger and is compatible with Arduino IDE. This week I'll setup the Arduino IDE environment to work with the board.
The parts have been ordered and should arrive by October 1st.
The total for the budget has changed as I've decided to use the NUCLEO-L412KB using mbed. This was due to the order for the blue pill being cancelled and prime shipping was no longer available.
Sub-Total: $86.84 CAD
Taxes: $11.29 CAD
Shipping: $8.00 CAD
Total: $106.13
Full Budget breakdown can be found Here: Budget Spreadsheet
Gantt Chart and Schedule Overview:
For my hardware project, I've decided to implement a two-factor authentication system using a Keypad.
This project will require at minimum:
Repository Created!