LED name badge writer.
This script can write to LED name badge which ...
- has 12x48 LED matrix display (untested on 11x44).
- shows "M1-8" at startup.
- can be written by "LED Display" and "Mini LED Display".
Mini LED Display:
[ 0x41, 0x68, 0x65, 0x6c, 0x6c, 0x6f, # magic number: Ahello 0x00, # brightness: the brightest 0x00 --- 0x01 --- 0x02 --- 0x03 the dimmest 0x00, # NOP # slot 1-8 have their own display modes # 0b10000000: show border # 0b01110000: speed # 0b00001000: blink # 0b00000111: motion (left/right/up/down/freeze/animation/snow/curtain) 0b00110000, # mode of slot 1 0b00110110, # mode of slot 2 0b00110111, # mode of slot 3 0b00110000, # mode of slot 4 0b00110000, # mode of slot 5 0b00110100, # mode of slot 6 0b00110110, # mode of slot 7 0b00110111, # mode of slot 8 0x00, # NOP # number of columns (8 pixels/column) and offset of slot 1-8 0x00, 0, 0x00, 1, # columns and offset of slot 1 bitmap 0x00, 1, 0x00, 2, # columns and offset of slot 2 bitmap 0x00, 3, 0x00, 3, # columns and offset of slot 3 bitmap 0x00, 6, 0x00, 4, # columns and offset of slot 4 bitmap 0x00, 10, 0x00, 5, # columns and offset of slot 5 bitmap 0x00, 15, 0x00, 6, # columns and offset of slot 6 bitmap 0x00, 21, 0x00, 7, # columns and offset of slot 7 bitmap 0x00, 28, 0x00, 8, # columns and offset of slot 8 bitmap # laser mode of slot 1-8 # 0b00000001: laser on slot 1 # 0b00000010: laser on slot 2 # ... # 0b10000000: laser on slot 8 # motion of laser mode slot must be 000 (otherwise stop on the slot) 0b00001000, 0x00, 0x00, 0x00, 0x00, # NOP ]
Bitmap data are splitted line by line from the top and each line is splitted every 8 pixels from the left. 8-pixel data is represented as 1-byte packet. The left pixel is the high-order bit.
# a 32px (=8*4) wide bitmap [ 0b10101010, packet_002, packet_003, packet_004, # line 1 packet_005, packet_006, packet_007, packet_008, # line 2 packet_009, packet_010, packet_011, packet_012, # line 3 # ... line by line ... 0b10001000, 0b11001100, 0b11110000, 0b10110111 ]
The first packet of data
* * * * in top left corner and the last packet of data
* ** *** in bottom right corner (
* is lit pixel).
Each bitmap data is written in parallel line by line from the top.
bitmap_03_line_02 represents the 2nd line data of the 3rd bitmap.
# 4 bitmaps [ bitmap_01_line_01, bitmap_02_line_01, bitmap_03_line_01, bitmap_04_line_01, bitmap_01_line_02, bitmap_02_line_02, bitmap_03_line_02, bitmap_04_line_02, bitmap_01_line_03, bitmap_02_line_03, bitmap_03_line_03, bitmap_04_line_03, # ... line by line ... bitmap_01_line_nn, bitmap_02_line_nn, bitmap_03_line_nn, bitmap_04_line_nn, ]
NOTE: You need to insert 32 bytes of null after the 16 byte of body.
- Brightness: 1, 2, 3, 4 (for all bitmap)
- Write up to 8 bitmaps
- Motion: left, right, up, down, freeze, animation, snow, curtain, laser
- Speed: 1, 2, 3, 4, 5, 6, 7, 8
- Option: show border, blink
Write 1 bitmap to slot 1:
... and show bitmap brightest:
m18write --brightness 4 image1.png
... and show bitmap in maximum speed:
m18write --speed1 8 image.png
... and move bitmap left to right:
m18write --motion1 right image.png
Write 4 bitmaps to slot 1, 2, 3 and 4:
m18write image1.png image2.png image3.png image4.png
Write 2 bitmaps to slot 1 and 2, blink bitmap 1 and show border bitmap 2:
m18write --blink1 --border2 image1.png image2.png
pip install m1-8-writer
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Hashes for m1_8_writer-0.9.1-py3-none-any.whl