Tuesday, March 29, 2011

Keyboard Test

It's amazing what you can learn when you spend a few hours with a multimeter and a breadboard.  

The Kindle's keyboard does indeed use simple tactile switches as I had initially expected, but the wiring scheme was not very straightforward at all.  For this test I set up a series of tactile buttons from SparkFun to mimic the behavior of the Kindle's directional pad.  Up, Down, Left, Right, Enter (select) and Home were wired.  

The sample keyboard wired and ready for testing.

The test was a success, in that it proved that the keys can be cloned with simple switches.  Nevertheless, it illustrated a few more nuances that will need to be fully explored.

First, the keys auto repeat.  Holding a key will continually execute the given function, and the delay is surprisingly short.  I routinely advanced multiple lines vertically or multiple chapters to either side (yes, chapters - we'll come back to that in a second).  This means that we will probably need to use some sort of microcontroller to handle the timing.  If I'm getting unwanted repeats, how hard will it be for someone with a disability?

The second issue actually involved the left and right keys.  For the purposes of this project it is desirable to use the D-pad instead of the edge-mounted ">" and "<" keys for advancing to the next page, for the simple reason that the edge-mounted keys are routed to the motherboard through an additional, very small 4-conductor cable.  It's the same type of cable as the main keyboard connector, but it would be another part to solder and wire.  It would be far simpler to just use the D-Pad. 

Fortunately the D-pad's left and right buttons can be used in place of the standard keys on the side of the unit.  During testing however, I discovered that my cloned replacements advanced by an entire chapter with each click, not just one page.  A quick Google search for keyboard shortcuts suggests that the Alt key can be used to cause this sort of "fast forward" effect.  Alt+Right will advance to the next chapter (or annotation), and Alt+Left will back up to the previous one.  By pressing my Left and Right keys alone, I jumped by a full chapter, implying that the Alt function was automatically engaged on a signal line that I haven't yet wired.  This should be ironed out in a later test when I'm able to simulate more of the keyboard.  This test was just intended to show that the keyboard can, in fact, be cloned.

Finally there is a very subtle electrical issue that will still need to be addressed, but more research is required to properly document it.  Stay tuned.

You can see the keyboard test here.  Bask in the glow of my amateur film making skills.  Try to contain yourself.

Friday, March 18, 2011

Christmas in March!

It's always a good week when you get packages from both Mouser and SparkFun in the space of two days.  My Hirose connectors and ribbon cables arrived, along with a breakout board from SparkFun.

Remember the goal of this project, to create a custom keyboard for use with a standard Kindle.  The Kindle is a fantastic design, but only if you have small fingers or superior motor control.  For people with certain physical disabilities, this device is completely unusable.

Today we'll begin creating the physical adapter board that will allow us to solder buttons and such together to create a custom keyboard.  We'll worry about the actual layout and physical appearance later.  First we have to prove that this is even possible.  The first task is to gain access to each of the tiny conductors in the Flexible Flat Cable (FFC) on the Kindle motherboard.

The Hirose connector used on the Kindle is a 20-pin type, with 0.5mm pin spacing.  The only breakout I could find readily available is an 80-pin TQFP type, for use with certain microcontrollers.  It's a great design, with duplicate pads on both sides.  There are four possible mounting locations for a connector of this type on each side of the board, which means I can screw up the soldering 7 times and still not be out of luck.

I really only need one connector.  I bought six.  Turns out three was the magic number (surface mount soldering is tricky!).

Thanks to the surprisingly handy magnifying ring lamp my Dad got me back in college, I was finally able to secure the connector to the breakout without shorting any of the leads.  A quick continuity test with my multimeter showed that each pin was securely fastened to the board.

A couple scorch marks never hurt anyone...

Flat Flexible Cable (FFC) test fit

Now that we've got the connector attached to a suitable (albeit oddly shaped) breakout board, let's do one final sanity check.  We need to make sure the other end of the cable actually fits into the Kindle's socket.  This is the acid test, and will prove whether or not we actually bought the right connector.

It fits!

Whew!  That's a relief.  The cable fits securely into both the Kindle connector and my hacked-together breakout board.

That's enough for today.  Now that we have access to the keyboard, we can begin testing to figure out exactly how the buttons work.

Saturday, March 12, 2011

Kindle Teardown

I went to Best Buy and played with the Kindle in preparation for this project.  The first thing I did was to turn it over and look for screws.  To my horror, there weren't any.  I left empty handed and immediately went to my old friend The Internet.   Approximately 14 seconds after I started my search, I'd discovered two excellent videos showing me exactly how to take the Kindle apart.  Well, I should clarify that...  I knew I wouldn't have a problem taking it apart, the trick would be to make sure it still worked when I put it back together again.

Two site of note here, both are recent favorites of mine.  In no particular order, here they are:

www.eevblog.comThis video was the first I found, and was an excellent tour of the Kindle's guts.  Dave demonstrates exactly how to tear the unit down, and even offers some insight into its construction.  This was an excellent find, and I plan to spend a lot of time here going forward.

My only issue with the EEVBlog video above is that he didn't take the front panel apart to look at the keyboard.  That was the whole reason for this project, so I bookmarked his site and continued my search. 

www.tested.com:  This site is chock full of product reviews and teardown videos, and I quickly found the one I was looking for.  A complete teardown and reassembly video of the 3rd generation Kindle.  He didn't spend much time on the keyboard but he did completely disassemble the unit and spent some additional time on the disassembly procedure (especially as it relates to the screwless case!).  With this information I felt confident that I could completely tear down my Kindle without destroying it. It would be up to me to figure out the keyboard.

It should be noted that this site is not in any way affiliated with the above blogs.  They were an excellent resource for this project however, and I would be remiss if I didn't list them here.  Anyone trying a similar project as mine would find their information incredibly useful.

Enough talk!  Let's void a warranty.

The 3rd-Generation Kindle is a great piece of engineering.  It's much smaller than I expected it to be, and internally it's laid out in a way that allows surprisingly easy maintenance.
This Kindle is at the top of the button transplant list.

I've never used another eReader, so I don't have much to compare it to.  That said, I love it.  My sister loves to read but has trouble holding a book and turning the pages.  This will be exactly what she needs, we just need buttons she can work with!  

When I bought the Kindle the clerk at Best Buy very politely listed my options for extended service plans.  I had to stop myself from laughing out loud.  If only he knew that the first thing I'm going to do is take it home and void the warranty.  Let's get to it!

Challenge accepted.

The first thing you might notice is the fact that the back of the Kindle has no screws.  It's like a big sign saying "I dare you to crack this case open."  What do we say to a challenge like that?  "Watch me."

The case simply snaps together.  All you need to get it apart is a flat bladed screwdriver.  Insert the screwdriver into the seam that runs around the perimeter of the unit, pressing outward.  Once you're able to insert the screwdriver under the rear case, rotate it parallel to the table to pry it apart.  With a little luck this will open the case slightly, and you can move down a bit to the next spot.  Repeat the process all the way around and remove the case.

When the back case comes off, take a moment to look around.  Most notable here is the surprisingly large battery.  It is held in place by two screws, which are easily removed.

Battery screws, begging to be removed.

Once the battery is removed, it's time for the motherboard.  There are two sizes of screws used in the assembly of this device.  Those used to attach the battery are the larger of the two, and there are quite a few more on the frame, the 3G modem and the connector for external lights and such.  

Three screws hold the 3G modem (or in this case a plastic dummy) in place.

The rest of the large frame screws.

Once the silver screws are removed, it's time to get out the magnifying glass and tweezers and start in on the tiny little black screws.  There are 11 of them, and they actively try to hide from you. 

It's like playing "Where's Waldo?", but smaller and more expensive.

 With all the screws removed the motherboard is left floating, but it's not quite time to remove it yet.  There are four ribbon cables connecting all the front panel buttons to the motherboard, along with one miniature four wire cable with a JST-style connector for the speakers.  This connector is at the upper right corner of the image below, just to the right of the dummy 3G modem.  The red and black cable can be removed with a flat bladed screwdriver, or with your fingers (provided yours are smaller than mine!).  Three of the ribbon cables have "zero insertion force" (ZIF) sockets, and can be removed simply by flipping the top door of the connector and easing the cable to the side.  The last ribbon cable (bottom left) uses a different socket, and is a simple press fit.  Lift it straight up to disengage.

Four ribbon cables connect the front panel keys to the motherboard.

Once these have been successfully removed, the motherboard is floating free and can be removed.  Slide it toward the top of the Kindle slightly to free the connectors and switches at the bottom of the case, and lift the entire assembly up and away.  

Motherboard removed.  This is the back of the keypad.

When the motherboard is removed, you can infer the purpose of each ribbon cable removed in the previous step.  the two smaller cables are routed to the side buttons for turning pages.  The large ribbon cable on the lower right is routed to the main keyboard, and the final cable on the lower left handles the eInk controller for the display.

The front panel, from behind.  The display controller cable is clearly visible.

Once the keyboard is removed, the front panel is visible from the rear.  There are a few things to note here.  First, the ghost image on the eInk panel.  This type of display retains whatever was last displayed when power is removed.  Second, the keypad is a simple strip of silicone rubber, with small plungers on the rear of each key.  This type of keypad typically uses strips of conductive rubber on the back of each button to close a connection between two exposed traces on the circuit board underneath.  In this case however, the plungers are not conductive.  The assumption was that we would find pairs of exposed PCB traces to which we could solder wires and hijack each button.  Houston, we might have a problem...

The keyboard itself.

Looking at the keyboard itself, it is clear that we'll need a new approach.  There doesn't seem to be any simple way to connect wires to these buttons and have the user close the circuit by pressing something on the keypad.  

Unless...  This keyboard is connected to the motherboard via a 20-connector ribbon cable visible at the lower left of the image above.  Let's have a look at the connector to which it mates.

Flat ribbon cable connector for the keyboard.

This cable is the only connection between the main keyboard and the motherboard.  The signals from each key must be carried in this cable.  It's a 20-pin connector but I count 42 distinct keys on the front (not counting the four side-mounted buttons for turning pages.  This cable is still our best bet for intercepting the keyboard commands and injecting our own, but it's going to take some tinkering to figure out the signals.

First, let's have a look at the connector.  Flipping through the new Mouser catalog that conveniently arrived yesterday, it looks like this is an FFC (Flexible Flat Cable) connector from Hirose.  The arrow in the picture below confirms that the connector is a 20-position variety.

Closeup of the keyboard connector.

The closest match in the catalog appears to be the 798-FH28E20S05SH05.  

So, what have we learned?  The initial idea of simply soldering wires to the keyboard is out.  It's not feasible with this particular button style so we need a new approach.  We know that the keyboard signals are wired through this connector and cable back to the motherboard, but that cable is far too small and flimsy to solder to directly.  Fortunately it looks like we got lucky with Mouser and just might be able to find a suitable mating connector of our own.  

The next phase will be the creation of a suitable breakout board for that cable.  Once we're able to wire to all 20 signal lines, we can begin hacking the keyboard.  The goal remains the same: substitute our own buttons for the tiny factory keyboard.  

Time to hit www.mouser.com to order some connectors. 

The organ donor

This is the V.Reader.  During a recent trip to Best Buy my sister found that the buttons on this unit were easy to use, with her only complaint being the fact that it would only display books for kids.

I call it the Organ Donor.  Needless to say I didn't get the extended warranty coverage option.

A few screws on the back of the unit and it opens like a book.  The buttons are simple silicon rubber units with two wires attached to each.  A simple dry contact closure.

Once opened, the two wires from each button will be routed into the Kindle's interface board and with any luck they will work nicely as substitutes for the tiny little factory keypad.

The organs to be donated

Next, we'll tear the Kindle apart and see what we're getting ourselves into.

Wednesday, March 9, 2011

The first project! Big fat buttons for a Kindle

The project:  Modify a Kindle to accept buttons large enough to land a plane on.


  • New Kindle (3rd generation, Wi-Fi only)
  • V.Reader kid's e-reader, chosen because of its large button interface
  • A sweet magnifying ring light, chosen because the Kindle has some REALLY tiny screws on the inside
  • A keen desire to void a warranty
Problem:  My sister loves to read, but has difficulty using regular books.  Try turning pages and holding a book steady with your hands balled into fists, and you'll get an idea of what she's up against.  A device like the Kindle makes good sense for her, except that its keypad is far to small and intricate for her to be able to use it effectively.  During a recent trip to Best Buy she was able to play with a few different eReaders and found that the V.Reader worked well.  The only issue there is that it's made for kids and won't display adult level books.    

So what if we could take the best of both worlds, and make a device she could use?  The buttons on the V.Reader work well, so let's cannibalise it.  The idea is to simply hijack the keyboard interface to the Kindle's motherboard and add our own buttons.  Most buttons are simple dry-contact switches so in theory it should be possible to add our buttons in parallel with the existing switches and use them with minimal modifications to the Kindle.

Next time we'll take a look at the V.Reader's buttons and discuss how best to use them in our project.  After that we'll tear the Kindle apart and see if we can find a good way to solder (painfully small) wires onto the board.

Stay tuned!

Why start a blog?

My sister has Cerebral Palsy, which is a physical disability most commonly affecting motor control. I have a degree in Electrical Engineering, and love building things. 

It seems like a perfect fit, don't you think?

If you ask an Engineering student (or hobbyist, or hacker) why they chose their major, a common response might be some variation on, "to make the world a better place."  This is generic and vague to be sure, but the sentiment is respectable.  You're learning a field that puts you in a position to invent something, to create a device that makes someone else's life a little easier.  Maybe it's a new type of prosthetic limb, maybe it's the next-gen HD video camera.   Whatever the product, the goal is the same - to improve the quality of life on this planet.  My personal take on this is simple: my sister has difficulty using modern electronics with their tiny buttons and sensitive touch/tilt interfaces, so I'm going to see what I can do to help her out.

This blog was created to chronicle projects aimed at making it easier for disabled individuals, like my sister, to use common electronic devices.

It is my hope that this will be a place to see new ideas that haven't been tried before, or perhaps just a new take on an old idea.  Learn something from what I've done, or contribute an idea or tip/trick of your own. 

Okay, enough talk.  I've got warranties to void!