They have limited IO, so you would need to drive the LEDs via SPI and some external logic chips…
I haven’t tested it yet, but I’m planning to use a 16-Channel Constant-Current LED Driver like the TLC 59281 from Texas Instruments. Thats the reason I made it an Common Anode.
that his script is a gold mine
Thanks. Got some more code snippets from my test project to build digits with single LEDs for you. It was the easiest way for building digits. Haven’t decided how to wire the rest (I’m waiting till I know how I will do the rest. The samples are already ordered.).
#uses the common 7-Segment numbering with 0=a, 1=b, ...
#scaling factor for Segments spacing
f=0.33
#relative position offset of Horizontal and Vertical Segments to center
OffDig = [[0, -2*f], [f,-f], [f, f], [0,2*f], [-f,f], [-f,-f], [0, 0]]
def buildHSeg(mod, offX, offY):
print "buildHSeg", mod[0][6]
for i in range(len(mod)):
mod[i][1].SetOrientation([-900, 900][i%2])
mod[i][1].SetPosition(pcbnew.wxPointMM((-1.5+i)*Scale/8+offX, 0+offY))
def buildVSeg(mod, offX, offY):
print "buildVSeg", mod[0][6]
for i in range(len(mod)):
mod[i][1].SetOrientation([0, 1800][i%2])
mod[i][1].SetPosition(pcbnew.wxPointMM(0+offX, (-1.5+i)*Scale/8+offY))
def build7Seg(mods, offsetX, offsetY):
print "build7Seg"
for i in range(len(mods)/4):
if i in [0, 6, 3]:
buildHSeg(mods[i*4:i*4+4], OffDig[i][0]*Scale + offsetX, OffDig[i][1]*Scale + offsetY)
else:
buildVSeg(mods[i*4:i*4+4], OffDig[i][0]*Scale + offsetX, OffDig[i][1]*Scale + offsetY)
build7Seg(MatrixDigitLeds, 0, 0)
for i in range(len(MatrixDigitLeds)):
if i%4 != 3:
addTrack(MatrixDigitLeds[i][2].GetPosition(), MatrixDigitLeds[i+1][4].GetPosition(), MatrixDigitLeds[i+1][5], 0)
It will get you something like this. The series-circuits shouldn’t be a problem when you use a Constant Current Driver.