Simple Keypad Scanning With SPI And Some Hardware

16-button keypads have a clever method of encoding their data into 8 pins. Pins are mapped to four rows and four columns on the keypad. A user reads the keypad by bringing each row up to logic: HIGH, and reading the corresponding column values, (HIGH or LOW). Keypad scanning can be farmed out to a microcontroller with a simple finite-state machine and some button debouncing techniques. [Mario], [Glen], and [Paul] on the Netduino forums took an entirely different route: they’ve designed and implemented a Keypad Scanner using any microcontrollers SPI peripheral and a 74HC595 Shift register.

The trio’s solution is an elegant adventure into circuit design. With two diodes and a voltage divider, they devise a simple circuit that pulls the SPI MISO line LOW if a button in the corresponding circuit’s row is pushed closed. Copied four-fold, this circuit joins the rows and columns of the 74HC595 to the keypad matrix. To scan across the four columns, the microcontroller performs an SPI transfer of the key value: 0x01. To decode which button is pushed, the value received back from the SPI bus encodes which button was pushed out of the 16 possible buttons. Note: some cases for ambiguity as to “which button was pressed” do exist if multiple buttons are pushed at the same time, but for the general case where we’re punching in values one-by-one, this circuit works perfectly.

The team’s hack is a clever use of existing hardware to outsource a microcontroller’s software problem to hardware while leveraging the SPI peripheral to cleverly decrypt and retrieve data back from the keypad. Kudos to the team of three over at the Netduino Forums, and we’re always thrilled to see and idea grow from one person to the next. In case you want to take a step lower and build up the keypad itself, here’s a blast from the past that does just that.

Arduino Keypad Door Automation

arduino door pad

[Andrea] just sent us this great student hack he made for his room. He’s constructed an Arduino keypad door lock — without using any proper fastening hardware!

The entire build is made out of scrap parts he had lying around: some DVD’s, a bit of wood, an allen key, a motor and belt from a broken printer, an old hard drive enclosure, and a few power supplies. As you can see the entire setup is held up rather artistically using good old duct tape.

The system auto-locks after 5 seconds, and just in case, [Andrea] has hard-coded in a few safety codes into the firmware to allow him to forcefully open the door — you know, if it malfunctions or something. Not overly confident in his code, he also has it reset every 5 minutes of idling to safeguard against potential memory leaks — probably a good idea! All in all it’s a very cool build, and we have to give him props for not damaging the door to mount it! Down the road he’s also planning on adding a knock sensor using the small speaker that is already part of the circuit, because, why not?

Stick around after the break to see this magnificent contraption that would make Red Green proud.

Continue reading “Arduino Keypad Door Automation”

5 Digit Security Code Activated Relay Using Mostly Discrete Circuitry

alarm keypad

Let’s rollback the hobby electronics calendar a few decades with [myvideoisonutube’s] alarm activation control circuit using a matrix style phone keypad. The circuit is quite old using CMOS 4081 with 4 ‘AND’ gates to hardwire the access code. [myvideoisonutube] references [Ron’s] “Enhanced 5-Digit Alarm Keypad” schematic for this build changing the recommend keypad with a more common matrix style keypad found in touch pad phones. These types of matrix keypads wouldn’t work outright for the input so he cut some traces and added hookup wires to transform it into a keypad with common terminals and separately connected keys. We love seeing such hacked donor hardware even when it requires extensive modifications. [Ron’s] source circuit included a simple enough to build tactical button keypad if you can’t find a suitable donor phone.

Learning how to use mostly discrete components instead of a microcontroller would be the core objective to build this circuit outside of needing a key-code access point or other secure 12 V relay activated device. Such a device would be quite secure requiring a 4 digit “on” code and 5 digits for “off”. You couldn’t just pull off the keypad and hotwire or short something to gain access either. The 4 digit on “feature” does knock the security down quite a lot. However, all keys not in the access code are connected to the same point so you could increase your security by using a pad with more keys.

