USB LCD/VFD Controller
DECLARATIONS
- THE INFORMATION PROVIDE BY THIS SITE HAS NO GUARANTEE, SO USE IT ON YOUR RISK!
- THE INFORMATION CONTAINS HERE HAS NO COPYRIGHT AND COPYRIGHT RELATED. DON'T BOTHER ME ON THIS!
- ALL TRADE MARKS MENTIONS ARE HOLD BY ITS OWNER.
- I DON'T SELL ANY THING. SO, PLEASE DON'T ASK ME TO HELP YOU ON BUILDING SOMETHING. YOU HAVE TO DO IT BY YOURSELF.
USB LCD/VFD Controller is a HD44870 based LCD/VFD controller via USB interface. The control command is compatible with Matrix-Orbital's LCD module.
So, you can use any MO friendly software to control this baby. Such as LCDC...
The firmware are based on David Potter's Serial LCD/VFD Display,
but I almost rewrite the entire code.
I build this controller based on a PIC16F873 MCU. The main feature are:
- Use a FTDI FT232BM chip as the USB bus controller.
- The whole device are work in Bus-Power mode, and no external power are needed.
- Supports industry-standard LCD interface (Hitachi HD44780 or "14/16 pin" interface)
- Configured for 16x2,20x2,20x4,40x2 LCD/VFD module.
- Hareware 19200-baud RS-232 input, 96 bytes of receive buffer. Flow control are not supported
- Standard software commands such as clear screen, cursor move, etc.
- Supports custom characters
- The LCD/VFD can configured via commands
- The Splash screen can changed to whatever you want
- 2 GPO
- 4x4 Keypad
- The LCD contrast could be configured by software.
Notice:
Not all M-O commands are implemented, not so much. Please wait for future release.
Command Table:
| Char |
Hex |
Command |
Parameter |
Comments |
LCD Test |
VFD Test |
| & |
0x26 |
Pool keypad |
|
|
|
|
| 3 |
0x33 |
Set I2C address |
<address> |
|
|
|
| 4 |
0x34 |
Set Serial Number |
<byte1><byte2> |
|
|
|
| 5 |
0x35 |
Read Serial Number |
|
|
|
|
| 6 |
0x36 |
Read Version Number |
|
|
|
|
| 7 |
0x37 |
Read module type |
|
|
|
|
| 9 |
0x39 |
Set RS232 port speed |
<speed> |
|
|
|
| : |
0x3A |
Enter Flow Control Mode |
<full><empty> |
|
|
|
| ; |
0x3B |
Exit Flow Control Mode |
|
|
|
|
| = |
0x3D |
Make Vertical Bar Graph |
<column number><bar length> |
|
OK |
OK |
| @ |
0x40 |
NO USE |
|
|
|
|
| A |
0x41 |
Auto transmit keypresses on |
|
|
|
|
| B |
0x42 |
Backlight On |
<minutes> |
not full |
OK |
OK |
| C |
0x43 |
Auto Line Wrap On |
|
|
OK |
OK |
| D |
0x44 |
Auto Line Wrap Off |
|
|
OK |
OK |
| E |
0x45 |
Clear key buffer |
|
|
|
|
| F |
0x46 |
Backlight Off |
|
|
OK |
OK |
| G |
0x47 |
Go To Position |
<column><row number> |
|
OK |
OK |
| H |
0x48 |
Go To Top Left |
|
|
OK |
OK |
| I |
0x49 |
NO USE |
|
|
|
|
| J |
0x4A |
Cursor On |
|
|
OK |
OK |
| K |
0x4B |
Cursor Off |
|
|
OK |
OK |
| L |
0x4C |
Cursor Left |
|
|
OK |
OK |
| M |
0x4D |
Cursor Right |
|
|
OK |
OK |
| N |
0x4E |
Create Custom Character |
<cus char><8 bytes> |
|
OK |
OK |
| O |
0x4F |
Auto transmit keypresses off |
|
|
|
|
| P |
0x50 |
Set Contrast |
<contrast> |
|
OK |
N/A |
| Q |
0x51 |
Auto Scroll On |
|
|
OK |
OK |
| R |
0x52 |
Auto Scroll Off |
|
|
OK |
OK |
| S |
0x53 |
Cursor Blink On |
|
|
OK |
OK |
| T |
0x54 |
Cursor Blink Off |
|
|
OK |
OK |
| U |
0x55 |
Set Debounce Time |
<time> |
|
OK |
OK |
| V |
0x56 |
GPO On |
<gpo no> |
|
OK |
OK |
| W |
0x57 |
GPO Off |
<gpo no> |
|
OK |
OK |
| X |
0x58 |
Clear Display |
|
|
OK |
OK |
| Y |
0x59 |
Set Brightness |
<brightness> |
VFD only |
N/A |
OK |
| Z |
0x5A |
Set Module Type |
<width> <lines> <type> |
|
OK |
OK |
| [ |
0x5B |
Load Startup Screen |
<char> * 40 |
|
OK |
OK |
| ` |
0x60 |
Auto repeat mode off |
|
|
|
|
| h |
0x68 |
Initialize Horizontal Bar Graph |
|
|
OK |
OK |
| s |
0x73 |
Initialize Thin Bar Vertical Graph |
|
|
OK |
OK |
| v |
0x76 |
Initialize Thick Vertical Bar Graph |
|
|
OK |
OK |
| | |
0x7C |
Make Horizontal Bar Graph |
<column><row><direction><length> |
|
|
|
| ~ |
0x7E |
Auto repeat mode on |
<mode> |
|
|
|
|
0x91 |
Set contrast and save |
<contrast> |
|
OK |
OK |
|
Note:
Commands in yellow means not implemented yet.
Command in white means MO compatible.
Command in blue meas new command invent by me.
, Jerry Han