# eposnow 80mm Thermal Printer This is a general purpose thermal printer. A web interface is available from the hackerspace network at: [http://paperjam](http://paperjam). You can communicate with it via USB, using [ESC/POS](https://download4.epson.biz/sec_pubs/pos/reference_en/escpos/index.html). There's a good guide for setting it up [here](https://mike42.me/blog/2015-03-getting-a-usb-receipt-printer-working-on-linux) and a handy cheatsheet [here](https://www.datona.cz/sites/default/files/support/TM-T20II_escape_sekvence.pdf). {{ :projects:thermy.jpeg?direct&400|}} ## Printing images You can use [png2pos](https://github.com/mikersee/png2pos) (currently installed on the lab computer) to print images. The output can be directly piped to `/dev/usb/lp0`. ## TODO: UTF-8 support By default ESC/POS only supports the limited number of characters from [PC437](https://en.wikipedia.org/wiki/Code_page_437). Someone who would like to print non-PC437 (latin++) characters will need to switch the character set each time it is needed using [ESC t](https://download4.epson.biz/sec_pubs/pos/reference_en/escpos/esc_lt.html) (aka. `\x1B\x74`). Python libraries such as [python-escpos](https://github.com/python-escpos/python-escpos) or [py-xml-escpos](https://github.com/fvdsn/py-xml-escpos) could help do the conversion easily – if at all possible as some unicode characters might be outside the capabilities of ESC/POS, in which case, creating an image instead could be a solution. One added difficulty is that the exact ESC/POS capabilities of our printer is unknown (kit-ty-kate: to my knowledge, no official datasheet for this machine exists), so the exact number of character set that it support will have to be detected manually by trial an error.