PDA

Bekijk de volledige versie : Connecting a LCD to the WL500g



gryle
09-07-2004, 11:19
Hi

Here's an image of my work in progress :)

This is a HD44780 LCD connected to the parallel port of the ASUS WL-500g.
I'm powering it from the USB port.
I'm using OpenWRT as the firmware and lcdproc as the software to drive the LCD.
lcdproc was patched to use ppdev (/dev/parports/0) with the HD44780 driver instead of using inb/outb x86 instructions to communicate with the parallel port.
I also made a parallel port driver for the asus so that the binary 2.4.5 modules from the asus firmware aren't needed anymore.
I'll release the source code of the parallel port driver and the patch to lcdproc soon ;)

Oleg
09-07-2004, 12:02
Wow. :) Good work. The most important tihng for everyone is the parport_splink code. :)
Have you checked it with LPT printer?

gryle
09-07-2004, 14:57
No Oleg, the printer I have near by is USB.
Writes do the data and control lines should be working. Reads from status lines, I hope so :)
I've uploaded the source code to http://pwp.netcabo.pt/0246517002/parport_splink.c if you want to take a look.

Don't include the parport_pc on the kernel or as a module, because if CONFIG_PARPORT_PC or CONFIG_PARPORT_PC_MODULE are defined lp.o and ppdev.o will use inline functions from parport_pc and you'll get kernel Oops (check include/linux/parport.h). I lost lots of time debugging this :(

Do you know if it would be possible to use an IRQ or modes other than PARPORT_MODE_PCSPP? I looked at the Asus binary module and they seem to try to free irq 2 on module cleanup... That irq is being used by the USB controller on my Asus.

Oleg
09-07-2004, 16:00
No Oleg, the printer I have near by is USB.
Writes do the data and control lines should be working. Reads from status lines, I hope so :)
I've uploaded the source code to http://pwp.netcabo.pt/0246517002/parport_splink.c if you want to take a look.

Don't include the parport_pc on the kernel or as a module, because if CONFIG_PARPORT_PC or CONFIG_PARPORT_PC_MODULE are defined lp.o and ppdev.o will use inline functions from parport_pc and you'll get kernel Oops (check include/linux/parport.h). I lost lots of time debugging this :(

Do you know if it would be possible to use an IRQ or modes other than PARPORT_MODE_PCSPP? I looked at the Asus binary module and they seem to try to free irq 2 on module cleanup... That irq is being used by the USB controller on my Asus.
Yes, the IRQ pin is physically connected to one of the GPIO pins, which can be enabled to generate IRQs. I've not checked for details yet. And yes, they're sharing IRQs. It also, possible to use other modes, including EPP, ECP, whatever. It's selected by accessing it at 0xbf800410 (so, in standard way +0x400).
Let me know if you need other info.

QuarterPounder
11-07-2004, 20:46
hello!
i'm very interested in this, because i had the same idea.
i will test all the shit if you provide everything.
i have a gfx-lcd, but it's no problem, because i have found lcdproc-patches for it.
i will code an alternative to lcdproc, because it is not very effective for glcds.

ps: i still need a good buildroot with a g++, i'm too stupid to compile my own :-( .

Sickboy
27-07-2004, 08:13
Gryle,

I would love to take a look at your LCDproc HD44780 ppdev driver mods. I have been trying to figure this out for a while.

Any chance you could post the code somewhere or maybe email me with it? (admin at purecom.com)

Thanks! :)

Randale91
14-10-2004, 22:07
Hello,

does someone have a simple makefile for this parport_splink.c file ?
I cant get the it working..
Something must be missing...
Error during compilation:

In file included from /opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/linux/sched.h:15,
from /opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/linux/mm.h:4,
from /opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/linux/pagemap.h:10,
from /opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/asm/io.h:15,
from /opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/linux/parport_pc.h:4,
from parport_splink.c:14:
/opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/linux/timex.h:171: field `time' has incomplete type
In file included from /opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/linux/sched.h:18,
from /opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/linux/mm.h:4,
from /opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/linux/pagemap.h:10,
from /opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/asm/io.h:15,
from /opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/linux/parport_pc.h:4,
from parport_splink.c:14:
/opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/asm/semaphore.h:31: parse error before "wait_queue_head_t"
/opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/asm/semaphore.h: In function `sema_init':
/opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/asm/semaphore.h:65: dereferencing pointer to incomplete type
/opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/asm/semaphore.h:66: dereferencing pointer to incomplete type
/opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/asm/semaphore.h:67: dereferencing pointer to incomplete type
/opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/asm/semaphore.h: In function `down':
/opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/asm/semaphore.h:93: dereferencing pointer to incomplete type
/opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/asm/semaphore.h: In function `down_interruptible':
/opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/asm/semaphore.h:104: dereferencing pointer to incomplete type
/opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/asm/semaphore.h: In function `down_trylock':
/opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/asm/semaphore.h:114: dereferencing pointer to incomplete type
/opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/asm/semaphore.h: In function `up':
/opt/brcm/hndtools-mipsel-uclibc-0.9.19/include/asm/semaphore.h:185: dereferencing pointer to incomplete type

and so on.....

Thanks in advance.

Gabriel

KillerOPS
18-05-2005, 15:11
look here on how to control the parallel port of that thing. The only problem is that it isn't working with oleg's firmware (not sure which one) because you can't remove the lp.o module without crashing the router. However, on OpenWrt works quite good.
Maybe a patch from oleg?

