orientation problem in LED dot matrix display with MAX7219

Hi, I made a project using 4, 8x8 matrix max7219, I just used 4 singles 8x8 styles led matrix and the project worked really well, then I bought an FC-16 module (8x8x4), and I upload the program and the scrolling text looks vertical, really weird in the FC-16 because in the module have different positions of the assembly pins and looks really bad when the scrolling text is on, I made a program whit modifications (attached), please I need your help with it. I already added all Parola stuff (#define HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW //PAROLA_HW) but doesn't work.
Thank you.....

bluetooth_matrix.ino (9.21 KB)

bluetooth matrix.txt (9.21 KB)

You need to describe precisely your problem otherwise we can't help efficiently.

You should use :

#define HARDWARE_TYPE MD_MAX72XX:: FC16_HW

and

MD_MAX72XX m = MD_MAX72XX(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

This video may help also

thank you, I already modified my question, I tried again in the Arduino but doesn't work.

Then try other values,among those:

    GENERIC_HW,   ///< Use 'generic' style hardware modules commonly available.
    FC16_HW,      ///< Use FC-16 style hardware module.
    PAROLA_HW,    ///< Use the Parola style hardware modules.
    ICSTATION_HW, ///< Use ICStation style hardware module.

    DR0CR0RR0_HW, ///< Structured name
    DR0CR0RR1_HW, ///< Structured name
    DR0CR1RR0_HW, ///< Structured name equivalent to GENERIC_HW
    DR0CR1RR1_HW, ///< Structured name
    DR1CR0RR0_HW, ///< Structured name equivalent to FC16_HW
    DR1CR0RR1_HW, ///< Structured name
    DR1CR1RR0_HW, ///< Structured name equivalent to PAROLA_HW
    DR1CR1RR1_HW  ///< Structured name equivalent to ICSTATION_HW

Maybe one will work.
If not, post a picture of your module, with any printed indication visible. And post your code in CODE format not as an attached file (please)

#include <MD_Parola.h>

#include <MD_MAX72xx.h>
#include <SPI.h>
#include <MaxMatrix.h>
#include <SoftwareSerial.h>
#include <avr/pgmspace.h>
#define HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW   //PAROLA_HW

PROGMEM const unsigned char CH[] = {
// Numeric codes are next post
};

int dIn = 5;   // DIN pin of MAX7219 module
int clk = 7;   // CLK pin of MAX7219 module
int cs = 6;    // CS pin of MAX7219 module

int maxInUse = 4;    // Number of MAX7219's connected

MaxMatrix m(dIn, cs, clk, maxInUse);
SoftwareSerial Bluetooth(8, 7); // Bluetooth

byte buffer[10];
char incomebyte;
int scrollSpeed = 100;
char text[100] = " Please "; // Initial text message
int brightness = 15;
int count = 0;
char indicator;

void setup() {
  
  m.init(); // MAX7219 initialization
  m.setIntensity(brightness); // initial led matrix intensity, 0-15
  Bluetooth.begin(38400); // Default communication rate of the Bluetooth module
}

void loop() {
  // Printing the text
  printStringWithShift(text, scrollSpeed);
  
  if 
  (Bluetooth.available()) {   // Checks whether data is comming from the serial port
    indicator = Bluetooth.read();   // Starts reading the serial port, the first byte from the incoming data
    // If we have pressed the "Send" button from the Android App, clear the previous text
    if (indicator == '1')
    {
      for (int i = 0; i < 100; i++) {
        m.clear();
        text[i] = 0;
        
      }
      // Read the whole data/string comming from the phone and put it into text[] array.
      while (Bluetooth.available()) {
        incomebyte = Bluetooth.read();
        text[count] = incomebyte;
        count++;
        
      }
      count = 0;
    }
    // Adjusting the Scrolling Speed
    else if (indicator == '2') {
      String sS = Bluetooth.readString();
      scrollSpeed = 150 - sS.toInt(); // Milliseconds, subtraction because lower value means higher scrolling speed
    }
    // Adjusting the brightness
    else if (indicator == '3') {
      String sB = Bluetooth.readString();
      brightness = sB.toInt();
      m.setIntensity(brightness);
    }
  }

}

void printCharWithShift(char c, int shift_speed) {
  if (c < 32) return;
  c -= 32;
  memcpy_P(buffer, CH + 7 * c, 7);
  m.writeSprite(32, 0, buffer);
  m.setColumn(32 + buffer[0], 0);

  for (int i = 0; i < buffer[0] + 1; i++)
  {
    delay(shift_speed);
    m.shiftLeft(false, false);
  }
}

void printStringWithShift(char* s, int shift_speed) {
  while (*s != 0) {
    printCharWithShift(*s, shift_speed);
    s++;
  }
}

void printString(char* s)
{
  int col = 0;
  while (*s != 0)
  {
    if (*s < 32) continue;
    char c = *s - 32;
    memcpy_P(buffer, CH + 7 * c, 7);
    m.writeSprite(col, 0, buffer);
    m.setColumn(col + buffer[0], 0);
    col += buffer[0] + 1;
    s++;
  }
}

Please edit your post to enclose the code in code tags.

// numeric codes between keys in Arduino code above.[/color]


  3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space[color=#222222][/color]
  1, 8, B01011111, B00000000, B00000000, B00000000, B00000000, // ![color=#222222][/color]
  3, 8, B00000011, B00000000, B00000011, B00000000, B00000000, // "[color=#222222][/color]
  5, 8, B00010100, B00111110, B00010100, B00111110, B00010100, // #[color=#222222][/color]
  4, 8, B00100100, B01101010, B00101011, B00010010, B00000000, // $[color=#222222][/color]
  5, 8, B01100011, B00010011, B00001000, B01100100, B01100011, // %[color=#222222][/color]
  5, 8, B00110110, B01001001, B01010110, B00100000, B01010000, // &[color=#222222][/color]
  1, 8, B00000011, B00000000, B00000000, B00000000, B00000000, // '[color=#222222][/color]
  3, 8, B00011100, B00100010, B01000001, B00000000, B00000000, // ([color=#222222][/color]
  3, 8, B01000001, B00100010, B00011100, B00000000, B00000000, // )[color=#222222][/color]
  5, 8, B00101000, B00011000, B00001110, B00011000, B00101000, // *[color=#222222][/color]
  5, 8, B00001000, B00001000, B00111110, B00001000, B00001000, // +[color=#222222][/color]
  2, 8, B10110000, B01110000, B00000000, B00000000, B00000000, // ,[color=#222222][/color]
  4, 8, B00001000, B00001000, B00001000, B00001000, B00000000, // -[color=#222222][/color]
  2, 8, B01100000, B01100000, B00000000, B00000000, B00000000, // .[color=#222222][/color]
  4, 8, B01100000, B00011000, B00000110, B00000001, B00000000, // /[color=#222222][/color]
  4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // 0[color=#222222][/color]
  3, 8, B01000010, B01111111, B01000000, B00000000, B00000000, // 1[color=#222222][/color]
  4, 8, B01100010, B01010001, B01001001, B01000110, B00000000, // 2[color=#222222][/color]
  4, 8, B00100010, B01000001, B01001001, B00110110, B00000000, // 3[color=#222222][/color]
  4, 8, B00011000, B00010100, B00010010, B01111111, B00000000, // 4[color=#222222][/color]
  4, 8, B00100111, B01000101, B01000101, B00111001, B00000000, // 5[color=#222222][/color]
  4, 8, B00111110, B01001001, B01001001, B00110000, B00000000, // 6[color=#222222][/color]
  4, 8, B01100001, B00010001, B00001001, B00000111, B00000000, // 7[color=#222222][/color]
  4, 8, B00110110, B01001001, B01001001, B00110110, B00000000, // 8[color=#222222][/color]
  4, 8, B00000110, B01001001, B01001001, B00111110, B00000000, // 9[color=#222222][/color]
  2, 8, B01010000, B00000000, B00000000, B00000000, B00000000, // :[color=#222222][/color]
  2, 8, B10000000, B01010000, B00000000, B00000000, B00000000, // ;[color=#222222][/color]
  3, 8, B00010000, B00101000, B01000100, B00000000, B00000000, // <[color=#222222][/color]
  3, 8, B00010100, B00010100, B00010100, B00000000, B00000000, // =[color=#222222][/color]
  3, 8, B01000100, B00101000, B00010000, B00000000, B00000000, // >[color=#222222][/color]
  4, 8, B00000010, B01011001, B00001001, B00000110, B00000000, // ?[color=#222222][/color]
  5, 8, B00111110, B01001001, B01010101, B01011101, B00001110, // @[color=#222222][/color]
  4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A[color=#222222][/color]
  4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B[color=#222222][/color]
  4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C[color=#222222][/color]
  4, 8, B01111111, B01000001, B01000001, B00111110, B00000000, // D[color=#222222][/color]
  4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E[color=#222222][/color]
  4, 8, B01111111, B00001001, B00001001, B00000001, B00000000, // F[color=#222222][/color]
  4, 8, B00111110, B01000001, B01001001, B01111010, B00000000, // G[color=#222222][/color]
  4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H[color=#222222][/color]
  3, 8, B01000001, B01111111, B01000001, B00000000, B00000000, // I[color=#222222][/color]
  4, 8, B00110000, B01000000, B01000001, B00111111, B00000000, // J[color=#222222][/color]
  4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // K[color=#222222][/color]
  4, 8, B01111111, B01000000, B01000000, B01000000, B00000000, // L[color=#222222][/color]
  5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M[color=#222222][/color]
  5, 8, B01111111, B00000100, B00001000, B00010000, B01111111, // N[color=#222222][/color]
  4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O[color=#222222][/color]
  4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P[color=#222222][/color]
  4, 8, B00111110, B01000001, B01000001, B10111110, B00000000, // Q[color=#222222][/color]
  4, 8, B01111111, B00001001, B00001001, B01110110, B00000000, // R[color=#222222][/color]
  4, 8, B01000110, B01001001, B01001001, B00110010, B00000000, // S[color=#222222][/color]
  5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T[color=#222222][/color]
  4, 8, B00111111, B01000000, B01000000, B00111111, B00000000, // U[color=#222222][/color]
  5, 8, B00001111, B00110000, B01000000, B00110000, B00001111, // V[color=#222222][/color]
  5, 8, B00111111, B01000000, B00111000, B01000000, B00111111, // W[color=#222222][/color]
  5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X[color=#222222][/color]
  5, 8, B00000111, B00001000, B01110000, B00001000, B00000111, // Y[color=#222222][/color]
  4, 8, B01100001, B01010001, B01001001, B01000111, B00000000, // Z[color=#222222][/color]
  2, 8, B01111111, B01000001, B00000000, B00000000, B00000000, // [[color=#222222][/color]
  4, 8, B00000001, B00000110, B00011000, B01100000, B00000000, // \ backslash[color=#222222][/color]
  2, 8, B01000001, B01111111, B00000000, B00000000, B00000000, // ][color=#222222][/color]
  3, 8, B00000010, B00000001, B00000010, B00000000, B00000000, // hat[color=#222222][/color]
  4, 8, B01000000, B01000000, B01000000, B01000000, B00000000, // _[color=#222222][/color]
  2, 8, B00000001, B00000010, B00000000, B00000000, B00000000, // `[color=#222222][/color]
  4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a[color=#222222][/color]
  4, 8, B01111111, B01000100, B01000100, B00111000, B00000000, // b[color=#222222][/color]
  4, 8, B00111000, B01000100, B01000100, B00101000, B00000000, // c[color=#222222][/color]
  4, 8, B00111000, B01000100, B01000100, B01111111, B00000000, // d[color=#222222][/color]
  4, 8, B00111000, B01010100, B01010100, B00011000, B00000000, // e[color=#222222][/color]
  3, 8, B00000100, B01111110, B00000101, B00000000, B00000000, // f[color=#222222][/color]
  4, 8, B10011000, B10100100, B10100100, B01111000, B00000000, // g[color=#222222][/color]
  4, 8, B01111111, B00000100, B00000100, B01111000, B00000000, // h[color=#222222][/color]
  3, 8, B01000100, B01111101, B01000000, B00000000, B00000000, // i[color=#222222][/color]
  4, 8, B01000000, B10000000, B10000100, B01111101, B00000000, // j[color=#222222][/color]
  4, 8, B01111111, B00010000, B00101000, B01000100, B00000000, // k[color=#222222][/color]
  3, 8, B01000001, B01111111, B01000000, B00000000, B00000000, // l[color=#222222][/color]
  5, 8, B01111100, B00000100, B01111100, B00000100, B01111000, // m[color=#222222][/color]
  4, 8, B01111100, B00000100, B00000100, B01111000, B00000000, // n[color=#222222][/color]
  4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // o[color=#222222][/color]
  4, 8, B11111100, B00100100, B00100100, B00011000, B00000000, // p[color=#222222][/color]
  4, 8, B00011000, B00100100, B00100100, B11111100, B00000000, // q[color=#222222][/color]
  4, 8, B01111100, B00001000, B00000100, B00000100, B00000000, // r[color=#222222][/color]
  4, 8, B01001000, B01010100, B01010100, B00100100, B00000000, // s[color=#222222][/color]
  3, 8, B00000100, B00111111, B01000100, B00000000, B00000000, // t[color=#222222][/color]
  4, 8, B00111100, B01000000, B01000000, B01111100, B00000000, // u[color=#222222][/color]
  5, 8, B00011100, B00100000, B01000000, B00100000, B00011100, // v[color=#222222][/color]
  5, 8, B00111100, B01000000, B00111100, B01000000, B00111100, // w[color=#222222][/color]
  5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x[color=#222222][/color]
  4, 8, B10011100, B10100000, B10100000, B01111100, B00000000, // y[color=#222222][/color]
  3, 8, B01100100, B01010100, B01001100, B00000000, B00000000, // z[color=#222222][/color]
  3, 8, B00001000, B00110110, B01000001, B00000000, B00000000, // {[color=#222222][/color]
  1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // |[color=#222222][/color]
  3, 8, B01000001, B00110110, B00001000, B00000000, B00000000, // }[color=#222222][/color]
  4, 8, B00001000, B00000100, B00001000, B00000100, B00000000, // ~

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