[Scott] was looking to source some LCD screens for an upcoming project, and was considering buying them from SparkFun. While the Nokia panels they sell are not expensive, they aren’t necessarily the cheapest option either – especially when building in volume.
He searched around for something he could use instead, and settled on Blackberry screens. Old Blackberry models were even more durable than the current offerings, plus companies are trying to get rid of old handsets by the truckload. The only problem was that he could not find any information online that would show him how to write to the screens.
It took a bit of digging, but he eventually determined which ICs were used to drive the LCD screen. He had no luck finding screen pinout information online, so after spending a few hours testing things with his multimeter, he came up with a full listing on his own.
He wired up a connector so that he could use the screen on a breadboard, then got busy writing code to display some text on the screen. Everything came together nicely as you can see in the video below, and he has released his code in case anyone else is looking to repurpose some old Blackberry screens.
All we want to know is what sort of project all these screens are going to be used in.
Blackberry R957M Screen |
I wanted to play with a graphical LCD. I looked at some modules, like this one from SparkFun or this one from NKC. You might notice that while they're not too expensive, they aren't the cheapest. I have plans to make a few of something, the cost of a bunch of screens was going to add up, and so I looked for a cheaper solution.
I was interested in the way that sparkfun was selling an LCD out of the old Nokia phones. I started looking around, and thinking of what kinds of old, discarded technology I could steal LCD screens from. Then I hit upon the idea of using blackberry screens. So far as I can tell, no one else has actually cracked one open to take the screen out of it.
In particular, some of the early pager models have these great 160x160 pixel monochrome screens, and anyone who has ever accidentally drop-kicked one of these across a room knows they're pretty darned tough. I was especially interested because these are pretty high-resolutions screens for what they are, and they're in devices that are still available in large numbers on ebay. It seems that entire companies' worth of these things end up getting sold in boxes of dozens at a time.
So, I bought some, and took one apart. The screens are apparently part number 0316EP, or L1F01160P05.
My usual tactic of googling every part number on the thing didn't get me any immediate results, but I did find out that they have Epson SCI7500F0A IC's in them that appeared to be some sort of LCD voltage supply. After some more head-scratching, I worked out that they appear to have SED1590 LCD driver IC's in them. These are great little LCD driver chips that have their own internal RAM, and you just write to that over a parallel interface, and the contents of that buffer are constantly drawn to the LCD. The reason it was confusing is that these controllers are also driving the LCD columns, so they're not in a plastic package - the silicon seems to be bonded directly to a flex connector going to the LCD panel itself. This seems to be normal for LCD's, but it took me a while to figure out where this IC was on the module.
Next, I needed to work out the pinout of the connector. With a couple of hours and a multimeter, I got it figured out. It has all of the needed data lines on it to talk to the controller over parallel and a few other digital input lines (12 total). See the SED1590's datasheet for the full protocol.
- GND
- GND
- GND
- GND
- Alert LED +
- Vibration Motor +
- Backlight enable
- CS
- RESET
- A0
- WR
- RD
- D0
- D1
- D2
- D3
- D4
- D5
- D6
- D7
- GND
- 3.3V
- GND
- Backlight Power + (was coming form the battery)
Next, I had to deal with that tiny connector. It's a 24-pin 0.5mm pitch FFC connector. I made an adapter board so I could breadboard the thing, and used a heat gun to steal the connector off of the donor Blackberry's main board.
Soon, I wrote some C code for an atmega644p, and after some silly mistakes (did you know that JTAG is on by default, and overrides the pin functions on 4 pins?), I had it displaying some text. In these photos, I have it displaying a scrolling Atmel logo, updating at something over 30fps. And I have a box full of blackberrys coming from ebay, so I should have enough for my next project.
The C code I used is attached. Take a look at it if you'd like, but beware that it's ugly - it was just for a quick test. I don't have the breakout board files handy, but it was pretty simple to make.
Added Bonus: Video!
Update
I've attached the eagle files that I used to make that breakout board, so feel free to use it if you want to try using one yourself. You'll need a 24-pin 0.5mm pitch FFC connector, a steady hand for soldering, and a 20-pin 0.1" header.
This comment has been removed by the author.
ReplyDeleteNice blog Content.It is very informative and helpful. Please share more content. Thanks.
ReplyDeleteMCSE institute in Noida