Here are a few questions turn up from time to time...

Technical Questions

Why don't you use the hardware SPI-Bus of the Arduino?

When I wrote the first version of the library I didn't knew much about the Arduino or AVR processors in general and I knew nothing about writing code for the hardware SPI-bus on an ATMega. But I knew how the SPI protocol works and how I could make this work using simple digitalWrite() commands. I turned out the library code is fast enough for common use cases, so there is no need for doing Hi-Speed communications.

Other strong points in favour of the (admittedly trivial) code design are - Use any three free IO-Pins of your board for the hardware - Simple to debug. Much easier than managing 3 differnt SPI devices connected to the same hardware bus - Library is easily portable to other platforms, since it uses only two very basic functions from the Arduino language

The pins of my board work at 3.3V IO level but MAX72XX at 5V?

You need some extra hardware to make this work. The MAX72XX expects the power supply and the input logig level to be at 5V. So you'll need two things

  • a 5V power source
  • a component that works as a logic level converter

If you are lucky your 3.3V Arduino board already has 5V connector that delivers enough current for the Leds. I tested the example code with an Arduino Due and a Teensy 3.1. On both boards the IO-Pins output only 3.3V but both have the USB power supply broken out on a header that serves enough current at 5V to drive a single Led matrix.

Logic level converter breakout boards are available at all of the Arduino distributers. Search the web for "Arduino logic level converter". Most suppliers offer bi-directional converters which are fine to use even though for the MAX72XX you only need the Up-conversion (3.3V→5V). Most breakouts supply more than one channel, you need at least 3.

On which boards did you test the code?

  • Arduino NG
  • Teensy 3.1 (needs a logic level shifter)
  • Arduino Due (needs a logic level shifter)
  • Arduino Nano


The MAX72XX is too expensive, are there any cheaper solutions?

There are a lots of alternatives but the MAX7221 is the only driver Led driver IC that is still available in breadboard friendly PDIP format. Over here in Germany you get it 30% cheaper than a couple of years ago and the MAX7221 is even 50 cent cheaper than the MAX7219.


The Max72XX is outdated, I want multicolored Leds!

True, but if you need to drive a lot of Led's it still has its use.