Max6969 for Alphanumeric Display Coding Issues

I have figured this out and will try to add the information here since as I searched for this I noticed many others that were having the same issue and never found answers.

I have the Max6969 Driver and the Kingbright 2.3" 16 Segment Display. I have them wired up based upon using the Max6969 PCB schematic.

To make it simple:

Out0 - M
Out1 - N
Out2 - D1
Out3 - E
Out4 - G1
Out5 - F
Out6 - H
Out7 - A1
Out8 - J
Out9 - K
Out10 - A2
Out11 - B
Out12 - G2
Out13 - C
Out14 - L
Out14 - D2

All I need it to display is 1,2,3,4,5,6 and N.

First thing to make the MAX6969 effective is by downloading the library provided by sparkfun.

Also, they give the code to make it work. I will add my edited code below.


Serial control of Alphanumeric Drivers with the AlphaNumeric Driver Library
Jim Lindblom @ SparkFun Electronics
Original Creation Date: Nov 30, 2010
Edit Date: March 25, 2014

Hardware hookup:
AlphaNumeric Display Driver ----------- Arduino
SDI ----------------------------- 11
CLK ----------------------------- 13
LE ------------------------------ 10
OE ------------------------------ 9
GND ----------------------------- GND
VCC ----------------------------- VIN (or 5V)


//#define FLIPDISPLAY // Un-comment this out if you want the characters flipped 180 degrees

#include <AlphaNumeric_Driver.h> // Include AlphaNumeric Display Driver Library
#define NUMBER_OF_DISPLAYS 1 // This value is currently only used by the library for the clear() command.

// --------- Pin Definitions -----------
int SDIpin = 12;
int CLKpin = 11;
int LEpin = 10;
int OEpin = 9;
// -------------------------------------

alphaNumeric myDisplay(SDIpin, CLKpin, LEpin, OEpin, NUMBER_OF_DISPLAYS); // Create an instance of Alpha Numeric Displays

void setup()
myDisplay.scroll("1", 0);
myDisplay.scroll("2", 0);
myDisplay.scroll("3", 0);
myDisplay.scroll("4", 0);
myDisplay.scroll("5", 0);
myDisplay.scroll("6", 0);
myDisplay.scroll("N", 0);

void loop()


So far I did change the Library file for the "ONE" so that it is centered instead of being on the side.
All I did is redefined the segments. [#define ONE (1<<J_SEG)+(1<<M_SEG)]

I am having a minor issue with the 180 flip not working, but for my application it does not matter as I can mount it however I want. I will continue to work on it but the .h library files have been giving me issues as I edit them.

One thing I should ask is if I should just treat this as a mux with all 4 inputs. I've been trying to see if I could do it with just 3 since I don't need to PWM and I'm only using a single display.

I have found this answer as well. For the simplicity of my code if I set LE to a 5V source as always on then it works. Since I only need it to continue to display the last digit sent until power is Shut off.