Solved Epson L3150 Printer Scanner ... So Far

I have just got a new Epson L3150 Printer Scanner.
1628566516385.png

print/cups
epson-inkjet-printer-escpr
graphics/sane-backends

Primed it with ink, plugged it in with the USB cable and turned it on.

Browsed to http://localhost:631/printers/ and the printer was found. Could print a test sheet. Started libreoffice, could print directly from the program.

Did not have to mess around with devfs(5) at all.
Code:
crw-rw----  1 root  cups  0xca Aug 10 10:03 /dev/usb/0.4.0

Excellent. Could not be simpler. Much satisfied ... so far.

Now the scanner.

As per handbook:
sane-find-scanner -q
Code:
could not fetch string descriptor: No such device (it may have been disconnected)
could not fetch string descriptor: No such device (it may have been disconnected)
could not fetch string descriptor: No such device (it may have been disconnected)
could not fetch string descriptor: No such device (it may have been disconnected)
could not fetch string descriptor: No such device (it may have been disconnected)
could not fetch string descriptor: No such device (it may have been disconnected)
could not fetch string descriptor: No such device (it may have been disconnected)
found USB scanner (vendor=0x04b8, product=0x1143) at libusb:000:004

Well it sort of found the scanner. Don't know what the six lines "could not fetch string descriptor" are.

scanimage -L
Code:
No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).

So, edited both /usr/local/etc/sane.d/epson.conf and /usr/local/etc/sane.d/epson2.conf and added usb /dev/usb0.4

scanimage -L still could not find it.

So I am stumped.

Any ideas how I can get the scanner working?

Did verify that the scanner physically works by copying something directly on the printer.

Going to try the wifi soon and will add to this thread.
 
Only as root: sane-find-scanner -q could not fetch string descriptor: No such device (it may have been disconnected) found USB scanner (vendor=0x04b8, product=0x1143) at libusb:000:004

Rights? What does usbconfig -d 0.4 dump_all_desc give (either as normal user or root)?

As ordinary user:
Code:
No device match or lack of permissions.

As root:
Code:
ugen0.4: <EPSON L3150 Series> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA)

  bLength = 0x0012
  bDescriptorType = 0x0001
  bcdUSB = 0x0200
  bDeviceClass = 0x0000  <Probed by interface class>
  bDeviceSubClass = 0x0000
  bDeviceProtocol = 0x0000
  bMaxPacketSize0 = 0x0040
  idVendor = 0x04b8
  idProduct = 0x1143
  bcdDevice = 0x0100
  iManufacturer = 0x0001  <EPSON>
  iProduct = 0x0002  <L3150 Series>
  iSerialNumber = 0x0003  <583943423035353801>
  bNumConfigurations = 0x0001

 Configuration index 0

    bLength = 0x0009
    bDescriptorType = 0x0002
    wTotalLength = 0x0055
    bNumInterfaces = 0x0003
    bConfigurationValue = 0x0001
    iConfiguration = 0x0004  <USB2.0 MFP(Hi-Speed)>
    bmAttributes = 0x00c0
    bMaxPower = 0x0001

    Interface 0
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0000
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0003
      bInterfaceClass = 0x00ff  <Vendor specific>
      bInterfaceSubClass = 0x00ff
      bInterfaceProtocol = 0x00ff
      iInterface = 0x0005  <EPSON Scanner>

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0001  <OUT>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200
        bInterval = 0x0000
        bRefresh = 0x0000
        bSynchAddress = 0x0000

     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0082  <IN>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200
        bInterval = 0x0000
        bRefresh = 0x0000
        bSynchAddress = 0x0000

     Endpoint 2
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0083  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0008
        bInterval = 0x000b
        bRefresh = 0x0000
        bSynchAddress = 0x0000


    Interface 1
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0001
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0002
      bInterfaceClass = 0x0007  <Printer device>
      bInterfaceSubClass = 0x0001
      bInterfaceProtocol = 0x0002
      iInterface = 0x0006  <USB2.0 Printer>

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0004  <OUT>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200
        bInterval = 0x0000
        bRefresh = 0x0000
        bSynchAddress = 0x0000

     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0085  <IN>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200
        bInterval = 0x0000
        bRefresh = 0x0000
        bSynchAddress = 0x0000


    Interface 2
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0002
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0002
      bInterfaceClass = 0x00ff  <Vendor specific>
      bInterfaceSubClass = 0x00aa
      bInterfaceProtocol = 0x0001
      iInterface = 0x0008  <EPSON Utility>

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0007  <OUT>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200
        bInterval = 0x0000
        bRefresh = 0x0000
        bSynchAddress = 0x0000

     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0088  <IN>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200
        bInterval = 0x0000
        bRefresh = 0x0000
        bSynchAddress = 0x0000
 
Have now connected the printer/scanner by both usb and wifi.

Can print using usb with cups. Cannot print using network. Cannot scan with either.

But, having a virtual windows 10 in bhyve, I can print and scan using the network.

So I do have full use (almost) of the new epson, but at the cost of a great kludge.

I would still like to scan and print using the network (so I can have the epson elsewhere in the office), with sane and cups, and not having to use windows.
 
When I have USB problems I usually start by checking the source code to make sure VID & PID are included.
/usr/src/sys/dev/usb/usbdevs
I also see several endpoints for the usb device from usbconfig.
How about show just usbconfig.
I am wondering if these two devices share a usb port.
 
How about show just usbconfig.
I am wondering if these two devices share a usb port.

ugen1.1: <0x1b21 XHCI root HUB> at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA) ugen0.1: <0x8086 XHCI root HUB> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA) ugen3.1: <0x1106 XHCI root HUB> at usbus3, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA) ugen2.1: <0x1b21 XHCI root HUB> at usbus2, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA) ugen3.2: <vendor 0x2109 USB2.0 Hub> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (100mA) ugen0.2: <EATON Eaton 9E> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (20mA) ugen3.3: <VIA Labs, Inc. USB2.0 Hub> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA) ugen3.4: <Logitech USB Receiver> at usbus3, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (98mA) ugen3.5: <Logitech USB Receiver> at usbus3, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (98mA) ugen0.3: <vendor 0x0a12 product 0x0001> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (0mA) ugen3.6: <VIA Labs, Inc. USB3.0 Hub> at usbus3, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA) ugen0.5: <vendor 0x046d HD Webcam C525> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA) ugen0.6: <vendor 0x0557 product 0x7000> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (100mA) ugen0.7: <vendor 0x0557 product 0x2419> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON (160mA) ugen0.4: <EPSON L3150 Series> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA)
 
I can't find the L3150 in the list of the supported devices of SANE.
No.

It may be one model that is sold in one part of the world when another model is available on the other side of the world.

When I installed the drivers for windows 10 (in bhyve), windows itself did not have any drivers for the L3150. So I used the driver for the L350 - which sounds similar - even though it is definitely a different model. And it works for both printing and scanning.

And the list of sane supported includes the L350.
 
Turns out I have got network printing in cups.
Two printers now:
Connection: lpd://192.168.34.23:515/PASSTHRU Connection: usb://EPSON/L3150%20Series?serial=583943423035353801&interface=1

Still got to get sane working.
 
Do not forget to add the regular user to the saned group.
I've added the regular user also to the operator group. Because operator has access to usb.
 
Do not forget to add the regular user to the saned group.
I've added the regular user also to the operator group. Because operator has access to usb.
I was a member of operator already, and have just added myself to saned.

Same result. Still scratching head.
 
The output of usbconfig shows an Epson scanner at interface 0, so USB is not the problem. Time to take a look at the port, cd /usr/ports/graphics/sane-backends && make && grep -R 0x1143 gives me this:
Code:
work/sane-backends-1.0.32/doc/descriptions-external/utsushi.desc::usbid     "0x04b8" "0x1143"
work/sane-backends-1.0.32/doc/sane-backends-external.html:<td align=center>0x04b8/0x1143</td>
work/sane-backends-1.0.32/doc/sane-mfgs-external.html:<td align=center>0x04b8/0x1143</td>
work/sane-backends-1.0.32/tools/hotplug-ng/libsane.db:0x04b8    0x1143    root:scanner    0664
work/sane-backends-1.0.32/tools/hotplug/libsane.usermap:libusbscanner 0x0003 0x04b8 0x1143 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
work/sane-backends-1.0.32/tools/hal/libsane.fdi:        <match key="usb.product_id" int="0x1143">
work/stage/usr/local/share/doc/sane-backends/sane-backends-external.html:<td align=center>0x04b8/0x1143</td>
work/stage/usr/local/share/doc/sane-backends/sane-mfgs-external.html:<td align=center>0x04b8/0x1143</td>

You find these .html files here https://termbin.com/rcmmw and here https://termbin.com/vrac. These state that your scanner works with an external backend https://gitlab.com/utsushi/utsushi, that is a backend not (yet) included in SANE. Looks like sushi for dinner, Geezer!
 
utsushi, that is a backend not (yet) included in SANE. Looks like sushi for dinner, Geezer!

Thank you Tieks.

Sane is a bit behind in the world, but cups worked straight out of the box. The epson is now on a shelf way over the other side of the office. I can print through the network. I can scan too, over the network, from windows in bhyve. So it is all functional.

It will be more elegant when utsushi becomes part of the port for sane.
 
Geezer said:
It will be more elegant when utsushi becomes part of the port for sane.

Which will happen sooner or later, I think. I had to run mine in a similar way for some time, until v10.2, IIRC. It taught me not to buy the latest models.
 
Don't know, if it is a bit late... I have an Epson L486 and I didn't even try to configure its scanner via usb. All I did is changes to an end of the file /usr/local/etc/sane.d/epson2.conf:
INI:
# Network
#
# net 192.168.1.123
net 192.168.x.y
net autodiscovery
... where 192.168.x.y is an address of my MFU.
I do not remember well what I did later exactly but I think I just run xsane and it found the scanner on this ip.
Maybe it'll help...

Added later: Yes, scanimage -L finds it too. But ve-e-e-ery slo-o-o-ow (~2-3 minutes)
Bash:
$ scanimage -L
device `epson2:net:192.168.x.y' is a Epson PID 111E flatbed scanner
 
Don't know, if it is a bit late... I have an Epson L486

No. It is not too late. I would still like to get the scanner working. And I appreciate your input.

Unfortunately, it appears that the L486 and L3150 are not the same.

I had already tried network settings in epson2.conf, but it did not work.

Glad you have got your scanner going.
 
Airprint is for Apple compatible printers. Its backed by several other companies including Adobe, which made the previous printing standard of Postscript. An Airprint printer is also expected to be useful from an iPad or iPhone. On FreeBSD, printing would likely default to the previous standard of using CUPS, netcat or LPR.

The online manual or the packaging would tell which printer technology it uses: https://epson.com.jm/For-Home/Printers/Inkjet/Epson-EcoTank-L3150-All-in-One-Printer/p/C11CG86301. This model uses iPrint rather than Airprint for printing.

Earlier, I got Apple's Airprint confused with Airscan, which the graphics/sane-airscan, says both are used for scanning.

Edited.
 
Back
Top