# # $Id: README.HD44780,v 1.2 2000/04/19 04:44:20 reinelt Exp $ # This is the README file for the HD44780 display driver for lcd4linux This driver supports all display modules based on the Hitachi HD44780 chip. These displays are made by different manufactures, and come in various sizes. The following types are known to work: DataVision DV16244: 2 lines by 16 characters Nan Ya NLC 08x2x06: 2 lines by 8 characters The displays are connected to the parallel board (see Wiring below), and are quite timing-critical. There's no way to delay a usermode program under Linux for e.g. 40 usec, so we have to do busy-waiting. This is done in a delay loop, which has to be calibrated (see Configuration below). The driver supports vertical, horizontal and split bars (two independent bars in one line), all bar types can be used simultanously. As the displays only have 8 user-defined characters, the needed characters to display all the bars must be reduced to 8. This is done by replacing characters with similar ones. To reduce flicker, a character which is displayed at the moment, will not be redefined, even if it's not used in this run. Only if the character compaction fails, this characters will be redefined, too. Configuration: The driver needs the following entries in lcd4linux.conf: Display: HD44780 Port: the hexadecimal address of the parallel port (e.g. 0x378) Size: [columns]x[rows] e.g. "16x2" Delay: calibration of the delay loop, loops per microsecond It is very important to use a correct delay value, otherwise you will get only junk on the display. lcd4linux has a switch '-d' where it helps you to find the correct value. Run 'lcd4linux -d' several times on a otherwise idle machine, and use the maximum value. If you encounter display problems, increase this value. But don't take it too big, lcd4linux will get slow, and you're burning CPU cycles. The delay value is defined by your CPU model and clock frequency (it looks like it's your 'BogoMips' value divided by 2, because we use a similar delay loop than the kernel does). Here are some examples: Pentium MMX, 133 MHz, 106 BogoMips: 54 Pentium MMX, 166 MHz, 333 BogoMips: 166 Celeron, 333 MHz, 333 BogoMips: 166 Pentium III, 600 MHz, 600 BogoMips: 300 Wiring: There are two basic wiring modes for HD44780-Displays: a 4 bit mode (used by lcdproc) and a 8 bit mode (used by most other packages). At the moment we only support the 8 bit mode, but I'm working on the 4 bit mode, too. The main difference is that the 8 bit mode transfers one byte at a time, but the HD44780 needs some control signals, so some of the parallel port control lines are used for this. The 4 bit mode uses only 4 bits for data (so a byte has to be transferred in two cycles), but you can use the other 4 bits for the control signals. Normally a HD44780-based display have 14 or 16 pins, where pins 15 and 16 are used for backlight. Power (+5V) must be supplied via pins 1 and 2, be careful not to change polarity, you will destroy your display! Pin 3 is used to control the contrast, you can either hardwire it to GND (pin 1) or place a potentiometer (10k-20k) between pins 1 and 2, and connect pin 3 to the slider. Note that the data bits are called DB0..DB7 on the display, but DB1..DB8 on the parallel port! Here comes the wiring diagram for the 8 bit mode: --- Display --- --- DB25 --- --- comment --- Name Pin Pin Name GND 1 18 GND GND of power supply, too! +5V 2 - power supply only LCD drive 3 - see above RS 4 14 Auto Feed register select, 0=data, 1=command R/W 5 18 GND hardwired to 0, write data only Enable 6 1 Strobe toggled when data is valid DB0 7 2 DB1 data bit 0 DB1 8 3 DB2 data bit 1 DB2 9 4 DB3 data bit 2 DB3 10 5 DB4 data bit 3 DB4 11 6 DB5 data bit 4 DB5 12 7 DB6 data bit 5 DB6 13 8 DB7 data bit 6 DB7 14 9 DB8 data bit 7 +5V 15 - power for backlight GND 16 - power for backlight 10-13 not connected 15-17 not connected 19-25 not connected Wiring diagram for 4 bit mode: soon to come! :45:40 +0000'>2012-03-25modbuslog: force interval wrap aroundJonathan McCrohan1-1/+1 A hand edited file could miss the wrap around magic number and miss it. 2012-03-24ftphelper: add --version argumentJonathan McCrohan1-0/+8 2012-03-21Double the width of registervalueJonathan McCrohan1-1/+1 2012-03-14modbuslog: Fix bitshiftingv1.4Jonathan McCrohan1-5/+2 Was not working correctly with Digirail 4C 2012-03-13modbuslog: fix logic typov1.3Jonathan McCrohan1-1/+1 break != continue Introduced in 1cac28534c332d771bfd7a1a216bdaacbfe27fd1 2012-03-13modbuslog: reindentJonathan McCrohan1-3/+4 2012-03-13modbuslog: Make debug messages more 'English'Jonathan McCrohan1-1/+4 2012-03-13modbuslog.cfg: set /dev/ttyUSB0 as default entryJonathan McCrohan1-1/+1 2012-03-13modbuslog: improve error handlingJonathan McCrohan1-3/+6 2012-03-13modbuslog: fix syslog regressionJonathan McCrohan1-1/+1 Introduced in 58bba2bc1f7da50109467a5ffd233b94623deac5 2012-03-13modbuslog: Surround syslog outputs with bracketsJonathan McCrohan1-8/+8 2012-03-13ftpupload: use fully qualified pathsJonathan McCrohan1-3/+10 cron requires them 2012-03-12Force log upon startupJonathan McCrohan1-2/+8 2012-03-12ftphelper: Fix off by one errorv1.2Jonathan McCrohan1-7/+7 Date in filename represents file generation time, not date of logfile. Throwback to fieldcommander sqlite to logfile days. 2012-03-12Add cron.d entryJonathan McCrohan2-0/+9 2012-03-127 day rolling uploadJonathan McCrohan1-8/+22 2012-03-09Fix ftpuploadJonathan McCrohan1-1/+5 2012-03-07ReindentJonathan McCrohan1-5/+6 2012-03-07Made logs more 'English'Jonathan McCrohan1-3/+4 2012-03-07Surround log startup notice with empty linesJonathan McCrohan1-0/+2 2012-03-07Add compile time version numbersJonathan McCrohan2-1/+10 Uses git tags as version number 2012-03-05Fix copypasta errorv1.1Jonathan McCrohan1-10/+18 wrong variable used. 2012-03-05Rearrange syslog output to read 8N1 rather than N81Jonathan McCrohan1-2/+2 2012-03-05Refactor codeJonathan McCrohan2-6/+4 No source chances, reindent only. 2012-03-05Add syslog loggingJonathan McCrohan1-24/+57 2012-03-04Remove unused #define statementsJonathan McCrohan1-3/+0 2012-02-20Prune archive after 3 monthsJonathan McCrohan3-0/+7 2012-02-20Update documentationJonathan McCrohan1-3/+5 2012-02-20Add PHP to make installJonathan McCrohan1-0/+3 2012-02-20Update MakefileJonathan McCrohan1-0/+17 2012-02-20Move interval.txt to src/Jonathan McCrohan2-1/+1 2012-02-19Remove debug/testing files.Jonathan McCrohan50-4742/+0 2012-02-15Archive files after upload.Jonathan McCrohan1-0/+2 2012-02-12Fix typo in README.Jonathan McCrohan1-1/+1 2012-02-12Add ftp upload function + add documentation.Jonathan McCrohan5-3/+151 2012-01-10Handle 32bit signed overflow.Jonathan McCrohan1-1/+6 2012-01-10Update README.Jonathan McCrohan1-1/+3