AI agents & screen readers: for a machine-readable, text-only catalogue, start at /llms.txt. Products are available as Markdown (/products.md, /products/{handle}.md) and JSON (/products.json, /products/{handle}.json).
Store
Draw patterns on the 8 × 8 matrix
Advanced 45 minutes

Drive a row-anode, column-cathode 8×8 matrix with a MAX7219 in no-decode mode. Alternate a smile pattern and a diagonal.

Drive a row-anode, column-cathode 8×8 matrix with a MAX7219 in no-decode mode. Alternate a smile pattern and a diagonal.

Use the Uno R3 Learning Kit. Build with power disconnected, check the labelled connections, then upload the supplied sketch. Drag or zoom the 3D model to inspect it from any angle.

Identify your part

No matrix part number is specified in the kit listing. Verify the targeted row-anode, column-cathode pin map before following this build. A MAX7219 is required in addition to the matrix.

Also needed

Use an additional 830-contact breadboard and the kit’s mini breadboard. The matrix bridges their edges so neither row of jumper connections is hidden beneath its case.

Explore all kit tutorials

View Markdown

Step 1 — Watch the complete build

Press Play for the narrated build. You can rotate and zoom the model while it plays, or follow the individual steps below.

Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Keep U S B disconnected while you build. On this breadboard, each group of five holes shares a connection; the centre channel separates the two halves. You can drag the 3D view to look around. Start with the supply. Connect the Arduino’s five volt output to the positive rail. That rail will power the display driver. Now connect Arduino ground to the ground rail. The driver and Arduino need this shared reference. The MAX7219 handles the fast scanning for us. Seat it across the centre channel, with its pin-one notch at the left. Add the mini breadboard beside the main board. The matrix will bridge the gap, leaving its connections accessible on both sides. This build uses the row-anode, column-cathode pin map listed below. Check your matrix against that map first, then seat it in the highlighted holes. Its display face stays clear of the wiring. Add the one hundred kilohm resistor here. It sets a low starting L E D current through the driver’s ISET pin. A resistor works in either direction. This one hundred nanofarad capacitor helps keep the driver’s supply steady during switching. It spans the positive and ground rails and has no polarity. The ten microfarad capacitor adds a little more supply buffering. Its positive lead goes to the positive rail; the stripe marks the negative lead, which goes to ground. Connect the driver’s power pin to the positive rail. This is its five volt supply. Connect the first ground pin on the driver to the ground rail. There’s a second ground pin on this driver. Connect that to the same ground rail too. Connect ISET to one end of the current-setting resistor. This is how the driver sets the L E D current. Connect the other end of that resistor to the positive rail. Connect digital pin eleven to the driver’s data input. This is the Uno’s controller data output pin; our program uses S P I to send the pattern data. Connect digital pin thirteen to the clock input. This is the S P I clock, which tells the driver when to read each bit. Digital pin ten connects to LOAD. The program pulses it to finish each command. That completes the three control signals. Now connect the driver’s segment D P output to the first anode row of the matrix. These segment outputs supply the rows, while the digit outputs will select the columns. Connect segment A on the driver to row 2 of the matrix. Connect segment B on the driver to row 3 of the matrix. Connect segment C on the driver to row 4 of the matrix. Connect segment D on the driver to row 5 of the matrix. Connect segment E on the driver to row 6 of the matrix. Connect segment F on the driver to row 7 of the matrix. Connect segment G to the eighth anode row. That finishes the row connections; next are the column returns. Connect digit zero on the driver to the first cathode column. These are switched returns, not ground wires: the driver selects each column in turn. Connect digit 1 on the driver to column 2 of the matrix. Connect digit 2 on the driver to column 3 of the matrix. Connect digit 3 on the driver to column 4 of the matrix. Connect digit 4 on the driver to column 5 of the matrix. Connect digit 5 on the driver to column 6 of the matrix. Connect digit 6 on the driver to column 7 of the matrix. Connect digit seven to the eighth column. With all the rows and columns connected, the driver can scan the whole matrix. Check all wiring. Connect the square U S B-B plug to the Uno and the U S B-A plug to your computer. Use Verify and Upload in the code editor below.

