Friday, June 24, 2011

Not for Cat Lovers

This is hack features one of the funniest hack videos I've seen yet:

Saturday, June 18, 2011

Keypad Controller Demo Video & Walk-through

Video Walk-through: 

Demo: Power-on the phone, then wait to boot.  Next, dial 0-1-2-3-4-5-6-7-8-9-#-* then key down, down, down, down, up, down, OK, wait a couple of seconds, then cancel.  Repeat dial sequence two more times.  Then power key again to turn it off.  Then a quick tour of the hardware...

Tour of the hardware:  The phone is an LG "Flare" (LX165) from Virgin Mobile.  There are 24 keypad buttons on this phone.  The phone is wired with two Cat5 wire bundles because I had some handy and I like the easily identified wires all nicely bundled together.  However, instead of using 48 wires and 24 relays to control the 24 buttons, I use only 14 wires.  These wires are soldered to specific phone keypad conductors that I determined to make up the "rows" and "columns" of  the keypad matrix.  I connected these wires to a cross-point switch circuit on my board.  For the cross-point switch, I am using 6 Vishay ILQ2 quad opto-coupler ICs instead of relays.  When compared to relays, like the OMR-C-105H used for the power control, the opto-couplers are more compact and cost about half as much per switch.  To control the opto-couplers I am using three 74HC138A ICs which are 3-to-8 bit decoders with complementary outputs.  From the decoders there are 6 wires to the Arduino UNO board.

I have posted schematics for the board design.  Click the "Appendix" tab (above).

The real trick to the entire hack is reverse-engineering the phone's keypad.  I will publish a separate post on that topic later.

What's Next?

For the most part, I think the hardware to control the phone finished.  Now I have a bunch of software to write.  To start, I am going to work on composing text messages.  To do this, I'm going to figure out how to interactively control the phone thru my PC or some other means.  I am thinking of reverse-engineering an IR remote control for this.  I know.  It is more than a little ironic.  But, since the phone's keypad is now useless,  I can no longer use it to play around with the phone and figure out how to navigate through the menus and compose text messages.  This will be much faster if I can do it interactively.

Friday, June 17, 2011

Mobile Phone Keypad Button Controller

This is a hack that breaths new life into an old "button phone."

Button keypads for mobile phones are quickly becoming an anachronism and may soon go the way of the rotary dial on land-line telephones of yore. 'Tis a shame... and an opportunity.  Hacking a keypad is easy.  I cannot imagine hacking a touch screen to be as easy.   So, it is a shame that as button phones become rare, hacking mobile phones will become more difficult.  On the other hand, the relatively low demand for button phones has driven the cost down into my "why not break it & change it" range.  So, if you can't find where you stashed your old phone, you can pick one up used really cheap (<$10 + S&H).

Part of the fun of this project is reverse-engineering the phone keypad and wiring it up for "remote control".  For me, that is where it all started.  From there, I designed a cross-point matrix using optocouplers to control all of the keys without using a pair of wires for each key.  In my case, I have 14 wires connected to the phone to control 24 keys.  I could have used relays, but these quad optocouplers are much more compact than any 5V relays I've ever come across.  Using a few 3-to-8 bit decoders, I am able to control all 24 keys with only 6 pins of the microcontroller (uC).  Overall, the hardware will be phone independent and software will take care of phone-specific features.

On the software side, I'm trying to make it relatively easy to adapt to different phones by changes to a header file that maps phone keys to uC output pins.  This is just in case I damage the existing phone and need to wire-up a different one.  Beyond that this design will be pretty much "phone independent"

As of today, I have finished a hand-wired solder-board to control all of the phone's keys. Over the next few weeks, I will discuss this hack in more detail, starting with the reverse-engineering the keypad. 

Below is a very short video of a dialing test to whet your appetite.

In this video, I am using the board to "auto-dial" 4 keys.  The phone starts off powered-up, but with the screen off.  When I power-on the Arduino board with the USB cable, the screen is powered on, the previous number is cleared, and 4 keys are dialed (#789).  Then it stops doing anything else.  I know, it is not very exciting, but after several hours looking for a befuddling build error, it is finally working.  So, I am excited to share this little triumph.  I promise a more interesting test/demo video after I've spent some more time writing and debugging the software.