Mastermind With an 8x8 RGB LED Matrix

by Dan Gutmann in Circuits > LEDs

3055 Views, 9 Favorites, 0 Comments

Mastermind With an 8x8 RGB LED Matrix

IMG_1637.JPG
IMG_1653.JPG
IMG_1656.JPG
IMG_1636.JPG
IMG_1655.JPG

Required parts: Basys3 FPGA

8x8 RGB LED Matrix by GEEETECH

9V battery

2N3904 transistors (x32)

1K resistor (x32)

100 Ohm resistor (x1)

50 Ohm resistor (x1)

The LED Matrix is a common anode matrix with 32 total pins. The common anode means that each row is controlled by just 1 pin while each column is controlled by 3 - one for each color. The controlling for this will be done with the 32 PMOD I/O ports on each end of the board.

Step 1: Connecting the Transistors

IMG_1650.JPG
IMG_1654.JPG
IMG_1652.JPG

Connect the 32 1K resistors to the center pin of the transistors. This is the "Base" pin of the transistors and will receive the signal from the basys board.

Step 2: Connecting to the Board

IMG_1648.JPG
IMG_1647.JPG
IMG_1640.JPG
IMG_1641.JPG

Connect the outputs of the board to the other end of the resistor as shown. JXADC => Red, JA =>Green, JB => Blue, JC => Row/Power. This is how the board controls which row/column/color is turned on. Each pin turns on or off the corresponding transistor allowing current to flow from power or to ground from that particular transistor.

Step 3: Connecting to the Matrix

IMG_1645.JPG
IMG_1644.JPG
IMG_1646.JPG
IMG_1639.JPG

This is where the 8 anode side transistors and 24 cathode side transistors begin to differ.

While facing the flat side of the transistor the pin order is emitter, base, collector. The 24 cathodes of the matrix must be connected to the collector pin of 24 transistors and the 8 anodes need to be connected to the emitter pin of the other 8 transistors.

I recommend color coding each of the wires going to the matrix itself to make it easier to debug. This particular matrix has 16 pins at the "top" ( the side I designated as top was the side with the lettering on it) and 16 pins at the "bottom". At the top the 8 pins follow this order (left to right) : Blue7:0 Read7:0

bottom : Row7:4 Green7:0 Row3:0

My color code - Blue: blue and purple

Red : red and orange

Green : green and yellow

Row : black,white,brown, and grey

Step 4: Power and Ground

IMG_1651.JPG
IMG_1642.JPG
IMG_1643.JPG
IMG_1649.JPG

I'll start with grounding the cathode side transistors. Each emitter pin on these will be connected to the battery's ground but the 8 red grounds need to have an extra 50 Ohm resistor between them and the battery's ground.

I connected these grounds to the rows along the outside of the bread board because it was convenient (if you choose to use a bread board)

The power however must be connected to the collector pin of the 8 transistors. An 100 ohm resistor must be placed between the power and the transistor because of the LEDs.

Step 5: Programming the Board

IMG_1638.JPG

Here are all of the VHDL files you'll need to program it! Good luck!

Just make sure that MAIN.vhd is the top module

Special thanks to Bryan Mealy for the clock divider and the finite state machine template.