SecondFactorKeypad

SecondFactorKeypad (Parts Crib)

View the Project on GitHub c3ko/SecondFactorKeypad

December 10, 2019

Project Completion and Build Instructions

The presentation for this hardware project has been completed and the build instructions for replicating the device is in the README for the project.

December 3, 2019

Update

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: Presentation enclosure Updated PCB: Updated PCB

Failed 3D printed case:

3d case bottom

3d case bottom

November 26, 2019

Presentation Handed In

Presentation slides have been completed and can be found under the documentation folder

November 19, 2019

Enclosure Progress

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.

keypad enclosure

The files can be found at:

Bottom part of Enclosure STL

Top part of Enclosure STL

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.

bottom enclosure progress picture top enclosure progress picture

November 11, 2019

PCB Powered On

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.

keypad pinout

As the images below show. The PCB is powered on and is communicating key presses serially to a terminal: keypad pcb keypad pcb

November 5, 2019

PCB Soldered

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:

keypad pcb

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.

October 29, 2019

Update

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:

keypad pcb

This added an additional $15.75 to the budget (includeing shipping).

The new keypad works perfectly. Screenshots of the output and the code used.

keypad pcb keypad pcb

The code was sourced from a tutorial example at: Robojax 4x3 Keypad Example

My code file can be found at: sotfware/blink_example1.ino

Breadboard Milestone

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. breadboard

October 15, 2019

Updated Fritzing Designs

keypad pcb keypad breadboard keypad schematic

Fritzing Designs

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

keypad pcb keypad breadboard keypad schematic

October 8, 2019

Proof of Acquisition

All parts arrived together on Tuesday, October 1, 2019

Nucleo Piezo Keypad Green LED RED LED Raspberry Pi

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.

October 1, 2019

The parts have been ordered and should arrive by October 1st.

invoice list

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.

invoice totals

September 24th, 2019

Budget Summary

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

September 17th, 2019

Gantt Chart and Schedule Overview:

gantt chart

September 10th, 2019

For my hardware project, I've decided to implement a two-factor authentication system using a Keypad.

This project will require at minimum:

September 9th, 2019

Repository Created!