My GoPiGo3 Can Print!

Wow, I cannot believe it - my GoPiGo3 robot can print (via WiFi) to my 10 year old Canon MX860 network printer!

Canon printers use/used a custom LAN service discovery protocol (bjnp), so the initial install of CUPS could see the printer but could not print to it. I had to install the custom protocol, which luckily is already packaged and available.

Here is how I managed it:

Printer Setup On Raspberry Pi


$ sudo apt-get install cups
$ sudo usermod -a -G lpadmin pi
$ sudo apt-get install cups-backend-bjnp
$ sudo service cups restart


browse to https://localhost:631
 Advanced->Proceed

(Bookmark)

Administration->Add Printer
  sign in pi:xxxxx (pi password for the machine)
  
Click on Discovered Network Printers: Canon_MX860
  Continue
  Continue
  Model: Canon MX860 series - CUPS+Gutenprint v5.2.11 (en)
  Add Printer
  Change Default Options: Duplex Print-LongEdge
  Click Set Default Options
  Click Administration->Set As Server Default

Printers->Maintenance->Print Test Page !!!

Get printer status:

$ lpstat -p -d

pi@Carl:~/Carl/Examples/imu/di_BNO055 $ lpstat -p -d
printer Canon_MX860_series is idle.  enabled since Sun 17 May 2020 09:55:22 AM EDT
system default destination: Canon_MX860_series

Print a file:

$ lp resetIMU.py
1 Like

Ahhh. . .  that’s old news. . .  :wink:

I installed HPLIP to interface both my Mint installation and my Raspbian installs, (including Charlie), to the HP OfficeJet Pro 6970 MFP, so that I could print things.  This has been especially important when working on the Remote Camera Robot via Joystick project - I could print listings.

With respect to the printer, installing the (somewhat) open source HPLIP printer driver, (which uses cups as it’s back-end), allows me to control the various features, (including faxing, scanning, ink levels, etc. etc. etc.), while within Linux.

By the same token, I arranged for a Rube Goldberg file transfer method between my laptop and Charlie by connecting both to the SMB server provided by my router when I plug in a flash drive or a USB hard drive.  It was either that, or install the VNC client - and since the Remote Camera Robot uses a specific address, I didn’t install the VNC client, rather I used the server instance provided by noVNC.

Glad you got it working!  This is useful knowledge if you decide to install any other Linux instances - like a Linux partition on your Mac box.

1 Like