Files
lcdproc/docs/lcdproc-user/drivers/IOWarrior.docbook
T

183 lines
5.7 KiB
Plaintext
Raw Normal View History

2006-04-05 10:36:58 +00:00
<sect1 id="IOWarrior-howto">
<title>The IOWarrior Driver</title>
2007-12-01 16:54:42 +00:00
<sect2 id="IOWarrior-general">
<title>General</title>
2006-04-05 10:36:58 +00:00
<para>
2007-12-01 16:54:42 +00:00
IOWarrior is the name of a series of multi-purpose USB controller chips
produced and sold by <ulink url="http://www.codemercs.com/">Code Mercenaries</ulink>.
This series currently consists of three main types, that - among other features -
support controlling LCD displays:
<variablelist>
<varlistentry>
<term>IOWarrior24</term>
<listitem>
<itemizedlist>
<listitem>USB 1.1 Low Speed</listitem>
<listitem>16 generic I/O Pins, typ. 125Hz read rate</listitem>
<listitem>I<superscript>2</superscript>C master function, 100kHz, throughput typ. 750 bytes/sec</listitem>
<listitem>SPI master interface, up to 2MHz, throughput typ. 750 bytes/sec</listitem>
<listitem>control an HD44780 compatible LCD</listitem>
<listitem>drive a matrix of up to 8x32 LEDs</listitem>
<listitem>decode RC5 compatible infrared remote controls</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>IOWarrior40</term>
<listitem>
<itemizedlist>
<listitem>USB 1.1 Low Speed</listitem>
<listitem>32 generic I/O Pins, typ. 125Hz read rate</listitem>
<listitem>I<superscript>2</superscript>C master function, 100kHz, throughput typ. 750 bytes/sec</listitem>
<listitem>control an HD44780 compatible LCD</listitem>
<listitem>drive a matrix of up to 8x32 LEDs</listitem>
<listitem>drive a 8x8 switch or button matrix</listitem>
</itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term>IOWarrior56</term>
<listitem>
<itemizedlist>
<listitem>USB 1.1 Full Speed</listitem>
<listitem>50 generic I/O Pins, typ. 1000Hz read rate</listitem>
<listitem>I<superscript>2</superscript>C master function, 50, 100, or 400kHz</listitem>
<listitem>SPI master interface, up to 12MHz, throughput up to 62Kbytes/sec</listitem>
<listitem>control various display modules, including most graphic modules</listitem>
<listitem>drive a matrix of up to 8x64 LEDs</listitem>
<listitem>drive a 8x8 switch or button matrix</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>
2006-04-05 10:36:58 +00:00
</para>
2007-12-01 16:54:42 +00:00
<para>
2007-12-01 18:27:40 +00:00
The <code>IOWarrior</code> driver currently only supports writing
2007-12-01 16:54:42 +00:00
to a single-controller HD44780-type display.
LED output using the <command>output()</command> function is also implemented,
although not tested very well.
2007-12-01 17:19:27 +00:00
The hardware's support for input using keys or IR and dual-controller displays
2007-12-01 16:54:42 +00:00
is not implemented yet.
2007-12-01 17:19:27 +00:00
Please note that the latter requires extra circuitry with IOWarrior24 and IOWarrior40.
2007-12-01 16:54:42 +00:00
</para>
<para>
The driver was developed and tested with IOWarrior24 and the IOWarrior40.
2007-12-01 18:03:30 +00:00
Although there are good chances for it to work with an IOWarrior56,
2007-12-01 16:54:42 +00:00
the current state regarding support of this chip is unknown due to the
lack of the required hardware.
</para>
2007-12-01 18:27:40 +00:00
</sect2>
<sect2 id="IOWarrior-requirements">
<title>Requirements</title>
2007-12-01 18:01:44 +00:00
<para>
The driver is based on the <ulink url="http://libusb.sourceforge.net/"><filename>libusb</filename></ulink>
USB library, which should make it work with Linux, the different BSB variants
as well as Darwin/MacOS X.
<note>
<para>
2007-12-01 18:27:40 +00:00
When using a <filename>libusb</filename> based driver like <code>IOWarrior</code>,
2007-12-01 18:01:44 +00:00
<application>LCDd</application> needs to be started as root.
</para>
</note>
<note>
<para>
Newer Linux kernels (2.6.20 and higher) provide a kernel module
<filename>iowarrior.ko</filename> that allows controlling IOWarrior
chips using device files.
Having this module loaded may hinder <application>LCDd</application>
2007-12-01 18:27:40 +00:00
from starting using the <code>IOWarrior</code> driver.
2007-12-01 18:01:44 +00:00
In this case, simply unload the kernel module.
</para>
</note>
</para>
2007-12-01 16:54:42 +00:00
</sect2>
2006-04-05 10:36:58 +00:00
<!-- ## Code Mercenaries IO-Warrior driver ## -->
<sect2 id="IOWarrior-config">
<title>Configuration in LCDd.conf</title>
<sect3 id="IOWarrior-config-section">
2006-04-05 10:36:58 +00:00
<title>[IOWarrior]</title>
<variablelist>
<varlistentry>
<term>
<command>Size</command> =
2006-04-05 10:36:58 +00:00
<arg choice="plain">
<replaceable>WIDTH</replaceable>
<literal>x</literal>
<replaceable>HEIGHT</replaceable>
</arg>
</term>
<listitem><para>
2007-12-01 16:54:42 +00:00
Set the display dimensions. If not given, it defaults to <literal>20x4</literal>.
2006-04-05 10:36:58 +00:00
</para></listitem>
</varlistentry>
<varlistentry>
<term>
<command>SerialNumber</command> =
2006-04-05 10:36:58 +00:00
<arg choice="plain"><replaceable>SERIALNO</replaceable></arg>
</term>
<listitem><para>
2007-12-01 16:54:42 +00:00
Use the IOWarrior module with the serial number <replaceable>SERIALNO</replaceable>.
If this parameter is missing, the default is to use the first IOWarrior module found.
2006-04-05 10:36:58 +00:00
</para></listitem>
</varlistentry>
<varlistentry>
<term>
<command>ExtendedMode</command> =
<arg choice="plain">
<group choice="req">
<arg choice="plain"><literal>yes</literal></arg>
<arg choice="plain"><literal><emphasis>no</emphasis></literal></arg>
</group>
</arg>
</term>
<listitem><para>
If you have a KS0073 or an other 'almost HD44780-compatible' display
connected to the IOWarrior, set this flag to get into extended,
4-line linear addressing mode
</para></listitem>
</varlistentry>
2006-04-05 10:36:58 +00:00
<varlistentry>
<term>
<command>Lastline</command> =
2006-04-05 10:36:58 +00:00
<arg choice="plain">
<group choice="req">
<arg choice="plain"><literal><emphasis>yes</emphasis></literal></arg>
<arg choice="plain"><literal>no</literal></arg>
</group>
</arg>
</term>
<listitem><para>
Specifies if the last line is pixel addressable or it controls an
2007-12-01 16:54:42 +00:00
underline effect.
The default <literal>yes</literal> means, it is pixel addressable.
2006-04-05 10:36:58 +00:00
</para></listitem>
</varlistentry>
</variablelist>
</sect3>
</sect2>
</sect1>