Here are a few questions turn up from time to time...
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
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
Over here in Germany you get it 30% cheaper than a couple of years ago and
MAX7221 is even 50 cent cheaper than 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.