Step 2 — Understand the breadboard

Keep USB disconnected while you build. On this breadboard, each group of five holes shares a connection; the centre channel separates the two halves. You can drag the 3D view to look around.

Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Keep U S B disconnected while you build. On this breadboard, each group of five holes shares a connection; the centre channel separates the two halves. You can drag the 3D view to look around.

Step 3 — Connect Uno 5V → T+ rail 15

Start with the supply. Connect the Arduino’s five volt output to the positive rail. That rail will power the display driver.

ConnectTo
Uno 5VT+ rail 15
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Start with the supply. Connect the Arduino’s five volt output to the positive rail. That rail will power the display driver.

Step 4 — Connect Uno GND → T− rail 11

Now connect Arduino ground to the ground rail. The driver and Arduino need this shared reference.

ConnectTo
Uno GNDT− rail 11
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Now connect Arduino ground to the ground rail. The driver and Arduino need this shared reference.

Step 5 — Place MAX7219 LED display driver

The MAX7219 handles the fast scanning for us. Seat it across the centre channel, with its pin-one notch at the left.

Exact breadboard holes
  • driver · 1 · DIN → E14
  • driver · 2 · DIG0 → E15
  • driver · 3 · DIG4 → E16
  • driver · 4 · GND → E17
  • driver · 5 · DIG6 → E18
  • driver · 6 · DIG2 → E19
  • driver · 7 · DIG3 → E20
  • driver · 8 · DIG7 → E21
  • driver · 9 · GND → E22
  • driver · 10 · DIG5 → E23
  • driver · 11 · DIG1 → E24
  • driver · 12 · LOAD → E25
  • driver · 13 · CLK → F25
  • driver · 14 · SEG A → F24
  • driver · 15 · SEG F → F23
  • driver · 16 · SEG B → F22
  • driver · 17 · SEG G → F21
  • driver · 18 · ISET → F20
  • driver · 19 · VCC → F19
  • driver · 20 · SEG C → F18
  • driver · 21 · SEG E → F17
  • driver · 22 · SEG DP → F16
  • driver · 23 · SEG D → F15
  • driver · 24 · DOUT → F14
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

The MAX7219 handles the fast scanning for us. Seat it across the centre channel, with its pin-one notch at the left.

Step 6 — Place Mini breadboard · 170 contacts

Add the mini breadboard beside the main board. The matrix will bridge the gap, leaving its connections accessible on both sides.

Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Add the mini breadboard beside the main board. The matrix will bridge the gap, leaving its connections accessible on both sides.

Step 7 — Place 8 × 8 LED matrix · 16 pins

This build uses the row-anode, column-cathode pin map listed below. Check your matrix against that map first, then seat it in the highlighted holes. Its display face stays clear of the wiring.

Exact breadboard holes
  • display · 1 → Extension A4
  • display · 2 → Extension A5
  • display · 3 → Extension A6
  • display · 4 → Extension A7
  • display · 5 → Extension A8
  • display · 6 → Extension A9
  • display · 7 → Extension A10
  • display · 8 → Extension A11
  • display · 9 → J47
  • display · 10 → J46
  • display · 11 → J45
  • display · 12 → J44
  • display · 13 → J43
  • display · 14 → J42
  • display · 15 → J41
  • display · 16 → J40
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

This build uses the row-anode, column-cathode pin map listed below. Check your matrix against that map first, then seat it in the highlighted holes. Its display face stays clear of the wiring.

Step 8 — Place 100 kΩ resistor

Add the one hundred kilohm resistor here. It sets a low starting LED current through the driver’s ISET pin. A resistor works in either direction.

Exact breadboard holes
  • iset · Pin 0 → A27
  • iset · Pin 1 → A31
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Add the one hundred kilohm resistor here. It sets a low starting L E D current through the driver’s ISET pin. A resistor works in either direction.

Step 9 — Place 100 nF ceramic capacitor

This one hundred nanofarad capacitor helps keep the driver’s supply steady during switching. It spans the positive and ground rails and has no polarity.

Exact breadboard holes
  • bypass · 0 → T+ rail 20
  • bypass · 1 → T− rail 20
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

This one hundred nanofarad capacitor helps keep the driver’s supply steady during switching. It spans the positive and ground rails and has no polarity.

Step 10 — Place 10 µF electrolytic capacitor · 50 V

The ten microfarad capacitor adds a little more supply buffering. Its positive lead goes to the positive rail; the stripe marks the negative lead, which goes to ground.

Exact breadboard holes
  • bulk · - → T− rail 24
  • bulk · + → T+ rail 24
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

The ten microfarad capacitor adds a little more supply buffering. Its positive lead goes to the positive rail; the stripe marks the negative lead, which goes to ground.

Step 11 — Connect J19 → T+ rail 14

Connect the driver’s VCC pin to the positive rail. This is its five volt supply.

ConnectTo
J19T+ rail 14
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect the driver’s power pin to the positive rail. This is its five volt supply.

Step 12 — Connect A17 → T− rail 13

Connect the first ground pin on the driver to the ground rail.

ConnectTo
A17T− rail 13
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect the first ground pin on the driver to the ground rail.

Step 13 — Connect A22 → T− rail 17

There’s a second ground pin on this driver. Connect that to the same ground rail too.

ConnectTo
A22T− rail 17
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

There’s a second ground pin on this driver. Connect that to the same ground rail too.

Step 14 — Connect J20 → B27

Connect ISET to one end of the current-setting resistor. This is how the driver sets the LED current.

ConnectTo
J20B27
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect ISET to one end of the current-setting resistor. This is how the driver sets the L E D current.

Step 15 — Connect B31 → T+ rail 26

Connect the other end of that resistor to the positive rail.

ConnectTo
B31T+ rail 26
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect the other end of that resistor to the positive rail.

Step 16 — Connect Uno D11 PWM/MOSI → A14

Connect digital pin eleven to the driver’s data input. This is the Uno’s MOSI pin; our program uses SPI to send the pattern data.

ConnectTo
Uno D11 PWM/MOSIA14
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect digital pin eleven to the driver’s data input. This is the Uno’s controller data output pin; our program uses S P I to send the pattern data.

Step 17 — Connect Uno D13/SCK → J25

Connect digital pin thirteen to the clock input. This is the SPI clock, which tells the driver when to read each bit.

ConnectTo
Uno D13/SCKJ25
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect digital pin thirteen to the clock input. This is the S P I clock, which tells the driver when to read each bit.

Step 18 — Connect Uno D10 PWM/SS → A25

Digital pin ten connects to LOAD. The program pulses it to finish each command. That completes the three control signals.

ConnectTo
Uno D10 PWM/SSA25
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Digital pin ten connects to LOAD. The program pulses it to finish each command. That completes the three control signals.

Step 19 — Connect J16 → H47

Now connect the driver’s segment D P output to the first anode row of the matrix. These segment outputs supply the rows, while the digit outputs will select the columns.

ConnectTo
J16H47
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Now connect the driver’s segment D P output to the first anode row of the matrix. These segment outputs supply the rows, while the digit outputs will select the columns.

Step 20 — Connect J24 → H42

Connect segment A on the driver to row 2 of the matrix.

ConnectTo
J24H42
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect segment A on the driver to row 2 of the matrix.

Step 21 — Connect J22 → Extension C11

Connect segment B on the driver to row 3 of the matrix.

ConnectTo
J22Extension C11
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect segment B on the driver to row 3 of the matrix.

Step 22 — Connect J18 → H44

Connect segment C on the driver to row 4 of the matrix.

ConnectTo
J18H44
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect segment C on the driver to row 4 of the matrix.

Step 23 — Connect J15 → Extension C4

Connect segment D on the driver to row 5 of the matrix.

ConnectTo
J15Extension C4
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect segment D on the driver to row 5 of the matrix.

Step 24 — Connect J17 → Extension C10

Connect segment E on the driver to row 6 of the matrix.

ConnectTo
J17Extension C10
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect segment E on the driver to row 6 of the matrix.

