Results 1 to 7 of 7
  1. #1
    Our new friend needs to reach 10 posts to get to the next flight level
    Join Date
    Dec 2010
    Location
    India
    Posts
    6
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Lightbulb Is it possible? (MAX7219 Cascaded)

    Hello all, I am new to into panel making and just from yesterday I started learning programming Thanks a lot Jim, for making Link2FS

    Is it possible to interface 2 MAX7219 8 digit 7 seg module in such a way that both module can be combined as a big 16 digit module?

    I am building a MCP, for that I want 3 digits for left CRS, 4 for IAS, 1 digit for HDG(rest 2 digits from second MAX7219) and so on... *I can desolder each 7 segments and put them side by side as per my requirements.

    I am just curious :P , I just want to utilize the complete module

  2. #2
    25+ Posting Member



    Join Date
    Mar 2009
    Location
    Argentina
    Posts
    27
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Re: Is it possible? (MAX7219 Cascaded)

    Yes. You can Connecticut up to 8 max 7219 by chain

  3. #3
    Our new friend needs to reach 10 posts to get to the next flight level
    Join Date
    Dec 2010
    Location
    India
    Posts
    6
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Re: Is it possible? (MAX7219 Cascaded)

    Quote Originally Posted by jollive View Post
    Yes. You can Connecticut up to 8 max 7219 by chain
    Thats great Can you give me a sample sketch (or a hint) for how to assign the 1st digit value of HDG to LSB of 1st MAX7219 module and the 2nd digit to MSB of 2nd module? I'm new to programming :P

  4. #4
    150+ Forum Groupie
    Join Date
    Nov 2013
    Location
    Evansville, Indiana
    Posts
    243
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Re: Is it possible? (MAX7219 Cascaded)

    An excerpt from my radio code.
    Code:
                                                        // **** Info on how the Displays work *****
    led_Display_1.setDigit(0,7,Com1Active[0],false);    // setDigit(0,7,Com1Active[0],false) The 0 is the first display, 7 is the first character in the 
    led_Display_1.setDigit(0,6,Com1Active[1],false);    // display, Com1Active[0] is the stored Integer to be displayed, false is no decimal point.
    led_Display_1.setDigit(0,5,Com1Active[2],true);     // "true" puts in the decimal point
    led_Display_1.setDigit(0,4,Com1Active[3],false);    // setDigit is for putting in numbers
    led_Display_1.setDigit(0,3,Com1Active[4],false);    // You can also use setChar for putting in some letters
                                                        // character, symbols, and ' ' space.
    led_Display_1.setDigit(0,0,Com1StdBy[0],false);     // 
    led_Display_1.setDigit(1,7,Com1StdBy[1],false);     //NOTE: setChar has to use single quote 'A'
    led_Display_1.setDigit(1,6,Com1StdBy[2],true);      // Double quote "A", is for Strings and wont work.
    led_Display_1.setDigit(1,5,Com1StdBy[3],false);     //****************** The 300 Level Remarks ****************************************
    led_Display_1.setDigit(1,4,Com1StdBy[4],false);     // In the "300 Level Class", you can use setRow to light one of the 7 segment
                                                        // displays using binary or hex equivalent. It would look like this:
                                                        // led_Display_1.setRow(1,4,B00110000,false) that would display the number 1.
    led_Display_1.setDigit(1,3,Nav1Active[0],false);    //
    led_Display_1.setDigit(1,2,Nav1Active[1],false);    //          __A_      The segments on my displays are lettered A thru H
    led_Display_1.setDigit(1,1,Nav1Active[2],true);     //        F|    |B    However, using the setRow with Binary the H comes first.
    led_Display_1.setDigit(1,0,Nav1Active[3],false);    //         |__G_|             If you want an 8 with no decimal...
    led_Display_1.setDigit(2,7,Nav1Active[4],false);    //        E|    |C             H A B C D E F G
                                                        //         |__D_|.H          B 0 1 1 1 1 1 1 1
    led_Display_1.setDigit(2,4,Nav1StdBy[0],false);     //
    led_Display_1.setDigit(2,3,Nav1StdBy[1],false);     //*********************************************************************************
    led_Display_1.setDigit(2,2,Nav1StdBy[2],true);
    led_Display_1.setDigit(2,1,Nav1StdBy[3],false);
    led_Display_1.setDigit(2,0,Nav1StdBy[4],false);
    If you bought the widely available MAX7219 tube display modules with 2 sets of 4 digits, the displays are not soldered in so you can pull them out of the sockets and tether them with wire and round pins.

    See my tutorial here http://thegeekforge.com/2014/11/17/t...-from-arduino/

    ~Fess
    I will only ever be, half the Geek that I wished I was.
    TheGeekForge.Com

  5. #5
    Our new friend needs to reach 10 posts to get to the next flight level
    Join Date
    Dec 2010
    Location
    India
    Posts
    6
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Re: Is it possible? (MAX7219 Cascaded)

    Quote Originally Posted by Fess_ter View Post
    An excerpt from my radio code.
    Code:
                                                        // **** Info on how the Displays work *****
    led_Display_1.setDigit(0,7,Com1Active[0],false);    // setDigit(0,7,Com1Active[0],false) The 0 is the first display, 7 is the first character in the 
    led_Display_1.setDigit(0,6,Com1Active[1],false);    // display, Com1Active[0] is the stored Integer to be displayed, false is no decimal point.
    led_Display_1.setDigit(0,5,Com1Active[2],true);     // "true" puts in the decimal point
    led_Display_1.setDigit(0,4,Com1Active[3],false);    // setDigit is for putting in numbers
    led_Display_1.setDigit(0,3,Com1Active[4],false);    // You can also use setChar for putting in some letters
                                                        // character, symbols, and ' ' space.
    led_Display_1.setDigit(0,0,Com1StdBy[0],false);     // 
    led_Display_1.setDigit(1,7,Com1StdBy[1],false);     //NOTE: setChar has to use single quote 'A'
    led_Display_1.setDigit(1,6,Com1StdBy[2],true);      // Double quote "A", is for Strings and wont work.
    led_Display_1.setDigit(1,5,Com1StdBy[3],false);     //****************** The 300 Level Remarks ****************************************
    led_Display_1.setDigit(1,4,Com1StdBy[4],false);     // In the "300 Level Class", you can use setRow to light one of the 7 segment
                                                        // displays using binary or hex equivalent. It would look like this:
                                                        // led_Display_1.setRow(1,4,B00110000,false) that would display the number 1.
    led_Display_1.setDigit(1,3,Nav1Active[0],false);    //
    led_Display_1.setDigit(1,2,Nav1Active[1],false);    //          __A_      The segments on my displays are lettered A thru H
    led_Display_1.setDigit(1,1,Nav1Active[2],true);     //        F|    |B    However, using the setRow with Binary the H comes first.
    led_Display_1.setDigit(1,0,Nav1Active[3],false);    //         |__G_|             If you want an 8 with no decimal...
    led_Display_1.setDigit(2,7,Nav1Active[4],false);    //        E|    |C             H A B C D E F G
                                                        //         |__D_|.H          B 0 1 1 1 1 1 1 1
    led_Display_1.setDigit(2,4,Nav1StdBy[0],false);     //
    led_Display_1.setDigit(2,3,Nav1StdBy[1],false);     //*********************************************************************************
    led_Display_1.setDigit(2,2,Nav1StdBy[2],true);
    led_Display_1.setDigit(2,1,Nav1StdBy[3],false);
    led_Display_1.setDigit(2,0,Nav1StdBy[4],false);
    If you bought the widely available MAX7219 tube display modules with 2 sets of 4 digits, the displays are not soldered in so you can pull them out of the sockets and tether them with wire and round pins.

    See my tutorial here http://thegeekforge.com/2014/11/17/t...-from-arduino/

    ~Fess
    Wow, you have a very nice blog, really very nicely organized and thank you very very much for the code sample, I'll try tonight.

    Thanks again

  6. #6
    Our new friend needs to reach 10 posts to get to the next flight level
    Join Date
    Dec 2010
    Location
    India
    Posts
    6
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Re: Is it possible? (MAX7219 Cascaded)

    Hey Fess,

    I used your codes, works like a charm. Very clearly understandable method you have opted.

    One thing I wonder, can we directly control the "decimal" LED ONLY, ignoring the other 7 LEDs of a digit? Or similarly Can we control only 7 LEDs without touching DP? I mean can we control DP LED independently at all?

    For example: I am giving AP HDG value to three digits, but Heading value don't need decimal points. Hence can we use those DP signal to light up other things like: 3 gears down indicators?

    (If it is possible then I can make a MAX7219 set by separatly buying the chip and 7-segments and using the DP terminal output from the chip for 8 other purposes)

    I tried setDigit, setChar, setRow.. No success! (it works but not simultaneously when both HDG and Gear values goes out to same digit, at a time latest value shows up)

    *I tried on MAX7219 single module, I think it is possible when we separately connect the MAX chip and individual 7 seg digits. What do you think?

    All these things I just wonder how freely we can control :P

  7. #7
    25+ Posting Member



    Join Date
    Mar 2009
    Location
    Argentina
    Posts
    27
    Contribute If you enjoy reading the
    content here, click the below
    image to support MyCockpit site.
    Click Here To Contribute To Our Site

    Re: Is it possible? (MAX7219 Cascaded)

    I believe that it is possible but the digits should be 1 to 1 and not a pack of 3 or more digits.
    This way you do not connect the DP output from the MAX to the digit. Instead, connect the LG LED.
    When sending lc.setDigit (1,4, Digito_5, false) only the HDG turns on and if it sends an lc.setDigit (1,4, Digito_5, true) turn on the digit plus the LG led

Tags for this Thread