TM1637
GPIOD Python 3 TM1637
A Python 3 port from MicroPython library for the quad 7-segment LED display modules based on the TM1637 LED driver, implemented using Linux GPIOD.
Installation
This project is available through pip. Make sure that you are using Python 3.
$ pip3 install gpiod-tm1637
Examples
Basic usage
import tm1637
tm = tm1637.TM1637("/dev/gpiochip0", clk=3, dio=2)
# all LEDS on "88:88"
tm.write([127, 255, 127, 127])
# all LEDS off
tm.write([0, 0, 0, 0])
# show "0123"
tm.write([63, 6, 91, 79])
# show "COOL"
tm.write([0b00111001, 0b00111111, 0b00111111, 0b00111000])
# show "HELP"
tm.show('help')
# display "dEAd", "bEEF"
tm.hex(0xdead)
tm.hex(0xbeef)
# show "12:59"
tm.numbers(12, 59)
# show "-123"
tm.number(-123)
# show temperature '24*C'
tm.temperature(24)
For more detailed examples, see demo.py
Seven Segment Font
They are called 7-segment displays as there are 7 LEDs for each digit (segment). One byte (7 lower bits) for each segment. The 8th bit (MSB) is for the colon and only on the 2nd segment.
A
---
F | | B *
-G- H (on 2nd segment)
E | | C *
---
D
HGFEDCBA
0b01101101 = 0x6D = 109 = show "5"
| Display | Bin | Hex | Dec |
|---|---|---|---|
| 0 | 0b00111111 | 0x3F | 63 |
| 1 | 0b00000110 | 0x06 | 6 |
| 2 | 0b01011011 | 0x5B | 91 |
| 3 | 0b01001111 | 0x4F | 79 |
| 4 | 0b01100110 | 0x66 | 102 |
| 5 | 0b01101101 | 0x6D | 109 |
| 6 | 0b01111101 | 0x7D | 125 |
| 7 | 0b00000111 | 0x07 | 7 |
| 8 | 0b01111111 | 0x7F | 127 |
| 9 | 0b01101111 | 0x6F | 111 |
| A | 0b01110111 | 0x77 | 119 |
| b | 0b01111100 | 0x7C | 124 |
| C | 0b00111001 | 0x39 | 57 |
| d | 0b01011110 | 0x5E | 94 |
| E | 0b01111001 | 0x79 | 121 |
| F | 0b01110001 | 0x71 | 113 |
| G | 0b00111101 | 0x3D | 61 |
| H | 0b01110110 | 0x76 | 118 |
| I | 0b00000110 | 0x06 | 6 |
| J | 0b00011110 | 0x1E | 30 |
| K | 0b01110110 | 0x76 | 118 |
| L | 0b00111000 | 0x38 | 56 |
| M | 0b01010101 | 0x55 | 85 |
| n | 0b01010100 | 0x54 | 84 |
| O | 0b00111111 | 0x3F | 63 |
| P | 0b01110011 | 0x73 | 115 |
| q | 0b01100111 | 0x67 | 103 |
| r | 0b01010000 | 0x50 | 80 |
| S | 0b01101101 | 0x6D | 109 |
| t | 0b01111000 | 0x78 | 120 |
| U | 0b00111110 | 0x3E | 62 |
| v | 0b00011100 | 0x1C | 28 |
| W | 0b00101010 | 0x2A | 42 |
| X | 0b01110110 | 0x76 | 118 |
| y | 0b01101110 | 0x6E | 110 |
| Z | 0b01011011 | 0x5B | 91 |
| blank | 0b00000000 | 0x00 | 0 |
| - | 0b01000000 | 0x40 | 64 |
| * | 0b01100011 | 0x63 | 99 |
Methods
Get or set brightness.
brightness(val=None)
Write one or more segments at a given offset.
write(segments, pos=0)
Convert a single hex digit (0x00-0x0f) to a segment.
encode_digit(digit)
Convert a string to a list of segments.
encode_string(string)
Convert a single character to a segment.
encode_char(char)
Display a number in hexadecimal format 0000 through FFFF.
hex(val)
Display a number -999 through 9999, right aligned.
number(num)
Display 2 independent numbers on either side of the (optional) colon, with leading zeros.
numbers(num1, num2, colon=True)
Display a temperature -9 through 99 followed by degrees C.
temperature(num)
Show a string on the display.
Shorthand for write(encode_string()).
Limited to first 4 characters.
show(string, colon=False)
Display a string on the display, scrolling from the right to left, speed adjustable. String starts off-screen and scrolls until off-screen at 4 FPS by default.
scroll(string, delay=250)
Parts
- Grove 4 Digit Display $5.90 USD
- Grove Male Jumper Cable $2.90 USD
Connections
| Raspberry Pi | 4 Digit Display |
|---|---|
| GPIO3 | CLK |
| GPIO2 | DIO |
| 3V3 (or 5V) | VCC |
| GND | GND |
Links
License
Licensed under the MIT License.
Metadata
Release files for gpiod-tm1637 1.3.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| gpiod-tm1637-1.3.7.tar.gz | 7.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gpiod_tm1637-1.3.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.4 kB
Release files / gpiod-tm1637-1.3.7.tar.gz
| Download URL | gpiod-tm1637-1.3.7.tar.gz |
|---|---|
| Size | 7.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
15d233de7e51cd8fb0f9d6baff7b8ad6a4e84a91ebefc2f70dee80ce04569e51
|
|
BLAKE2b-256 checksum How to use checksums |
73ca49c9a384781f4006bb565b24b0dc0bfe06b7d560efdef1e829f9935124d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.7
|
Release files / gpiod_tm1637-1.3.7-py3-none-any.whl
| Download URL | gpiod_tm1637-1.3.7-py3-none-any.whl |
|---|---|
| Size | 7.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e62eaeefd01bc4847220e800b1e50fa598a341bc37608b90c506f801b9c0290d
|
|
BLAKE2b-256 checksum How to use checksums |
187b0c5370e097ead3cd9304ca9af3a494ffb1c6387d487a6946d82c5b20b264
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.7
|
Security for gpiod-tm1637 1.3.7
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.