Table of Contents

Details

Fibonacci256 is a beautiful 166mm circular disc with 256 RGB LEDs surface mounted in a Fibonacci distribution. Swirling and pulsing like a colorful galaxy, it’s mesmerizing to watch.

It consists of 256 RGB LEDs, arranged into a circular Fermat’s spiral pattern.

Buy on Tindie

In disc phyllotaxis, as in the sunflower and daisy, the mesh of spirals occurs in Fibonacci numbers because divergence (angle of succession in a single spiral arrangement) approaches the golden ratio. The shape of the spirals depends on the growth of the elements generated sequentially. In mature-disc phyllotaxis, when all the elements are the same size, the shape of the spirals is that of Fermat spirals—ideally. That is because Fermat's spiral traverses equal annuli in equal turns. The full model proposed by H Vogel in 1979[2] is

r = c \sqrt{n},
\theta = n \times 137.508^\circ,

where θ is the angle, r is the radius or distance from the center, and n is the index number of the floret and c is a constant scaling factor. The angle 137.508° is the golden angle which is approximated by ratios of Fibonacci numbers.[3]

Fermat's spiral. (2015, October 24). In Wikipedia, The Free Encyclopedia. Retrieved 02:45, February 24, 2016, from https://en.wikipedia.org/w/index.php?title=Fermat%27s_spiral


Case Options

Open case with 3mm black LED acrylic diffuser, black nylon M3 standoffs, and 3D printed back plate with wall mounting hole. Available as kit or fully-assembled:

3D printed case with 3mm black LED acrylic diffuser (work in progress): https://www.thingiverse.com/thing:4191326

Caution: the closed 3D printed case design has no consideration for ventilation, and elevated temperatures can drastically reduce the life of LEDs. In my testing, running above 50% brightness can result in the case warping, and LED failure.

Specifications

  • Size: 6.54 x 6.54 x .063 inch (166 x 166 x 1.6 mm)
  • 2 layer printed circuit board
  • FR4 substrate
  • Green SMOBC (solder mask over bare copper)
  • HASL (Hot Air Solder Leveling) Finish
  • Designed in the US by Evil Genius Labs
  • Some PCBs are assembled in the US by Evil Genius Labs
  • Some PCBs are assembled in the US by ElectroMage! See Pixelblaze Maps below for more information.

Parts

Parts list:

Electronics:

Open Case:

Connecting

