Close
0%
0%

thingSoC NEOLED : NEOPixels on Intel Edison

Controlling large amounts of WS2812 LEDs with the Edison is as easy as writing it to an I2C Memory Array!

Similar projects worth following
Driving an array of WS2812 LEDs is not all that difficult, however, it can present problems for some Linux platforms, like the Raspberry PI, Beaglebone or the Edison. And it can also create timing problems in your projects. If, for example, you are doing several real-time tasks like audio or motion control in addition to controlling the LEDs.

Driving an array of WS2812 LEDs is not all that difficult, however, it can present problems for some Linux platforms, like the Raspberry PI, Beaglebone or the Edison. And it can also create timing problems in your projects. If, for example, you are doing several real-time tasks like audio or motion control in addition to controlling the LEDs.

We decided to make it very simple (and inexpensive) for people to drive arrays of WS2812 LEDs using the Cypress PSoC4, configured as an I2C (or SPI) memory device. That way, all the specific real-time timing problems of driving WS2812 LEDs are eliminated, and you simply access the LEDs as you would a standard memory device.

TSOC_NEOLED Driver Board

The TSOC_NEOLED driver board incorporates a Cypress PSoC4 device with a 74HCT245 driver chip to support longer wires for your LED arrays. The same firmware project can be loaded in any Cypress CY8CKIT-049 prototyping board as well.

The TSOC_NEOLED driver board can either be used as standalone LED driver, in conjunction with other thingSoC, or Mikrobus boards. It can also be used with Arduino, Raspberry Pi, Beaglebone, and other platforms as an I2C peripheral.

The TSOC_NEOLED looks to the Arduino like an I2C SRAM (memory) of 2048 bytes in size. Simply writing to the TSOC_NEOLED like an I2C memory causes the corresponding LED to light up on the display.

TSOC_NEOLED_I2C_example.ino

Example I2C control for thingSoC NEOLED driver Board

ino - 3.70 kB - 01/14/2017 at 23:04

Download

  • 1 × Intel Edison
  • 1 × thingSoC Neoled
  • 1 × Mikroe Arduino Adapter

  • 1
    Step 1

    Assemble the TSOC_NeoLED Driver Board

    The TSoC_NeoLED Driver board can either be used with Header Pin Strips, or you can solder wires directly to the board for attaching the LED strings.

    edison_neoled_6.png

    Note that the power for LEDs (5 Volts @ 2-5 amps) is supplied separately using the barrel jack connector. For additional power, there is a second set of power pins provided, for those higher power applications (i.e. more LEDs).

    There are eight (8) sets of three (3) pin JST connectors shown here, for supporting up to eight (8) strings of color LEDs.

  • 2
    Step 2

    Reprogramming the TSOC_NeoLED Driver Board

    If you need to update the firmware in the TSOC_NeoLED board, or load your own custom firmware, you can use a USB to UART adapter, like the FTDI basic (the little red board) shown below:

    edison_neoled_7.png

    To reprogram the TSOC_NeoLED board, you will need to install the Cypress PSoC Creator tool, and use the Bootloader Host application. Select the COM: port that FTDI adapter is connected to, your new .HEX file to upload, and select "Upload ".

    edison_neoled_8.png
  • 3
    Step 3

    WS2812 LED Strings

    If the LEDs are RGB only type, then the Yellow channel is not used, however the addressing remains the same, that is to say, memory is reserved for the Yellow/White channel, even if it is not used.

    If the LED string (or matrix panel) is less than 64 LEDs (i.e. string of 30 or 60), then the extra LED positions are not used, however the addressing remains the same, that is to say, memory is reserved for 64 LEDs per string, even if it is less than that.

    The Default I2C address for the TSOC_NEOLED is 8 (Seven bits). The Arduino IDE example lights each color of each LED in sequence, from low addresses to high addresses.

View all 5 instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates