Robotdyn TM1637 6 digit 7 segment display / only 4 digits function.

I learned after the purchase that the TM1637 can only run 4 digits. So why would they sell a display with 6 digits. After an exhaustive google search I have come up with nothing. I finally found a library for the TM1637 for 6 digits.

void setup() {
DcsBios::setup();
am.begin();
am.clear();
am.print("888888");
}

That's just a snippet of the code when it starts up, however digits 4 & 5 do not function (1 or 2 segments on these digits do light up). Plus digit 1 is where digit 6 should be. Anyone happen to know what I'm doing wrong? & I do have the wire.h library for i2c btw. I would appreciate any assistance you could provide.

itsmetheuglykid:
I learned after the purchase that the TM1637 can only run 4 digits. So why would they sell a display with 6 digits. After an exhaustive google search I have come up with nothing. I finally found a library for the TM1637 for 6 digits.

void setup() {
DcsBios::setup();
am.begin();
am.clear();
am.print("888888");
}

That's just a snippet of the code when it starts up, however digits 4 & 5 do not function (1 or 2 segments on these digits do light up). Plus digit 1 is where digit 6 should be. Anyone happen to know what I'm doing wrong? & I do have the wire.h library for i2c btw. I would appreciate any assistance you could provide.

Which Arduino Board are you using?
Which version of Arduino IDE are you using?
What operating system are you using?
Linux, MacOSX, MS Windows, Other

a wiring diagram of the circuit you are using.
a link to the display in proper url tags
Where did you purchase the Robotdyn TM1637 6 digit 7 segment display.

The sketch code you are using in proper code tags.

The TM1637 is able to drive 6 digits.
http://wiki.seeedstudio.com/wiki/File:TM1637_datasheet.pdf

I'm using the keyestudio Mega 2560.
IDE v. 1.8.5
OS Windows 10 x64

Wiring diagram is pretty simple. VCC to 5v, GND to GND, CLK to pin 3, & DIO to pin 4.

I bought 2 from Robotdyn and 2 on Amazon. All 4 have the same issue.

https://robotdyn.com/catalog/segment/6_digit_led_display_tube_7_segments_76x19mm_tm1637/

Just a quick little code I slapped on there just to test the display.

#include "SevenSegmentTM1637.h"

SevenSegmentTM1637 ils(3,4);

void setup() {
ils.begin();
ils.print("888888");
}

void loop() {
}

All 4 of these units malfunction.
7SEG 1

7SEG 2

7SEG 3

7SEG 4

itsmetheuglykid:
I'm using the keyestudio Mega 2560.
IDE v. 1.8.5
OS Windows 10 x64

Wiring diagram is pretty simple. VCC to 5v, GND to GND, CLK to pin 3, & DIO to pin 4.

I bought 2 from Robotdyn and 2 on Amazon. All 4 have the same issue.

https://robotdyn.com/catalog/segment/6_digit_led_display_tube_7_segments_76x19mm_tm1637/

Just a quick little code I slapped on there just to test the display.

#include "SevenSegmentTM1637.h"

SevenSegmentTM1637 ils(3,4);

void setup() {
ils.begin();
ils.print("888888");
}

void loop() {
}




All 4 of these units malfunction.
[7SEG 1](https://ibb.co/ngVPgb)

[7SEG 2](https://ibb.co/eNPd7G)

[7SEG 3](https://ibb.co/fYmrSG)

[7SEG 4](https://ibb.co/imd5nG)

Okay i see several thing in the photographs.

While this is not a true Arduino Mega2560 hopefully it is a good clone.
The Arduino Mega2560 uses pins 20 & 21 for SPI. Pin 20 is SDA and Pin 21 is SCL
you are using Pin 3 & 4 for SPI I would suggest using Pin 20 & Pin 21.
THe Schematic for the display shows that SDA and SCL have pull-up resistors on them.

Which TM1637 Library are you using?

There is this TM1637 library.

There is also the Arduino pages
http://playground.arduino.cc/Main/TM1637

I wonder if the Mega2560 is able to provide enough power to these displays.
Have you tried these displays while being powered from a separate 5volt power supply?
Make sure the grounds are tied together. floating grounds cause all sorts of issues.

Switch the SPI pins and use the github avishorp TM1637 library.
that should help.

On quick inspection, it does appear that most TM1637 libraries e.g. Arduino Playground - TM1637 support only 4 digits although the chip TM1637 supports up to 6 digits (and incidentally has a key board scanning function as well which the libraries do not support). The data sheet also implies that the communication protocol is a 'non-standard' 2 wire type similar to I2C but without an address.

I guess the solution will be to make a hack to the library, probably in method showNumberDecEx() but I have no device to test it on so I'm reluctant to make further suggestions.

Edit:
Post a link to the "6 digit" version of the library referred to in the OP.