Step 25 — Connect J23 → Extension C5

Connect segment F on the driver to row 7 of the matrix.

ConnectTo
J23Extension C5
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect segment F on the driver to row 7 of the matrix.

Step 26 — Connect J21 → Extension C8

Connect segment G to the eighth anode row. That finishes the row connections; next are the column returns.

ConnectTo
J21Extension C8
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect segment G to the eighth anode row. That finishes the row connections; next are the column returns.

Step 27 — Connect A15 → H43

Connect digit zero on the driver to the first cathode column. These are switched returns, not ground wires: the driver selects each column in turn.

ConnectTo
A15H43
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect digit zero on the driver to the first cathode column. These are switched returns, not ground wires: the driver selects each column in turn.

Step 28 — Connect A24 → Extension C6

Connect digit 1 on the driver to column 2 of the matrix.

ConnectTo
A24Extension C6
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect digit 1 on the driver to column 2 of the matrix.

Step 29 — Connect A19 → Extension C7

Connect digit 2 on the driver to column 3 of the matrix.

ConnectTo
A19Extension C7
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect digit 2 on the driver to column 3 of the matrix.

Step 30 — Connect A20 → H46

Connect digit 3 on the driver to column 4 of the matrix.

ConnectTo
A20H46
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect digit 3 on the driver to column 4 of the matrix.

Step 31 — Connect A16 → Extension C9

Connect digit 4 on the driver to column 5 of the matrix.

ConnectTo
A16Extension C9
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect digit 4 on the driver to column 5 of the matrix.

Step 32 — Connect A23 → H45

Connect digit 5 on the driver to column 6 of the matrix.

ConnectTo
A23H45
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect digit 5 on the driver to column 6 of the matrix.

Step 33 — Connect A18 → H41

Connect digit 6 on the driver to column 7 of the matrix.

ConnectTo
A18H41
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect digit 6 on the driver to column 7 of the matrix.

Step 34 — Connect A21 → H40

Connect digit seven to the eighth column. With all the rows and columns connected, the driver can scan the whole matrix.

ConnectTo
A21H40
Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Connect digit seven to the eighth column. With all the rows and columns connected, the driver can scan the whole matrix.

Step 35 — Place USB-A to USB-B cable · Uno

Check all wiring. Connect the square USB-B plug to the Uno and the USB-A plug to your computer. Use Verify and Upload in the code editor below.

Explore in 3D

Loading assembly…

0:00 / 0:00
Transcript

Check all wiring. Connect the square U S B-B plug to the Uno and the U S B-A plug to your computer. Use Verify and Upload in the code editor below.

Step 36 — Program your Uno

Choose Arduino Uno. Verify, pair the board and Upload this sketch. Keep USB connected. Drive a row-anode, column-cathode 8×8 matrix with a MAX7219 in no-decode mode. Alternate a smile pattern and a diagonal.

Draw patterns on the 8 × 8 matrixOpen in English ↗

Step 37 — Try it and troubleshoot

Start with one pixel to verify orientation. This recipe uses the common 1088AS-style map: anode rows 9,14,8,12,1,7,2,5 and cathode columns 13,3,4,10,6,11,15,16. The code’s bytes describe columns.

If it does not work

Mirrored or rotated images usually mean the row/column orientation differs. Identify one LED at a time with a one kilohm resistor before connecting the MAX7219. An opposite-polarity matrix requires a different mapping and driver arrangement.

Parts List

Required Parts (2)

Uno R3 Learning kit
Uno R3 Learning kit

Use the components named in this tutorial. A computer and any additional power supply are not included.

x1

$64.70

In stock
830-Point Breadboard
830-Point Breadboard

Use this larger board in place of the kit’s 400-contact breadboard, to keep component bodies and jumper connections clear.

x1

$8.90

In stock

Project Summary

2 parts total

Required parts $73.60
Total (required) $73.60

Unavailable items will be skipped

Maddy, co-founder of Little Bird

Need help? We're here for you!

Hi, I'm Maddy. My team and I are ready to help with your order or any questions.