Menu

Canon Selphy 1200 - Printer open failure

2016-06-15
2017-04-17
  • Mattias Ottosson

    Hi!

    I'm having some dificutlies using gutenprint52+usb for my Canon Selphy 1200. I've tried both 5.3.11 and the cvs version, but the gutenprint52+usb won't identify my printer.

    Printing with the ordinary usb backend works unless you queue one job at a time (which might happen in the photo booth I'm building). Queing two jobs hangs the printer.

    CUPS only identifies the usb backend, changing the backend manually throws a
    "Printer open failure (No matching printers found!)"

    sudo BACKEND=canonselphy /usr/lib/cups/backend/gutenprint52+usb -i
    
    DEBUG: Multi-Call Dye-sublimation CUPS Backend version 0.63G
    DEBUG: Copyright 2007-2016 Solomon Peachy
    DEBUG: This free software comes with ABSOLUTELY NO WARRANTY!
    DEBUG: Licensed under the GNU GPL.  Run with '-G' for more details.
    DEBUG:
    ERROR: Printer open failure (No matching printers found!)
    
    sudo /usr/lib/cups/backend/usb
    
    DEBUG: Loading USB quirks from "/usr/share/cups/usb".
    DEBUG: Loaded 132 quirks.
    DEBUG: list_devices
    DEBUG: libusb_get_device_list=7
    DEBUG2: Printer found with device ID: MFG:Canon;CMD:Raster3;MDL:SELPHY CP1200;CLS:PRINTER;DES:Canon SELPHY CP1200;VER:1.00;CID:CA_YCC_ICP; Device URI: usb://Canon/SELPHY%20CP1200?serial=CI16031218340166
    direct usb://Canon/SELPHY%20CP1200?serial=CI16031218340166 "Canon SELPHY CP1200" "Canon SELPHY CP1200" "MFG:Canon;CMD:Raster3;MDL:SELPHY CP1200;CLS:PRINTER;DES:Canon SELPHY CP1200;VER:1.00;CID:CA_YCC_ICP;" ""
    

    Any help would be much appriciated!

     
    • Solomon Peachy

      Solomon Peachy - 2016-06-15

      On Wed, Jun 15, 2016 at 08:04:53PM +0000, Mattias Ottosson wrote:

      I'm having some dificutlies using gutenprint52+usb for my Canon Selphy
      1200. I've tried both 5.3.11 and the cvs version, but the
      gutenprint52+usb won't identify my printer.

      That's because the newest Selphy printers use an entirely different
      backend protocol than the older ones -- and appear to be standard,
      correct USB printer class devices.

      Printing with the ordinary usb backend works unless you queue one job
      at a time (which might happen in the photo booth I'm building). Queing
      two jobs hangs the printer.

      Oh, yuck. Maybe the printer still isn't a proper USB class printer
      then, as that species sane flow control..

      Just so I'm sure, you're printing stuff via the system CUPS queue rather
      than manually chaining your own printing setup together?

      In the short term, you may have better luck using the selphy_go code
      that works via wifi printing. I forked it to fix a small pile of bugs
      and you can get it here:

      http://git.shaftnet.org/cgit/users/pizza/public/selphy_go.git/

      I haven't been motivated to write a dedicated backend for this thing,
      because it looked like the Windows driver didn't do anything other than
      just dump raw data over to the printer too...

      - Solomon

      Solomon Peachy pizza at shaftnet dot org
      Delray Beach, FL ^^ (email/xmpp) ^^
      Quidquid latine dictum sit, altum viditur.

       
  • Mattias Ottosson

    Ah, thought that CP1200 maybe was included in the dye-sublimation backend as is says in the readme:
    "Canon SELPHY CP series (All models except for CP820 and CP910)"

    Sorry for beeing a bit of a noob, printing via command line lp:
    lp -d Canon_SELPHY_CP1200 photosrgb.jpg

    I tried the selphy_go code, seems to be the most stable solution for now. However, the booth is going to be at a pretty croded spot wifi-wise, so a cable always feels a bit more reliable. Not in this case though ;)

    Also tried lp via airprint over usb in os x. That works too, but unless the images have a embedded srgb profile the printer rejectes them as "unrecognized data" which feels a bit odd.

    Thank you so much for your (fast) answer!

     

    Last edit: Mattias Ottosson 2016-06-15
    • Solomon Peachy

      Solomon Peachy - 2016-06-15

      On Wed, Jun 15, 2016 at 09:23:02PM +0000, Mattias Ottosson wrote:

      Ah, thought that CP1200 maybe was included in the dye-sublimation backend as is says in the readme:
      "Canon SELPHY CP series (All models except for CP820 and CP910)"

      Yeah, that text has since been ammended to include the newer models.

      I tried the selphy_go code, seems to be the most stable solution for
      now. However, the booth is going to be at a pretty croded spot
      wifi-wise, so a cable always feels a bit more reliable. Not in this
      case though ;)

      It also results in better output quality, since the printer natively
      translates the jpeg into the printer's underlying format. Going over
      USB requires multiple colorspace conversions (jpeg (YCrCb) -> RGB ->
      YCrCb -> YMC ) that leave me wondering just what Canon was thinking.

      Also tried lp via airprint over usb in os x. That works too, but
      unless the images have a embedded srgb profile the printer rejectes
      them as "unrecognized data" .

      That's funny, as the printer doesn't ened a profile if you print via
      wifi/selphy_go. Maybe it has to do with OSX or the canon drivers
      there..

      Thank you so much for your (fast) answer!

      I know far more than one should ever have to when it comes to the Selphy
      printers. It's disappointing to see Canon taking a few steps backwards
      with their newer ones.

      - Solomon

      Solomon Peachy pizza at shaftnet dot org
      Delray Beach, FL ^^ (email/xmpp) ^^
      Quidquid latine dictum sit, altum viditur.

       
      • M Lau

        M Lau - 2016-06-20

        Hi Solomon/Mattias,

        I'm also trying to build a photobooth using the SELPHY CP1200. I managed to build gutenprint, and printer is recognized, but getting the following error when I push a file to print. Is this related to the issues you are having or completely separate?

        Thanks for your help,
        Matthew

         
        • M Lau

          M Lau - 2016-06-24

          thought i'd follow up on this. Turns out after some research that the error I was facing was because I had edit the photo in Lightroom before editting. Seem like any edits will render the above error. I tried to print with pictures straight out of the camera and everything works as expected.

          Hope this help anyone out with a similar error.

           
  • pixelbash

    pixelbash - 2016-12-02

    Queing two jobs hangs the printer.

    That is exactly my error.. I'm totally fine with the printer and the driver. I'm using it also in a photobooth and via USB. Is there a way to fix this issue on the CP1200 as I really don't want to relay on wifi :-/

     

    Last edit: pixelbash 2016-12-02
    • Solomon Peachy

      Solomon Peachy - 2016-12-02

      I recall from my initial bringup work that there didn't appear to be any flow control or status messages being sent back and forth under Windows. But I'll look into this and see if I can uncover anything.

      FWIW, Canon seems to prefer that folks use wifi, even under windows. I have the beginnings of a native wifi backend in the works, but it's a low, low priority for me.

       
      • pixelbash

        pixelbash - 2016-12-04

        That would be so great! Thank you very much. I'm very curious to see what that bug is about in the end.
        What tools do you use to check the messages sent back and forth under windows?

         
  • pixelbash

    pixelbash - 2017-04-12

    @Solomon: I saw you recently edited "backend_canonselphy.c" - is it worth giving that a new try on my CP1200? Thanks for a short reply :)

     

    Last edit: pixelbash 2017-04-12
    • Solomon Peachy

      Solomon Peachy - 2017-04-12

      the CP1200 uses 'backend_canonselphyneo.c' instead, which hasn't been updated for a little while -- and even then, only to add in missing USB PIDs.

       
      • pixelbash

        pixelbash - 2017-04-12

        I haven't tried for a while either. :D
        Is the 'backend_canonselphyneo.c' the custom backend you had to create back in December?
        If not, is there a way to check the current status of the printer via python or so? That way I'm able to create a custom printer queue, that will only print if the status is "Idle".

         
        • Solomon Peachy

          Solomon Peachy - 2017-04-12

          Yep, that's what I did in December. Gutenprint 5.2.12 included it, and as far as I am aware, it pretty much just works.

          There's no general "query status" hook, though I have it on my to-do list to add it.

           
          • pixelbash

            pixelbash - 2017-04-17

            Thank you so much. It works like a charm. Excelent :-)

             
  • Nate C

    Nate C - 2017-05-08

    Sorry to add to this thread, but I have been struggling with the Canon Selphy CP1200 and a raspberry pi running "Jessie". I've tried with gutenprint 5.2.10, installed the selphy_print package from solomon's git site, and started over with a fresh OS install 3-4 times after trying the stretch testing installs after getting the printer working on the CP910 driver but also having the issue where it crashes the printer if more than one file gets queued for printing...

    Now I'm using Jessie standard distribution, with Cups 1.7.5 and I managed to get Gutenprint 5.2.12 compiled/installed with the CUPS backend and added my printer in cups, and it shows up correctly with the canonselphyneo backend and the CP1200 driver and prints a test page perfectly.

    But, when I try to print a jpeg from the commandline with

    lp -d Canon_SELPHY_CP1200 ~/file.jpg

    ...I get a print with a single 1-2mm wide 6 inch long line of each ink color on top of each other from one end of the page to the other. (so after printing the 3 colors and the clearcoat, there's a long black line on the print...)

    On a whim, I tried converting the jpeg to tiff and that tiff printed perfectly.

    So it seems like there is some problem with the jpeg filters/conversion somewhere along the print process. My /var/log/cups/error_log only shows the following entries after trying to print the jpeg. CUPS Debug logging is on.

    D [07/May/2017:19:40:54 -0700] cupsdMarkDirty(---J-)
    D [07/May/2017:19:40:54 -0700] cupsdSetBusyState: newbusy="Printing jobs and dirty files", busy="Printing jobs and dirty files"
    D [07/May/2017:19:40:54 -0700] cupsd is not idle any more, canceling shutdown.
    D [07/May/2017:19:40:55 -0700] [Job 9] Unloading...
    D [07/May/2017:19:40:55 -0700] cupsd is not idle any more, canceling shutdown.
    I [07/May/2017:19:41:09 -0700] Saving printers.conf...
    I [07/May/2017:19:41:09 -0700] Saving job.cache...
    D [07/May/2017:19:41:09 -0700] cupsdSetBusyState: newbusy="Not busy", busy="Printing jobs and dirty files"
    D [07/May/2017:19:41:09 -0700] cupsd is not idle any more, canceling shutdown.

    I have verified that libjpeg-dev was installed.

    I found some directions for how to capture the files sent to the print queue to see if I can figure out how they differ and they are in the attached zip file. The "appoutjpg" and "appouttif" files are the files captured from the CP1200 print queue when the printer is disabled. The "printoutjpg" and "printouttif"files are the output file if I clone the CP1200 printer to print to a file, per the instructions on this website: https://wiki.ubuntu.com/DebuggingPrintingProblems

    If anyone else has any suggestions or has heard of this problem before, I'd be very appreciative. I can provide other log/debugging output as requested.

    Thanks!
    Nate

     

    Last edit: Nate C 2017-05-08
    • Solomon Peachy

      Solomon Peachy - 2017-05-09

      Gutenprint 5.2.10 combined with the latest selphy_print code should have worked out fine, with no "hang" from multiple jobs -- as long as you added the printer after installing selphy_print.

      As for why jpeg images are failing -- keep in mind that the image conversion filters aren't actually part of 'cups'; instead they're part of 'cups-filters'. That said, jpeg or tiff, it's still going through the same 'imagetoraster' filter, so there may be something funky with the images themselves.

      One thing I see is that the jpg and tiff files include EXIF blobs. It's possible something in there is responsible for the filter going wrong. I suggest stripping that off the jpeg (including getting rid of the thumbnail) and see what happens.

       
  • Nate C

    Nate C - 2017-05-09

    Thanks Solomon,

    I'll try these things tonight.

     

Log in to post a comment.