I'm building an audio cable tester/soldering station. XLR cables have 3 pins and they can be wired in a few ways depending on what you want to do. The basic cable is connected 1 for 1 and I want to make a system to verify if each pin is connected to the good ones on the other connector.

Picture the male and female connectors side by side. The 3 pins on the male connectors will be connected to 3 digital outputs and the 3 pins on the female connector will be connected to 3 digital inputs. That way, I can turn one of the outputs High and check my 3 inputs to see where that pin on the male connector is wired on the female connector. Then I can walk the remaining outputs and find out how the rest of the cable is wired.

That part is all good, I can output the wiring via the Serial.print() command and the result is good. The thing is that I would like to show the result with LEDs. It brings me up to 9 LEDs in a 3x3 matrix. I can use 9 outputs to show the result, but it seem like there could be a much better way.

The two solutions I see are the following:

  1. Buying addressable LEDs and interface them with my Uno
  2. Use 6 outputs, one for each row and one for each column. Each row represents one pin on the male connector, each row represents one pin on the female connector. So while I walk my 3 pins I can turn on the corresponding row and columns, then turn off that row and go to the next one, turn on the corresponding columns, etc. I feel like this would work, but I'm wondering if the LEDs will flicker or if the refresh will be fast enough not to be noticeable.

What would you suggest? Am I on the wrong track with solution #2? Is there another way that does not require that many outputs? I'm already up to 12 IO pins taken with #2 and 15 with #1. It seem like a lot for such a simple build...

2 Answers 2


Option #2 can definitely work, it is based on a widely adopted side effect of human vision called Persistence Of Vision, abbreviated with POV, which is used in Television, LED cubes and many other display devices.

You SHOULD notice no flickering if you manage to keep a refresh rate above 24 FPS (Frames Per Seconds or full refreshes), but not all human being are the same, that's why we tend to aim at 60 or 100 FPS to ensure flickering is not perceivable by anybody.

What you WILL notice though is a reduced brightness as each LED will be turned on only for a fraction of time.

So, naming your pins as COL1 to COL3 and ROW1 to ROW3, you can refer to the following schematic:


simulate this circuit – Schematic created using CircuitLab

You can further extend your option #2 by using an external IC, commonly referred as LED drivers: not something you need unless you get short of outputs.

  • Thanks a lot for that. The LED driver shouldn't become necessary with this project, but I'll keep it in mind for future stuff. I already ordered a few adressable LEDs just to play with them eventually, but in that case, I don't need RGB anyway. Apr 27, 2017 at 1:48

It might be most cost- and time-effective to use an SPI-interfaced MAX7219-based 8x8 LED module. These cost a couple of dollars. Typically they include an 8x8 array of single-color LED chips, mounted under a cover. The MAX7219 handles LED multiplexing and allows software control of brightness as well as resistor control.

To represent 9 items in a 3x3 arrangement, you could use 4 LEDs per item, so that rows 1 and 2; 4 and 5; 7 and 8 represent rows of items, with LED rows 3 and 6 remaining blank; and similarly for the columns.

Note, with four output lines you can control 12 LEDs, multiplexed via “charlieplexing”. But the time and cost of setting that up probably would be somewhat more than just using a MAX7219 module.

  • I might expand my project eventually to do other connectors (some of them have 8 pins to check) so if I get there I'll get the 8x8 led matrix. I've read about charlieplexing already, but being pretty new to electronics I got a bit lost. I've been coding for a long time, so that part is not hard at all for me. The rest is still a work in progress, but it's very exciting! Apr 27, 2017 at 1:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.