├── .gitignore ├── test_11x44.png ├── test_12x48.png ├── pilfonts ├── charI08.pbm ├── charI08.pil ├── charI10.pbm ├── charI10.pil ├── charR08.pbm ├── charR08.pil ├── charR10.pbm ├── charR10.pil ├── courB08.pbm ├── courB08.pil ├── courB10.pbm ├── courB10.pil ├── courBO08.pbm ├── courBO08.pil ├── courBO10.pbm ├── courBO10.pil ├── courO08.pbm ├── courO08.pil ├── courO10.pbm ├── courO10.pil ├── courR08.pbm ├── courR08.pil ├── courR10.pbm ├── courR10.pil ├── helvB08.pbm ├── helvB08.pil ├── helvB10.pbm ├── helvB10.pil ├── helvBO08.pbm ├── helvBO08.pil ├── helvBO10.pbm ├── helvBO10.pil ├── helvO08.pbm ├── helvO08.pil ├── helvO10.pbm ├── helvO10.pil ├── helvR08.pbm ├── helvR08.pil ├── helvR10.pbm ├── helvR10.pil ├── luBIS08.pbm ├── luBIS08.pil ├── luBIS10.pbm ├── luBIS10.pil ├── luBS08.pbm ├── luBS08.pil ├── luBS10.pbm ├── luBS10.pil ├── luIS08.pbm ├── luIS08.pil ├── luIS10.pbm ├── luIS10.pil ├── luRS08.pbm ├── luRS08.pil ├── luRS10.pbm ├── luRS10.pil ├── lubB08.pbm ├── lubB08.pil ├── lubB10.pbm ├── lubB10.pil ├── lubBI08.pbm ├── lubBI08.pil ├── lubBI10.pbm ├── lubBI10.pil ├── lubI08.pbm ├── lubI08.pil ├── lubI10.pbm ├── lubI10.pil ├── lubR08.pbm ├── lubR08.pil ├── lubR10.pbm ├── lubR10.pil ├── lutBS08.pbm ├── lutBS08.pil ├── lutBS10.pbm ├── lutBS10.pil ├── lutRS08.pbm ├── lutRS08.pil ├── lutRS10.pbm ├── lutRS10.pil ├── ncenB08.pbm ├── ncenB08.pil ├── ncenB10.pbm ├── ncenB10.pil ├── ncenBI08.pbm ├── ncenBI08.pil ├── ncenBI10.pbm ├── ncenBI10.pil ├── ncenI08.pbm ├── ncenI08.pil ├── ncenI10.pbm ├── ncenI10.pil ├── ncenR08.pbm ├── ncenR08.pil ├── ncenR10.pbm ├── ncenR10.pil ├── symb08.pbm ├── symb08.pil ├── symb10.pbm ├── symb10.pil ├── timB08.pbm ├── timB08.pil ├── timB10.pbm ├── timB10.pil ├── timBI08.pbm ├── timBI08.pil ├── timBI10.pbm ├── timBI10.pil ├── timI08.pbm ├── timI08.pil ├── timI10.pbm ├── timI10.pil ├── timR08.pbm ├── timR08.pil ├── timR10.pbm ├── timR10.pil └── README ├── README.md └── ledbadge.py /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | -------------------------------------------------------------------------------- /test_11x44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/test_11x44.png -------------------------------------------------------------------------------- /test_12x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/test_12x48.png -------------------------------------------------------------------------------- /pilfonts/charI08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/charI08.pbm -------------------------------------------------------------------------------- /pilfonts/charI08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/charI08.pil -------------------------------------------------------------------------------- /pilfonts/charI10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/charI10.pbm -------------------------------------------------------------------------------- /pilfonts/charI10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/charI10.pil -------------------------------------------------------------------------------- /pilfonts/charR08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/charR08.pbm -------------------------------------------------------------------------------- /pilfonts/charR08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/charR08.pil -------------------------------------------------------------------------------- /pilfonts/charR10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/charR10.pbm -------------------------------------------------------------------------------- /pilfonts/charR10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/charR10.pil -------------------------------------------------------------------------------- /pilfonts/courB08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/courB08.pbm -------------------------------------------------------------------------------- /pilfonts/courB08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/courB08.pil -------------------------------------------------------------------------------- /pilfonts/courB10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/courB10.pbm -------------------------------------------------------------------------------- /pilfonts/courB10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/courB10.pil -------------------------------------------------------------------------------- /pilfonts/courBO08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/courBO08.pbm -------------------------------------------------------------------------------- /pilfonts/courBO08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/courBO08.pil -------------------------------------------------------------------------------- /pilfonts/courBO10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/courBO10.pbm -------------------------------------------------------------------------------- /pilfonts/courBO10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/courBO10.pil -------------------------------------------------------------------------------- /pilfonts/courO08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/courO08.pbm -------------------------------------------------------------------------------- /pilfonts/courO08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/courO08.pil -------------------------------------------------------------------------------- /pilfonts/courO10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/courO10.pbm -------------------------------------------------------------------------------- /pilfonts/courO10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/courO10.pil -------------------------------------------------------------------------------- /pilfonts/courR08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/courR08.pbm -------------------------------------------------------------------------------- /pilfonts/courR08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/courR08.pil -------------------------------------------------------------------------------- /pilfonts/courR10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/courR10.pbm -------------------------------------------------------------------------------- /pilfonts/courR10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/courR10.pil -------------------------------------------------------------------------------- /pilfonts/helvB08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/helvB08.pbm -------------------------------------------------------------------------------- /pilfonts/helvB08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/helvB08.pil -------------------------------------------------------------------------------- /pilfonts/helvB10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/helvB10.pbm -------------------------------------------------------------------------------- /pilfonts/helvB10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/helvB10.pil -------------------------------------------------------------------------------- /pilfonts/helvBO08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/helvBO08.pbm -------------------------------------------------------------------------------- /pilfonts/helvBO08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/helvBO08.pil -------------------------------------------------------------------------------- /pilfonts/helvBO10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/helvBO10.pbm -------------------------------------------------------------------------------- /pilfonts/helvBO10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/helvBO10.pil -------------------------------------------------------------------------------- /pilfonts/helvO08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/helvO08.pbm -------------------------------------------------------------------------------- /pilfonts/helvO08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/helvO08.pil -------------------------------------------------------------------------------- /pilfonts/helvO10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/helvO10.pbm -------------------------------------------------------------------------------- /pilfonts/helvO10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/helvO10.pil -------------------------------------------------------------------------------- /pilfonts/helvR08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/helvR08.pbm -------------------------------------------------------------------------------- /pilfonts/helvR08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/helvR08.pil -------------------------------------------------------------------------------- /pilfonts/helvR10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/helvR10.pbm -------------------------------------------------------------------------------- /pilfonts/helvR10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/helvR10.pil -------------------------------------------------------------------------------- /pilfonts/luBIS08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/luBIS08.pbm -------------------------------------------------------------------------------- /pilfonts/luBIS08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/luBIS08.pil -------------------------------------------------------------------------------- /pilfonts/luBIS10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/luBIS10.pbm -------------------------------------------------------------------------------- /pilfonts/luBIS10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/luBIS10.pil -------------------------------------------------------------------------------- /pilfonts/luBS08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/luBS08.pbm -------------------------------------------------------------------------------- /pilfonts/luBS08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/luBS08.pil -------------------------------------------------------------------------------- /pilfonts/luBS10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/luBS10.pbm -------------------------------------------------------------------------------- /pilfonts/luBS10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/luBS10.pil -------------------------------------------------------------------------------- /pilfonts/luIS08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/luIS08.pbm -------------------------------------------------------------------------------- /pilfonts/luIS08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/luIS08.pil -------------------------------------------------------------------------------- /pilfonts/luIS10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/luIS10.pbm -------------------------------------------------------------------------------- /pilfonts/luIS10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/luIS10.pil -------------------------------------------------------------------------------- /pilfonts/luRS08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/luRS08.pbm -------------------------------------------------------------------------------- /pilfonts/luRS08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/luRS08.pil -------------------------------------------------------------------------------- /pilfonts/luRS10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/luRS10.pbm -------------------------------------------------------------------------------- /pilfonts/luRS10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/luRS10.pil -------------------------------------------------------------------------------- /pilfonts/lubB08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lubB08.pbm -------------------------------------------------------------------------------- /pilfonts/lubB08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lubB08.pil -------------------------------------------------------------------------------- /pilfonts/lubB10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lubB10.pbm -------------------------------------------------------------------------------- /pilfonts/lubB10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lubB10.pil -------------------------------------------------------------------------------- /pilfonts/lubBI08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lubBI08.pbm -------------------------------------------------------------------------------- /pilfonts/lubBI08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lubBI08.pil -------------------------------------------------------------------------------- /pilfonts/lubBI10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lubBI10.pbm -------------------------------------------------------------------------------- /pilfonts/lubBI10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lubBI10.pil -------------------------------------------------------------------------------- /pilfonts/lubI08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lubI08.pbm -------------------------------------------------------------------------------- /pilfonts/lubI08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lubI08.pil -------------------------------------------------------------------------------- /pilfonts/lubI10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lubI10.pbm -------------------------------------------------------------------------------- /pilfonts/lubI10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lubI10.pil -------------------------------------------------------------------------------- /pilfonts/lubR08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lubR08.pbm -------------------------------------------------------------------------------- /pilfonts/lubR08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lubR08.pil -------------------------------------------------------------------------------- /pilfonts/lubR10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lubR10.pbm -------------------------------------------------------------------------------- /pilfonts/lubR10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lubR10.pil -------------------------------------------------------------------------------- /pilfonts/lutBS08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lutBS08.pbm -------------------------------------------------------------------------------- /pilfonts/lutBS08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lutBS08.pil -------------------------------------------------------------------------------- /pilfonts/lutBS10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lutBS10.pbm -------------------------------------------------------------------------------- /pilfonts/lutBS10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lutBS10.pil -------------------------------------------------------------------------------- /pilfonts/lutRS08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lutRS08.pbm -------------------------------------------------------------------------------- /pilfonts/lutRS08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lutRS08.pil -------------------------------------------------------------------------------- /pilfonts/lutRS10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lutRS10.pbm -------------------------------------------------------------------------------- /pilfonts/lutRS10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/lutRS10.pil -------------------------------------------------------------------------------- /pilfonts/ncenB08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/ncenB08.pbm -------------------------------------------------------------------------------- /pilfonts/ncenB08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/ncenB08.pil -------------------------------------------------------------------------------- /pilfonts/ncenB10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/ncenB10.pbm -------------------------------------------------------------------------------- /pilfonts/ncenB10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/ncenB10.pil -------------------------------------------------------------------------------- /pilfonts/ncenBI08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/ncenBI08.pbm -------------------------------------------------------------------------------- /pilfonts/ncenBI08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/ncenBI08.pil -------------------------------------------------------------------------------- /pilfonts/ncenBI10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/ncenBI10.pbm -------------------------------------------------------------------------------- /pilfonts/ncenBI10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/ncenBI10.pil -------------------------------------------------------------------------------- /pilfonts/ncenI08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/ncenI08.pbm -------------------------------------------------------------------------------- /pilfonts/ncenI08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/ncenI08.pil -------------------------------------------------------------------------------- /pilfonts/ncenI10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/ncenI10.pbm -------------------------------------------------------------------------------- /pilfonts/ncenI10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/ncenI10.pil -------------------------------------------------------------------------------- /pilfonts/ncenR08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/ncenR08.pbm -------------------------------------------------------------------------------- /pilfonts/ncenR08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/ncenR08.pil -------------------------------------------------------------------------------- /pilfonts/ncenR10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/ncenR10.pbm -------------------------------------------------------------------------------- /pilfonts/ncenR10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/ncenR10.pil -------------------------------------------------------------------------------- /pilfonts/symb08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/symb08.pbm -------------------------------------------------------------------------------- /pilfonts/symb08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/symb08.pil -------------------------------------------------------------------------------- /pilfonts/symb10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/symb10.pbm -------------------------------------------------------------------------------- /pilfonts/symb10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/symb10.pil -------------------------------------------------------------------------------- /pilfonts/timB08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/timB08.pbm -------------------------------------------------------------------------------- /pilfonts/timB08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/timB08.pil -------------------------------------------------------------------------------- /pilfonts/timB10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/timB10.pbm -------------------------------------------------------------------------------- /pilfonts/timB10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/timB10.pil -------------------------------------------------------------------------------- /pilfonts/timBI08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/timBI08.pbm -------------------------------------------------------------------------------- /pilfonts/timBI08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/timBI08.pil -------------------------------------------------------------------------------- /pilfonts/timBI10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/timBI10.pbm -------------------------------------------------------------------------------- /pilfonts/timBI10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/timBI10.pil -------------------------------------------------------------------------------- /pilfonts/timI08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/timI08.pbm -------------------------------------------------------------------------------- /pilfonts/timI08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/timI08.pil -------------------------------------------------------------------------------- /pilfonts/timI10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/timI10.pbm -------------------------------------------------------------------------------- /pilfonts/timI10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/timI10.pil -------------------------------------------------------------------------------- /pilfonts/timR08.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/timR08.pbm -------------------------------------------------------------------------------- /pilfonts/timR08.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/timR08.pil -------------------------------------------------------------------------------- /pilfonts/timR10.pbm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/timR10.pbm -------------------------------------------------------------------------------- /pilfonts/timR10.pil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DirkReiners/LEDBadgeProgrammer/HEAD/pilfonts/timR10.pil -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LED Name Badge Programmer 2 | 3 | ## Word of warning! 4 | 5 | There are several versions of LED badges that look almost identical, but have incompatible programming models, and sometimes the same Amazon seller changes the model without changing the Amazon page... The program here was developed for badges that use a mini-USB connection and have two buttons in the back. As of right now I can't find these on Amazon any more. :( If I find time I'll try to update the program to support newer badges, but I have no prediction when that will happen. Sorry! 6 | 7 | ## Word of warning (2) 8 | 9 | If you come here through google and are looking for a nice graphical system to program your badge, sorry, this is not the software you are looking for. It only has a command-line interface and was primarily developed for Linux. It should still work on Windows, but only with the right USB-serial driver installed (see [Windows](#windows) for details). 10 | 11 | ## Intro 12 | 13 | Scrolling LED name badges are still rare enough to be cool, but are common enough to have become pretty affordable. But a side effect of the affordability is that manufacturers are not spending a lot of money on making them very usable and easy to program. They often come with (sometimes very) outdated drivers and design programs with previews that look nothing like what actually ends up on the badge. Not to talk about the fact that all of that is almost always exclusively available for Windows, so Linux or MacOS users are left to dig an old machine out of the closet to use the shiny new toy they bought. 14 | 15 | This project provides a very basic, simple way to program a specific kind of badge, the B1248W family, specifically [this one](http://www.amazon.com/gp/product/B00T9FEILE). It is the cheapest we could find that still allows programming through the USB connection (and not through endless click orgies on one of a few buttons in the back). Note that there are many other badges that will look pretty much the same, but there are many different protocols and interfaces, so even if you have one that looks the same, this program might not work for you. See the [Other Links](#other-links) section below for other, similar projects that might work for you if this one doesn't. 16 | 17 | ## Basic Hardware Setup 18 | 19 | This kind of badge connects to the computer through a USB connection. On the badge end is uses a USB to serial converter to drive the actual chip that does the display, thus to program it the computer it's connected to needs to have drivers for the USB to serial converter on the badge. The chip is manufactured by Prolific (2303), which also provides a [Windows driver](http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=225&pcid=41), but depending on the specific chip version if may not work under Windows 7/8/10. It worked find under Linux (FC20), the chip was immediately recognized. The vendor and product IDs for the ones we have are 067b and 2303, if you want to see whether you have support for it. 20 | 21 | One caveat is that by default Linux will not create the serial device with permissions that allow everybody to access it. You can either change them by hand (`sudo chmod 666 /dev/ttyUSB0`) after you plug in the badge, or you can add the user to the group that the device has, usually `dialout`, or you can run this program as root, but that should be used as a last resort. 22 | 23 | ## Basic Software Setup 24 | 25 | This program is written in Python (2.x) and uses the [PIL Imaging library](http://www.pythonware.com/products/pil/) (or [Pillow](https://python-pillow.github.io/)) for image manipulation and the [PySerial](https://pypi.python.org/pypi/pyserial) package for serial communcations. PIL or Pillow are part of almost any Linux distro and are available as installers for other systems, too. PySerial can be installed through [pip](https://pypi.python.org/pypi/pip). 26 | 27 | ## Usage 28 | 29 | The first thing to do is to figure out what version of the badge you have. They are all called B1248W, but in fact some of them (mostly some of the red ones) only have 11x44 LEDs. This package comes with two simple test images that help identifying them. Try to run 30 | 31 | python ledbadge.py test_12x48.png 32 | 33 | If you get the `Can't write to serial port /dev/ttyUSB0, aborting!` message your permissions for the serial port need to be adjusted ([see above](#basic-hardware-setup)). 34 | 35 | If it works you should see an image with the letters '12x48' in the center. If you don't see any corners on the right side and there is only one pixel at the bottom you have an 11x44 display. Try the following: 36 | 37 | python ledbadge.py --width 44 --height 11 test_11x44.png 38 | 39 | and you should see the image with correct corners. 40 | 41 | And that already shows the basic use of the program. Just add all the things that you want displayed on the command line and they will be displayed one after the other. You can provide images (white on black prefered) or text: 42 | 43 | python ledbadge.py "If you can see the corners this is working:" test_12x48.png "Did you see them?" 44 | 45 | To make it more interesting you can set the transition effect: 46 | 47 | python ledbadge.py effect=left "If you can see the corners this is working:" test_12x48.png "Did you see them?" 48 | 49 | or a little faster, leaving the image standing still 50 | 51 | python ledbadge.py effect=left speed=6 "If you can see the corners this is working:" effect=fix speed=3 test_12x48.png effect=left speed=6 "Did you see them?" 52 | 53 | That covers the basics, see below for more options. Enjoy! 54 | 55 | ## Program Options 56 | 57 | The program understands a few standard command line options.`--width` and `--height` specify the size of the badge. The only options that we've seen were 44x11 or 48x12, the default is 48x12. The only other option is `-p` (or `--port`) to specify the dev to use for the device (default `/dev/ttyUSB0`). 58 | 59 | All other controlling options are passed as `=` pairs interspersed with the items to display. 60 | 61 | The items to display can be images or text. Images that are too high will be cut be off, images that are not high enough will be padded. Images should be white on black. They can be inverted by using the `invert=on` option, if needed. 62 | 63 | python ledbadge.py speed=6 test_12x48.png invert=on test_12x48.png 64 | 65 | Text is just interpreted as text. There are different fonts in the `pilfonts` folder to choose from by using the `font=` option, the default is `helvR08`. 66 | 67 | python ledbadge.py speed=5 effect=left font=pilfonts/luRS08.pil "This is luRS08." font=pilfonts/ncenBI08.pil "This is ncenBI08." 68 | 69 | An interesting question is what happens with text that is longer than the display, especially for up or down effects. By default the text is just cut at the end of the display, which can lead to partial letters being displayed: 70 | 71 | python ledbadge.py speed=5 effect=up "No wrap makes this a bad text." 72 | 73 | The alternative is to wrap the text at the letter level, to avoid partial letters: 74 | 75 | python ledbadge.py speed=5 effect=up wrap=char "No wrap makes this a bad text." 76 | 77 | Or to wrap it at the word level, to avoid partial words: 78 | 79 | python ledbadge.py speed=5 effect=up wrap=word "No wrap makes this a bad text." 80 | 81 | Other examples: 82 | 83 | 84 | python ledbadge.py speed=5 effect=up wrap=word halign=center "No wrap makes this a bad text." 85 | 86 | python ledbadge.py speed=5 effect=left blink=on "You can blink." blink=off "But why would you want to?" 87 | 88 | python ledbadge.py speed=5 marquee=on halign=center "Fireworks" 89 | 90 | python ledbadge.py speed=5 effect=left "White on black" invert=on "Black on white" 91 | 92 | 93 | Other options that need documentation: 94 | 95 | * blink=on|off 96 | * marquee=on|off 97 | * invert=on|off 98 | * halign=left|center|center-right|right 99 | * valign=top|middle|middle-down|bottom 100 | 101 | 102 | ## Windows 103 | 104 | You can run this program on Windows just like on Linux, but you also need to run it from the command line. Install [Python](http://www.python.org) and use [PIP](https://pip.pypa.io/en/stable/installing/) to install PySerial and PIP or Pillow. In addition to those you also need to install the USB-Serial driver that makes the badge accessible as a COM port. You can get it from the [manufacturer's website](http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=225&pcid=41). Don't forget to reboot after installation or it might not work. 105 | 106 | You will need to specify the correct COM port using the -p options to make it write to the badge, but other than that you should be fine. 107 | 108 | 109 | ## Other Links 110 | 111 | * [http://www.daveakerman.com/?p=1440] 112 | * [https://bitbucket.org/bartj/led] 113 | * [http://zunkworks.com/projects/programmablelednamebadges/] 114 | 115 | 116 | ## Acknowledgements 117 | 118 | * Thanks to Raphael for the Windows input and testing! 119 | 120 | 121 | ## Copyrights 122 | 123 | The pilfonts folder contains a subset of the [pilfonts](http://effbot.org/downloads#pilfonts) collection from EFFBot, which in turn are based on X11 fonts. Please see the [pilfonts/README](https://github.com/DirkReiners/LEDBadgeProgrammer/blob/master/pilfonts/README) file for copyright details. 124 | 125 | The software itself is licensed under the Simplified BSD License: 126 | 127 | Copyright (c) 2015, Dirk Reiners 128 | All rights reserved. 129 | 130 | Redistribution and use in source and binary forms, with or without 131 | modification, are permitted provided that the following conditions are met: 132 | 133 | 1. Redistributions of source code must retain the above copyright notice, this 134 | list of conditions and the following disclaimer. 135 | 2. Redistributions in binary form must reproduce the above copyright notice, 136 | this list of conditions and the following disclaimer in the documentation 137 | and/or other materials provided with the distribution. 138 | 139 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 140 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 141 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 142 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 143 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 144 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 145 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 146 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 147 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 148 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 149 | 150 | The views and conclusions contained in the software and documentation are those 151 | of the authors and should not be interpreted as representing official policies, 152 | either expressed or implied, of the FreeBSD Project. 153 | 154 | -------------------------------------------------------------------------------- /ledbadge.py: -------------------------------------------------------------------------------- 1 | __author__ = 'reiners' 2 | 3 | import serial 4 | import time 5 | import math 6 | import os 7 | import sys 8 | import argparse 9 | from PIL import Image, ImageFont, ImageDraw 10 | 11 | effects = { "fix" : 4, "left" : 0, "right" : 1, "up" : 2, "down" : 3, "animation" : 5, "snow" : 6, "blink" : 7 } 12 | 13 | class Message(object): 14 | 15 | def __init__(self): 16 | self._width = 0 17 | self._image = [] 18 | self.effect = effects["fix"] 19 | self.speed = 1 20 | self.blink = False 21 | self.marquee = False 22 | 23 | 24 | def cropEmpty(self, image, left=False, right=True, top=False, bottom=False): 25 | s = image.size 26 | 27 | # Black pixels bounding box (l,r,t,b) 28 | box = [10000,-10000,10000,-10000] 29 | 30 | pixels = image.load() 31 | 32 | for x in xrange(0, s[0]): 33 | for y in xrange(0, s[1]): 34 | if pixels[x,y] != 0: 35 | box[0] = min(box[0], x) 36 | box[1] = max(box[1], x) 37 | box[2] = min(box[2], y) 38 | box[3] = max(box[3], y) 39 | 40 | cb = box 41 | if not left: 42 | cb[0] = 0 43 | if not right: 44 | cb[1] = s[0] - 1 45 | if not top: 46 | cb[2] = 0 47 | if not bottom: 48 | cb[3] = s[1] - 1 49 | 50 | crop = image.crop((cb[0],cb[2],cb[1] + 1,cb[3] + 1)) 51 | crop.load() 52 | 53 | return crop 54 | 55 | 56 | def adjustAlign(self, im, halign, valign, full=True): 57 | s = im.size 58 | 59 | xoff = 0 60 | yoff = 0 61 | 62 | halign = halign.lower() 63 | valign = valign.lower() 64 | 65 | # Adjust horizontally? 66 | if halign != "left" and s[0] < clargs.width: 67 | if halign == "right": 68 | xoff = clargs.width - s[0] 69 | else: 70 | xoff = (clargs.width - s[0]) / 2 71 | 72 | if (clargs.width - s[0]) % 2 == 1: 73 | if halign == "center-right": 74 | xoff += 1 75 | 76 | # Adjust vertically? 77 | if valign != "top" and s[1] < clargs.width: 78 | if valign == "bottom": 79 | yoff = clargs.height - s[1] 80 | else: 81 | yoff = (clargs.height - s[1]) / 2 82 | 83 | if (clargs.height - s[1]) % 2 == 1: 84 | if valign == "middle-down": 85 | yoff += 1 86 | 87 | if xoff != 0 or yoff != 0: 88 | if full == True: 89 | outimage = Image.new(im.mode , (max(s[0], clargs.width), max(s[1], clargs.height)), "black") 90 | else: 91 | outimage = Image.new(im.mode , (s[0] + xoff, s[1] + yoff), "black") 92 | 93 | outimage.paste(im, (xoff, yoff)) 94 | im = outimage 95 | 96 | return im 97 | 98 | 99 | def setImage(self, image, halign="center-left", valign="middle-down", invert=False): 100 | 101 | if isinstance(image, basestring): 102 | im = Image.open(image) 103 | else: 104 | im = image 105 | 106 | im = self.adjustAlign(im, halign, valign) 107 | 108 | s = im.size 109 | ih = min(clargs.height, s[1]) 110 | 111 | self._image = [b""] * clargs.height 112 | col = [0] * clargs.height 113 | 114 | bwim = im.convert("L") 115 | pixels = bwim.load() 116 | 117 | mask = 0x80 118 | inv = 0x00 119 | col = [0] * clargs.height 120 | 121 | for x in xrange(s[0]): 122 | for y in xrange(ih): 123 | if pixels[x,y] >= 128: 124 | col[y] |= mask 125 | 126 | inv |= mask 127 | mask = mask / 2 128 | 129 | if mask == 0: 130 | for y in xrange(clargs.height): 131 | c = col[y] 132 | if invert: 133 | c = c ^ inv 134 | self._image[y] += chr(c) 135 | col[y] = 0 136 | mask = 0x80 137 | inv = 0x00 138 | 139 | # copy leftover pixels 140 | if mask != 0x80: 141 | for y in xrange(clargs.height): 142 | c = col[y] 143 | if invert: 144 | c = c ^ inv 145 | self._image[y] += chr(c) 146 | 147 | self._width = (s[0] + 7) / 8 148 | 149 | if len(self._image[0]) != self._width: 150 | print "Something's wrong: %d != %d!" % (len(self._image[0]), self._width) 151 | sys.exit(1) 152 | 153 | 154 | 155 | def setText(self, text, font="pilfonts/helv10R.pil", halign="center-left", valign="middle-down", wrap="none", invert=False): 156 | 157 | ifont = ImageFont.load( font ) 158 | (w, h) = ifont.getsize(text) 159 | 160 | tximage = Image.new( 'L' , (w, h), "black") 161 | idraw = ImageDraw.Draw( tximage ) 162 | 163 | idraw.text((0,0), text, font=ifont, fill="white") 164 | 165 | crop = self.cropEmpty(tximage, left=True, right=True, top=True, bottom=True) 166 | 167 | if crop.size[1] > clargs.height: 168 | print "Warning: text %s with font %s has height %d > image height %d, ignoring extra rows!" % (text, font, crop.size[1], clargs.height) 169 | 170 | # Arg cleanup 171 | wrap = wrap.lower() 172 | 173 | # Do we need to split and wrap? 174 | if wrap != "none" and crop.size[0] > clargs.width: 175 | if wrap == "char": 176 | pieces = text 177 | elif wrap == "word": 178 | pieces = text.split(' ') 179 | else: 180 | print "Unknown wrap mode %s, aborting!" % wrap 181 | sys.exit(1) 182 | 183 | outs = [] 184 | outw = 0 185 | cur = '' 186 | 187 | for p in pieces: 188 | lastcur = cur 189 | 190 | if cur != "" and wrap == "word": 191 | cur += ' ' 192 | cur += p 193 | 194 | (w, h) = ifont.getsize(cur) 195 | 196 | if w > clargs.width: 197 | (w, h) = ifont.getsize(lastcur) 198 | outimage = Image.new('L' , (w, h), "black") 199 | idraw = ImageDraw.Draw(outimage) 200 | idraw.text((0,0), lastcur, font=ifont, fill="white") 201 | 202 | outimage = self.cropEmpty(outimage, left=True, right=True, top=True, bottom=True) 203 | outimage = self.adjustAlign(outimage, halign, valign, full=True) 204 | 205 | outs.append(outimage) 206 | outw += outimage.size[0] 207 | cur = p 208 | 209 | if cur != '': 210 | (w, h) = ifont.getsize(cur) 211 | outimage = Image.new('L' , (w, h), "black") 212 | idraw = ImageDraw.Draw(outimage) 213 | idraw.text((0,0), cur, font=ifont, fill="white") 214 | 215 | outimage = self.cropEmpty(outimage, left=True, right=True, top=True, bottom=True) 216 | outimage = self.adjustAlign(outimage, halign, valign, full=True) 217 | 218 | outs.append(outimage) 219 | outw += outimage.size[0] 220 | 221 | outimage = Image.new('L' , (outw, clargs.height), "black") 222 | x = 0 223 | for o in outs: 224 | outimage.paste(o, (x,0)) 225 | x += o.size[0] 226 | 227 | self.setImage(outimage, halign="left", valign="top", invert=invert) 228 | 229 | else: 230 | self.setImage(crop, halign=halign, valign=valign, invert=invert) 231 | 232 | 233 | 234 | class LEDBadge(object): 235 | 236 | def __init__(self, port): 237 | 238 | if not os.access(port, os.W_OK): 239 | print "Can't write to serial port %s, aborting!" % port 240 | sys.exit(1) 241 | 242 | self._port = port 243 | self._messages = [] 244 | 245 | 246 | def addMessage(self, m): 247 | 248 | self._messages.append(m) 249 | 250 | 251 | def send(self): 252 | 253 | if not len(self._messages): 254 | print "No message, not sending." 255 | return 256 | 257 | print "Sending message(s):", 258 | sys.stdout.flush() 259 | 260 | # Assemble necessary data 261 | # configuration part of header. Starts with 0x00 262 | confheader = b"\x00" 263 | # Image part of the header 264 | imgheader = b"" 265 | # Image data part (12 lines of binary image) 266 | image = [b""] * clargs.height 267 | 268 | iw = 0 269 | lastw = 0 270 | 271 | # Assemble headers and image data 272 | for m in self._messages: 273 | # configuration header: 1 byte per message, 8 total. bits: msssbeee 274 | h = m.effect + m.speed * 16 275 | if m.blink: 276 | h |= 0x08 277 | if m.marquee: 278 | h |= 0x80 279 | confheader += chr(h) 280 | 281 | # image header: 4 bytes: length of last message,0x8,offset in line of this message,0x0 282 | imgheader += chr(lastw) + "\x08" + chr(iw) + "\x00" 283 | lastw = m._width 284 | iw += m._width 285 | 286 | # Image data: all messages concatenated for each line, e.g. make a wide image with all messages 287 | for i in xrange(len(m._image)): 288 | image[i] += m._image[i] 289 | 290 | # Add dummy lines until 12 lines reached, if needed 291 | while len(image) < 12: 292 | image.append(b"\x00" * iw) 293 | 294 | # Fill up header to cover 8 messages 295 | for i in xrange(8 - len(self._messages)): 296 | confheader += chr(h) 297 | imgheader += chr(lastw) + "\x08" + chr(iw) + "\x00" 298 | lastw = 0 299 | 300 | # Image header stop byte 301 | imgheader += "\x00" 302 | 303 | # Message ready, let's send it... 304 | # Open serial port 305 | ser = serial.Serial(self._port, 4800) 306 | 307 | # Intro 308 | ser.write(b"Hello") 309 | time.sleep(.050) 310 | 311 | # Config 312 | ser.write(confheader + imgheader) 313 | print "Header sent...", 314 | sys.stdout.flush() 315 | time.sleep(.500) 316 | 317 | print "Image lines", 318 | sys.stdout.flush() 319 | 320 | # Image data, line by line 321 | # After 256 bytes it needs a ~500 ms break or things go very wrong 322 | sent = 0 323 | for i in image: 324 | if sent + len(i) < 256: 325 | ser.write(i) 326 | ser.flush() 327 | sent += len(i) 328 | else: 329 | ser.write(i[:256-sent]) 330 | print ".", 331 | sys.stdout.flush() 332 | time.sleep(.500) 333 | ser.write(i[256-sent:]) 334 | sent = len(i) - (256-sent) 335 | print "=", 336 | sys.stdout.flush() 337 | time.sleep(.090) 338 | 339 | # All done 340 | ser.close() 341 | 342 | print "" 343 | print "All done!" 344 | 345 | # Unfortunately we don't get any error messages, so let's hope it worked... 346 | # If not, just run it again. ;) 347 | 348 | 349 | if __name__ == "__main__": 350 | 351 | global clargs 352 | 353 | parser = argparse.ArgumentParser(description='LED Badge Programmer') 354 | 355 | parser.add_argument('--width', help='width of badge', type=int, default=48) 356 | parser.add_argument('--height', help='height of badge', type=int, default=12) 357 | parser.add_argument('-p', '--port', help='serial port to use', default="/dev/ttyUSB0") 358 | parser.add_argument('coms', nargs='+', help='options/message images') 359 | 360 | clargs = parser.parse_args() 361 | 362 | 363 | speed=1 364 | effect="Fix" 365 | blink=False 366 | marquee=False 367 | invert=False 368 | font="pilfonts/helvR08.pil" 369 | halign="left" 370 | valign="middle-down" 371 | wrap="none" 372 | 373 | b = LEDBadge(clargs.port) 374 | 375 | for c in clargs.coms: 376 | 377 | if c.startswith("speed="): 378 | speed = int(c[6:]) 379 | elif c.startswith("effect="): 380 | effect = c[7:] 381 | elif c.startswith("blink="): 382 | if c.endswith("on"): 383 | blink = True 384 | else: 385 | blink = False 386 | elif c.startswith("marquee="): 387 | if c.endswith("on"): 388 | marquee = True 389 | else: 390 | marquee = False 391 | elif c.startswith("invert="): 392 | if c.endswith("on"): 393 | invert = True 394 | else: 395 | invert = False 396 | elif c.startswith("font="): 397 | font = c[5:] 398 | elif c.startswith("halign="): 399 | halign = c[7:] 400 | elif c.startswith("valign="): 401 | valign = c[7:] 402 | elif c.startswith("wrap="): 403 | wrap = c[5:] 404 | else: 405 | 406 | m = Message() 407 | m.effect = effects[effect.lower()] 408 | m.speed = speed 409 | m.blink = blink 410 | m.marquee = marquee 411 | 412 | if os.path.isfile(c): 413 | m.setImage(c, halign=halign, valign=valign, invert=invert) 414 | else: 415 | m.setText(c, font, halign=halign, valign=valign, wrap=wrap, invert=invert) 416 | 417 | b.addMessage(m) 418 | 419 | b.send() 420 | 421 | 422 | -------------------------------------------------------------------------------- /pilfonts/README: -------------------------------------------------------------------------------- 1 | $Id: //modules/pilfonts/README#1 $ 2 | 3 | a collection of Courier and Helvetica bitmap fonts for the Python 4 | Imaging Library (PIL), derived from 100dpi fonts shipped with the 5 | X Window system. See below for copyrights on individual fonts. 6 | 7 | example: 8 | 9 | import Image, ImageDraw, ImageFont 10 | 11 | im = Image.new("RGB", (200, 200), "white") 12 | draw = ImageDraw.Draw(im) 13 | 14 | font = ImageFont.load("helvR14.pil") 15 | 16 | draw.text((10, 10), "hello", font=font, fill="red") 17 | 18 | im.show() 19 | 20 | -------------------------------------------------------------------- 21 | Charter Medium 22 | 23 | normal (R), italic (I) 24 | 25 | charR08.pil: -Bitstream-Charter-Medium-R-Normal--11-80-100-100-P-61-ISO8859-1 26 | charR10.pil: -Bitstream-Charter-Medium-R-Normal--14-100-100-100-P-78-ISO8859-1 27 | charR12.pil: -Bitstream-Charter-Medium-R-Normal--17-120-100-100-P-95-ISO8859-1 28 | charR14.pil: -Bitstream-Charter-Medium-R-Normal--19-140-100-100-P-106-ISO8859-1 29 | charR18.pil: -Bitstream-Charter-Medium-R-Normal--25-180-100-100-P-139-ISO8859-1 30 | charR24.pil: -Bitstream-Charter-Medium-R-Normal--33-240-100-100-P-183-ISO8859-1 31 | charI08.pil: -Bitstream-Charter-Medium-I-Normal--11-80-100-100-P-60-ISO8859-1 32 | charI10.pil: -Bitstream-Charter-Medium-I-Normal--14-100-100-100-P-76-ISO8859-1 33 | charI12.pil: -Bitstream-Charter-Medium-I-Normal--17-120-100-100-P-92-ISO8859-1 34 | charI14.pil: -Bitstream-Charter-Medium-I-Normal--19-140-100-100-P-103-ISO8859-1 35 | charI18.pil: -Bitstream-Charter-Medium-I-Normal--25-180-100-100-P-136-ISO8859-1 36 | charI24.pil: -Bitstream-Charter-Medium-I-Normal--33-240-100-100-P-179-ISO8859-1 37 | 38 | Copyright 1987 by Bitstream Inc. Charter Registered trademark of 39 | Bitstream Inc. 40 | 41 | -------------------------------------------------------------------- 42 | Courier 43 | 44 | normal (R), oblique (O), bold (B), bold oblique (BO) 45 | 46 | courR08.pil: -Adobe-Courier-Medium-R-Normal--11-80-100-100-M-60-ISO8859-1 47 | courR10.pil: -Adobe-Courier-Medium-R-Normal--14-100-100-100-M-90-ISO8859-1 48 | courR12.pil: -Adobe-Courier-Medium-R-Normal--17-120-100-100-M-100-ISO8859-1 49 | courR14.pil: -Adobe-Courier-Medium-R-Normal--20-140-100-100-M-110-ISO8859-1 50 | courR18.pil: -Adobe-Courier-Medium-R-Normal--25-180-100-100-M-150-ISO8859-1 51 | courR24.pil: -Adobe-Courier-Medium-R-Normal--34-240-100-100-M-200-ISO8859-1 52 | courO08.pil: -Adobe-Courier-Medium-O-Normal--11-80-100-100-M-60-ISO8859-1 53 | courO10.pil: -Adobe-Courier-Medium-O-Normal--14-100-100-100-M-90-ISO8859-1 54 | courO12.pil: -Adobe-Courier-Medium-O-Normal--17-120-100-100-M-100-ISO8859-1 55 | courO14.pil: -Adobe-Courier-Medium-O-Normal--20-140-100-100-M-110-ISO8859-1 56 | courO18.pil: -Adobe-Courier-Medium-O-Normal--25-180-100-100-M-150-ISO8859-1 57 | courO24.pil: -Adobe-Courier-Medium-O-Normal--34-240-100-100-M-200-ISO8859-1 58 | courB08.pil: -Adobe-Courier-Bold-R-Normal--11-80-100-100-M-60-ISO8859-1 59 | courB10.pil: -Adobe-Courier-Bold-R-Normal--14-100-100-100-M-90-ISO8859-1 60 | courB12.pil: -Adobe-Courier-Bold-R-Normal--17-120-100-100-M-100-ISO8859-1 61 | courB14.pil: -Adobe-Courier-Bold-R-Normal--20-140-100-100-M-110-ISO8859-1 62 | courB18.pil: -Adobe-Courier-Bold-R-Normal--25-180-100-100-M-150-ISO8859-1 63 | courB24.pil: -Adobe-Courier-Bold-R-Normal--34-240-100-100-M-200-ISO8859-1 64 | courBO08.pil: -Adobe-Courier-Bold-O-Normal--11-80-100-100-M-60-ISO8859-1 65 | courBO10.pil: -Adobe-Courier-Bold-O-Normal--14-100-100-100-M-90-ISO8859-1 66 | courBO12.pil: -Adobe-Courier-Bold-O-Normal--17-120-100-100-M-100-ISO8859-1 67 | courBO14.pil: -Adobe-Courier-Bold-O-Normal--20-140-100-100-M-110-ISO8859-1 68 | courBO18.pil: -Adobe-Courier-Bold-O-Normal--25-180-100-100-M-150-ISO8859-1 69 | courBO24.pil: -Adobe-Courier-Bold-O-Normal--34-240-100-100-M-200-ISO8859-1 70 | 71 | Copyright (c) 1987 Adobe Systems, Inc., Portions Copyright 1988 72 | Digital Equipment Corp. 73 | 74 | -------------------------------------------------------------------- 75 | Helvetica 76 | 77 | normal (R), oblique (O), bold (B), bold oblique (BO) 78 | 79 | helvR08.pil: -Adobe-Helvetica-Medium-R-Normal--11-80-100-100-P-56-ISO8859-1 80 | helvR10.pil: -Adobe-Helvetica-Medium-R-Normal--14-100-100-100-P-76-ISO8859-1 81 | helvR12.pil: -Adobe-Helvetica-Medium-R-Normal--17-120-100-100-P-88-ISO8859-1 82 | helvR14.pil: -Adobe-Helvetica-Medium-R-Normal--20-140-100-100-P-100-ISO8859-1 83 | helvR18.pil: -Adobe-Helvetica-Medium-R-Normal--25-180-100-100-P-130-ISO8859-1 84 | helvR24.pil: -Adobe-Helvetica-Medium-R-Normal--34-240-100-100-P-176-ISO8859-1 85 | helvO08.pil: -Adobe-Helvetica-Medium-O-Normal--11-80-100-100-P-57-ISO8859-1 86 | helvO10.pil: -Adobe-Helvetica-Medium-O-Normal--14-100-100-100-P-78-ISO8859-1 87 | helvO12.pil: -Adobe-Helvetica-Medium-O-Normal--17-120-100-100-P-88-ISO8859-1 88 | helvO14.pil: -Adobe-Helvetica-Medium-O-Normal--20-140-100-100-P-98-ISO8859-1 89 | helvO18.pil: -Adobe-Helvetica-Medium-O-Normal--25-180-100-100-P-130-ISO8859-1 90 | helvO24.pil: -Adobe-Helvetica-Medium-O-Normal--34-240-100-100-P-176-ISO8859-1 91 | helvB08.pil: -Adobe-Helvetica-Bold-R-Normal--11-80-100-100-P-60-ISO8859-1 92 | helvB10.pil: -Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO8859-1 93 | helvB12.pil: -Adobe-Helvetica-Bold-R-Normal--17-120-100-100-P-92-ISO8859-1 94 | helvB14.pil: -Adobe-Helvetica-Bold-R-Normal--20-140-100-100-P-105-ISO8859-1 95 | helvB18.pil: -Adobe-Helvetica-Bold-R-Normal--25-180-100-100-P-138-ISO8859-1 96 | helvB24.pil: -Adobe-Helvetica-Bold-R-Normal--34-240-100-100-P-182-ISO8859-1 97 | helvBO08.pil: -Adobe-Helvetica-Bold-O-Normal--11-80-100-100-P-60-ISO8859-1 98 | helvBO10.pil: -Adobe-Helvetica-Bold-O-Normal--14-100-100-100-P-82-ISO8859-1 99 | helvBO12.pil: -Adobe-Helvetica-Bold-O-Normal--17-120-100-100-P-92-ISO8859-1 100 | helvBO14.pil: -Adobe-Helvetica-Bold-O-Normal--20-140-100-100-P-103-ISO8859-1 101 | helvBO18.pil: -Adobe-Helvetica-Bold-O-Normal--25-180-100-100-P-138-ISO8859-1 102 | helvBO24.pil: -Adobe-Helvetica-Bold-O-Normal--34-240-100-100-P-182-ISO8859-1 103 | 104 | Copyright (c) 1987 Adobe Systems, Inc., Portions Copyright 1988 105 | Digital Equipment Corp. 106 | 107 | -------------------------------------------------------------------- 108 | Lucida 109 | 110 | normal (RS), italic (IS), bold (BS), bold italic (BIS) 111 | 112 | luRS08.pil: -B&H-Lucida-Medium-R-Normal-Sans-11-80-100-100-P-63-ISO8859-1 113 | luRS10.pil: -B&H-Lucida-Medium-R-Normal-Sans-14-100-100-100-P-80-ISO8859-1 114 | luRS12.pil: -B&H-Lucida-Medium-R-Normal-Sans-17-120-100-100-P-96-ISO8859-1 115 | luRS14.pil: -B&H-Lucida-Medium-R-Normal-Sans-20-140-100-100-P-114-ISO8859-1 116 | luRS18.pil: -B&H-Lucida-Medium-R-Normal-Sans-25-180-100-100-P-142-ISO8859-1 117 | luRS19.pil: -B&H-Lucida-Medium-R-Normal-Sans-26-190-100-100-P-147-ISO8859-1 118 | luRS24.pil: -B&H-Lucida-Medium-R-Normal-Sans-34-240-100-100-P-191-ISO8859-1 119 | luIS08.pil: -B&H-Lucida-Medium-I-Normal-Sans-11-80-100-100-P-62-ISO8859-1 120 | luIS10.pil: -B&H-Lucida-Medium-I-Normal-Sans-14-100-100-100-P-80-ISO8859-1 121 | luIS12.pil: -B&H-Lucida-Medium-I-Normal-Sans-17-120-100-100-P-97-ISO8859-1 122 | luIS14.pil: -B&H-Lucida-Medium-I-Normal-Sans-20-140-100-100-P-114-ISO8859-1 123 | luIS18.pil: -B&H-Lucida-Medium-I-Normal-Sans-25-180-100-100-P-141-ISO8859-1 124 | luIS19.pil: -B&H-Lucida-Medium-I-Normal-Sans-26-190-100-100-P-147-ISO8859-1 125 | luIS24.pil: -B&H-Lucida-Medium-I-Normal-Sans-34-240-100-100-P-192-ISO8859-1 126 | luBIS08.pil: -B&H-Lucida-Bold-I-Normal-Sans-11-80-100-100-P-69-ISO8859-1 127 | luBIS10.pil: -B&H-Lucida-Bold-I-Normal-Sans-14-100-100-100-P-90-ISO8859-1 128 | luBIS12.pil: -B&H-Lucida-Bold-I-Normal-Sans-17-120-100-100-P-108-ISO8859-1 129 | luBIS14.pil: -B&H-Lucida-Bold-I-Normal-Sans-20-140-100-100-P-127-ISO8859-1 130 | luBIS18.pil: -B&H-Lucida-Bold-I-Normal-Sans-25-180-100-100-P-159-ISO8859-1 131 | luBIS19.pil: -B&H-Lucida-Bold-I-Normal-Sans-26-190-100-100-P-166-ISO8859-1 132 | luBIS24.pil: -B&H-Lucida-Bold-I-Normal-Sans-34-240-100-100-P-215-ISO8859-1 133 | luBS08.pil: -B&H-Lucida-Bold-R-Normal-Sans-11-80-100-100-P-70-ISO8859-1 134 | luBS10.pil: -B&H-Lucida-Bold-R-Normal-Sans-14-100-100-100-P-89-ISO8859-1 135 | luBS12.pil: -B&H-Lucida-Bold-R-Normal-Sans-17-120-100-100-P-108-ISO8859-1 136 | luBS14.pil: -B&H-Lucida-Bold-R-Normal-Sans-20-140-100-100-P-127-ISO8859-1 137 | luBS18.pil: -B&H-Lucida-Bold-R-Normal-Sans-25-180-100-100-P-158-ISO8859-1 138 | luBS19.pil: -B&H-Lucida-Bold-R-Normal-Sans-26-190-100-100-P-166-ISO8859-1 139 | luBS24.pil: -B&H-Lucida-Bold-R-Normal-Sans-34-240-100-100-P-216-ISO8859-1 140 | 141 | lubR08.pil: -B&H-LucidaBright-Medium-R-Normal--11-80-100-100-P-63-ISO8859-1 142 | lubR10.pil: -B&H-LucidaBright-Medium-R-Normal--14-100-100-100-P-80-ISO8859-1 143 | lubR12.pil: -B&H-LucidaBright-Medium-R-Normal--17-120-100-100-P-96-ISO8859-1 144 | lubR14.pil: -B&H-LucidaBright-Medium-R-Normal--20-140-100-100-P-114-ISO8859-1 145 | lubR18.pil: -B&H-LucidaBright-Medium-R-Normal--25-180-100-100-P-142-ISO8859-1 146 | lubR19.pil: -B&H-LucidaBright-Medium-R-Normal--26-190-100-100-P-149-ISO8859-1 147 | lubR24.pil: -B&H-LucidaBright-Medium-R-Normal--34-240-100-100-P-193-ISO8859-1 148 | lubI08.pil: -B&H-LucidaBright-Medium-I-Normal--11-80-100-100-P-63-ISO8859-1 149 | lubI10.pil: -B&H-LucidaBright-Medium-I-Normal--14-100-100-100-P-80-ISO8859-1 150 | lubI12.pil: -B&H-LucidaBright-Medium-I-Normal--17-120-100-100-P-96-ISO8859-1 151 | lubI14.pil: -B&H-LucidaBright-Medium-I-Normal--20-140-100-100-P-113-ISO8859-1 152 | lubI18.pil: -B&H-LucidaBright-Medium-I-Normal--25-180-100-100-P-142-ISO8859-1 153 | lubI19.pil: -B&H-LucidaBright-Medium-I-Normal--26-190-100-100-P-148-ISO8859-1 154 | lubI24.pil: -B&H-LucidaBright-Medium-I-Normal--34-240-100-100-P-194-ISO8859-1 155 | lubB08.pil: -B&H-LucidaBright-DemiBold-R-Normal--11-80-100-100-P-66-ISO8859-1 156 | lubB10.pil: -B&H-LucidaBright-DemiBold-R-Normal--14-100-100-100-P-84-ISO8859-1 157 | lubB12.pil: -B&H-LucidaBright-DemiBold-R-Normal--17-120-100-100-P-101-ISO8859-1 158 | lubB14.pil: -B&H-LucidaBright-DemiBold-R-Normal--20-140-100-100-P-118-ISO8859-1 159 | lubB18.pil: -B&H-LucidaBright-DemiBold-R-Normal--25-180-100-100-P-149-ISO8859-1 160 | lubB19.pil: -B&H-LucidaBright-DemiBold-R-Normal--26-190-100-100-P-155-ISO8859-1 161 | lubB24.pil: -B&H-LucidaBright-DemiBold-R-Normal--34-240-100-100-P-202-ISO8859-1 162 | lubBI08.pil: -B&H-LucidaBright-DemiBold-I-Normal--11-80-100-100-P-66-ISO8859-1 163 | lubBI10.pil: -B&H-LucidaBright-DemiBold-I-Normal--14-100-100-100-P-84-ISO8859-1 164 | lubBI12.pil: -B&H-LucidaBright-DemiBold-I-Normal--17-120-100-100-P-101-ISO8859-1 165 | lubBI14.pil: -B&H-LucidaBright-DemiBold-I-Normal--20-140-100-100-P-119-ISO8859-1 166 | lubBI18.pil: -B&H-LucidaBright-DemiBold-I-Normal--25-180-100-100-P-149-ISO8859-1 167 | lubBI19.pil: -B&H-LucidaBright-DemiBold-I-Normal--26-190-100-100-P-156-ISO8859-1 168 | lubBI24.pil: -B&H-LucidaBright-DemiBold-I-Normal--34-240-100-100-P-203-ISO8859-1 169 | 170 | lutRS08.pil: -B&H-LucidaTypewriter-Medium-R-Normal-Sans-11-80-100-100-M-70-ISO8859-1 171 | lutRS10.pil: -B&H-LucidaTypewriter-Medium-R-Normal-Sans-14-100-100-100-M-80-ISO8859-1 172 | lutRS12.pil: -B&H-LucidaTypewriter-Medium-R-Normal-Sans-17-120-100-100-M-100-ISO8859-1 173 | lutRS14.pil: -B&H-LucidaTypewriter-Medium-R-Normal-Sans-20-140-100-100-M-120-ISO8859-1 174 | lutRS18.pil: -B&H-LucidaTypewriter-Medium-R-Normal-Sans-25-180-100-100-M-150-ISO8859-1 175 | lutRS19.pil: -B&H-LucidaTypewriter-Medium-R-Normal-Sans-26-190-100-100-M-159-ISO8859-1 176 | lutRS24.pil: -B&H-LucidaTypewriter-Medium-R-Normal-Sans-34-240-100-100-M-200-ISO8859-1 177 | lutBS08.pil: -B&H-LucidaTypewriter-Bold-R-Normal-Sans-11-80-100-100-M-70-ISO8859-1 178 | lutBS10.pil: -B&H-LucidaTypewriter-Bold-R-Normal-Sans-14-100-100-100-M-80-ISO8859-1 179 | lutBS12.pil: -B&H-LucidaTypewriter-Bold-R-Normal-Sans-17-120-100-100-M-100-ISO8859-1 180 | lutBS14.pil: -B&H-LucidaTypewriter-Bold-R-Normal-Sans-20-140-100-100-M-120-ISO8859-1 181 | lutBS18.pil: -B&H-LucidaTypewriter-Bold-R-Normal-Sans-25-180-100-100-M-150-ISO8859-1 182 | lutBS19.pil: -B&H-LucidaTypewriter-Bold-R-Normal-Sans-26-190-100-100-M-159-ISO8859-1 183 | lutBS24.pil: -B&H-LucidaTypewriter-Bold-R-Normal-Sans-34-240-100-100-M-200-ISO8859-1 184 | 185 | Copyright Bigelow & Holmes 1986, 1985. 186 | 187 | -------------------------------------------------------------------- 188 | New Century Schoolbook 189 | 190 | normal (R), italic (I), bold (B), bold italic (BI) 191 | 192 | ncenR08.pil: -Adobe-New Century Schoolbook-Medium-R-Normal--11-80-100-100-P-60-ISO8859-1 193 | ncenR10.pil: -Adobe-New Century Schoolbook-Medium-R-Normal--14-100-100-100-P-82-ISO8859-1 194 | ncenR12.pil: -Adobe-New Century Schoolbook-Medium-R-Normal--17-120-100-100-P-91-ISO8859-1 195 | ncenR14.pil: -Adobe-New Century Schoolbook-Medium-R-Normal--20-140-100-100-P-103-ISO8859-1 196 | ncenR18.pil: -Adobe-New Century Schoolbook-Medium-R-Normal--25-180-100-100-P-136-ISO8859-1 197 | ncenR24.pil: -Adobe-New Century Schoolbook-Medium-R-Normal--34-240-100-100-P-181-ISO8859-1 198 | ncenI08.pil: -Adobe-New Century Schoolbook-Medium-I-Normal--11-80-100-100-P-60-ISO8859-1 199 | ncenI10.pil: -Adobe-New Century Schoolbook-Medium-I-Normal--14-100-100-100-P-81-ISO8859-1 200 | ncenI12.pil: -Adobe-New Century Schoolbook-Medium-I-Normal--17-120-100-100-P-92-ISO8859-1 201 | ncenI14.pil: -Adobe-New Century Schoolbook-Medium-I-Normal--20-140-100-100-P-104-ISO8859-1 202 | ncenI18.pil: -Adobe-New Century Schoolbook-Medium-I-Normal--25-180-100-100-P-136-ISO8859-1 203 | ncenI24.pil: -Adobe-New Century Schoolbook-Medium-I-Normal--34-240-100-100-P-182-ISO8859-1 204 | ncenB08.pil: -Adobe-New Century Schoolbook-Bold-R-Normal--11-80-100-100-P-66-ISO8859-1 205 | ncenB10.pil: -Adobe-New Century Schoolbook-Bold-R-Normal--14-100-100-100-P-87-ISO8859-1 206 | ncenB12.pil: -Adobe-New Century Schoolbook-Bold-R-Normal--17-120-100-100-P-99-ISO8859-1 207 | ncenB14.pil: -Adobe-New Century Schoolbook-Bold-R-Normal--20-140-100-100-P-113-ISO8859-1 208 | ncenB18.pil: -Adobe-New Century Schoolbook-Bold-R-Normal--25-180-100-100-P-149-ISO8859-1 209 | ncenB24.pil: -Adobe-New Century Schoolbook-Bold-R-Normal--34-240-100-100-P-193-ISO8859-1 210 | ncenBI08.pil: -Adobe-New Century Schoolbook-Bold-I-Normal--11-80-100-100-P-66-ISO8859-1 211 | ncenBI10.pil: -Adobe-New Century Schoolbook-Bold-I-Normal--14-100-100-100-P-88-ISO8859-1 212 | ncenBI12.pil: -Adobe-New Century Schoolbook-Bold-I-Normal--17-120-100-100-P-99-ISO8859-1 213 | ncenBI14.pil: -Adobe-New Century Schoolbook-Bold-I-Normal--20-140-100-100-P-111-ISO8859-1 214 | ncenBI18.pil: -Adobe-New Century Schoolbook-Bold-I-Normal--25-180-100-100-P-148-ISO8859-1 215 | ncenBI24.pil: -Adobe-New Century Schoolbook-Bold-I-Normal--34-240-100-100-P-193-ISO8859-1 216 | 217 | Copyright (c) 1987 Adobe Systems, Inc., Portions Copyright 1988 218 | Digital Equipment Corp. 219 | 220 | -------------------------------------------------------------------- 221 | Symbol 222 | 223 | symb08.pil: -Adobe-Symbol-Medium-R-Normal--11-80-100-100-P-61-ADOBE-FONTSPECIFIC 224 | symb10.pil: -Adobe-Symbol-Medium-R-Normal--14-100-100-100-P-85-ADOBE-FONTSPECIFIC 225 | symb12.pil: -Adobe-Symbol-Medium-R-Normal--17-120-100-100-P-95-ADOBE-FONTSPECIFIC 226 | symb14.pil: -Adobe-Symbol-Medium-R-Normal--20-140-100-100-P-107-ADOBE-FONTSPECIFIC 227 | symb18.pil: -Adobe-Symbol-Medium-R-Normal--25-180-100-100-P-142-ADOBE-FONTSPECIFIC 228 | symb24.pil: -Adobe-Symbol-Medium-R-Normal--34-240-100-100-P-191-ADOBE-FONTSPECIFIC 229 | 230 | Copyright (c) 1987 Adobe Systems, Inc., Portions Copyright 1988 231 | Digital Equipment Corp. 232 | 233 | -------------------------------------------------------------------- 234 | Terminal 235 | 236 | term14.pil: -Bitstream-Terminal-Medium-R-Normal--18-140-100-100-C-110-ISO8859-1 237 | termB14.pil: -Bitstream-Terminal-Bold-R-Normal--18-140-100-100-C-110-ISO8859-1 238 | 239 | tech14.pil: -Bitstream-Terminal-Medium-R-Normal--18-140-100-100-C-110-DEC-DECtech 240 | techB14.pil: -Bitstream-Terminal-Bold-R-Normal--18-140-100-100-C-110-DEC-DECtech 241 | 242 | Copyright (c) 1988 Bitstream, Inc., Portions copyright 1988 Digital 243 | Equipment Corp. 244 | 245 | -------------------------------------------------------------------- 246 | Times 247 | 248 | normal (R), italic (I), bold (B), bold italic (BI) 249 | 250 | timR08.pil: -Adobe-Times-Medium-R-Normal--11-80-100-100-P-54-ISO8859-1 251 | timR10.pil: -Adobe-Times-Medium-R-Normal--14-100-100-100-P-74-ISO8859-1 252 | timR12.pil: -Adobe-Times-Medium-R-Normal--17-120-100-100-P-84-ISO8859-1 253 | timR14.pil: -Adobe-Times-Medium-R-Normal--20-140-100-100-P-96-ISO8859-1 254 | timR18.pil: -Adobe-Times-Medium-R-Normal--25-180-100-100-P-125-ISO8859-1 255 | timR24.pil: -Adobe-Times-Medium-R-Normal--34-240-100-100-P-170-ISO8859-1 256 | timI08.pil: -Adobe-Times-Medium-I-Normal--11-80-100-100-P-52-ISO8859-1 257 | timI10.pil: -Adobe-Times-Medium-I-Normal--14-100-100-100-P-73-ISO8859-1 258 | timI12.pil: -Adobe-Times-Medium-I-Normal--17-120-100-100-P-84-ISO8859-1 259 | timI14.pil: -Adobe-Times-Medium-I-Normal--20-140-100-100-P-94-ISO8859-1 260 | timI18.pil: -Adobe-Times-Medium-I-Normal--25-180-100-100-P-125-ISO8859-1 261 | timI24.pil: -Adobe-Times-Medium-I-Normal--34-240-100-100-P-168-ISO8859-1 262 | timB08.pil: -Adobe-Times-Bold-R-Normal--11-80-100-100-P-57-ISO8859-1 263 | timB10.pil: -Adobe-Times-Bold-R-Normal--14-100-100-100-P-76-ISO8859-1 264 | timB12.pil: -Adobe-Times-Bold-R-Normal--17-120-100-100-P-88-ISO8859-1 265 | timB14.pil: -Adobe-Times-Bold-R-Normal--20-140-100-100-P-100-ISO8859-1 266 | timB18.pil: -Adobe-Times-Bold-R-Normal--25-180-100-100-P-132-ISO8859-1 267 | timB24.pil: -Adobe-Times-Bold-R-Normal--34-240-100-100-P-177-ISO8859-1 268 | timBI08.pil: -Adobe-Times-Bold-I-Normal--11-80-100-100-P-57-ISO8859-1 269 | timBI10.pil: -Adobe-Times-Bold-I-Normal--14-100-100-100-P-77-ISO8859-1 270 | timBI12.pil: -Adobe-Times-Bold-I-Normal--17-120-100-100-P-86-ISO8859-1 271 | timBI14.pil: -Adobe-Times-Bold-I-Normal--20-140-100-100-P-98-ISO8859-1 272 | timBI18.pil: -Adobe-Times-Bold-I-Normal--25-180-100-100-P-128-ISO8859-1 273 | timBI24.pil: -Adobe-Times-Bold-I-Normal--34-240-100-100-P-170-ISO8859-1 274 | 275 | Copyright (c) 1987 Adobe Systems, Inc., Portions Copyright 1988 276 | Digital Equipment Corp. 277 | 278 | --------------------------------------------------------------------------------