Author Topic: Nanoleaf Aurora teardown  (Read 4267 times)

0 Members and 3 Guests are viewing this topic.

Online LaurentR

  • Frequent Contributor
  • **
  • Posts: 386
  • Country: us
Nanoleaf Aurora teardown
« on: March 13, 2017, 02:15:05 PM »
I really like the looks and idea of the Nanoleaf Aurora.



While I like what they have done with the app, I wanted to figure out how to drive it myself using some other method (Arduino...). I was also curious about how they built the tiles. They use a 4-wire communication link that is distributed through the tiles (GND, 20V, VBUS, EDGE according to the controller's PCB). One of the key feature of the Aurora is topology discovery, so I can only assume they have a custom protocol (at least on one of the pins).

The picture below shows how the tile is put together.
The bottom is a fairly strong white plastic bed.
In the groove, the PCB and LEDs run around the periphery (see images below).
There is the bottom layer diffuser layer, in thin white plastic.
On top sits a thick transparent block of plastic with a regular hole pattern.
Finally, the top is a frosted plastic that is glued around the edges to the bottom plastic chassis.
The corners, where the LEDs sit are covered by aluminum cutouts.



The following picture shows the triangular PCB (components on the bottom) running along the edges the plastic bottom with the 3 banks of LEDs at each corner.



This is one of the 3 banks of LEDs. It seems to be composed of 6 basic white LEDs connected in series, which turn on at power up and 6 smart LEDs in a 6-pin 5050 package. I assume they are WS2812, but I haven't checked yet.



The PCB is in reality 3 long strips soldered at each edge using an interesting S pattern, I assume to improve alignment. These seem to have been hansoldered as there was obvious flux residue.



Below is the whole PCB, components up. Most components are on one PCB. The board has mostly simple components except for one tiny 16 pin package, which I haven't identified yet (CPLD or microcontroller?). Notice the identical connectors on each edge to allow for the arbitrary topology.



Close-up:



The controller itself is an assembly of a green wifi module (Nanoleaf branded), possibly leverage from one of their other product on top of a white Aurora-specific PCB, with 2 buttons. The whole tile system runs on a 24V supply (they can power up to 30 panels according to the spec).



Wifi module:



That's all for now!

I made a rookie mistake while soldering external wiring between my tile and the controller and (stupidly) assumed that the 4-pin header on the tile PCB near the main spring-loaded connector was just a breakout of that connector, but it wasn't  :wtf:  at all.
So with 24V, the magic smoke appeared on the 16-pin package on the tile and the controller doesn't boot anymore

I am going to wait a bit and synthesize the funds to buy another kit.
I'll get back on the thread when I make actual progress in reverse engineering the protocol between the controller and the tiles |O  |O  |O
« Last Edit: March 19, 2017, 11:10:21 AM by LaurentR »
 
The following users thanked this post: d1ode

Offline RainerG

  • Newbie
  • Posts: 1
  • Country: us
Re: Nanoleaf Aurora teardown
« Reply #1 on: March 15, 2017, 01:02:45 AM »
Thanks. I'm curious about the protocol.
 

Online LaurentR

  • Frequent Contributor
  • **
  • Posts: 386
  • Country: us
Re: Nanoleaf Aurora teardown
« Reply #2 on: April 10, 2017, 04:32:48 PM »
Got a new one and have managed to spend a few hours looking into it (and didn't blow anything else so far...).

As mentioned above, the connector has 4 pins allowing for any topology (names from the controller PCB silkscreen):
* GND: Shared ground.
* 20V: 24V DC straight from the AC adapter - propagated as is between tiles.
* EDGE: 3.3V switched signal. It is the only signal that is not broadcast and seems to be used for topology discovery. Each node controls its 3 sides.
* VBUS: 24V rail-to-rail, 115,200 baud, half-duplex, 8-N-1, idle-high UART (see below) that is broadcast throughout the tiles

The controller board is single sided. See topology below.

Main content:
* 2 buttons connected to the daughterboard.
* A 3.3V switcher circuit on the right, that feeds the comparator and the daughterboard.
* A 2N7002K mosfet driving the VBUS signal low with a 4k7 pullup to 24V. Mosfet is controlled from an 2N2222, itslef driven by the daughterboard.
* A LM393 comparator used to read back the VBUS line (as it is half-duplex) to the daughterboard.



The tile PCB uses a Silicon Labs EFM8 "Busy Bee" BB1 in a QFN20 package. That's a tiny C8051 SoC with 512B of SRAM and 4KB of flash.
This is a bad news, because this means the tile is "smart" and the protocol can be fairly complex... which it is.

See picture of the (blown) BB10 below:



At this point, I have found 8 message types, 4 of which get a response (3 "ack" type ones with no data and one with a fair chunk of data).
Each tile has a unique byte address and the controller remembers it between boots. That byte address seems to unique to the tile, not the position, although it can be reprogrammed if the tiles change enough.

The boot sequence looks like this:
* For the first ~30sec, all tiles display white using the white LEDs and there is very little/no traffic on the VBUS. I assume the daughterboard microcontroller is booting, attaching to wifi...
* Then there is a complicate dance between the controller and the tiles, some messages including up to 11 bytes of data, which are not repeated much, so it is difficult to make sense of them. Clearly, the microcontroller is checking topology and updating it if necessary. I am not sure I'll be able to crack the boot.
* Finally, the tiles switch to the WS2812 and regular messages are sent by the controller to adjust colors plus some keep-alives. I haven't spent time on the color messages yet, but they seem straightforward and I should be able to map them out.

Now on the protocol details and how the EDGE signal is used...
« Last Edit: April 10, 2017, 04:40:12 PM by LaurentR »
 

Offline mohammad

  • Contributor
  • Posts: 6
  • Country: ir
Re: Nanoleaf Aurora teardown
« Reply #3 on: September 13, 2017, 03:34:07 PM »
hi, in Nanoleaf Aurora teardown ,what is u2?
 

Online LaurentR

  • Frequent Contributor
  • **
  • Posts: 386
  • Country: us
Re: Nanoleaf Aurora teardown
« Reply #4 on: September 13, 2017, 03:37:44 PM »
hi, in Nanoleaf Aurora teardown ,what is u2?

On the controller board, U2 is the LM393 comparator used to read back the half-duplex 24V UART bus (VBUS). Not sure why they didn't simply use a resistor network to voltage divide down to 3.3V.
 

Offline mohammad

  • Contributor
  • Posts: 6
  • Country: ir
Re: Nanoleaf Aurora teardown
« Reply #5 on: September 13, 2017, 03:43:11 PM »
What algorithm form the triangles in the software?
Sorry i have a bad conversation? :-[
 

Offline mohammad

  • Contributor
  • Posts: 6
  • Country: ir
Re: Nanoleaf Aurora teardown
« Reply #6 on: September 13, 2017, 03:48:57 PM »
Will run with my my9942 IC. But How do I create an automatic shape?
 

Online LaurentR

  • Frequent Contributor
  • **
  • Posts: 386
  • Country: us
Re: Nanoleaf Aurora teardown
« Reply #7 on: September 13, 2017, 03:56:07 PM »
What algorithm form the triangles in the software?
Sorry i have a bad conversation? :-[

Are you asking how they figure out the topology of the triangles?

I have done a bunch more reverse-engineering I haven't published yet.

For the topology discovery, they use the EDGE pin. While VBUS is UART half-duplex broadcast, EDGE is a simple level signal, purely point-to-point used only doing discovery. As they walk down the tree structure to discover it, they basically turn on one EDGE pin on an unexplored branch of the tree, then through the VBUS ask whichever tile is seeing EDGE=1 to respond. From that, they get a unique tile ID (factory programmed I believe), then use this to assign a short ID to that tile, so they can talk to it later. Then they keep going.

Note that they actually store the topology in the controller, so on subsequent reboots, they quickly "confirm" the topology and unless they find anything weird, they don't do a full walk. I ave seen that algorithm fail when moving some tiles around  ;D
 

Online LaurentR

  • Frequent Contributor
  • **
  • Posts: 386
  • Country: us
Re: Nanoleaf Aurora teardown
« Reply #8 on: September 13, 2017, 04:01:17 PM »
Note that the protocol to bring up the tile network and start sending color change commands is fairly complex, even if you know the topology and don't have to discover it.
At some point, I'll finish publishing the reverse-engineered protocol, but I have been distracted by other projects these past few months.

If you want to tackle this, you'll need a good logic analyzer that can dump the VBUS traffic (UART) and a lot of patience.
 

Offline mohammad

  • Contributor
  • Posts: 6
  • Country: ir
Re: Nanoleaf Aurora teardown
« Reply #9 on: September 13, 2017, 05:11:30 PM »
Thank you
 

Offline evilracer

  • Newbie
  • Posts: 1
  • Country: ca
Re: Nanoleaf Aurora teardown
« Reply #10 on: September 15, 2017, 04:11:04 AM »
Thanks for this @LaurentR. Is it possible for you to measure the thickness of the top layers (diffuser, transparent block, and the frosted panel)?
 

Online LaurentR

  • Frequent Contributor
  • **
  • Posts: 386
  • Country: us
Re: Nanoleaf Aurora teardown
« Reply #11 on: September 15, 2017, 04:01:34 PM »
Thanks for this @LaurentR. Is it possible for you to measure the thickness of the top layers (diffuser, transparent block, and the frosted panel)?

The bottom, opaque white layer (some kind of plastified paper - maybe all plastic) is 0.34mm
The transparent block with the diffusing dots is 3.0mm
The frosted top layer is 0.50mm.
 

Offline mohammad

  • Contributor
  • Posts: 6
  • Country: ir
Re: Nanoleaf Aurora teardown
« Reply #12 on: September 17, 2017, 05:41:05 PM »
hi dear ,Controller for nanowulf is dmx?
 

Online LaurentR

  • Frequent Contributor
  • **
  • Posts: 386
  • Country: us
Re: Nanoleaf Aurora teardown
« Reply #13 on: September 18, 2017, 02:23:01 AM »
hi dear ,Controller for nanowulf is dmx?

No, it's definitely not DMX. It uses a standard half-duplex UART protocol but the messages are completely proprietary.
 

Offline mohammad

  • Contributor
  • Posts: 6
  • Country: ir
Re: Nanoleaf Aurora teardown
« Reply #14 on: October 07, 2017, 08:39:59 PM »
Hello. Good time. You did not investigate the lamp.
 

Offline tmk198

  • Newbie
  • Posts: 1
  • Country: gb
Re: Nanoleaf Aurora teardown
« Reply #15 on: December 01, 2017, 08:45:52 AM »
Hi I love the nanoleaf but I hate the stupid daughter board and trailing cable stuck to the side. I want to hide the daughter board in my loft and run a cable inside my wall. I am thinking due to the high current some 0.75mm flex with some cat 5 to carry the 2 control wires to minimise interference.

I note you managed to fry your first unit but didn't understand the mistake you made? I was just going to solder directly on to the copper contacts on the daughter boards. To connect in to the leaf from behind I was going to snap one of the connectors in half and then solder on to the underside of the connector pins.

Any tips?
 

Online LaurentR

  • Frequent Contributor
  • **
  • Posts: 386
  • Country: us
Re: Nanoleaf Aurora teardown
« Reply #16 on: December 01, 2017, 10:38:40 AM »
Hi I love the nanoleaf but I hate the stupid daughter board and trailing cable stuck to the side. I want to hide the daughter board in my loft and run a cable inside my wall. I am thinking due to the high current some 0.75mm flex with some cat 5 to carry the 2 control wires to minimise interference.

I note you managed to fry your first unit but didn't understand the mistake you made? I was just going to solder directly on to the copper contacts on the daughter boards. To connect in to the leaf from behind I was going to snap one of the connectors in half and then solder on to the underside of the connector pins.

Any tips?

The signalling being 24V and relatively low frequency (100kb/s), I am pretty sure you can extend the wiring quite a bit.

As far as the connectivity to the first tile and to the controller, I think what you're proposing is the right approach. You may want to consider where the traces and vias are to reduce the chance of shorting traces when cutting the small connector.

I fried mine by not being careful enough. The little connectors have a bit too much play in some cases and after multiple insertion and probing, the copper fingers of the connectors on the tiles can get misaligned a bit. That can result in a destructive short (and at 24V, nothing stands a chance).
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf