Daisy Chain Two MAX7219 Devices?

Daisy chaining MAX7219 devices. Seems easy, but that is not what I am experiencing. I have been attempting to daisy chain two MAX7219 devices, as shown in Figure 3, page 13 of the MAX7219/7221 datasheet, with no success. I have tried using the MAX7219.h, ledControl.h, and a couple other libraries with similar failures. Currently, I am using the max7219.h library by Jonathan Evans.

When the Arduino transmits the SPI data, both displays show the same information perfectly. One might suspect that I have tied both DIN pins together, but this is not the case. By using the Serial Monitor, I can see that the data for each display is correct though.

Since the devices are connected in a daisy-chain style; i.e., DOUT of DEVICE1 is connected to DIN of DEVICE2 and the clocks and LOAD/CS are connected in parallel why do both displays show the same data when I only send one set of 8 digits? If I send two different sets of eight digits; i.e., "12 23 33" and "20240322" both displays show the last set of 8 digits (20240322). This occurs even if I terminate execution after the second data set is sent with exit(0);

It seems to me that if 16 digits are sent, the first (closest to the Arduino) would display digits 15 - 8 (12 23 33) and the furthest display (second in the chain) would display digits 7 - 0 (20240322). But, as stated, whatever the last thing sent shows on both displays. I have attempted to alter the .h and .cpp files here and there too. That ended in failure and thus I am here.

This has been very frustrating. So much so that I am considering using a slew of serial in/parallel out shift registers to get where I am trying to go, but of course that adds quite a bit of complexity to what I believed would be solved with the MAX7219 devices.

hard to tell

  • without a clear schematic
  • without real world pictures
  • without the exact code.

I'm just guessing: you haven't informed the library that you are using two MAX7219. If you miss this, the library can not send the correct amount of No-op commands.

I'm very confident that it will work correctly with my library if you use it as foreseen.

@pcitizen, please do not hijack. Threads split.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.