Table of Contents
Fibonacci512 is a giant, beautiful 320mm circular disc with 512 RGB LEDs surface mounted in a Fibonacci distribution. Swirling and pulsing like a colorful galaxy, it’s mesmerizing to watch.
It consists of 512 WS2812B-Mini 3535 RGB LEDs, arranged into a circular Fermat’s spiral pattern.
I have created several LED art pieces in Fibonacci patterns. They are all very labor intensive to create, and so are fairly expensive and limited in quantity. I wanted to come up with a Fibonacci layout that was at least slightly easier to create, and therefore more affordable.
I have RGB LEDs in just about every form they come: strips, strings, rings, discs, etc. The LEDs on most discs are arranged in very regular rings. Fibonacci512 is different. The LEDs are arranged in a Fibonacci distribution. The makes the layout very organic and seemingly messy. But with the proper animation, spiral patterns emerge with spectacular results.
Each of the 512 WS2812B-Mini 3535 RGB LEDs has its own decoupling capacitor built in. The top and bottom of the PCB are large 5V and GND planes, to allow for the large amount of current required by the 512 LEDs. The PCB is split into four separate data lines to allow for higher frame rates when driven by a microcontroller that supports the FastLED library’s parallel output, such as ESP8266, ESP32, Teensy, etc. The max theoretical frame rate with four way parallel output is ~260 FPS. Each of the four data lines has a separate four-pin headers provided for 5V, Data In (to the section), Data Out (from the previous section) and GND. The last Data Out pin can be used to connect to even more LEDs. There are also small jumper solder pads that can be bridged to drive the whole panel with a single pin (max ~65 FPS), or two pins (max 130 FPS).
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 is
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.
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
Instructions for connecting to a Fibonacci, pre-assembled or programmed with the ESP8266-FastLED-WebServer code:
- Peel and remove any plastic film and/or paper from the acrylic front and back. This was left on to protect your Fibonacci’s acrylic during shipping.
- Connect the power extension cable to your Fibonacci. The flat part of the cable connector should face the back of the Fibonacci. Connect the extension cable to the 5V supply and plug it in to an outlet.
- Warning: You can use the USB port to upload new firmware, but please lower the brightness. Extended use at high brightness can draw too much current through the USB port and damage the controller.
- Once powered on, it will create a WiFi network named
Fibonacci512-XXXX, where XXXX are four letters/numbers unique to your Fibonacci. Please note this name for step 7 below.
- Connect to this network with a phone, laptop, etc. You should get redirected, or prompted to sign in.
- In the WiFi Manager page, click
- Choose your WiFi network from the list, or enter its SSID manually, if needed. Enter your network’s password. Click Save.
- It will save, restart, and your device (phone, laptop, etc) should reconnect to your WiFi network. Do so manually, if needed.
- On your device, browse to Fibonacci512-XXXX.local (where XXXX is the same as from step 2 above).
- You should now be able to control your Fibonacci via the web page.
- If this does not work, you may need to consult your WiFI AP/router documentation to find your Fibonacci’s IP address, or contact me for assistance.
- Size: 320 x 320 x 1.6mm (12.6 x 12.6 x .063 inch)
- 2 layer printed circuit board
- FR4 substrate
- Black SMOBC (solder mask over bare copper)
- HASL (Hot Air Solder Leveling)
- Designed and assembled in the US by Evil Genius Labs
Options available to purchase for additional amount:
- Case Kit: 3mm black LED acrylic 320mm circle diffuser, back plate with wall mounting hole, M3 black nylon standoffs, M3 black metal screws.
- Fully Assembled: diffuser, case, and assembled Py by Adafruit controller with LiPo Power Pack by Oak Dev Tech.
If the “Fully Assembled” option is not chosen, these parts are not included, but are required to assemble and use:
- Microcontroller (Arduino, ESP8266, ESP32, etc):
- 5V power supply, 5V extension cable.
- Wires, connectors, crimp tool, etc.
- Soldering iron, solder, etc.
Parts I used in my builds:
Open source example firmware and web application: https://github.com/jasoncoon/esp8266-fastled-webserver/tree/fibonacci512mini
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.
Note: Pictures are of the smaller Fibonacci256, but the instructions are identical.
- 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.
- 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.
- Insert the header pins.
- Carefully turn the board over and solder only the middle pin of each header.
- 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.
- Check each solder joint, then disconnect the female headers.
- 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.
- Connect the data pin from your microcontroller to the DI pin on the Fibonacci board.
- Each WS2812 can theoretically draw 60mA at full brightness, solid white color. 64 of them can theoretically draw 4 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.
- 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).
- 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.