2020-01-02

Ubiquiti UniFi AP AC Pro firmware update

Recently, I needed to expand a UniFi wifi network with a new access point, and the hardware of choice, was the UniFi AP AC Pro.

When I tried "adopting" it, the UniFi controller told me that the AP's firmware (3.x) was incompatible, and that I could click to adopt and upgrade.

That seemed nice, but was a bit different from other devices, which typically would have separate upgrade and adopt actions (or buttons in the UniFi app).

However, this did not work, probably due to a software error in the controller which causes issues with old firmware versions, and trying various ways of updating and bugfixing did not work. The AP was stuck in TFTP mode.

Ubiquiti's support article does not actually explain how to fix it, as vital information is missing from the list of instructions.

There are a bunch of user forum posts about these kinds of issues online, and nobody seems to offer a coherent explanation of how to fix this.

So here is how I fixed it, step by step, from a Mac, some of the text has been copied verbatim, for this educational purpose, from
Ubiquiti's Ubiquiti's support article:


  1. Ensure that you have a computer with wired network access capability, e.g. via a USB/Thunderbolt dongle if you have a laptop.
  2. Download the firmware, e.g. to your Downloads folder.
  3. Same as Ubiquiti's item #3: Go to System Preferences > Network and set your computer's wired network IP address to 192.168.1.25, subnet 255.255.255.0 and gateway 192.168.1.20. You do not need to disable Wifi.
  4. Open a command line window, e.g. Terminal, and assuming you downloaded to "Downloads", type:


    cd Downloads
    tftp
  5. Unplug the ethernet cable from the UniFi AP.
  6. In the UniFi controller, "forget" the UniFi AP. You need to enter the unadopted device's submenu to do so.
  7. Using a paperclip press and hold the UniFi AP's reset button. Do not release the button until step 9.
  8. While keeping the reset button pressed in, plug the ethernet cable back into the AP. Keep the reset button depressed until you see the device's LED flashing in upgrade mode (blue-white-off somewhat rapidly). Ubiquiti say this may take up to 25 seconds, but in my experience, it took around 8-12 seconds.
  9. Release the reset button.
  10. On the TFTP command line, paste these four lines and hit enter:


    connect 192.168.1.20
    binary
    rexmt 1
    timeout 60
  11. Type the command "put" followed by filename of the firmware downloaded. DO NOT enter the full path, as the tftp software does not have permissions to do so in recent MacOS versions.


    put BZ.qca956x.v4.0.69.10871.191109.0533.bin


    If the transfer is successful, you get a confirmation of how much was transferred, and the device will change its status lights to show that a firmware upgrade is in progress. If not, you will most likely get an error like "tftp: sendto: Host is down", and you will need to go back to step 7.
  12. Re-connect the PoE injector's LAN cable into your router. Restore the network IP back to what it was before, or disable the USB/Thunderbolt adapter.
  13. Adopt the UniFi AP.
That should do it. Happy new year!