Base: LCDproc 0.5.2
[lcdproc-de200c.git] / docs / lcdproc-user / drivers / serialVFD.docbook
blobcc9bbb89efc8d3ace49593c6817f55d5c3600203
1 <sect1 id="serialVFD-howto">
2 <title>The serialVFD Driver</title>
4 <para>
5 This section talks about using LCDproc with VFD character-displays build by NEC, FUTABA and NORITAKE.
6 </para>
9 <para>
10 The serialVFD-driver is working with NEC FIPC8367 based VFDs
11 and the "KD Rev 2.1" (an ATMEL AT90S.... based FM20X2KB-AB replacement).
12 It is also known to work on FUTABA VFDs.
13 </para>
15 <para>
16 The driver should operate most of NEC, Futaba and Noritake 7x5 dot VFDs with
17 serial(RS-232) and/or parallel interface. See the following table for testing-status.
18 Feedback is welcome.
21 <table id="serialVFD-howto.status">
22 <title>serialVFD: Display Status</title>
23 <tgroup cols="6">
24   <thead>
25     <row>
26       <entry>Display</entry>
27       <entry>Controller</entry>
28       <entry>Serial</entry>
29       <entry>Parallel</entry>
30       <entry>Display tested</entry>
31       <entry>Remark</entry>
32     </row>
33   </thead>
34   <tbody>
35     <row>
36       <entry>NEC FM20X2KB-AB</entry>
37       <entry>NEC FIPC8367</entry>
38       <entry>Ok</entry>
39       <entry>Ok</entry>
40       <entry>Yes</entry>
41       <entry> </entry>
42     </row>
43     <row>
44       <entry>NEC FC20X2JA</entry>
45       <entry>NEC FIPC8367</entry>
46       <entry>(Ok)</entry>
47       <entry>(Ok)</entry>
48       <entry>No</entry>
49       <entry>Same Controller as on FM20X2KB-AB</entry>
50     </row>
51     <row>
52       <entry>NEC FC20X1SA-AB/AA</entry>
53       <entry>NEC FIPC8367</entry>
54       <entry>(Ok)</entry>
55       <entry>(Ok)</entry>
56       <entry>No</entry>
57       <entry>Same Controller as on FM20X2KB-AB</entry>
58     </row>
59     <row>
60       <entry>KD Rev 2.1</entry>
61       <entry>AT90S.... microcontroller</entry>
62       <entry>Ok</entry>
63       <entry>Ok</entry>
64       <entry>Yes</entry>
65       <entry> </entry>
66     </row>
68     <row>
69       <entry>FUTABA M402SD06GJ</entry>
70       <entry>?</entry>
71       <entry>(?)*</entry>
72       <entry>Ok</entry>
73       <entry>Yes</entry>
74       <entry>(* perhaps no compatible baudrate, not tested)
75  The display has no user-characters: set <command>Custom-Characters=0</command>
76  in <filename>LCDd.conf.</filename></entry>
77     </row>
78     <row>
79       <entry>FUTABA M204SD01AA</entry>
80       <entry>FUTABA 5P00A016</entry>
81       <entry>(Ok)</entry>
82       <entry>(Ok)</entry>
83       <entry>No</entry>
84       <entry> </entry>
85     </row>
86   <row>
87       <entry>Samsung 20S204DA2</entry>
88       <entry>?</entry>
89       <entry>Ok</entry>
90       <entry>Ok</entry>
91       <entry>Yes</entry>
92       <entry>The display is FUTABA compatible (hard- and software). Set <command>Custom-Characters=0</command>
93  in <filename>LCDd.conf.</filename> </entry>
94     </row>
96     <row>
97       <entry>Noritake CU20026SCPB-T</entry>
98       <entry>microcontroller</entry>
99       <entry>(Ok)</entry>
100       <entry>(Ok)</entry>
101       <entry>No</entry>
102       <entry> </entry>
104     </row>
105     <row>
106       <entry>Noritake CU20045SCPB-T28A</entry>
107       <entry>?</entry>
108       <entry>(Ok)</entry>
109       <entry>(Ok)</entry>
110       <entry>No</entry>
111       <entry> </entry>
112     </row>
113   </tbody>
114 </tgroup>
115 </table>
117 <literal>(</literal>&hellip;<literal>)</literal>: Feature not tested.
118 </para>
120 <para>
121 If your display isn't working 100% satisfactorily you can add a new device with modified hardware
122 commands to the driver if you want. To do that you have to add a new section to the display
123 <command>Type=</command>-switch-case in <filename>./server/drivers/serialVFD-displays.c</filename>
124 and to write a new "load" function with the correct commands for the display.
125 (Try which display <command>Type=</command> works best with your display, 
126 then copy, rename and modify this function to your needs - that is the easiest way I guess.)
127 </para>
129 <para>
130 On Malte Poeggel's page you may find pictures and datasheets of the VFDs:
131 <ulink url="http://www.maltepoeggel.de/html/vfd/index.html"></ulink>
132 </para>
134 <para>
135 It is possible to switch the display off and back on while the server is
136 running. It may take a few minutes until the next full refresh makes
137 the display show everything correctly.
138 </para>
141 <sect2 id="serialVFD-connections">
142 <title>Connecting The Display</title>
144 <para>The Connections shown have been tested successfully.</para>
146 <warning>
147 <para>
148 Always cross-check with your datasheet, before connecting your display!
149 Different displays of even the same manufacturer may have different pin assignments!
150 </para></warning>
152 <para>
153 With this example connections it will be easy to connect displays with
154 different connector pin-layouts, the pins are commonly named equal in
155 the datasheet.
156 </para>
158 <sect3 id="serialVFD-serial-connections">
159 <title>Serial Connections</title>
161 <para>
162 It is <emphasis>not</emphasis> possible to connect most of the displays directly to the
163 serial port. The signal has to be inverted. I use the following
164 circuit to do that job.
165 </para>
167 <figure id="serialVFD-serial-connections.circuit">
168 <title>serialVFD: Serial Inverter</title>
169 <screen>
170 <![CDATA[
171 Computer                                          Display
172                                                   (signal)
173 HDD Powerconnector
174 color(Voltage)
176 red(+5V)    ----------------------------------o----- +5V
177                                               |
178 black(GND)  ----------------------o          .-.
179                                   |          | | 10k
180 Serial(SUB-D  9Pin female)        |          | |
181 pin(signal)                       V*         '-'
182            ___                                |
183 3(TxD)  --|___|--o---o      o-----------------o----- RxD
184            10k   |   |      |
185                  |   |     C|
186                 .-.  |   -----  BC547c (or similar NPN)
187                 | |  | B|  /  |
188             10k | |  o--|-|   |
189                 '-'     |  \  |
190                  |       --->-    A*
191                  |          E|    |
192                  |           |    |
193 5(GND)  ---------o-----------o----o--------------o-- GND
194                                                  |*
195 Shield  -----------------------------------------o
196 optional
198 *connect near display
200 </screen>
201 </figure>
203 <para>The pins on the different displays vary.</para>
205 <sect4 id="serialVFD-serial-connections-NEC">
206 <title>NEC Displays (FM20X2KB-AB):</title>
208 <para>CN1:</para>
209 <screen><![CDATA[
210 Pin 33 ------- RxD
211 (Testmode: connect pins 25 and 26, then power up)
212 ]]></screen>
214 <para>CN2:</para>
215 <screen><![CDATA[
216 Pin 1  ------- +5V
217 Pin 2  ------- GND
218 ]]></screen>
219 </sect4>
221 <sect4 id="serialVFD-serial-connections-KD">
222 <title>KD Rev 2.1:</title>
223 <para>
224 The blue connector (6pin in a row) (the important one!):
225 </para>
226 <screen>
227 <![CDATA[
228 --------------------------------
229 | +5V  +5V  RxD  GND  GND  GND |
230 --------------------------------
232 </screen>
234 <tip>
235   <para>
236   Hold the display in that position where you can read
237   the <literal>KD Rev 2.1</literal> marking normally!
238   </para>
239 </tip>
241 <para>The gray connector (10pin 2 rows):</para>
242 <screen>
243 <![CDATA[Do not use. (the ATMEL ISP connector I guess)
245 </screen>
246 <para>The two jumpers next to the gray connector:</para>
247 <screen>
248 <![CDATA[Normally not used.
249 You can activate two different testmodes with them.
251 </screen>
252 </sect4>
254 <sect4 id="serialVFD-serial-connections-FUTABA">
255 <title>FUTABA Displays (M402SD06GJ):</title>
256 <screen><![CDATA[Pin 2   ------ +5V
257 Pin 4   ------ +5V
258 Pin 6   ------ +5V
260 Pin 10  ------ GND
261 Pin 12  ------ GND
262 Pin 14  ------ GND
264 Pin 19  ------ RxD
265 ]]></screen>
266 </sect4>
269 </sect3>
271 <sect3 id="serialVFD-parallel-connections">
272 <title>Parallel Connections</title>
275 <sect4 id="serialVFD-parallel-connections-NEC">
276 <title>NEC Displays (FM20X2KB-AB):</title>
278 <para>CN1:</para>
279 <screen><![CDATA[
280 parallel Port:                  Display (NEC):
281 Pin:    Name:                   Name:   Pin:
283 1       /STROBE --------------  /WR     17
284 2       D0      --------------  D0      15
285 3       D1      --------------  D1      13
286 4       D2      --------------  D2      11
287 5       D3      --------------  D3      9
288 6       D4      --------------  D4      7
289 7       D5      --------------  D5      5
290 8       D6      --------------  D6      3
291 9       D7      --------------  D7      1
292 10      /ACK    --o
293                   |
294 11      BUSY    --o-----------  BUSY    27
296                            o--  /CS     23
297                            |
298 18 - 25 GND    ------------o--  GND     2,4,6,8,10,12,14,16,18,20,22,24,26,28,20,32,34
299                            |*
300 Shield  -------------------o
301 optional
303 *connect near display
304 ]]></screen>
305 <para>CN2:</para>
306 <screen><![CDATA[
307 Pin 1  ------ +5V
308 Pin 2  ------ GND
309 ]]></screen>
310 </sect4>
312 <sect4 id="serialVFD-parallel-connections-FUTABA">
313 <title>FUTABA Displays (M402SD06GJ):</title>
314 <screen><![CDATA[
315 parallel Port:                  Display (FUTABA):
316 Pin:    Name:                   Name:   Pin:
318 1       /STROBE --------------  /WR     17
319 2       D0      --------------  D0      15
320 3       D1      --------------  D1      13
321 4       D2      --------------  D2      11
322 5       D3      --------------  D3      9
323 6       D4      --------------  D4      7
324 7       D5      --------------  D5      5
325 8       D6      --------------  D6      3
326 9       D7      --------------  D7      1
327 10      /ACK    --o
328                   |
329 11      BUSY    --o-----------  BUSY    20
331                            o--  /SEL    18
332                            |
333 18 - 25 GND    ------------o--  GND     10,12,14
334                            |*
335 Shield  -------------------o
336 optional
337                            0--  TEST    16
338                            |
339                 +5V -------o--  +5V     2,4,6
341 *connect near display
342 ]]></screen>
343 </sect4>
345 </sect3>
346 </sect2>
347 <!-- ## Serial VFD driver ## -->
348 <sect2 id="serialVFD-config">
349 <title>Configuration in LCDd.conf</title>
352 <sect3 id="serialVFD-config-section">
353 <title>[serialVFD]</title>
355 <variablelist>
357 <varlistentry>
358   <term>
359     <command>use_parallel=</command>
360     <arg choice="plain">
361     <group choice="req">
362       <arg choice="plain"><literal><emphasis>yes</emphasis></literal></arg>
363       <arg choice="plain"><literal>no</literal></arg>
364     </group>
365     </arg>
366   </term>
367   <listitem><para>
368     "<literal>no</literal>" if display connected serial, "<literal>yes</literal>" if connected parallel [default: <literal>no</literal>(serial)].
369   </para></listitem>
370 </varlistentry>
372 <varlistentry>
373   <term>
374     <command>Port=</command>
375     <arg choice="plain"><replaceable>PORT</replaceable></arg>
376   </term>
377   <listitem><para>
378     Portaddress where the LPT is. Used in parallelmode only. Usual values are 0x278, 0x378 and 0x3BC [default: <literal>0x278</literal>].
379   </para></listitem>
380 </varlistentry>
382 <varlistentry>
383   <term>
384     <command>Device=</command>
385     <arg choice="plain"><replaceable>DEVICE</replaceable></arg>
386   </term>
387   <listitem><para>
388     Device to use in serial mode. Usual values are <filename>/dev/ttyS0</filename> and <filename>/dev/ttyS1</filename>
389     [default: <filename>/dev/lcd</filename>].
390   </para></listitem>
391 </varlistentry>
393 <varlistentry>
394   <term>
395     <command>Custom-Characters=</command>
396     <arg choice="plain"><replaceable>CUSTOM-CHARACTERS</replaceable></arg>
397   </term>
398   <listitem><para>
399 Number of Custom-Characters [default: Display-<command>Type</command> dependent].
400   </para></listitem>
401 </varlistentry>
403 <varlistentry>
404   <term>
405     <command>Size=</command>
406     <arg choice="plain">
407       <replaceable>WIDTH</replaceable>
408       <literal>x</literal>
409       <replaceable>HEIGHT</replaceable>
410     </arg>
411   </term>
412   <listitem><para>
413     Specifies the size of the VFD.
414     [default: <literal>20x2</literal>]
415   </para></listitem>
416 </varlistentry>
418 <varlistentry>
419   <term>
420     <command>Type=</command>
421     <arg choice="plain"><replaceable>CODE</replaceable></arg>
422   </term>
423   <listitem>
424     <para>
425     Specifies the display type.[default: 0]
426     The following type codes are available:
427     </para>
428     <informaltable>
429     <tgroup cols="2">
430       <thead>
431         <row>
432           <entry><replaceable>CODE</replaceable></entry>
433           <entry>VFD model</entry>
434         </row>
435       </thead>
436       <tbody>
437         <row>
438           <entry><literal><emphasis>0</emphasis></literal></entry>
439           <entry>NEC (FIPC8367 based) VFDs</entry>
440         </row>
441         <row>
442           <entry><literal>1</literal></entry>
443           <entry>KD Rev 2.1</entry>
444         </row>
445         <row>
446           <entry><literal>2</literal></entry>
447           <entry>Noritake VFDs</entry>
448         </row>
449         <row>
450           <entry><literal>3</literal></entry>
451           <entry>Futaba VFDs</entry>
452         </row>
453       </tbody>
454     </tgroup>
455     </informaltable>
456     <note><para>
457       Noritake VFDs have not been tested yet. Feedback is welcome.
458     </para></note>
459   </listitem>
460 </varlistentry>
462 <varlistentry>
463   <term>
464     <command>Brightness=</command>
465     <arg choice="plain"><replaceable>BRIGHTNESS</replaceable></arg>
466   </term>
467   <listitem><para>
468 Set the initial brightness [default: 1000; legal: 0 - 1000]
469  (4 steps 0-250, 251-500, 501-750, 751-1000)
470   </para></listitem>
471 </varlistentry>
473 <varlistentry>
474   <term>
475     <command>OffBrightness=</command>
476     <arg choice="plain"><replaceable>OFFBRIGHTNESS</replaceable></arg>
477   </term>
478   <listitem><para>
479 Set the initial off-brightness [default: 0; legal: 0 - 1000].
480  This value is used when the display is normally
481  switched off in case LCDd is inactive.
482  (4 steps 0-250, 251-500, 501-750, 751-1000)
483   </para></listitem>
484 </varlistentry>
486 <varlistentry>
487   <term>
488     <command>Speed=</command>
489     <arg choice="plain">
490     <group choice="req">
491       <arg choice="plain"><literal>1200</literal></arg>
492       <arg choice="plain"><literal>2400</literal></arg>
493       <arg choice="plain"><literal><emphasis>9600</emphasis></literal></arg>
494       <arg choice="plain"><literal>19200</literal></arg>
495       <arg choice="plain"><literal>115200</literal></arg>
496     </group>
497     </arg>
498   </term>
499   <listitem><para>
500     Set the the baud rate communication with the VFD.
501     If not given [default <literal>9600</literal>].
502   </para></listitem>
503 </varlistentry>
505 <varlistentry>
506   <term>
507     <command>ISO_8859_1=</command>
508     <arg choice="plain">
509     <group choice="req">
510       <arg choice="plain"><literal><emphasis>yes</emphasis></literal></arg>
511       <arg choice="plain"><literal>no</literal></arg>
512     </group>
513     </arg>
514   </term>
515   <listitem><para>
516     Enable ISO-8859-1 compatibility [default is <literal>yes</literal>].
517   </para></listitem>
518 </varlistentry>
519 </variablelist>
521 </sect3>
523 </sect2>
525 </sect1>