Anyway, here is the link:
http://www.sephail.net/projects/openwrt/

Veri
07-08-2005, 12:51
Before I purchase, is there any reason why a KS0108-based LCD module, i.e. http://www.geocities.com/dinceraydin/lcd/gfxintro.htm, e.g. as implemented at http://www.compsys1.com/workbench/On_top_of_the_Bench/KS0108/ks0108_controller.html, would not be hardware compatible with the WL-500g parallel port?

The only weirdnesses associated with the Asus || port (i.e. anyone more experienced than me at hardware hacking please say yes/no ;-) might be:
- Bidirectionality for controller readiness signals;
- There are dedicated pins to select one of the two controllers (CS1, CS2; one for each side of the LCD) - I have seen wirings to the line and init pins on a standard PC parallel port, which I guess are then manually controlled;
...and I'm happy to have to write my own driver - which will be interesting.

Advice on preferable controllers, e.g. shouting at me to get a Toshiba T6963C based device (which afaics is smarter and already supported but more expensive), is welcome.

WlanMan
07-08-2005, 17:41
Hi

Acording to the Datasheet of the used lpt port controller inside the asus the IO lines are bidirektional, and i think the asus lp driver makes use of this. But most lcd wireing use status lines for ingoing signals so this should be no problem if not. You can use LCDprog (http://lcdproc.omnipotent.net) to controll various displays, but the ks0108 is not supported i think. You habe to look for some alternative then or try to get some compatible grafic lcd from ebay (like T6963C ;)).
As you may have read, the asus lp driver is a bit complicated so i dont know if lcdproc will work, you can try this as i will do some time in the future.

Greets


Before I purchase, is there any reason why a KS0108-based LCD module, i.e. http://www.geocities.com/dinceraydin/lcd/gfxintro.htm, e.g. as implemented at http://www.compsys1.com/workbench/On_top_of_the_Bench/KS0108/ks0108_controller.html, would not be hardware compatible with the WL-500g parallel port?

The only weirdnesses associated with the Asus || port (i.e. anyone more experienced than me at hardware hacking please say yes/no ;-) might be:
- Bidirectionality for controller readiness signals;
- There are dedicated pins to select one of the two controllers (CS1, CS2; one for each side of the LCD) - I have seen wirings to the line and init pins on a standard PC parallel port, which I guess are then manually controlled;
...and I'm happy to have to write my own driver - which will be interesting.

Advice on preferable controllers, e.g. shouting at me to get a Toshiba T6963C based device (which afaics is smarter and already supported but more expensive), is welcome.

britnet
02-12-2005, 11:15
Hi,

does anybody find the thread in which there was described how to add an external LCD???

I can't find it.

Oleg
02-12-2005, 11:36
Use advanced search.
http://wl500g.info/showthread.php?t=596

sodb
02-12-2005, 21:43
I connected an old Palm IIIx (approx $25 on 2nd hand shop) through a serial port to the wl500gx, either using a usb to serial connector or the second internal serial port. Advantage is that you can allow input from the display through the hardware buttons on the Palm. Potentially, I have nice graphical capabilities (160x160), I can download email headers, rss feeds and so on to the Palm. Still need to develop some code for the Palm. A rudimentary PocketC program works fine for receiving and transmitting from and to the Asus. On asus a script can do all the work where using pipes to and from the serial ports takes care of the communication. Speeds up to 115200 bit/s are achievable.
Currently I have not much time, but when I have something working, I will post it here.

skynet
16-12-2005, 10:25
Maybe I cheated
I used a atmega8 micro to handle the LCD and 4x4 keypad. It talks either serial (uart to uart so no rs232 tranciever) or I2C using 2 of the gpio lines (on boards with uart. A few bugs left with the I2C... There is a very low part count (one ceramic resonator with built in caps, 2 resistors to drop the 5v down to 3.3, the avr, backlight current limiting resistor, pot for contrast, and a 5v regulator)

If anyone has a like project (maybe with a cheaper pic) PM me.

Sigilium
02-01-2006, 09:31
Anybody had any success connecting a store-bought USB display to WL500g[x] ? Would be cool to connect one (e.g. http://pertelian.com/content/view/1/2/, available for $80 from thinkgeek.com) without the need to build it yourself (as discussed in another thread in this forum).

WlanMan
03-01-2006, 01:07
Hi

Seems your selected lcd has no linux driver support, so better not buy...
However, http://www.usblcd.de/ has (dont know others atm), and the driver is actually in later linux kernel trees (2.4.20+), so it should be no big problem to get the driver running on wl500 (uses lcdproc for intput then).

Greets

lukie
15-03-2006, 21:02
Hi there!

Is it possible, to show which ports are being used by PCs connected to the router? Something like a local 'neststat' output. Should display wired and wlan PCs.
Can i use the netstat command on the router (via telnet) for this?

Thanks in advance.

poliveira1978
29-03-2006, 01:27
what was your openwrt version? could u provide some king of guide to do the install?

macsat
29-03-2006, 14:46
I've made a bunch of OpenWrt tutorials here:
http://www.macsat.com/macsat/content/category/3/14/30/

vladoportos
29-01-2007, 21:48
i also looking for somthing like that :) to build in lcd in wl500g thats would be cool...

Unfortunately that http://www.usblcd.de/ doesnt have that devices at stock anymore... :( so im looking for similar...