Instructions for connecting to a Fibonacci, pre-assembled or programmed with the ESP8266-FastLED-WebServer code:

  1. Connect the MicroUSB port with a cable to a USB port, power adapter, etc.
  2. Once powered on, it will create a WiFi network named ‘Fibonacci256-XXXX`, where XXXX are four letters/numbers unique to your Fibonacci.
  3. Connect to this network with a phone, laptop, tablet, etc. You should get redirected, or prompted to sign in.
  4. In the WiFi Manager page, click Configure WiFi.
  5. Choose your WiFi network from the list, or enter its SSID manually, if needed. Enter your network’s password. Click Save.
  6. It will save, restart, and your device (phone, laptop, etc) should reconnect to your WiFi network. Do so manually, if needed.
  7. On your device, browse to https://discover.evilgeniuslabs.org/. You should see your Fibonacci listed. Click it’s IP Address link.
  8. You should now be able to control your Fibonacci via the web page.

Code

Open source example firmware and web application: https://github.com/jasoncoon/esp8266-fastled-webserver/tree/fibonacci256

Pixelblaze Maps

Pixelblaze is an advanced WiFi LED pattern engine, created by ElectroMage. Live pattern expression compiler, lightning fast fixed point math, and HDR!

Fibonacci boards are laid out physically in a zig-zag pattern, from center to edge and back to center, all the way around the board. This layout automatically makes one dimensional patterns designed for strips visually interesting:

To treat the board as a matrix, you can use pixel maps. A 2D XY map can allow you to scroll colors, palettes, and patterns across the panel horizontally, vertically, diagonally, etc:

hsv(x + t1, 1, 1)

hsv(y + t1, 1, 1)

hsv(x + y + t1, 1, 1)

A 2D polar (radius and angle) map can allow you to easily make patterns that rotate clockwise or counterclockwise, expand, or contract:

hsv(y + t1, 1, 1)

hsv(x + t1, 1, 1)

These maps can be copied and pasted into the Pixel Mapper in the Mapper tab of your Pixelblaze web interface.

[[133,126,0],[156,120,247],[165,109,238],[168,96,229],[165,82,220],[158,69,211],[147,57,203],[132,49,194],[114,45,185],[95,45,176],[76,50,167],[57,59,159],[41,74,150],[28,92,141],[19,114,132],[15,138,123],[17,163,115],[24,188,106],[37,211,97],[56,231,88],[123,255,65],[96,248,74],[73,235,83],[53,218,92],[38,198,100],[28,175,109],[24,152,118],[25,129,127],[31,107,136],[41,89,144],[55,74,153],[71,63,162],[89,57,171],[106,56,180],[122,59,188],[136,66,197],[146,76,206],[152,88,215],[152,102,224],[143,116,232],[138,103,209],[136,88,201],[128,77,192],[115,71,183],[101,68,174],[85,70,165],[70,77,157],[56,88,148],[44,103,139],[37,121,130],[33,141,121],[34,163,113],[41,184,104],[53,205,95],[69,222,86],[90,236,77],[114,245,69],[140,249,60],[167,247,51],[226,208,28],[204,224,37],[180,235,46],[154,241,54],[129,240,63],[106,234,72],[85,223,81],[67,209,90],[54,191,98],[46,172,107],[43,152,116],[44,132,125],[50,115,134],[60,101,142],[72,90,151],[86,84,160],[100,82,169],[113,86,178],[123,95,186],[128,114,195],[117,107,172],[104,98,163],[90,98,155],[78,103,146],[67,112,137],[59,126,128],[54,142,119],[54,159,111],[59,177,102],[68,195,93],[82,210,84],[100,222,75],[121,230,67],[143,233,58],[167,230,49],[191,223,40],[212,209,31],[231,191,23],[246,168,14],[255,142,5],[251,98,246],[251,125,255],[245,151,8],[233,174,17],[218,194,26],[199,209,35],[178,219,44],[156,223,52],[134,223,61],[114,218,70],[96,208,79],[82,195,88],[73,180,96],[67,164,105],[66,148,114],[70,134,123],[78,122,132],[89,114,140],[103,112,149],[111,123,135],[94,128,126],[84,138,117],[80,151,108],[81,165,100],[86,180,91],[96,193,82],[109,203,73],[126,211,64],[145,214,56],[165,212,47],[185,206,38],[204,194,29],[220,178,20],[233,158,12],[241,134,3],[244,109,250],[241,83,241],[232,58,232],[217,35,223],[179,11,209],[201,28,218],[217,48,227],[229,71,235],[235,95,244],[235,120,253],[230,142,6],[220,163,15],[207,179,24],[190,192,33],[172,200,41],[154,203,50],[136,202,59],[121,196,68],[108,187,77],[99,175,85],[95,162,94],[96,148,103],[104,136,112],[120,133,98],[110,152,89],[111,166,80],[118,177,71],[130,186,62],[144,190,54],[160,191,45],[176,187,36],[192,178,27],[206,165,18],[217,148,10],[224,128,1],[227,107,247],[224,84,239],[216,62,230],[202,41,221],[184,24,212],[162,11,203],[137,2,195],[110,0,186],[44,28,163],[68,16,172],[94,9,180],[120,8,189],[145,13,198],[168,23,207],[187,37,216],[202,55,224],[212,75,233],[216,96,242],[216,116,251],[212,135,4],[203,151,13],[191,164,22],[177,173,31],[162,177,39],[148,177,48],[135,172,57],[126,162,66],[122,146,75],[136,153,52],[147,161,43],[161,163,34],[174,160,25],[186,152,16],[197,139,8],[204,124,254],[206,106,245],[205,87,237],[198,69,228],[187,51,219],[172,36,210],[152,25,201],[130,18,193],[106,16,184],[81,20,175],[58,29,166],[36,44,157],[17,64,149],[0,133,126],[5,106,134],[15,81,143],[30,60,152],[49,44,161],[71,32,170],[93,26,178],[116,25,187],[138,29,196],[157,38,205],[173,50,214],[185,65,222],[192,82,231],[195,99,240],[193,115,249],[187,129,2],[178,140,11],[166,147,20],[152,148,28],[137,138,37],[149,134,14],[164,131,5],[175,122,252],[180,110,243],[182,95,235],[179,80,226],[171,65,217],[159,52,208],[143,42,199],[125,36,191],[105,34,182],[83,37,173],[63,45,164],[44,59,155],[28,77,147],[16,98,138],[9,123,129],[7,149,120],[12,176,111],[23,202,103]]
        

Assembly Instructions

Note: Double-check the position, alignment, and orientation of each component very carefully before soldering!

If you’re new to soldering, I highly recommend reading through a good soldering tutorial, such as the ones by Adafruit and SparkFun.

  1. Find a clean spot on your soldering workspace. I used a piece of heavy card stock. Carefully place the board with the LEDs facing down and the bottom of the board facing up.
  2. I used 90 degree header pins to allow connecting and disconnecting jumper wires easily. I used small female headers to keep them level while I soldered.
  3. Insert the header pins.
  4. Carefully turn the board over and solder only the middle pin of each header.
  5. Ensure the headers are straight and level before proceeding to solder the remaining pins. The 5V and GND pins are connected to planes with large traces, and may take some time to heat up enough for solder to melt. Using a higher temperature and less time can help, if possible. Flux can also help.
  6. Check each solder joint, then disconnect the female headers.
  7. VERY carefully check polarity before connecting 5V and GND. If possible, connect 5V and GND on both sets of headers to provide maximum current flow and minimize voltage drop. I used female jumper wires.
  8. Connect the data pin from your microcontroller to the DI pin on the Fibonacci board.
  9. Each WS2812 can theoretically draw 60mA at full brightness, solid white color. 256 of them can theoretically draw 15.36 Amps! I strongly suggest using FastLED’s power management to limit the maximum brightness to a reasonable amount, well under the maximum your power supply is rated for. I’ve found even just 2A from a USB power adapter is blindingly bright.
  10. Keep an eye on the temperature of the PCB and especially the connectors. High temperatures can reduce the life of the LEDs. When possible, ensure air can flow, either passively (ventilation) or actively (exhaust fan).
  11. Most header pins are rated for 4-6 amps, but be sure to check your pins and wires. High temperatures increase resistance, which increases temperature, ad infinitum. If temperatures exceed the maximum rating of the wire insulation, sparks and fire can occur at high amperage.

Acrylic Open Case Assembly Instructions

  1. Insert M3x6mm Button Head Hex Screws into the holes in the matte side of the acrylic face plate and hand-tighten using a hex driver or allen wrench.
  2. Hand-tighten M3x5mm+6mm Male-Female Hex Nylon Standoffs onto the M3x6mm screws, on the glossy side of the acrylic face plate.
  3. Carefully center and place the Fibonacci PCB onto the standoffs, with the LED side facing the glossy side of the acrylic face plate. It will only go on and be centered one way.
  4. Hand-tighten M3 Nylon Hex Standoffs onto the back side of the Fibonacci PCB.
  5. Using double-sided foam mounting tape, carefully mount the controller onto the back of the Fibonacci PCB, where the micro USB port is accessible, pointed down.
  6. Center and place the 3D printed plastic back plate onto the standoffs.
  7. Insert M3x6mm Button Head Hex Screws into the holes in the 3D printed plastic back plate and hand-tighten.