225 lines
5.3 KiB
Plaintext
225 lines
5.3 KiB
Plaintext
<sect1 id="pyramid-howto">
|
|
<sect1info>
|
|
<author>
|
|
<firstname>Stefan</firstname>
|
|
<surname>Reinauer</surname>
|
|
</author>
|
|
</sect1info>
|
|
<!-- Only as a comment, as inline presentation is awful in Docbook 4.5
|
|
coresystems GmbH · Brahmsstr. 16 · D-79104 Freiburg i. Br.
|
|
Tel.: +49 761 7668825 · Fax: +49 761 7664613
|
|
Email: info@coresystems.de · http://www.coresystems.de/
|
|
-->
|
|
<title>The pyramid Driver</title>
|
|
|
|
<para>
|
|
This section talks about using LCDproc with programmable LC displays
|
|
sold by <ulink url="http://www.pyramid.de/">Pyramid Computer</ulink>.
|
|
</para>
|
|
|
|
<para>
|
|
Pyramid Computer builds these LC displays into its thriving server products
|
|
to show system data, and to allow the user to change important parameters or
|
|
shut down the appliance in a controlled manner.
|
|
The LCD module, accessible via USB, can be integrated by Pyramid's BTO server
|
|
and appliance manufacturing division at the customer's request or it can be
|
|
made available separately for self-integration, e.g. as a 5.25" module.
|
|
</para>
|
|
|
|
|
|
<sect2 id="pyramid-features">
|
|
<title>Features</title>
|
|
|
|
<para>
|
|
The displays are 16 characters wide and 2 lines high. They have 4 programmable
|
|
buttons as well as 3 (or 9) LEDs which can also be software controlled.
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
|
|
<sect2 id="pyramid-connector">
|
|
<title>Connector</title>
|
|
|
|
<para>
|
|
The display is connected to the host system using USB, with the
|
|
usual USB pinout as shown below.
|
|
The +5V V<subscript>CC</subscript> pin is marked with red colour.
|
|
</para>
|
|
|
|
<table id="pyramid-usb-pinout">
|
|
<title>USB Pinout</title>
|
|
<tgroup cols="4">
|
|
<thead>
|
|
<row>
|
|
<entry>GND</entry>
|
|
<entry>D+</entry>
|
|
<entry>D-</entry>
|
|
<entry>V<subscript>CC</subscript></entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>GND</entry>
|
|
<entry>P<subscript>0</subscript>+</entry>
|
|
<entry>P<subscript>0</subscript>-</entry>
|
|
<entry>+5V</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
</sect2>
|
|
|
|
|
|
<sect2 id="pyramid-requirements">
|
|
<title>Requirements</title>
|
|
|
|
<para>
|
|
For Linux the driver depends on features of the <filename>ftdi_sio.ko</filename>
|
|
that have only been added to version 2.6.15 version of the 2.6 kernel series.
|
|
For older Linux kernels of the 2.6 series these patches to
|
|
<filename>ftdi_sio.c</filename> may help:
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
<listitem><para>
|
|
<ulink url="http://www.pyramid.de/upload/files/divers/patch-4-ftdi-2.6.9.txt">
|
|
Linux 2.6.9-11</ulink>.
|
|
</para></listitem>
|
|
<listitem><para>
|
|
<ulink url="http://www.pyramid.de/upload/files/divers/patch-4-ftdi-2.6.12.6.txt">
|
|
Linux 2.6.12.x</ulink>.
|
|
</para></listitem>
|
|
<listitem><para>
|
|
<ulink url="http://www.pyramid.de/upload/files/divers/patch-4-linux-2.6.13-14.txt">
|
|
Linux 2.6.13-14</ulink>.
|
|
</para></listitem>
|
|
</itemizedlist>
|
|
|
|
</sect2>
|
|
|
|
|
|
<sect2 id="pyramid-ledoutput">
|
|
<title>LED output</title>
|
|
|
|
<para>
|
|
I've added support for the LEDs on the Pyramid LC-Display to the
|
|
"pyramid" driver of lcdproc.
|
|
</para>
|
|
|
|
<para>
|
|
Since it seems that LEDs on an LCD are not directly supported by the
|
|
lcdproc API I've used the "output" command of the server to trigger the
|
|
LEDs, similar to what the IOWarrior driver does.
|
|
</para>
|
|
|
|
<para>
|
|
The Pyramid LC displays come in two different versions, with 3 and with
|
|
9 LEDs. Two of these LEDs can not be controlled by software but are
|
|
usually hard wired to power and HDD. The other 1 or 7 LEDs can now be
|
|
controlled by sending an <code>output</code> command to the server.
|
|
</para>
|
|
|
|
<para>
|
|
The argument to the <code>output</code> command is a bitmask that controls the LEDs
|
|
according to the table below:
|
|
|
|
<table id="pyramid-ledoutput-mapping">
|
|
<title>Mapping of <code>output</code> bits to LEDs</title>
|
|
<tgroup cols="2" align="left">
|
|
<thead>
|
|
<row>
|
|
<entry>Bit</entry>
|
|
<entry>LED</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>0</entry>
|
|
<entry>3</entry>
|
|
</row>
|
|
<row>
|
|
<entry>1</entry>
|
|
<entry>4</entry>
|
|
</row>
|
|
<row>
|
|
<entry>2</entry>
|
|
<entry>5</entry>
|
|
</row>
|
|
<row>
|
|
<entry>3</entry>
|
|
<entry>6</entry>
|
|
</row>
|
|
<row>
|
|
<entry>4</entry>
|
|
<entry>7</entry>
|
|
</row>
|
|
<row>
|
|
<entry>5</entry>
|
|
<entry>8</entry>
|
|
</row>
|
|
<row>
|
|
<entry>6</entry>
|
|
<entry>9</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</para>
|
|
|
|
<para>
|
|
For the <application>LCDd</application> server there is no way to find out
|
|
whether 3 or 9 LEDs are available, so it is up to the client software
|
|
to do the right thing.
|
|
</para>
|
|
|
|
<example id="pyramid-ledoutput.example">
|
|
<title>Pyramid: How to use the LED output from the client</title>
|
|
<programlisting>
|
|
telnet localhost 13666
|
|
hello
|
|
output 67
|
|
</programlisting>
|
|
|
|
<para>will light up LEDs 3, 4 and 9.</para>
|
|
|
|
<programlisting>
|
|
output 0
|
|
</programlisting>
|
|
|
|
<para>will clear all LEDs.</para>
|
|
</example>
|
|
|
|
<para>
|
|
More information on the Pyramid LC-Display can be found here:
|
|
<ulink url="https://www.pyramid.de/de/hardware/spezialkomponenten.php"></ulink>
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
<!-- ## Pyramid LCD driver ## -->
|
|
<sect2 id="pyramid-config">
|
|
<title>Configuration in LCDd.conf</title>
|
|
|
|
<sect3 id="pyramid-config-section">
|
|
<title>[pyramid]</title>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>
|
|
<property>Device</property> =
|
|
<parameter><replaceable>DEVICE</replaceable></parameter>
|
|
</term>
|
|
<listitem><para>
|
|
Device to connect to. Default: <filename>/dev/lcd</filename>
|
|
</para></listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
|
|
</sect3>
|
|
|
|
</sect2>
|
|
|
|
</sect1>
|