TM1637 6-digit display

Hi,

When I try to use a TM1637 display with this code:

display:
  platform: tm1637
  id: tm1637_display
  clk_pin: D1
  dio_pin: D2
  lambda: |-
    it.print("012345");

I get “210543” all out of order. Any ideas?

inverted (Optional, bool): Invert character rendering to the TM1637 so you can physically flip the display around.

Might not help in this case because it looks like the connection of the two display “blocks” (each with 3 segments) are physically twisted on the pcb itself :thinking:

1 Like

I did try inverted, and as you say, it only flipped the display, but still says 210543 upside-down.

This took me far longer than I’m willing to admit, but it flippin’ works!

display:
  - platform: tm1637
    clk_pin: D1
    dio_pin: D2
    lambda: |-
      // Input strings
      std::string input1 = "012345";

      // Reorder and display input1 as 012345
      std::string reordered_input = input1.substr(2, 1) + input1.substr(1, 1) + input1.substr(0, 1)
                                  + input1.substr(5, 1) + input1.substr(4, 1) + input1.substr(3, 1);
      it.print(reordered_input.c_str());
2 Likes