Monthly Archives: May 2013

Arduino Yún

So the Arduino team has announced an new product, the Arduino Yún.
Looks like a very interesting product. My own LED lighting projects tend to be installed in places where plugging in a USB cable is inconvenient at the least. So one main feature for me will be the programmability of the Yún per WiFi!

While the High Power RGB LED shield only requires three pins from any Arduino or other Microcontroller board (SCL, SDA, GDN) it would be nice to be able to just stack it on top of an Arduino and not have to worry about wiring it up on a breadboard etc.
Looking at some of the photos the Ethernet Jack on the Yún looks very close to the Header and also looks tall enough to interfere with a lot of other shields.

Our led shield is very short and it should fit. Should it not fit a little filing on the interfering edge of the board should do the trick. There are no traces close to that area and its save to file of a mm or so.


Little update…

I have not posted in a while so a little update is overdue.

After completing the first prototype I received some of the little SMD containers from Adafruit and labeled them. I also prepared a simple little PDF file with about 15 sheets outlining which components were to be installed next. While it still was not as fast as I’d hoped I was able to make 4 more prototypes in about 3 hours. Obviously there is still potential for optimization!

So far, so good. Meanwhile several people have voiced interest in purchasing the shield when it becomes available. A guesstimate is that currently about 75 shields are accounted for. We have requested an updated quote for 100 shields from our chosen manufacturer and we are waiting to receive it to determine the price. Once we have received it we will start a fundraiser on

I also have not just been sitting around but have worked some on the library. The one thing the library is really missing is a good fading algorithm. For my LED lighting system I developed an adapted 3D Bresenham algorithm.
The original algorithm was developed when most computers did not have specialized hardware to support floating point operations but only integer. While calculating floating point was possible, it was very slow. (Anyone remember Fractint ?) Equivalently most Arduino compatible micro controllers do not support floating point operations using specialized CPU operations thus are very slow when compared to integer operations. The initial Bresenham algorithm was developed to draw a line across a rasterized computer screen and uses only integer math, thus is very fast. For a RGB fading algorithm a 3D version of that algorithm was needed and I found an implementation on the Internet that suited our needs. It had to be modified and taken apart to allow fading several RGB LEDs synchronously but it works very nicely. As I recently found out, depending on what Microcontroller it runs on it can also be blistering fast.
In my own projects I have moved away from the original Arduino’s and have toyed around with a Teensy3. It is a fraction of the size of an Arduino UNO, costs only $20, is US made and employs a Freescale Arm Cortex M4 processor running at up to 98MHz. The new I2C library recently written by user nox771 also better supports the faster I2C hardware on the Teensy3 and supports I2C bus speeds of up to 2.4MHz. Ohh…. I forgot to mention, when using Teensyduino a plugin for the Arduino IDE the Teensy3 is fully Arduino compatible and comes with many libraries that one would have to dig around quite a bit somewhere else to find.
The hardware on our shield supports FM+ mode so up to 1MHz bus speed.
At that bus frequency a complete fade from RGB(0, 0, 0) to RGB(255, 255, 255) using the CIElab lightness corrected library function takes 53 ms!