I have daisy-chained three MAX7219 7-segment 8-digit displays and wired it according to this diagram:

enter image description here

but no matter what library I use, the middle segment is in the wrong order when I display it.

So the numbers "123456789123456789"

would display as"12345678 76543219 89"

What could be wrong?

  • you probably want to understand how the three modules are internally connected so you are sure if you need to connect the serial pins yourself. while I don't know what your problems are with certainty, I can assure you with absolute certainty that your code is 100 percent correct. no need to waste your time debugging it.
    – dannyf
    Oct 4, 2017 at 18:09

1 Answer 1


If you had three separate boards that you had chained together I would be surprised if one of them was wrong, but looking at the picture it looks like one board and I would think it was more likely that one display was incorrect.

I can't see your code, so I can't say if there is a bug in it or not. It is possible that you have done something unusual, you might want to post a MINIMAL example to let people give it the once over.

As far as I know there aren't any "configuration settings" on a Max7219 to cause the affect you are seeing. The fact that the 3rd display is correct implies that the tracks on the PCB are correct and its the IC that's got its wiring backwards, but that's a daft idea.

You might be able to work out if a track is wrong, or such like, but it would be so much easier to fix in software. When you write to the display add an extra function that traps calls to the middle segment and flips the digits round (so tmp == digit[7]; digit[8] == digit[0]; digit[0] = tmp; // You know what I mean).


Your Answer

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

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