{"id":1609,"date":"2026-09-12T04:25:10","date_gmt":"2026-09-12T04:25:10","guid":{"rendered":"https:\/\/x.sheep-mine.ts.net\/index.php\/your-mac-and-a-canon-printer\/"},"modified":"2026-09-12T04:25:10","modified_gmt":"2026-09-12T04:25:10","slug":"your-mac-and-a-canon-printer","status":"publish","type":"post","link":"https:\/\/x.sheep-mine.ts.net\/index.php\/your-mac-and-a-canon-printer\/","title":{"rendered":"Your Mac and a Canon Printer \u2022 furbo.org"},"content":{"rendered":"<p><br \/>\n<\/p>\n<div>\n<p>Our trusty Brother MFC laser printer and scanner was getting long in the tooth and my wife wanted color printing. After a lot of research, she landed on the Canon MF644Cdw and placed an order.<\/p>\n<p>Initially, we were both happy with the new printer. The print quality is great, the hardware is solid, and the touchpad for configuration and management is better than most.<\/p>\n<p>But after a few months it became apparent that the printer\u2019s networking is completely screwed up. The root of the problem is with Canon\u2019s firmware: it\u2019s not compatible with Apple\u2019s Bonjour.<\/p>\n<p>So how widespread is this issue?<\/p>\n<p>Here is a <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/community.usa.canon.com\/t5\/Printer-Software-Networking\/imageCLASS-MF644Cdw-Shows-Offline-from-MAC\/td-p\/325832\">six year old support thread<\/a> about \u201coffline\u201d printer on the Mac. And if you search Google for <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.google.com\/search?q=canon+offline+mac\">\u201cCanon offline Mac\u201d<\/a>, there are a ton of web pages and videos explaining how to \u201cfix\u201d the problem.<\/p>\n<p>The problem with the fix is that it\u2019s only temporary. Based on my personal experience, you need to re-fix things when you\u2019re in a hurry to print a shipping label or report. Adding insult to injury, everyone that\u2019s sharing the printer, whether it\u2019s a family member or a work colleague, will need to reset their printer configuration, too.<\/p>\n<p>Initially, this is a mild inconvenience. But after doing it hundreds of times, I renamed our printer \u201cCanon MF\u201d \u2013 the initials <strong>do not<\/strong> mean Multi-Function. <\/p>\n<p>If you are reading this and still within the return window for the printer, head to your car or web browser <em>right now<\/em>. As you\u2019ll see below, this is not a printer that will be easy to deal with on a Mac. It will be a purchase you regret.<\/p>\n<p>If you can\u2019t return the printer, keep reading and I\u2019ll explain how things are broken and present a workaround that will prevent the constant \u201cOffline\u201d situation.<\/p>\n<p>If you just want a permanent fix and don\u2019t care about the details, scroll down to <strong><a rel=\"nofollow\" target=\"_blank\" href=\"#fix\">You Can Fix This<\/a><\/strong>.<\/p>\n<h3>Digging In<\/h3>\n<p>Since I could find no reports of the weird \u201cOffline\u201d behavior on Windows, I began by investigating the technologies that are specific to the Mac and other Unix-based systems:<\/p>\n<ul>\n<li><a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/CUPS\">CUPS<\/a>, originally known as the \u201cCommon Unix Printing System\u201d, manages the printers, their capabilities, and the queue of print jobs.<\/li>\n<li><a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/Bonjour_(software)\">Bonjour<\/a> lets other devices on your local network find the printer. It\u2019s also known as <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.zeroconf.org\">Zero Configuration Networking<\/a> or Multicast DNS.<\/li>\n<\/ul>\n<p>CUPS felt like an unlikely culprit: everything prints great <em>when it\u2019s working<\/em>. After checking the printer drivers against the CUPS <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.cups.org\/documentation.html\">documentation<\/a>, this intuition proved correct.<\/p>\n<p>But when I started looking at Bonjour, it was another story.<\/p>\n<p>The following Terminal command can be used to see what printers are on your local network:<\/p>\n<pre class=\"wp-block-preformatted\">$ dns-sd -B _ipps._tcp<\/pre>\n<p>The command is cryptic, like all things in the Terminal, but it means \u201cdo DNS Service Discovery, browse for <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/Internet_Printing_Protocol\">Internet Printing Protocol<\/a> over HTTPS\u201d.<\/p>\n<p><strong>NOTE:<\/strong> If using a Terminal is new to you, don\u2019t be afraid to try the commands I\u2019m showing: none of them will harm your Mac. You will find the app in the Applications > Utilities folder. You can copy all the text <em>after<\/em> the \u201c$\u201d and paste it directly into the app. Closing the window will terminate the command.<\/p>\n<p>The command output will contain multiple columns, but it\u2019s the first two columns with a timestamp and add\/remove status, that show what\u2019s wrong:<\/p>\n<pre class=\"wp-block-preformatted\">$ dns-sd -B _ipps._tcp\nBrowsing for _ipps._tcp\nDATE: ---Sun 01 Mar 2026---\n14:31:17.408  ...STARTING...\nTimestamp     A\/R    Instance Name\n14:31:18.740  Add    Canon...(28)\n14:33:21.446  Rmv    Canon...(28)\n14:33:25.577  Add    Canon...(28)\n14:35:34.505  Rmv    Canon...(28)\n14:35:34.952  Add    Canon...(28)\n14:37:33.932  Rmv    Canon...(28)\n14:37:35.251  Add    Canon...(28)\n14:39:37.001  Rmv    Canon...(28)\n14:39:43.664  Add    Canon...(28)\n14:41:58.121  Rmv    Canon...(28)\n14:42:09.361  Add    Canon...(28)\n14:50:13.326  Rmv    Canon...(28)\n14:51:41.923  Add    Canon...(28)\n14:53:39.560  Rmv    Canon...(28)\n14:53:45.726  Add    Canon...(28)<\/pre>\n<p>Typically a printer will added when you start the command, and removed when your Mac goes to sleep.<\/p>\n<p>The Canon printer removes itself every few minutes. To the rest of the network that\u2019s using Bonjour (including everyone\u2019s printer settings), it looks like the printer was powered off and on again. Hence the \u201cOffline\u201d state and the red dot in Printers &#038; Scanners settings.<\/p>\n<p>The \u201cOffline\u201d state is also likely to happen when you wake your Mac. The add\/remove nonsense is caused by the printer and when your Mac is asleep it may miss the state change. When this happens, it can take 10-15 minutes for the red dot to turn green. When you are in this situation, you can\u2019t add a new printer because it doesn\u2019t exist in Bonjour. You just have to wait.<\/p>\n<p>This is the root of the problem. The constant change of state eventually corrupts the cache used by Bonjour. This, in turn, breaks the CUPS configuration and your printer is either temporarily or permanently \u201cOffline\u201d.<\/p>\n<p>A fancier version of this command speaks when the printer adds or removes itself: this lets you do things like look at the status of the printer in System Settings. After you hear \u201cremove\u201d you\u2019ll see a red dot and \u201cOffline\u201d. An \u201cadd\u201d turns the indicator green and shows \u201cIdle\u201d. This will be annoying after awhile, but it does give you great feedback about how Bonjour is messed up:<\/p>\n<pre class=\"wp-block-preformatted\">$ dns-sd -B _ipps._tcp | while IFS= read -r line; do echo \"$line\"; echo \"$line\" > \/tmp\/line.out; if grep -q \"Rmv\" \/tmp\/line.out; then say \"Remove\"; elif grep -q \"Add\" \/tmp\/line.out; then say \"Add\"; fi ; done<\/pre>\n<h3>What\u2019s in a Name?<\/h3>\n<p>When I started writing this report, the Bonjour name for our printer was \u201cCanon MF642C\/643C\/644C (a5:d7:ad) (16) (a5:d7:a (a5:d7:ad) (28)\u201d. A few days later it changed to \u201cCanon MF642C\/643C\/644C (a5:d7:ad) (16) (a5:d7:a (a5:d7:ad) (10)\u201d. I have no idea what caused this change, and both the names are ridiculous.<\/p>\n<p>The only thing that\u2019s important in this change are the number in parentheses at the end. Going from \u201cCanon\u2026(28)\u201d to \u201cCanon\u2026(10)\u201d breaks the printer configuration of every Mac on your network.<\/p>\n<p>You can see this by checking the CUPS configuration:<\/p>\n<pre class=\"wp-block-preformatted\">$ lpstat -v\n\ndevice for Canon_MF642C_643C_644C: dnssd:\/\/Canon\u2026(28)._ipps._tcp.local.\/?uuid=GUID<\/pre>\n<p>There is no longer a device for <code>dnssd:\/\/Canon\u2026(28)._ipps._tcp.<\/code> So when CUPS periodically checks the print queues and it can\u2019t find the name, the printer is permanently offline.<\/p>\n<p>When a permanent \u201cOffline\u201d happens, you will need to update your Mac and iOS devices:<\/p>\n<ul>\n<li>Mac: Remove the printer. Add a new printer. Do this on every device in your home or office.<\/li>\n<li>iOS: Turn on Airplane Mode, wait a couple of seconds, turn Airplane Mode off, and pick the new name.<\/li>\n<\/ul>\n<h3>So What\u2019s Really in a Name?<\/h3>\n<p>So what\u2019s the deal with the \u201cCanon\u2026(28)\u201d that eventually turned to \u201c(10)\u201d and broke everything? These numbers are appended automatically when another device is already using the same name. If \u201cCraig\u2019s Mac\u201d already exists on the local network, if you try to add it again, Bonjour will use \u201cCraig\u2019s Mac (1)\u201d. Look familiar?<\/p>\n<p>It turns out this Bonjour cache corruption happened on macOS about 11 years ago and it was a <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/furbo.org\/2015\/05\/05\/discoveryd-clusterfuck\/\">clusterfuck<\/a>. Some devices on your local network, such as Apple TVs or HomePods, act as a backup system that can provide DNS information when other devices are <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/Bonjour_Sleep_Proxy\">asleep<\/a>. When this cache gets corrupted, all hell breaks loose.<\/p>\n<p>A printer that constantly adding and removing itself will eventually poison the cache and the next number in sequence will be used. And every time the corruption occurs, new stuff gets added to the end and you eventually end up with \u201cCanon MF642C\/643C\/644C (a5:d7:ad) (16) (a5:d7:a (a5:d7:ad) (10)\u201d. Lovely.<\/p>\n<h3>Can Canon Fix This?<\/h3>\n<p>I have no idea what\u2019s going on inside the printer, and from all the support requests on their site, neither does Canon. All I can see is that printer needs to quit and restart Bonjour every few minutes.<\/p>\n<p>Typically removing a DNS service instance happens when the app or process that\u2019s handling the requests needs to quit. It should happen <em>very<\/em> infrequently. Most likely because you\u2019ve turned the printer off.<\/p>\n<p>Instead of acknowledging issues with Bonjour, the support folks talk about changing your printer configuration. And conveniently ignore the folks who note that they\u2019ve done this \u201chundreds of times\u201d.<\/p>\n<p>This is not a problem that can be fixed by a new downloadable driver or by power-cycling the printer. It is a problem that will require new printer firmware from Canon. The last firmware update was 2 years ago.<\/p>\n<p>It\u2019s a huge pain in the ass and based on my personal experience it happens when you need the printer <em>right now<\/em>. Adding insult to injury, everyone that\u2019s sharing the printer, whether it\u2019s a family member or a work colleague, will need to reset their printer configuration.<\/p>\n<p>So I set out to find a way to avoid Canon\u2019s shitty Bonjour implementation in our printer set up.<\/p>\n<h3 id=\"fix\">You Can Fix This<\/h3>\n<p>For the most part, it\u2019s possible to use the Canon printer without its \u201ccycling\u201d behavior in Bonjour. The printer will still be generating and changing gobbledygook names, but we will ignore them.<\/p>\n<p>The trick is to use a static IP address. Since Bonjour\u2019s main task is to find your printer\u2019s IP address using a device name, we can skip that step if we already know where the printer is on the local network.<\/p>\n<p><a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/community.usa.canon.com\/t5\/Printer-Software-Networking\/imageCLASS-MF644Cdw-Shows-Offline-from-MAC\/m-p\/330342\/highlight\/true#M6040\">VideoGuy discovered this workaround<\/a> and shared it on the Canon forums. I\u2019ve made some simple tweaks that let your Mac know about the full capabilities of the printer (duplex pages, color support, supply levels, even a non-generic icon).<\/p>\n<h4>1. Find a Static IP Address<\/h4>\n<p>To implement this workaround, you first need to know how IP addresses are assigned on your network. Most of the IP addresses are assigned automatically using DHCP. So look around in your router settings for something like \u201cDHCP Range\u201d, \u201cDHCP Start\/Finish\u201d. Once you know the range, you can pick an IP address outside of that range.<\/p>\n<p>Say that you see \u201cStart: 192.168.0.20 Stop: 192.168.0.150\u201d. Picking a static IP of \u201c192.168.0.180\u201d is a safe choice because its past \u201c192.168.0.150\u201d.<\/p>\n<p>You can double-check that this address isn\u2019t in use with this Terminal command:<\/p>\n<pre class=\"wp-block-preformatted\">$ ping -c 5 192.168.0.180\nPING 192.168.0.180 (192.168.0.180): 56 data bytes\nRequest timeout for icmp_seq 0\nRequest timeout for icmp_seq 1\nRequest timeout for icmp_seq 2\nRequest timeout for icmp_seq 3\n--- 192.168.0.180 ping statistics ---\n5 packets transmitted, 0 packets received, 100.0% packet loss<\/pre>\n<p>The \u201cRequest timeouts\u201d and \u201c100% packet loss\u201d indicate that there isn\u2019t a device at this IP address and will be safe to use on the Canon printer.<\/p>\n<h4>2. Change Your Printer<\/h4>\n<p>Now that you have a static IP address, you\u2019ll need to update your printer\u2019s configuration. Use the Home button below the touchscreen to get to the top-level of printer menus.<\/p>\n<p>Next, drill down using the following path:<\/p>\n<pre class=\"wp-block-preformatted\">Menu > Preferences > Network > TCP\/IP Settings > IPv4 Settings > IP Address Settings<\/pre>\n<p>By default, the printer acquires its IP addresses automatically and \u201cAuto Acquire\u201d is turned on. The \u201cManually Acquire\u201d setting is disabled.<\/p>\n<p>Turn \u201cAuto Acquire\u201d off, and \u201cManually Acquire\u201d will get enabled. Select it and you\u2019ll be presented with a screen where you input:<\/p>\n<pre class=\"wp-block-preformatted\">IP address: 192.168.0.180 \nSubnet mask: 255.255.255.0      \nGateway address: 192.168.0.1<\/pre>\n<p>The first field is the one you want to focus on: it should be set to the static IP address that you picked above.<\/p>\n<p>The last two fields are probably already set correctly because the values were retrieved during the \u201cauto acquire\u201d \u2013 if you have problems with them, refer to your router\u2019s settings.<\/p>\n<p>After applying the settings, restart the printer, and run a quick test of the IP address with:<\/p>\n<pre class=\"wp-block-preformatted\">$ ping -c 5 192.168.0.180<\/pre>\n<p>Instead of timeout errors, you should see \u201c0.0% packet loss\u201d and know that you have a good connection to the printer. If you see errors, go back to printer\u2019s network preferences and double-check your work.<\/p>\n<h4>3. Setup Printer on the Mac<\/h4>\n<p>We\u2019re entering the homestretch now!<\/p>\n<p>On your Mac, go into Printers &#038; Scanners settings, and select \u201cAdd Printer, Scanner, or Fax\u2026\u201d.<\/p>\n<p>Instead of using first panel which shows all the Bonjour devices, pick the middle icon of the Add Printer dialog: this panel will let you add your printer using the static IP address you created.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/furbo.org\/wp-content\/uploads\/2026\/03\/CanonSetup.png\" alt=\"\" class=\"wp-image-2997\"\/><\/figure>\n<p>Enter your static IP address into the first field, then select the \u201cAirPrint\u201d protocol. Make sure that the driver is \u201cCNMF642C\/643C\/644C\u201d (or whatever is appropriate for your hardware).<\/p>\n<p>Name the printer whatever you want: I chose \u201cCanon MF\u201d (again, not because it\u2019s \u201cMulti-Function\u201d).<\/p>\n<p>Click Add and you will now have a new printer that never goes \u201cOffline\u201d. Woo-hoo!<\/p>\n<p>Note that this workaround only affects printing \u2014 when you need to use the scanning features, you will still need to setup a device that uses Bonjour. This configuration will break just as often as the one for printing, but in my experience it\u2019s not so disruptive. I typically use the scanner when doing taxes or other financial things, and having to make a new configuration isn\u2019t a big deal because I\u2019m not in a hurry.<\/p>\n<h3>Conclusion<\/h3>\n<p>This issue has taken countless hours to resolve. It\u2019s a bug that appears and disappears randomly and is completely confusing from an end user\u2019s point-of-view.<\/p>\n<p>As Mac users, we\u2019re used to things \u201cjust working\u201d and in this case that\u2019s just not the case. Bonjour makes finding devices and services on your network \u201cjust work\u201d. That is, until a Canon printer gets involved.<\/p>\n<p>If anyone at Canon is reading this, please <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/furbo.org\/resume\/\">get in contact<\/a>: I would love to test any firmware fixes for these Bonjour problems. I\u2019ve been<a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/furbo.org\/about\/\"> building Mac apps for over 40 years<\/a> and have gotten pretty good at testing stuff.<\/p>\n<\/p><\/div>\n<p><br \/>\n<br \/><a href=\"https:\/\/furbo.org\/2026\/03\/14\/your-mac-and-a-canon-printer\/\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Our trusty Brother MFC laser printer and scanner was getting long in the tooth and&#8230;<\/p>\n","protected":false},"author":1,"featured_media":1610,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2365],"tags":[2351,2349,2350,836,2354,2357,2353,2360,2359,2358,2362,2355,2352,2356,2361],"class_list":["post-1609","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-miscellaneous","tag-app","tag-chock","tag-design","tag-development","tag-experience","tag-iconfactory","tag-interface","tag-ios","tag-mac","tag-mobile","tag-software","tag-ui","tag-user","tag-ux","tag-web"],"_links":{"self":[{"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/posts\/1609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/comments?post=1609"}],"version-history":[{"count":0,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/posts\/1609\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/media\/1610"}],"wp:attachment":[{"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/media?parent=1609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/categories?post=1609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/x.sheep-mine.ts.net\/index.php\/wp-json\/wp\/v2\/tags?post=1609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}