PWM Shield Documentation

The PWM Shield for the Arduino allows you to add in 32 PWM outputs to your Arduino. They are daisy-chainable (easy to do with a jumper wire) so you can add up to 640 outputs. These shield can also be externally powered (up to 17V) so if your Arduino runs out of juice you can power them externally. Being easily stackable means you can get your next PWM lighting project up and running quickly.

This documentation is for the PWM Shield (Assembled) and the PWM Shield PCB.

You can also find additional posts about this shield here: posts tagged with PWM Shield

Parts List

Part Digikey # Sparkfun # Quantity
TLC5940 296-17732-5-ND   2
10K Resistor RNF14FTD10K0CT-ND   2
90deg 8x2 header 609-3337-ND   4
0.1uf cap 478-3192-ND   2
Headers A26520-40-ND   1
Jumper S9000-ND   5
1K Resistor RNF14FTD1K00   2
Board     1
8 Pin Header   PRT-09279 2
6 Pin Header   PRT-09280 2
























This shield is very simple to use. First, plug it into your Arduino and get the library from here:

You can find a full reference as well as usage examples here:

Daisy Chaining Shields


Can be downloaded here


Release under the TAPR Open Hardware License




How we can purchase the  PWM Shield (Assembled) ?


Thanks for your answer


Where can I buy this?

Board works well. Easy setup with an Arduino Uno. I bought a couple of IDE ribbon cables from Radio Shack, plugged them into the 5940 board's output pins, put LEDs in the sockets on the IDE cable and was up and running in minutes. Software library and examples worked fine out of the box. There are lots of broken links in the Arduino TLC5940 library doc, so use the sketch examples to understand the libraries. Hope someone fixes those doc links one day. Loaded with LEDs, this unit consumes power. The 9-12VDC power socket to the Arduino gets warm (hot?) with 32 LEDs firing, so I'm about to look into directly powering the 5940 board. All in all, nice work PracticalMaker. Good solid board that works out of the box. Worth the price.

are these 5v outputs or 10v which is what meanwell drivers use?

These are 5V outputs.

What kind of ribbon/IDC cable do you recommend for this? Do you have a good source?

Hi Brendan,

I haven't actually used any ribbon cable with this. I'd recommend digikey. You'll need 0.1" spacing 2x16 ribbon cable.

Thanks Andrew! This is one great little board. I was up and running in no time—which is saying something as I’m an Arduino novice.

The image is of the PCM shield attached to an Arduino Uno with as many LED’s as I could muster. Actually, I ran out of ribbon cable but I achieved my goal of getting the BasicUse program included with the tlc5940 libraries up and running.

For other newbie’s out there here’s a few quick learnings:

·      With the shield oriented so that the Arduino’s USB connection is at the bottom the numbering of the outputs begins at the bottom left (output 0) and continues to the bottom right (output 15). It then continues on the top edge (left to right) from output 16 to 31.

·      Read the comments in the “BasicUse” program and follow the instructions to edit the tlc_config.h file to change the number of TLCs from 1 to 2. Get rid of your Tlc5940.cpp file as per the instructions. Without the #define NUM_TLCS 2 updated, you can only control half of the shield.


/** Number of TLCs daisy-chained.  To daisy-chain, attach the SOUT (TLC pin 17)

    of the first TLC to the SIN (TLC pin 26) of the next.  The rest of the pins

    are attached normally.

    \note Each TLC needs it's own IREF resistor */

#define NUM_TLCS    2


Wooh hoo!

<img alt="Arduino_PCMshield" src="" width="239" height="300" />

Add new comment