Like so many others, we found a nice 1.8″ TFT display in China, and we decided to make a breakout for it. Instead of just breaking out the pins, and perhaps adding the micro SD card holder, we equipped our version with an USB enabled microcontroller and a few buttons for GUI projects.
This display is based on the ST7735R controller and is capable of driving 160×128 RGB pixels with a color depth of 18 bits (262.144 colors) maximum. This great little display has all the circuitry required to drive it onboard, and runs from a single 3.3 volt power supply. It also uses a serial protocol, so only a few pins are needed to interface it.
It has also some drawbacks. It doesn’t have a character generator like the trusty old HD77480, so the font needs to be stored in the microcontroller which takes up lots of space. Another drawback is that the display only takes raw image data and not indexed data. Every pixel takes at least 16 bits, which makes the total transfer about 40k for each screen.
Besides the lovely TFT this board features the following things:
- Micro SD card holder
- Footprint designed to fit into a 5 1/4 drive bay cover
- MiniUSB connector
- USB connection is solderable (for internal PC use)
- Unused pins are broken out (digital I/O and analog input)
- Broken out pins are PPS (PeripheralPinSelect) capable
- 3V3 and GND broken out
- Buttons are broken out
- PIC18F26J50 uC
This is the backside of the board, still covered in flux after a midnight soldering session. It took us a couple of revisions to get is to this stage. Perhaps you remember this post? That was revision 2 or 3 of this board, and we got it finally right this time (though C8 should be further away from the uSD ). Ah well, lets move to the fun part, the schematic.
The display and micro SD connection are straightforward, and are connected to the PIC SPI pins. Both get a separate /CS (chip select) pin. The display also gets a pin for RS, and /RESET. The backlight is switched on and off through a transistor.
Four buttons are added for interfacing: plus, minus, ok and back. We found this to be the minimum for a decent decent menu system.
While graphic LCDs are cool, there’s still a ton of support for old character LCD. To bridge that gap, the firmware emulates the classic character-based Matrix Orbital serial protocol. Using the USB interface, this display supports PC programs that display news, email notices, and system stats on character LCDs, such as LCDproc (Linux) and LCDsmartie (Windows).
Some the TFT graphic display has a lot of features (like color!) that old character LCDs lack, we extended the Matrix Orbital command set. New custom commands change the text color and display a picture stored on the uSD card.
As always comments and suggestions are very welcome on this new prototype design.
Grab the latest design files from our SVN.