[Lcdproc] Fwd: driver for Aopen XC-Cube's VFD display
Karsten
kafe69@gmx.net
Tue Mar 13 22:25:01 2007
--Boundary-00=_hRy9Fxx954891Wc
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Hi Peter,
thanks for your hints. I have updated my work and hope to fulfill the=20
requirements:=20
> Hi Karsten,
>
> Thanks for your contribution to LCDproc.
>
> A few comments though (that currently stop me from adding it to CVS
> immediately).
> * I am missing documentation.
> =C2=A0 Without documentation, it is very hard for other users
> =C2=A0 to make use of the driver.
> =C2=A0 Please see =C2=A0
> http://lcdproc.sourceforge.net/docs/current-dev.html#add-your-driver
> =C2=A0 and the documentation about existing drivers what I want here.
>
I looked at the guide and existing docs and tried to do it similar.=20
> And a few side notes / questions
> * The args argument to the init() function of the drivers is not
> supported anymore. Please consider removing it.
O.K.
> * The driver does not use a private data structure but uses static
> variables. Please consider switching to using a PrivateData *p.
O.K.
> * The driver uses the range [0-255] for its brightness settings.
> The default range for LCDproc drivers is [0-1000]
O.K.
> * The driver does not seem to support custom characters.
> =C2=A0 Is it because the hardware does not support them, or is
> =C2=A0 is simply because of the (early) driver version ?
The display is a segment-type alphanumeric display, so it doesn't support=20
custom characters.
> * Are you willing to act as a "maintainer" for the driver ?
> And to fix bugs in it, .... ?
>
I will try my best as long as my spare time (not very much) and knowledge (=
I'm=20
not a skilled software engineer at all...) allow it.
Attached is the new patch.
Thanks
Karsten
--Boundary-00=_hRy9Fxx954891Wc
Content-Type: text/x-diff;
charset="utf-8";
name="lcdproc-0.5.1_ea65_20070313.diff"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="lcdproc-0.5.1_ea65_20070313.diff"
=2D-- /home/karsten/Prog/lcdproc_EA65/CVS-20070304/lcdproc/acinclude.m4 200=
7-02-04 22:14:55.000000000 +0100
+++ /home/karsten/Prog/lcdproc_EA65/CVS-KF/lcdproc/acinclude.m4 2007-03-06 =
22:58:01.000000000 +0100
@@ -5,7 +5,7 @@
[ --enable-drivers=3D<list> compile drivers for LCDs in <list>,]
[ which is a comma-separated list of drivers.]
[ Possible drivers are:]
=2D [ bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,=
EyeboxOne,]
+ [ bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,ea=
65,EyeboxOne,]
[ g15,glcdlib,glk,hd44780,icp_a106,imon,IOWarrior,irma=
n,]
[ joy,lb216,lcdm001,lcterm,lirc,MD8800,ms6931,mtc_s162=
09x,]
[ MtxOrb,NoritakeVFD,pyramid,sed1330,sed1520,serialPOS=
,]
@@ -15,7 +15,7 @@
drivers=3D"$enableval",
drivers=3D[bayrad,CFontz,CFontz633,curses,CwLnx,glk,lb216,lcdm001,MtxOrb,=
pyramid,text])
=20
=2DallDrivers=3D[bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,EyeboxOn=
e,g15,glcdlib,glk,hd44780,icp_a106,imon,IOWarrior,irman,joy,lb216,lcdm001,l=
cterm,lirc,MD8800,ms6931,mtc_s16209x,MtxOrb,NoritakeVFD,pyramid,sed1330,sed=
1520,serialPOS,serialVFD,sli,stv5730,svga,t6963,text,tyan,ula200,xosd]
+allDrivers=3D[bayrad,CFontz,CFontz633,CFontzPacket,curses,CwLnx,ea65,Eyebo=
xOne,g15,glcdlib,glk,hd44780,icp_a106,imon,IOWarrior,irman,joy,lb216,lcdm00=
1,lcterm,lirc,MD8800,ms6931,mtc_s16209x,MtxOrb,NoritakeVFD,pyramid,sed1330,=
sed1520,serialPOS,serialVFD,sli,stv5730,svga,t6963,text,tyan,ula200,xosd]
=20
drivers=3D`echo $drivers | sed -e 's/,/ /g'`
=20
@@ -124,6 +124,10 @@
DRIVERS=3D"$DRIVERS CwLnx${SO}"
actdrivers=3D["$actdrivers CwLnx"]
;;
+ ea65)
+ DRIVERS=3D"$DRIVERS ea65${SO}"
+ actdrivers=3D["$actdrivers ea65"]
+ ;;
EyeboxOne)
DRIVERS=3D"$DRIVERS EyeboxOne${SO}"
actdrivers=3D["$actdrivers EyeboxOne"]
=2D-- /home/karsten/Prog/lcdproc_EA65/CVS-20070304/lcdproc//server/drivers/=
Makefile.am 2007-02-04 22:14:55.000000000 +0100
+++ /home/karsten/Prog/lcdproc_EA65/CVS-KF/lcdproc//server/drivers/Makefile=
=2Eam 2007-03-06 23:05:07.000000000 +0100
@@ -19,7 +19,7 @@
#LIBS =3D
=20
pkglib_PROGRAMS =3D @DRIVERS@
=2DEXTRA_PROGRAMS =3D bayrad CFontz CFontz633 CFontzPacket curses CwLnx Eye=
boxOne g15 glcdlib glk hd44780 icp_a106 imon IOWarrior irman joy lb216 lcdm=
001 lcterm lirc MD8800 ms6931 mtc_s16209x MtxOrb NoritakeVFD pyramid sed133=
0 sed1520 serialPOS serialVFD stv5730 svga t6963 text tyan sli ula200 xosd
+EXTRA_PROGRAMS =3D bayrad CFontz CFontz633 CFontzPacket curses CwLnx ea65 =
EyeboxOne g15 glcdlib glk hd44780 icp_a106 imon IOWarrior irman joy lb216 l=
cdm001 lcterm lirc MD8800 ms6931 mtc_s16209x MtxOrb NoritakeVFD pyramid sed=
1330 sed1520 serialPOS serialVFD stv5730 svga t6963 text tyan sli ula200 xo=
sd
noinst_LIBRARIES =3D libLCD.a libbignum.a
=20
IOWarrior_CFLAGS =3D @libusb_cflags@ $(AM_CFLAGS)
@@ -64,6 +64,7 @@
CFontzPacket_SOURCES =3D lcd.h lcd_lib.h CFontzPacket.c CFontzPacket.h CFo=
ntz-charmap.h CFontz633io.c CFontz633io.h report.h adv_bignum.h
curses_SOURCES =3D lcd.h curses_drv.h curses_drv.c report.h
CwLnx_SOURCES =3D lcd.h lcd_lib.h CwLnx.c CwLnx.h report.h
+ea65_SOURCES =3D lcd.h ea65.h ea65.c report.h
EyeboxOne_SOURCES =3D lcd.h lcd_lib.h EyeboxOne.c EyeboxOne.h report.h
g15_SOURCES =3D lcd.h lcd_lib.h g15.h g15-num.c g15.c report.h
glcdlib_SOURCES =3D lcd.h lcd_lib.h glcdlib.h glcdlib.c report.h
=2D-- /home/karsten/Prog/lcdproc_EA65/CVS-20070304/lcdproc/LCDd.conf 2007-0=
2-04 22:14:55.000000000 +0100
+++ /home/karsten/Prog/lcdproc_EA65/CVS-KF/lcdproc/LCDd.conf 2007-03-13 22:=
59:47.000000000 +0100
@@ -279,6 +279,21 @@
#keypad_test_mode=3Dyes
=20
=20
+## ea65 driver for the Display on the AOpen XC-Cube AV EA65 media barebone=
##
+[ea65]
+
+# Device is fixed /dev/ttyS1
+# Width and Height are fixed 9x1
+
+# As the VFD is self luminescent we don't have a backlight
+# But we can use the backlight functions to control the front LEDs
+# Brightness 0 to 299 -> LEDs off
+# Brightness 300 to 699 -> LEDs half bright
+# Brightness 700 to 1000 -> LEDs full bright
+Brightness=3D500
+# OffBrightness is the the value used for the 'backlight off' state
+OffBrightness=3D0
+
=20
## EyeboxOne driver ##
[EyeboxOne]
@@ -353,17 +368,17 @@
=20
=20
## optional:
=2DBrightness=3D50 # Brightness (in %) if applicable
=2DContrast=3D50 # Contrast (in %) if applicable
=2DBacklight=3Dno # Backlight if applicable
=2DUpsideDown=3Dno # flip image upside down
=2DInvert=3Dno # invert light/dark pixels
=2DShowDebugFrame=3Dno # turns on/off 1 pixel thick debugging
=2D # border whithin the usable text area,
=2D # for setting up TextResolution and
=2D # MinFontFaceSize (if using FT2);
=2DShowBigBorder=3Dno # border around the unused area
=2DShowThinBorder=3Dyes # border around the unused area
+Brightness=3D50 # Brightness (in %) if applicable
+Contrast=3D50 # Contrast (in %) if applicable
+Backlight=3Dno # Backlight if applicable
+UpsideDown=3Dno # flip image upside down
+Invert=3Dno # invert light/dark pixels
+ShowDebugFrame=3Dno # turns on/off 1 pixel thick debugging
+ # border whithin the usable text area,
+ # for setting up TextResolution and
+ # MinFontFaceSize (if using FT2);
+ShowBigBorder=3Dno # border around the unused area
+ShowThinBorder=3Dyes # border around the unused area
PixelShiftX=3D0
PixelShiftY=3D2
=20
=2D-- /home/karsten/Prog/lcdproc_EA65/CVS-20070304/lcdproc/server/drivers/e=
a65.c 1970-01-01 01:00:00.000000000 +0100
+++ /home/karsten/Prog/lcdproc_EA65/CVS-KF/lcdproc/server/drivers/ea65.c 20=
07-03-13 20:23:27.000000000 +0100
@@ -0,0 +1,318 @@
+/* This is the LCDproc driver for the vfd on the Aopen EA65, based on
+ the Crystal Fontz driver.
+
+ Copyright (C) 2004 ????
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 */
+
+/*Initial modification of CFontz driver by Kent Williams (c) 2005*/
+/*some additions and updates by Karsten Festag (c) 2007*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <termios.h>
+#include <fcntl.h>
+#include <string.h>
+#include <errno.h>
+#include <syslog.h>
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "lcd.h"
+#include "ea65.h"
+#include "report.h"
+#include "lcd_lib.h"
+
+typedef struct driver_private_data {
+ int fd;
+ int brightness;
+ int offbrightness;
+ int width;
+ int height;
+ unsigned char *framebuf;
+} PrivateData;
+
+// Vars for the server core
+MODULE_EXPORT char *api_version =3D API_VERSION;
+MODULE_EXPORT int stay_in_foreground =3D 1;
+MODULE_EXPORT int supports_multiple =3D 0;
+MODULE_EXPORT int does_input =3D 0;
+MODULE_EXPORT int does_output =3D 1;
+MODULE_EXPORT char *symbol_prefix =3D "EA65_";
+
+/////////////////////////////////////////////////////////////////
+// Opens com port and sets baud correctly...
+//
+MODULE_EXPORT int
+EA65_init (Driver * drvthis)
+{
+ debug(RPT_INFO, "EA65: init(%p)", drvthis);
+
+ /* device is fixed */
+ char device[] =3D "/dev/ttyS1";
+ /*speed is fixed at 9600*/
+ int speed =3D B9600;
+
+ /* Allocate and store private data */
+ PrivateData *p;
+ p =3D (PrivateData *) malloc(sizeof(PrivateData));
+ if (p =3D=3D NULL)
+ return -1;
+ if (drvthis->store_private_ptr(drvthis, p))
+ return -1;
+
+ //// initialize private data=20
+ // Width and Height are fixed
+ p->width =3D 9;
+ p->height =3D 1;
+ // Make sure the frame buffer is there...
+ p->framebuf =3D (unsigned char *) malloc (p->width * p->height);
+ memset (p->framebuf, ' ', p->width * p->height);
+
+ //// Read config file
+ // Which backlight brightness
+ p->brightness =3D drvthis->config_get_int ( drvthis->name , "Brigh=
tness" , 0 , DEFAULT_BRIGHTNESS);
+ if (0 <=3D p->brightness && p->brightness <=3D 1000) {
+ if (p->brightness < 300) {
+ p->brightness =3D 0x00; // command char =
that turns button LEDs off
+ } else if (p->brightness >=3D 700 ) {
+ p->brightness =3D 0x01; // command char =
that turns button LEDs on full
+ } else {
+ p->brightness =3D 0x02; // command char =
that turns button LEDs on half
+ }
+ } else {
+ report (RPT_WARNING, "EA65_init: Brightness must be betwee=
n 0 and 1000. Using default value.\n");
+ p->brightness =3D DEFAULT_BRIGHTNESS;
+ }
+
+ // Which backlight-off "brightness"
+ p->offbrightness =3D drvthis->config_get_int ( drvthis->name , "Of=
fBrightness" , 0 , DEFAULT_OFFBRIGHTNESS);
+ if (0 <=3D p->offbrightness && p->offbrightness <=3D 1000) {
+ if (p->offbrightness < 300) {
+ p->offbrightness =3D 0x00; // command ch=
ar that turns button LEDs off
+ } else if (p->offbrightness >=3D 700) {
+ p->offbrightness =3D 0x01; // command ch=
ar that turns button LEDs on full
+ } else {
+ p->offbrightness =3D 0x02; // command ch=
ar that turns button LEDs on half
+ }
+ } else {
+ report (RPT_WARNING, "EA65_init: OffBrightness must be bet=
ween 0 and 1000. Using default value.\n");
+ p->offbrightness =3D DEFAULT_OFFBRIGHTNESS;
+ }
+
+ // Set up io port correctly, and open it...
+ debug( RPT_DEBUG, "EA65: Opening serial device: %s", device);
+ struct termios portset;
+ p->fd =3D open (device, O_RDWR | O_NOCTTY | O_NDELAY);
+ if (p->fd =3D=3D -1) {
+ report (RPT_ERR, "EA65_init: failed (%s)\n", strerror (err=
no));
+ return -1;
+ }
+ tcgetattr (p->fd, &portset);
+
+#ifdef HAVE_CFMAKERAW
+ // The easy way
+ cfmakeraw( &portset );
+#else
+ // The hard way
+ portset.c_iflag &=3D ~( IGNBRK | BRKINT | PARMRK | ISTRIP
+ | INLCR | IGNCR | ICRNL | IXON );
+ portset.c_oflag &=3D ~OPOST;
+ portset.c_lflag &=3D ~( ECHO | ECHONL | ICANON | ISIG | IEXTEN );
+ portset.c_cflag &=3D ~( CSIZE | PARENB | CRTSCTS );
+ portset.c_cflag |=3D CS8 | CREAD | CLOCAL ;
+#endif
+
+ // Set port speed
+ cfsetospeed (&portset, speed);
+ cfsetispeed (&portset, B0);
+
+ // Do it...
+ tcsetattr (p->fd, TCSANOW, &portset);
+
+ report (RPT_DEBUG, "EA65_init: done\n");
+
+ return 0;
+}
+
+/////////////////////////////////////////////////////////////////
+// Clean-up
+//
+MODULE_EXPORT void
+EA65_close (Driver *drvthis)
+{
+ PrivateData *p =3D (PrivateData *) drvthis->private_data;
+
+ close (p->fd);
+
+ if(p->framebuf) free (p->framebuf);
+ p->framebuf =3D NULL;
+}
+
+/////////////////////////////////////////////////////////////////
+// Returns the display width
+//
+MODULE_EXPORT int
+EA65_width (Driver *drvthis)
+{
+ PrivateData *p =3D (PrivateData *) drvthis->private_data;
+
+ return p->width;
+}
+
+/////////////////////////////////////////////////////////////////
+// Returns the display height
+//
+MODULE_EXPORT int
+EA65_height (Driver *drvthis)
+{
+ PrivateData *p =3D (PrivateData *) drvthis->private_data;
+
+ return p->height;
+}
+
+//////////////////////////////////////////////////////////////////
+// Flushes all output to the lcd...
+//
+MODULE_EXPORT void
+EA65_flush (Driver *drvthis)
+{
+ char out[6];
+ int i;
+ PrivateData *p =3D (PrivateData *) drvthis->private_data;
+
+ // Need to check for and deal with unsupported chars or the displa=
y gets a little upset
+ for (i=3D0; i < p->width * p->height; i++) {
+ if ( (p->framebuf[i] >=3D 224 && p->framebuf[i] <=3D 253) =
|| // is a lowercase accented letter
+ (p->framebuf[i] >=3D 97 && p->framebuf[i] <=3D 122=
) ) { // is a lowercase letter
+ p->framebuf[i] -=3D 32; // -> convert=
to upper case
+ }
+ if (p->framebuf[i] >=3D 48 && p->framebuf[i] <=3D 57) { } =
// is a number -> do nothing
+ else if (p->framebuf[i] >=3D 65 && p->framebuf[i] <=3D 90)=
{ } // is a uppercase letter -> do nothing
+ else if (p->framebuf[i] =3D=3D 42 || p->framebuf[i] =3D=3D=
43 ||
+ p->framebuf[i] =3D=3D 45 || p->framebuf[i] =3D=3D=
47 ) { } // is +,-,/,* -> do nothing
+ // Now lets replace some accented characters with remote=
ly similar looking ones
+ else if (p->framebuf[i] =3D=3D 223) p->framebuf[i] =3D 83;=
// use an "S" instead of "=C3=9F"
+ else if (p->framebuf[i] >=3D 192 && p->framebuf[i] <=3D 19=
7) // use an "A"
+ p->framebuf[i] =3D 65;
+ else if (p->framebuf[i] >=3D 200 && p->framebuf[i] <=3D 20=
3) // use an "E"
+ p->framebuf[i] =3D 69;
+ else if (p->framebuf[i] >=3D 204 && p->framebuf[i] <=3D 20=
7) // use an "I"
+ p->framebuf[i] =3D 73;
+ else if (p->framebuf[i] >=3D 210 && p->framebuf[i] <=3D 21=
4) // use an "O"
+ p->framebuf[i] =3D 79;
+ else if (p->framebuf[i] >=3D 217 && p->framebuf[i] <=3D 22=
0) // use an "U"
+ p->framebuf[i] =3D 85;=20
+ else p->framebuf[i] =3D 32; // other characters replaced =
by a space
+ }
+ snprintf(out, sizeof(out), "%c%c%c%c%c", 0xa0, 0x00, 0x80, 0x8a, 0=
x8a);
+ write(p->fd, out, 5);
+ write(p->fd, p->framebuf, p->width * p->height);
+}
+
+/////////////////////////////////////////////////////////////////
+// Prints a character on the lcd display, at position (x,y). The
+// upper-left is (1,1), and the lower right should be (9,1).
+//
+MODULE_EXPORT void
+EA65_chr (Driver * drvthis, int x, int y, char c)
+{
+ PrivateData *p =3D (PrivateData *) drvthis->private_data;
+
+ y--;
+ x--;
+
+ //if (c < 32 && c >=3D 0)
+ // c +=3D 128;
+
+ // For V2 of the firmware to get the block to display right
+ //if (newfirmware && c=3D=3D-1) {
+ // c=3D214;
+ //}
+
+ p->framebuf[(y * p->width) + x] =3D c;
+}
+
+/////////////////////////////////////////////////////////////////
+// Sets the backlight on or off
+//
+MODULE_EXPORT void
+EA65_backlight (Driver * drvthis, int on)
+{
+ PrivateData *p =3D (PrivateData *) drvthis->private_data;
+
+ char out[6];
+ if (on) {
+ snprintf (out, sizeof(out), "%c%c%c%c%c", 0xa0, 0x00, 0x50=
, 0x81, p->brightness);
+ } else {
+ snprintf (out, sizeof(out), "%c%c%c%c%c", 0xa0, 0x00, 0x50=
, 0x81, p->offbrightness);
+ }
+ write (p->fd, out, 5);
+}
+
+/////////////////////////////////////////////////////////////////
+// Clears the LCD screen
+//
+MODULE_EXPORT void
+EA65_clear (Driver * drvthis)
+{
+ PrivateData *p =3D (PrivateData *) drvthis->private_data;
+
+ memset (p->framebuf, ' ', p->width * p->height);
+
+}
+
+/////////////////////////////////////////////////////////////////
+// Prints a string on the lcd display, at position (x,y). The
+// upper-left is (1,1), and the lower right should be (9,1).
+//
+MODULE_EXPORT void
+EA65_string (Driver * drvthis, int x, int y, char string[])
+{
+ PrivateData *p =3D (PrivateData *) drvthis->private_data;
+
+ int i;
+
+ x -=3D 1; // Con=
vert 1-based coords to 0-based...
+ y -=3D 1;
+
+ for (i =3D 0; string[i]; i++) {
+
+ // Check for buffer overflows...
+ if ((y * p->width) + x + i > (p->width * p->height))
+ break;
+ p->framebuf[(y * p->width) + x + i] =3D string[i];
+ }
+}
+
+/////////////////////////////////////////////////////////////////
+//// Turns the recording LED on or off as desired.
+////
+MODULE_EXPORT void
+EA65_output (Driver * drvthis, int on)
+{
+ PrivateData *p =3D (PrivateData *) drvthis->private_data;
+
+ char out[6];
+ if (on) {
+ snprintf (out, sizeof(out), "%c%c%c%c%c", 0xa0,0x00,0x32,0=
x81,0x01);
+ } else {
+ snprintf (out, sizeof(out), "%c%c%c%c%c", 0xa0,0x00,0x32,0=
x81,0x00);
+ }
+ write (p->fd, out, 5);
+}
=2D-- /home/karsten/Prog/lcdproc_EA65/CVS-20070304/lcdproc/server/drivers/e=
a65.h 1970-01-01 01:00:00.000000000 +0100
+++ /home/karsten/Prog/lcdproc_EA65/CVS-KF/lcdproc/server/drivers/ea65.h 20=
07-03-12 23:07:22.000000000 +0100
@@ -0,0 +1,21 @@
+#ifndef EA65_H
+#define EA65_H
+
+#include "lcd.h"
+
+#define DEFAULT_BRIGHTNESS 500
+#define DEFAULT_OFFBRIGHTNESS 0
+
+MODULE_EXPORT int EA65_init (Driver * drvthis);
+MODULE_EXPORT void EA65_close (Driver * drvthis);
+MODULE_EXPORT int EA65_width (Driver * drvthis);
+MODULE_EXPORT int EA65_height (Driver * drvthis);
+MODULE_EXPORT void EA65_clear (Driver * drvthis);
+MODULE_EXPORT void EA65_flush (Driver * drvthis);
+MODULE_EXPORT void EA65_string (Driver * drvthis, int x, int y, char strin=
g[]);
+MODULE_EXPORT void EA65_chr (Driver * drvthis, int x, int y, char c);
+
+MODULE_EXPORT void EA65_brightness (Driver * drvthis, int promille);
+MODULE_EXPORT void EA65_output (Driver * drvthis, int on);
+
+#endif
=2D-- /home/karsten/Prog/lcdproc_EA65/CVS-20070304/lcdproc/docs/LCDd.8.in 2=
006-10-01 18:23:39.000000000 +0200
+++ /home/karsten/Prog/lcdproc_EA65/CVS-KF/lcdproc/docs/LCDd.8.in 2007-03-1=
3 20:58:41.000000000 +0100
@@ -99,6 +99,9 @@
.B CwLnx
serial/USB displays by Cwlinux (http://www.cwlinux.com)
.TP
+.B ea65
+VFD front panel display on Aopen XC Cube EA65 media barebone
+.TP
.B EyeboxOne
LCD display on the EyeboxOne (http://www.rightvision.com)
.TP
=2D-- /home/karsten/Prog/lcdproc_EA65/CVS-20070304/lcdproc/docs/lcdproc-use=
r/drivers/ea65.docbook 1970-01-01 01:00:00.000000000 +0100
+++ /home/karsten/Prog/lcdproc_EA65/CVS-KF/lcdproc/docs/lcdproc-user/driver=
s/ea65.docbook 2007-03-13 21:53:29.000000000 +0100
@@ -0,0 +1,77 @@
+<sect1 id=3D"ea65">
+<title>The ea65 driver</title>
+
+<para>
+ This section describes the ea65 driver which works with the front pa=
nel
+ VFD display on the AOpen XC Cube-AV EA65 media barebone.
+</para>
+
+<sect2 id=3D"ea65-features">
+ <title>EA65 front panel VFD </title>
+ <para>
+ The AOpen XC Cube-AV is a barebone designed for using as a media=
center.
+ It comes with a front panel display which is capable of displayi=
ng one line=20
+ of 9 characters.=20
+ </para>
+ <para>
+ The display is internally connected to the serial port (/dev/tty=
S1)
+ with a rate of 9600 baud
+ </para>
+ <para>
+ The display uses 13 segments per character. That's why the drive=
r provides=20
+ no custom characters like the ones for dot matrix displays do.
+ </para>
+ <para>
+ The front panel furthermore has 9 keys which are illuminated by =
blue LEDs.=20
+ The LEDs can be controlled with the backlight functions. The key=
s are not=20
+ supported by this driver. The red LED (RECORD) can be controlled=
with the=20
+ output command of LCDd.
+ </para>
+</sect2>
+
+<sect2 id=3D"ea65-config">
+<title>Configuration in LCDd.conf</title>
+
+<sect3 id=3D"ea65-config-section">
+<title>[ea65]</title>
+
+<variablelist>
+<varlistentry>
+ <term>
+ <command>Brightness=3D</command>
+ <arg choice=3D"plain"><replaceable>BRIGHTNESS</replaceable></arg>
+ </term>
+ <listitem><para>
+ Set the brightness for the front LEDs if backlight is switched on.
+ Legal values for <replaceable>BRIGHTNESS</replaceable> are in the range
+ between <literal>0</literal> and <literal>1000</literal>.
+ Values under <literal>300</literal> set the LEDs off.
+ Values between <literal>300</literal> and <literal>700</literal> turn
+ on the LEDs with half brightness.
+ Values above <literal>700</literal> turn on the LEDs with full brightn=
ess.
+ If not given, it defaults to <literal>500</literal>.
+ </para></listitem>
+</varlistentry>
+<varlistentry>
+ <term>
+ <command>OffBrightness=3D</command>
+ <arg choice=3D"plain"><replaceable>OFFBRIGHTNESS</replaceable></arg>
+ </term>
+ <listitem><para>
+ Set the brightness for the front LEDs if backlight is switched off.
+ Legal values for <replaceable>OFFBRIGHTNESS</replaceable> are in the r=
ange
+ between <literal>0</literal> and <literal>1000</literal>.
+ Values under <literal>300</literal> set the LEDs off.
+ Values between <literal>300</literal> and <literal>700</literal> turn
+ on the LEDs with half brightness.
+ Values above <literal>700</literal> turn on the LEDs with full brightn=
ess.
+ If not given, it defaults to <literal>0</literal>.
+ </para></listitem>
+</varlistentry>
+</variablelist>
+
+</sect3>
+
+</sect2>
+
+</sect1>
=2D-- /home/karsten/Prog/lcdproc_EA65/CVS-20070304/lcdproc/docs/lcdproc-use=
r/lcdproc-user.docbook 2007-02-04 22:14:55.000000000 +0100
+++ /home/karsten/Prog/lcdproc_EA65/CVS-KF/lcdproc/docs/lcdproc-user/lcdpro=
c-user.docbook 2007-03-13 21:54:39.000000000 +0100
@@ -19,6 +19,7 @@
<!ENTITY CFontzPacket SYSTEM "drivers/CFontzPacket.docbook">
<!ENTITY curses SYSTEM "drivers/curses.docbook">
<!ENTITY CwLnx SYSTEM "drivers/CwLnx.docbook">
+ <!ENTITY ea65 SYSTEM "drivers/ea65.docbook">
<!ENTITY EyeboxOne SYSTEM "drivers/eyeboxone.docbook">
<!ENTITY g15 SYSTEM "drivers/g15.docbook">
<!ENTITY glcdlib SYSTEM "drivers/glcdlib.docbook">
=2D-- /home/karsten/Prog/lcdproc_EA65/CVS-20070304/lcdproc/docs/lcdproc-use=
r/drivers.docbook 2007-02-04 22:14:55.000000000 +0100
+++ /home/karsten/Prog/lcdproc_EA65/CVS-KF/lcdproc/docs/lcdproc-user/driver=
s.docbook 2007-03-13 21:55:11.000000000 +0100
@@ -13,6 +13,7 @@
&CFontzPacket;
&curses;
&CwLnx;
+&ea65;
&EyeboxOne;
&g15;
&glcdlib;
--Boundary-00=_hRy9Fxx954891Wc--