On [Ron’s] site you will find a detailed construction guide including top and bottom view for placement of all the components on veroboard. Join us after the break to watch [myvideoisonutube] demo his version.

Continue reading “5 Digit Security Code Activated Relay Using Mostly Discrete Circuitry”

Building a small keypad for strategy games

A month ago [Andreas] started playing Starcraft 2 again. As he was not comfortable with the default hotkeys on a normal keyboard, [Andreas] decided to build his own.

He started by salvaging keys from an old keyboard he had lying around, then 3D printed the case you see in the picture above to fit them. The keyboard electrical design is a simple matrix and it appears that he etched the PCB himself. To provide the required USB connectivity, the Atmega8U2 was chosen. It comes with a pre-programmed USB bootloader that [Andreas] chose to activate when the left key is pressed at the system startup. The HID class was implemented using the LUFA-USB Framework and the final product is definitely good looking.

All the files required to duplicate his design can be found here. You can also checkout another starcraft keyboard and an ergonomic keyboard that we previously featured.

Custom car keypad entry


[EdsJunk] loves the outdoors and using his Jeep Wrangler to get him there, but hiding a key just to go for a swim makes him nervous. After a friend showed him how convenient it was to have keypad entry to his vehicle, [EdsJunk] decided it was time he built his own.

The build uses a spare waterproof keypad attached to an Arduino Micro. [EdsJunk] simplified things by cannibalizing his extra keyless entry keyfob; if the ‘duino receives the right code from the keypad, it presses the unlock button on the keyfob to grant access. [EdsJunk] admits that the Wrangler’s soft top is easy enough to get into, but explains that the goal of this project is to keep the alarm activated, which would presumably go off if someone tried to break in through the soft top. You can watch a video demo of the keypad access below. This is another great addition to the multitude of hacks he’s performed on one vehicle.

We do, however, hope that there’s some kind of lockout built into the code to prevent brute forcing: it should be easy enough to activate the car’s panic button after a set number of failed attempts. Car hacks are popular this summer: check out the Real Car Remote Control if you missed it.

Continue reading “Custom car keypad entry”

Atari Combo Controller has what you need for any cartridge


Retro gaming enthusiasts take note: this joystick is what you need to play any Atari game on the original console. It plugs right into the original console hardware and removes the need to choose the joystick, paddle, or keypad controller separately. You just leave this puppy hooked up and move your hands to the set of controls used on each game.

[x2Jiggy] built the thing from scratch. The enclosure is a wooden box from the craft store. He holds it closed with a couple of magnetic latches like you might find on old fashioned kitchen cabinets. The buttons of the keypad are mounted on a chunk of protoboard but he did take the time to give it a coat of matching paint so that it doesn’t look out of place. Inside you’ll find some more protoboard and point-to-point soldering to complete the rest of the connections.

You can see a fast motion video of the build process after the break. This reminds us of the universal controller built for Project Unity.

Continue reading “Atari Combo Controller has what you need for any cartridge”

The Keypad Contest


What can you do with ten buttons and ten lights? A lot.

[Andrew] and [Nathan] found a collection of Hale Research keypads being thrown out, and decided to host the Keypad Contest. The goal of the contest was to create something nifty using the ten buttons and ten lights on the keypad, and an ATtiny2313 that replaced the original 8051-compatible microcontroller in the device.

[Andrew] wanted to try making PCBs with his home-built CNC machine, so he milled out USBtinyISP programmers for the ATtiny2313. Then he gave out eleven development kits to a group, and explained how to develop on the hardware.

After a month of hacking, seven people completed projects. The winner was an internet radio controller, which had the keypad sending serial data to a TP-Link WR703N router. The router used a USB sound card and OpenWRT firmware to stream music. The runner up was a timing game called “Capture”.

The contest write up has details on all seven projects. [Andrew] and [Nathan] were successful in getting software engineers to try hardware with this contest, resulting in some neat hacks. After the break, check out a video demo of the internet radio controller.

Continue reading “The Keypad Contest”