I am trying to control some ws2811 pixels using the adafruit neopixel library. https://github.com/adafruit/Adafruit_NeoPixel

When I use an arduino uno they work fine but when I import the library and flash the code on udoo nothing lights up. http://www.adafruit.com/products/1426 these are the neopixels that I am using.

I have taken care of the basic things like power and connections. I basically set the exact same setup as in the arduino but they dont seem to light up.

I could post detailed pictures of my setup.

I tried with a basic led on pin13 shown in examples and that seems to light up. But neopixels don't work.

http://forums.adafruit.com/viewtopic.php?f=47&t=40547&p=258419#p258419 The forum from adafruit says the library works with the due and they dont mention anything about the level shifter, I even posted in the forum but no one responded back. If anyone can help me I will be thankful :)

  • 2
    \$\begingroup\$ At least add links to WS2811, Adafruit Neopixel library, Udoo. Probably copy in the problematic code too. \$\endgroup\$ – jippie Mar 15 '14 at 16:06
  • \$\begingroup\$ @jippie added them. The code is just from the example its nothing special. \$\endgroup\$ – Pavan K Mar 15 '14 at 17:59
  • \$\begingroup\$ The NeoPixels use the WS2801 series of addressable LED drivers. The WS2801 works with 3.3v. The WS2811 does not. \$\endgroup\$ – Passerby Mar 15 '14 at 20:14
  • \$\begingroup\$ @Passerby I might be wrong but ws2801 is also 5v and he was just mentioning the series in the post if I may point out. The neopixel for sure has ws2812. If you check the product link they also mention it has been tested with the due. \$\endgroup\$ – Pavan K Mar 15 '14 at 20:22
  • \$\begingroup\$ @Passerby thank you but the pixels work without any level shifter had to take care of some minor timing issues in the library \$\endgroup\$ – Pavan K Mar 17 '14 at 12:20

Two things. First:

UDOO is an open hardware, low-cost computer equipped with an ARM i.MX6 Freescale processor for Android and Linux, alongside Arduino DUE’s ARM SAM3X, both CPU integrated on the same board!

The UDOO uses a ARM SAM3X for the arduino part. The Arduino Uno uses an ATMega328. Different registers, different features. A library for one won't always work on the other without modifying.

Second: The UDOO's Arduino part is 3.3v level, not 5v like the (standard) Uno. And the WS2811 does not work well or at all at 3.3v. You need to power the WS2811's off 5v, and use a level shifter for the data pin, to protect the UDOO.

  • \$\begingroup\$ I am sorry I did not post a more detailed picture of what I am doing. I understand they are different chips. I powered the pixels externally and I just connected the data pin to the pixels and the ground to the UDOO \$\endgroup\$ – Pavan K Mar 15 '14 at 17:40
  • \$\begingroup\$ Thank you I think I understand now but could you give me a level shift circuit so I can build one and add between the data line out of the UDOO. I already connected to try it now and I believe it didnt fry the board yet:( \$\endgroup\$ – Pavan K Mar 15 '14 at 18:42

The adafruit library has some timing issues and even though they claim it works with the DUE. I could not make it work with it out of the box. I had to take care of some timing issues.

Instead I would suggest to use the FastLED library https://github.com/FastLED/FastLED Use the FastLED2.1 branch for the UDOO. It just works out of the box without any modification. Hope this helps someone. You don't need to use the level shifter unless you have "grumpy strips" mentioned here http://happyinmotion.com/?p=1247


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.