Library for TLC5940 16-channel PWM chip

Sorry, took a while to liberate some time for this, but here's my little test sketch trying to reproduce the situation where you have an uneven current value from pin 0 to pin 15 when the set value is low:

(The idea is that a 10k pot allows you to control the value being set for all sixteen LEDs.)

/*
 * Mathieu Glachant - Low value fader test sketch
 * Based on library by Alex Leone - acleone ~AT~ u.washington.edu
 * 2008-09-02 - v001
 *
 * Pin setup:
 * ------------                                             ---u----
 * ARDUINO   13|                                      LED2 |1     28| LED channel 1   (short leg (cathode), with the longer leg (anode) hooked up to +5V)
 *           12|                                      LED3 |2     27|-> GND
 *           11|                                      LED4 |3     26|-> SIN (pin 4)
 *           10|-> BLANK (pin 23)                     LED5 |4     25|-> SCLK (pin 6)
 *            9|-> XLAT (pin 24)                        .  |5     24|-> XLAT (pin 9)
 *            8|                                        .  |6     23|-> BLANK (pin 10)
 *            7|                                        .  |7     22|-> GND
 *            6|-> SCLK (pin 25)                        .  |8     21|-> VCC (+5V)
 *            5|                                        .  |9     20|-> 2K Resistor -> GND
 *            4|-> SIN (pin 26)                         .  |10    19|-> +5V
 *            3|-> GSCLK (pin 18)                       .  |11    18|-> GSCLK (pin 3)
 *            2|                                        .  |12    17|
 *            1|                                        .  |13    16|
 *            0|                                      LED15|14    15| LED channel 16
 * ------------                                             --------
 *
 * Put the longer leg of the LEDs in the +5V and the shorter leg in LED(1-16).
 * The 2K resistor between pin 20 and GND will let ~20mA through each LED.  The actual formula is
 *   Iref value = 39.05 / (desired current in A)           eg       1953Ohms = 39.06 / 0.020A
 *
 *
 * This sketch implements a fader based on the analog voltage at analog pin potPin (see constants below).
 */

#include <TLC5940LED.h>
#include <Wire.h>

#define NUM_TLCS      1
#define HMC6352Address  0x21
#define potPin          0  // Analog pot to set the overall brightness

void setup()
{
  Tlc.init(NUM_TLCS);
  Tlc.resetTimers();
  Wire.begin();
}

int readPot(float scale)
{
  return (int)(scale*analogRead(potPin)/1024);  // Read the analog voltage from the pot
}

void headingLED(int heading)
{
  Tlc.clear(); // sets all the channels to zero, but doesn't update
  for (uint8_t channel = 1; channel <= NUM_TLCS * 16; channel++) 
  {
    Tlc.set(channel, heading);  //  Tlc.set(channel, value (0-4095))   this requires a Tlc.update() to set the values.
  }
  Tlc.update();
}

void loop()
{
  headingLED(readPot(4095));
  
  delay(5);
}

The short of it is, I can't reproduce it. Any value of the analog voltage from the control pot for which the LEDs are visibly lit, I see no difference from one end to the other of the ramp. All the LEDs are lit equally to my naked eye.

What am I doing differently from what you did to get your results?