If your Nanoleaf app can pair with your Nanoleaf product, this document is possibly of no use to you.
If you cannot, however, you have a challenge. Because the problem can be that your controller doesn't trust your app. Or the other way around. I don't know. Either way, it does not work. And because you cannot pair the controller and the app, you cannot update the controller firmware from the app. At least as far as I understand it. This document suggests a workaround for this particular problem.
What may appear as technical advice in this document is merely a description of what I would do to bypass certain challenges which may occur when trying to use the current Nanoleaf Android app to connect to controllers with very old firmware. In short: pairing may not work. Maybe you get Error 009. Maybe you are at wits end. Maybe you are about to say foul things about ... products.
I take no responsibility whatsoever for any breakage, nor loss of money, time, wits or marriage.
I (author of this text) am not a Nanoleaf employee, associate, investor or in any other way associated with Nanoleaf. Technically, I do not even own Nanoleaf products. Family members do.
Nanoleaf is a trademark of Nanoleaf Energy Technology ShenZhen Limited.
A Nanoleaf controller (at least Elements) will, out of the box, behave as a disconnected wireless access point. That is, you can connect to it, but it does not provide access to the Internet. The controller runs a tiny web-server we can talk to with a regular web-browser. This web-server provides a page to which we can upload a firmware image.
If your device has been configured previously, you may have to execute a procedure to reset it to factory defaults. See below
In short: disregard the Nanoleaf app for a little while.
The procedure is as follows (do not do this at first read. Just read it. Please.)
- Identify your hardware
- Download relevant firmware files. Note "relevant" and the plural form "files".
- Connect the controller to a panel/light
- Connect the power brick to the panel, plug the powerbrick into the wall socket, power up the device. Give it a minute.
- Find the access point SSID broadcast by the controller in the wireless settings of a PC, MAC, Android or IOS phone. Typically named
Elements ABCDfor an elements controller. - Connect to this SSID with your PC, MAC, whatever. Your PC, MAC... will become disconnected from the Internet. Which is why you download the relevant files first.
- From the web-browser of your wireless client (PC, MAC, whatever), access http://192.168.2.1/. Note http, not https. You should get a simple web-page identifying your current firmware version and some other details. And two buttons, 'Browse...' and 'Upload File'.
- Press the 'Browse...'-button. Choose the first firmware in the table below having a version after the one currently running on your controller. Do not hit 'Upload File' yet. Select exactly one firmware file. We will repeat the procedure from this step, one version at a time, until you are at the latest release.
- Press and hold the controller power button until the LEDs start flashing/running. Then release the button.
- Hit the 'Upload File' button in the device web-page within 30 seconds of the lights starting to move.
- There is no progress bar. If you are technically inclined, you know what to do. Otherwise, just wait.
- Wait a couple of minutes. You should get a confirmation that the upload was successful. (I got a message about wrong file being uploaded when I tried exactly that. I offer no warranties that this works for all combinations of hardware and firmware. Make sure you upload the correct files.)
- Do not touch the controller.
- The controller will reboot with no further action on your part. Wait for the SSID to reappear in your list of possible wifi networks again. This takes additional minutes. Be patient.
- Connect to the controller SSID again.
- Reload the webpage and confirm that the uploaded image has been installed.
- Repeat steps above for the firmware images in the sequence.
When done with the last firmware file, try pairing with the Nanoleaf app again.
After having paired your controller to your regular wifi network, the controller will no longer present a wireless SSID and the web-server will no longer be available on 192.168.2.1. The web-server is reachable on whatever IP it has on your regular network, but I cannot know what that IP is.
Nanoleaf has multiple product lines:
- Shapes
- Elements
- Lines
- Canvas
- ... and more.
You should take care to know what product you own. There may be a label on your box or on the device itself. In addition, there may be a product code. Make a note of that as well.
You did read everything in the previous sections, right? Right?
Notes:
-
Firmware images of the same revision are named identically across product lines, but are not identical. In other words: there is a "7.1.6.firmware"-file for each product line that firmware version was released for. The files are not interchangeable between product lines.
-
If your currently running image is very old, you will likely have to upgrade in multiple steps. Cannot go straight from 5.3.2 to 12.3.2, for instance. I do not know when breaking changes occured or what versions can be skipped. The versions listed for
Elementsbelow worked for me. (My replacement controller, which I bought in 2025, came with a 4 and half year old firmware image. ) -
I do not know if these images are compatible with your exact hardware revision. Or how many hardware revisions there are.
-
The URLs for these firmware images are not under my control. I can only assume this is how Nanoleaf distributes their firmware images.
-
Not all firmware images in existence are listed in the table below. See the Nanoleaf Release Notes to see a list of firmware versions for your hardware.
-
And finally, I did not bother to guess the correct URLs for all product lines.
Feel free to let me know if you figure it out the firmware URLs for other products.
Your browser may complain about the links below being served via http (and not https). Figure it out.
Firmware table
| Elements | Shapes | Canvas | Lines |
|---|---|---|---|
| 12.3.2 | 12.3.2 | 12.3.2 | 12.3.2 |
| 9.6.6 | |||
| 9.6.4 | 9.6.4 | ||
| 9.3.4 | |||
| 8.5.2 | 8.5.2 | ||
| 7.1.6 | 7.1.6 | 7.1.6 | |
| 6.5.1 | 6.5.1 | 6.5.1 | 6.5.1 |
Nanoleaf controllers appear to run a fork of OpenWRT with linux kernel 4.4.something on a fairly old MIPS microcontroller. This appears to be related hardware.
The GPL sourcecode does not appear available. I believe this is a GPL license violation.
Some open source projects aiming to control nanoleaf products are:
These projects are, to my knowledge, not in any way affiliated with Nanoleaf
To factory reset a Nanoleaf light panels controller, unplug it, then hold down the Power and Brighten buttons simultaneously while plugging the controller back into power. Continue holding the buttons for about 10-15 seconds until the Status LED starts to flash rapidly. Release the buttons, and once the Power button LED is steady, the device is reset. (Taken verbatim from some AI.)
This is Work In Progress.
If you make "inexplicable" observations about your Nanoleaf kit, it can be worth validating your hardware setup. One thing to check is that you don't overload your power supply, and that the power supply supplies the correct voltage. There is a label on the original power supply stating the expected voltage. Each standard 42W PSU supports up to 22 Hexagons (2W per panel), 28 Triangles (1.5W per panel) or 77 Mini Triangles (0.54W per panel). Each Controller supports up to 500 panels. Adjust Your Power Supplies for Optimal Performance.
Hey Nanoleaf, I'll take compensation in Amazon gift cards if you feel like saying thanks for doing what you didn't.