Funding for this project was canceled by the project creator on March 22, 2014.
Funding for this project was canceled by the project creator on March 22, 2014.
KromaLights recently became involved in a project that used the popular Worldsemi WS2812B RGB LED. While researching the web for an LED controller for this LED, we noticed that most of the solutions involved programming a development board such as the Teensy or one of the Arduino boards.
Right off the bat we realized these solutions work, but they aren't easy to use.These controller solutions drive the LEDs with either I/O bit-banging or forcing an SPI interface into generating an NZR data stream that is required for the LED. To put it simply, the CPU could spend most of its processing power generating the LED drive signal.
We also researched the available LED panels on the market and found some improvements we could make there as well.
We were determined to create a better solution.
One great solution is to use an FPGA to generate the complex LED NZR data stream. Using an FPGA also off-loads the CPU so it can concentrate on other tasks. Our team includes a hardware engineer with many years of FPGA experience making this a very exciting project to work on.
We developed a multi-function microcontroller board based on the same 32-bit ARM CPU used on the Arduino DUO board and coupled it with an Xilinx Spartan6 FPGA. Combining both these devices into a single board created a very powerful, easy to use LED controller. We also added hardware support for audio input allowing the LEDs to be synchronized to music or other audio sources, an optional Bluetooth module and Arduino shield connectors for limited shield compatibility with existing shield boards on the market.
Our innovative product was born, and we named it Khon.
Finally, we had a hardware package that could both simplify the process and remove the hardware limitations of the CPU. Khon can control over 16,000 LEDs with a full 30 Hz update rate.
But we didn't stop there.
The last piece was to simplify the programming interface of Khon so you didn't need an advanced degree in hardware or software engineering to program the controller. The KromaLights Designer Studio came together quickly and exhibits a full stack of features including drag-and-drop panels which make even complex lighting designs very easy to program.
We did our research and tried to develop something that everyone could use from advanced programming of animations to small children wanting to paint a picture that glows from their dresser at night. Talk about a nightlight!
All of our application source code will be available on GitHub, Our hope is that the LED lighting community will adopt Khon and the KromaLights Designer and it will grow through the contributions of our peers into more than we could have dreamed. With an open source platform, that dream is very obtainable and we can all benefit and share in the improvements of others.
One limitation we noticed with existing LED panels was the ability to easily create different sized shapes and designs. Kroma64 is a 3" square board with 64 RGB LEDs arranged in an 8 x 8 pattern. The Kroma256 is a 6" square board with 256 LEDs in a 16 X 16 pattern. Both KromaLights panels feature a 3/8" dot pitch.
Our panels are interchangeable and attach together simply using a Phillips screw driver. In fact, you would use a combination of Kroma64 and Kroma256 panels to build many different odd shapes. The connectors necessary to attach to another panel come standard with each Krom64 and Kroma256 panel. Power and control signals can be transferred to adjacent panels with the included connectors reducing the amount of wiring necessary.
Another limitation of existing solutions on the market is the necessity of the controller to be physically near the LED panels. We incorporated RS-422 receivers into each of our Kroma64 and Kroma256 panels allowing drive distances of up to 100 meters when using the available KromaBreakout board.
During our prototyping phase we noticed that the WS2812B LEDs have a susceptibility to electrostatic discharge. As a result, we have also included ESD input protection on each Kroma64 and Kroma256 panels improving our product's reliability over others available in the market.
CPU: Atmel -- ATSAM3X8EA
FPGA: Xilinx Spartan6 -- XC6SLX9
FPGA Memory (Khon Plus) :
SD Micro Memory Card slot:
Bluetooth (Khon Plus):
Physical Size: 3" x 3" x 0.50"
Voltage (auto switching power source):
Current: Full configuration (running @ 84 MHz) 180 mA @ 5.0 Volts
Kroma256 LED Panel
Kroma64 LED Panel
Kroma1 LED Board
Khon Controller Programming
Arduino Software Support
* The RS-422 Breakout Board is optional, it attaches to Khon and provides 16 (LED control) + 2 (Sync In/Out) RJ11 connectors. See hardware specifications above.
You can learn more about KromaLights and our available products by visiting us at www.kromalights.com. We are also on facebook at www.facebook.com/kromalights. Like our page to receive routine updates throughout the campaign. You can also follow us on twitter using @KromaLights.
We have built full functioning prototypes of each of our boards, we have also incorporated all changes into our designs and we are ready to start building our first production runs.
We have suppliers both domestic and abroad ready to start building with deliveries within 8-10 week time frame.
We plan on continuing to develop and support the software. All of the software we developed for this project will be open source. We hope others will follow this trend and continue to develop software advancements in the future.
The only thing we are lacking is the ability to have high enough quantities allowing large cost reductions in our products.
We are financing our initial production run with KickStarter funding.Learn about accountability on Kickstarter
The simple answer is the integrated FPGA, and RS-422 drivers, for a more in-depth answer, read on...
Obviously there are a number of differences between the BeagleBoard Black and Khon from a hardware standpoint. But when it comes to controlling LEDs, the main difference is the on-board dedicated FPGA ---
Khon's Xilinx Spartan6 FPGA is used to generate the 16 simultaneous LED channel outputs, there is enough logic gates and memory in the FPGA to double this to 32 channels, but we decided to use the additional logic and 16 I/O signals for the SDRAM interface. (This could be changed in the future)
The Beaglebone Black could probably use its integrated PRU controllers to generate the LED data stream with very little CPU intervention, otherwise the CPU would be tied-up in dedicated tight-timing loops (I/O bit-banging) or possibly use timer resourced interrupts to generate the LED data stream.
Either way, there is really no comparison between a PRU (or CPU I/O bit-banging) and a dedicated FPGA for LED control, especially when it comes to added features like real-time support for synchronizing special effects, adding an alpha channel, or masking pixel data to an external event. From a hardware point of view, the FPGA is simply a better solution with parallel processing capability and programmable dedicated logic, it ends up being a very powerful simple to use LED controller.
With integrated FPGA hardware, the real advantage is when it comes to high-level programming, Khon's FPGA is a 24-bit RGB LED pixel controller with a very powerful user programmable interface. Also the full LED pixel framebuffer is located in the FPGA's dual-ported block RAM, giving simultaneous access to Khon's ARM CPU DMA engine for writing data and read access to the 16 parallel output controllers that generate the LED data streams.
Our FPGA pixel controller includes registers for the pixel output start address and pixel count, also the DMA pixel write address is programmable so any portion of the LED pixel framebuffer can be written quickly to generate very fast frame update rates.
The FPGA and CPU have direct access to the microSD card, giving all kinds of possibilities, including extremely long animations/messages or a host of special effects.
Our FPGA Framebuffer ICD document will be published shortly on the KromaLights website, also our open source application SDK will be on GitHUB soon. We have example programs written in Java and VB.net showing how easy it is to use Khon to program LED panels or light sticks with advanced features, including full color animations, scrolling rainbow marquee text banners, LEDs synchronized to sound sources, and the list goes on and on... your imagination is the limit.
In the end, would you rather spend your time concentrating on your feature rich LED lighting application using Khon's FPGA based RGB LED controller or programming the Beaglebone PRU's in assembly language, which in itself can be hard to document and maintain?
Khon-Plus also includes an on-board Bluetooth 4.0 module for smart phone based remote control applications and hardware audio support for synchronizing music or other sound sources.
Our breakout board includes RS-422 drivers, with RJ11 connectors, this simplifies and provides a more robust connection to the LED panels. Khon will also drive other vendor panels that support the Worldsemi WS2812B RGB LED, you would then connect the control lines directly to Khon's buffered I/O LED connector.
Khon can easily control your configuration. If we understood your question correctly you are planning on building 8 arrays of 6 X 27 LEDs (162 each) for a total of 1,296 RGB LEDs.
Khon will control up to 1,024 RGB LEDs per channel with support of up to 16 channels at a full frame rate of 30 Hz. When channels contain less than the 1,024 LEDs the refresh rate will be faster.
Here are the configurations we suggest:
#1. 2 Channels of 24 X 27 LEDs (648 LEDs per channel and equivalent to four of your described arrays) at approximately 60 Hz refresh.
#2. 8 Channels of 6 X 27 LEDs (162 LEDs per channel and equivalent to one of your described arrays) at approximately 200 Hz refresh.
If you are comfortable with less than a 30 Hz refresh rate you could drive all of the LEDs in a single channel as well.
Sending dynamic text messages is easy, Khon will receive the messages via USB or Bluetooth (phone / tablet, using Khon Plus) for immediate display. For your graphics, you can either store them locally on Khon's microSD card, then select the graphic you want dynamically or send the dynamic graphic using the above methods to be stored and/or displayed if desired.
We suggest taking your best guess, in this case $20 + $10 should be enough, if there is a big difference in the actual shipping cost, we will notify you and ask for additional funds or in the case of a surplus, if you want a refund or credit toward additional products.
Yes, an email explaing that you want to upgrade Khon and pledging an extra $50 for a Khon Plus is correct, this is the best way to upgrade one of the Kickstarter reward kits while taking advantage of the special Kickstarter rewards pricing.
The Xilinx Spartan6 FPGA is connected to the ARM's 16 bit static memory interface, this allows the ARM processor to map the FPGA into the cpu's extended memory space @ bandwidths over 150 Mbytes/sec.
Yes, no more worries when connecting an Arduino shield board to Khon, it has a user selectable jumper allowing either a 5 volt or 3.3 volt interface. The selection includes the ICSP output voltage and all the I/O signal levels are translated on Khon for both Master and Slave modes.
- (32 days)