TM1637 4-Digit 7-Segment Display
Simple 2-wire numeric display for clocks and counters.
Wiring & code for
TM1637 practical reference
The TM1637 drives a 4-digit 7-segment display (almost always with a center colon for clock displays) over a 2-wire protocol that looks like I2C but isn't quite — it uses its own bit-banged timing rather than the standard I2C peripheral, which is why it needs a dedicated software library instead of Wire.h. The chip also has a built-in keypad-scan input, though most hobbyist breakout modules don't wire up the buttons for it.
Its main appeal over the MAX7219 is simplicity for small digit counts: only two signal wires (CLK, DIO) instead of three, no external current-limiting resistor to worry about, and a one-line brightness call. It's the natural choice for clocks, timers, and simple 4-digit counters where you don't need the MAX7219's cascading or larger digit count.
Key specifications
- Digits: 4 x 7-segment digits, most modules include a center colon (:)
- Operating voltage: 3.3V - 5V DC
- Interface: 2-wire (CLK, DIO) — I2C-like bit-banged protocol, not standard I2C
- Brightness: 8 software-adjustable levels via a single library call
- Extra hardware feature: Built-in key-scan input for a keypad matrix (unused on most breakout modules)
Pinout and connection notes
Despite the CLK/DIO naming looking like I2C SCL/SDA, do not wire this to a shared I2C bus or drive it with Wire.h — the timing is proprietary to the TM1637 and will not respond to standard I2C transactions. Use a dedicated library (TM1637Display by Avishorp, or similar) which bit-bangs the correct timing on any two GPIO pins.
- CLK: Clock line for the TM1637 protocol
- DIO: Bidirectional data line for the TM1637 protocol
- VCC: Power, 3.3V-5V DC
- GND: Ground
Integration checklist
- Confirm the exact part number and breakout-board revision.
- Verify supply voltage, current demand, logic levels, and signal direction against the datasheet.
- Check controller pin assignments and bus address or interface mode against the example code.
- Power up with external loads disconnected, then test signals before full integration.
- If readings or communication fail, check power and ground first, then pin mapping, interface settings, and library initialization.
Troubleshooting and reproducibility
Record the board used, wiring, library/version, supply arrangement, and measured behavior. Use the selected board-specific wiring example as the source of truth. Never assume visually similar modules share identical voltage tolerance or pin order.
Board Integration
Related