Skip to content

Commit

Permalink
Update broken github links
Browse files Browse the repository at this point in the history
  • Loading branch information
lazyatom committed Feb 25, 2021
1 parent 34f796e commit 13695b5
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions _posts/2012-04-12-hello-printer.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -101,19 +101,19 @@ I had already explored text-based printing with [Timmy][], but to produce someth

![Some simple graphics](/images/printer/4-simple-graphics.jpg)

The printer expected the dots for printing to be encoded directly as an array of bits in memory, and so I wrote some tools to generate the corresponding C arrays [from ASCII files](https://github.com/lazyatom/Thermal-Printer-Library/commit/d5fdbf276cd1d67973231364a9d7704120bd36c9), and then [from images directly](https://github.com/lazyatom/Thermal-Printer-Library/commit/346206de3d1c86a833a59462146090976f4b2a05).
The printer expected the dots for printing to be encoded directly as an array of bits in memory, and so I wrote some tools to generate the corresponding C arrays [from ASCII files](https://github.com/adafruit/Adafruit-Thermal-Printer-Library/pull/3/commits/d5fdbf276cd1d67973231364a9d7704120bd36c9), and then [from images directly](https://github.com/adafruit/Adafruit-Thermal-Printer-Library/pull/3/commits/346206de3d1c86a833a59462146090976f4b2a05).

![Some slightly more advanced graphics](/images/printer/5-slightly-more-advanced-graphics.JPG)

The specific printer would only print up to 255 rows of dots, and so I needed to figure out how to [split larger graphics up into chunks which could be sent to the printer sequentially](https://github.com/lazyatom/Thermal-Printer-Library/commit/6010b56a01015d1674b8b12969a08f0b4706ee0c). Eventually, I was able to print graphics that were longer than 255 rows:
The specific printer would only print up to 255 rows of dots, and so I needed to figure out how to [split larger graphics up into chunks which could be sent to the printer sequentially](https://github.com/adafruit/Adafruit-Thermal-Printer-Library/pull/3/commits/6010b56a01015d1674b8b12969a08f0b4706ee0c). Eventually, I was able to print graphics that were longer than 255 rows:

![Graphics that were longer than 255 rows](/images/printer/6-longer-graphics.jpg)

### Out of memory

However, the Arduino only has a limited amount of flash memory (normally around 32k), which meant that the largest full-width image that could be compiled into the program was around 450 rows high. (That's why the above image looks like it's missing one half - I cropped it to fit in the Arduino's memory.)

That was a limitation that I wasn't happy with. Obviously some external storage for the data would be required, and thankfully the [Ardunio Ethernet shield](http://arduino.cc/en/Main/ArduinoEthernetShield) comes with a MicroSD reader built in. I added the ability to convert images into files containing the right bits for the printer, and wrote an Arduino library to print bitmaps using those files (and subsequently [from any Stream object](https://github.com/lazyatom/Thermal-Printer-Library/commit/82dacbdd6c3ea6a32fe123cb1ff17b6810a4c330)).
That was a limitation that I wasn't happy with. Obviously some external storage for the data would be required, and thankfully the [Ardunio Ethernet shield](http://arduino.cc/en/Main/ArduinoEthernetShield) comes with a MicroSD reader built in. I added the ability to convert images into files containing the right bits for the printer, and wrote an Arduino library to print bitmaps using those files (and subsequently [from any Stream object](https://github.com/adafruit/Adafruit-Thermal-Printer-Library/pull/3/commits/82dacbdd6c3ea6a32fe123cb1ff17b6810a4c330)).

![Full-width graphics of more than 255 pixel rows](/images/printer/7-full-graphics.JPG)

Expand Down Expand Up @@ -289,7 +289,7 @@ The thermal printer that I've used is the exact same one that Adafruit provide a

If you were willing to sacrifice the LEDs and print button, there's no reason why you couldn't use that kit with the printer backend software presented here.

News International's research lab have produced some alternative software for the Adafruit kit called the [IoT assistant](http://newsinternational.github.com/iot-assistant), which is slightly more advanced in that it can print information from your google calendar and gmail accounts too. I believe they have plans to expand their software to support more than one printer per instance, but their architecture is more centralised (the content is generated by a single server) than that presented here.
News International's research lab have produced some alternative software (unfortunately now removed) for the Adafruit kit called the [IoT assistant](https://web.archive.org/web/20160617191333/http://newsinternational.github.io/iot-assistant/) ([extant fork here](https://github.com/jeanm4t/iot-assistant)), which is slightly more advanced in that it can print information from your google calendar and gmail accounts too. I believe they have plans to expand their software to support more than one printer per instance, but their architecture is more centralised (the content is generated by a single server) than that presented here.

It's also worth mentioning some "historical" printers of note. The printer that ran [Timmy Printface][Timmy] a year ago was used by [Tom Taylor](http://tomtaylor.co.uk) in 2009 to [print out daily memos](http://tomtaylor.co.uk/projects/microprinter). His software is perhaps closer in architecture to what I've built (a printer polling from a queue). [Chris Wood](http://flipbit.co.uk/) extended the software to [print tube information](http://flipbit.co.uk/microprinting.html).

Expand Down

0 comments on commit 13695b5

Please sign in to comment.