The BJC-80 is a portable colour bubblejet printer with quite good resolution (720dpi horizontal, 360dpi vertical). It is similar in performance to some of the desktop printers like the BJC-210SP, but is very compact and suited to carrying with with a laptop. It has an IrDA interface which works with Linux IrDA (in addition to an ordinary parallel interface). There are no switches to select the interface to be used. I had access to a BJC-50 for a short period and I believe it will work with Linux IrDA in an identical manner.
In my experience the printer will work happily on a 12V DC power source, such as the one on my yacht Windclimber.
The printer is supposed to be able to work as a scanner as well, but there does not seem to be any information available on how to drive it with Linux.
grep MAJOR /usr/src/linux/include/net/irda/*and use the number disclosed there, almost certainly 161 unless you are trying a very old kernel (when it was 60).
#! /bin/sh # irda start script for linux 2.2.13 and later and # irda-utils-0.9.5 and later /sbin/irattach /dev/ttyS0 -s 1 sleep 1 insmod ircomm echo 110 > /proc/sys/net/irda/slot_timeout echo start bj80 | lpcfor earlier versions:
#! /bin/sh # irda start script for linux 2.2.7 and irda-utils-0.9.4 insmod irda echo 110 > /proc/sys/net/irda/slot_timeout insmod irtty irattach /dev/ttyS0 irmanager -d 1Note:
#!/bin/sh # # Print Postscript to the Canon BJC-80 Bubble Jet Printer # # seems to behave the same as a BJC-600 # gs -sPAPERSIZE=a4 -sDEVICE=bjc600 -sOUTPUTFILE=- -q -dNOPAUSE - quit.pscan be used in a pipeline from PostScript to the printer, e.g. invoked by lpd. In my case, the script is kept in /usr/local/lib/lpd/ps2bj80
A version of the lpd set that supports these flags can be obtained at ftp://phoenix.physiol.usyd.edu.au/pub/lpd-5.9+l_flags.tar.gz
bj80|IrDA BubbleJet|lp|bj80ps|GS-Cannon BubbleJet 80:\ :sh:\ :xo:\ :lp=/dev/ircomm0:\ :ms=115200,raw:\ :mx#8000:\ :pl#80:pw#90:Rl#56:PS:Rw#100:\ :sd=/usr/spool/lpd/bj80:\ :if=/usr/local/lib/lpd/ps2bj80:\ :lf=/usr/spool/lpd/bj80/bj80-log:
bj80|IrDA BubbleJet|lp|bj80ps|GS-Cannon BubbleJet 80:\ :sh:\ :xo:\ :lp=/dev/ircomm0:\ :mx#8000:\ :pl#80:pw#90:Rl#56:PS:Rw#100:\ :sd=/usr/spool/lpd/bj80:\ :if=/usr/local/lib/lpd/ps2bj80:\ :lf=/usr/spool/lpd/bj80/bj80-log:\ :xc#01777777:\ :fc#017:\ :fs#020000010002:On my system, /dev/ircomm0 was created with
mknod /dev/ircomm0 c 161 0
stty raw < /dev/ircomm0
cat /proc/moduleswhich should give output including something like:
ircomm 14204 0 (unused) irtty 7452 2 (autoclean) irda 143361 1 (autoclean) [ircomm irtty]Running
ifconfigshould show a configured IrDA network device, i.e. output something like:
irda0 Link encap:UNSPEC HWaddr E3-48-57-E9-00-00-00-C9-00-00-00-00-00-00-00-00
unspec addr:[NONE SET] Mask:[NONE SET]
UP RUNNING NOARP MTU:2048 Metric:1
RX packets:328 errors:0 dropped:0 overruns:0 frame:0
TX packets:2296 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:8
The directory /proc/net/irda should exist, and that is where the entry
"discovery" should be seen. Executing:
cat /proc/net/irda/discoveryshould show that your printer has been detected with something like:
IrLMP: Discovery log: nickname: BJC-80, hint: 0x8804, saddr: 0x7ee1e1e0, daddr: 0x1f8f081e
echo 110 > /proc/sys/net/irda/slot_timeoutthough the particular number (greater than the default 80) may vary with machine and kernel release. Note that you seem to have to use numbers divisible by 10. Check that the command actually works, as no errors are logged if it does not:
cat /proc/sys/net/irda/slot_timeout
Maintained by Dave Davey daved@physiol.usyd.edu.au
Last updated 5 July 2005