user28628: I have a very simple setup which works fine with an Uno.

#include <SevenSegmentTM1637.h>
#include <SevenSegmentExtended.h>

const byte PIN_CLK = 2;
const byte PIN_DIO = 3;
SevenSegmentExtended display(PIN_CLK, PIN_DIO);

void setup() {
  Serial.begin(9600);

  display.begin();
  display.print(F("TEST"));
}

void loop() {}

When I use the very same setup with a Pro Mini (XCSOURCE ATMEGA 328P, 5V 16Mhz), the display doesn't light up. I get monitor outputs and can blink the onboard LED, but no reaction from the TM1637 display.
I get this output in the console:
�E%MA1e� 10001111
Acknowledged: 0
ADDR :  11000000
DATA0:  0
write byte: 84
ADDR :  11000000
DATA0:  1111000
write byte: 69
ADDR :  11000000
DATA0:  1111000
write byte: 83
ADDR :  11000000
DATA0:  1111000
write byte: 84
ADDR :  11000000
DATA0:  1111000

Does anyone have an idea how to debug or fix this?

user8033: Since you're using a Grove Display, I believe it will be using I2C.
For better debugging, try using the actual I2C pins on your Pro mini, which are A4 and A5.

I2C: A4 (SDA) and A5 (SCL). Support I2C (TWI) communication using the
  Wire library.
  https://www.arduino.cc/en/Main/ArduinoBoardProMini

I2C may need pull-up resistors on your data lines.
(https://en.wikipedia.org/wiki/I%C2%B2C)
It can also be nice to use "verified to be working" code, like example code from the manufacturer.
/*
 * TM1637.cpp
 * A library for the 4 digit display
 */
#include "TM1637.h"
#define CLK 39 //pins definitions for TM1637 and can be changed to other ports
#define DIO 38
TM1637 tm1637(CLK,DIO);
void setup()
{
    tm1637.init();
    tm1637.set(BRIGHT_TYPICAL);//BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7;
}
void loop()
{
    int8_t NumTab[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};//0~9,A,b,C,d,E,F
    int8_t ListDisp[4];
    unsigned char i = 0;
    unsigned char count = 0;
    delay(150);
    while(1)
    {
        i = count;
        count ++;
        if(count == sizeof(NumTab)) count = 0;
        for(unsigned char BitSelect = 0;BitSelect < 4;BitSelect ++)
        {
            ListDisp[BitSelect] = NumTab[i];
            i ++;
            if(i == sizeof(NumTab)) i = 0;
        }
        tm1637.display(0,ListDisp[0]);
        tm1637.display(1,ListDisp[1]);
        tm1637.display(2,ListDisp[2]);
        tm1637.display(3,ListDisp[3]);
        delay(300);
    }
}

You will need to adapt the pin numbers.
But after these steps it should work just fine.
Source: http://wiki.seeed.cc/Grove-4-Digit_Display/

28628: <p>I have a very simple setup which works fine with an <em>Uno</em>.</p>

<p><a href="https://i.stack.imgur.com/z01Rs.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/z01Rs.png" alt="enter image description here"></a></p>

<pre><code>#include &lt;SevenSegmentTM1637.h&gt;
#include &lt;SevenSegmentExtended.h&gt;

const byte PIN_CLK = 2;
const byte PIN_DIO = 3;
SevenSegmentExtended display(PIN_CLK, PIN_DIO);

void setup() {
  Serial.begin(9600);

  display.begin();
  display.print(F("TEST"));
}

void loop() {}
</code></pre>

<p>When I use the very same setup with a <em>Pro Mini</em> (XCSOURCE ATMEGA 328P, 5V 16Mhz), the display doesn't light up. I get monitor outputs and can blink the onboard LED, but no reaction from the <em>TM1637</em> display.</p>

<p>I get this output in the console:</p>

<pre><code>�E%MA1e� 10001111
Acknowledged: 0
ADDR :  11000000
DATA0:  0
write byte: 84
ADDR :  11000000
DATA0:  1111000
write byte: 69
ADDR :  11000000
DATA0:  1111000
write byte: 83
ADDR :  11000000
DATA0:  1111000
write byte: 84
ADDR :  11000000
DATA0:  1111000
</code></pre>

<p>Does anyone have an idea how to debug or fix this?</p>
 8033: <p>Since you're using a Grove Display, I believe it will be using I2C.</p>

<p>For better debugging, try using the actual I2C pins on your Pro mini, which are A4 and A5.</p>

<blockquote>
  <p>I2C: A4 (SDA) and A5 (SCL). Support I2C (TWI) communication using the
  Wire library.
  <a href="https://www.arduino.cc/en/Main/ArduinoBoardProMini" rel="nofollow noreferrer">https://www.arduino.cc/en/Main/ArduinoBoardProMini</a></p>
</blockquote>

<p>I2C may need pull-up resistors on your data lines.</p>

<p>(<a href="https://en.wikipedia.org/wiki/I%C2%B2C" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/I%C2%B2C</a>)</p>

<p>It can also be nice to use "verified to be working" code, like example code from the manufacturer.</p>

<pre><code>/*
 * TM1637.cpp
 * A library for the 4 digit display
 */
#include "TM1637.h"
#define CLK 39 //pins definitions for TM1637 and can be changed to other ports
#define DIO 38
TM1637 tm1637(CLK,DIO);
void setup()
{
    tm1637.init();
    tm1637.set(BRIGHT_TYPICAL);//BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7;
}
void loop()
{
    int8_t NumTab[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};//0~9,A,b,C,d,E,F
    int8_t ListDisp[4];
    unsigned char i = 0;
    unsigned char count = 0;
    delay(150);
    while(1)
    {
        i = count;
        count ++;
        if(count == sizeof(NumTab)) count = 0;
        for(unsigned char BitSelect = 0;BitSelect &lt; 4;BitSelect ++)
        {
            ListDisp[BitSelect] = NumTab[i];
            i ++;
            if(i == sizeof(NumTab)) i = 0;
        }
        tm1637.display(0,ListDisp[0]);
        tm1637.display(1,ListDisp[1]);
        tm1637.display(2,ListDisp[2]);
        tm1637.display(3,ListDisp[3]);
        delay(300);
    }
}
</code></pre>

<p>You will need to adapt the pin numbers.</p>

<p>But after these steps it should work just fine.</p>

<p>Source: <a href="http://wiki.seeed.cc/Grove-4-Digit_Display/" rel="nofollow noreferrer">http://wiki.seeed.cc/Grove-4-Digit_Display/</a></p>
