Skip to content

Latest commit

 

History

History
57 lines (36 loc) · 2.51 KB

README.md

File metadata and controls

57 lines (36 loc) · 2.51 KB

App Store Review Printer

Lua-only firmware for an autonomous App Store review printer based on NodeMCU and a common thermal printer part.

It sits on your desk checking App Store RSS feed for your iOS app and prints new reviews when they arrive.

Configuration

The Makefile is tested with OS X only but should work on Linux. It assumes you have the amazing nodemcu-uploader installed and that your NodeMCU device has its name matching /dev/tty.wchusbserial* pattern.

Rename config-example.lua to config.lua and adjust to suit your needs.

So far this has been tested with NodeMCU 1.5.4.1 (integer firmware). I've seen the newer one having problems with skipping of network data.

Only regular modules are required in your firmware (HTTP and JSON parsing are done in Lua):

  • bit
  • file
  • gpio
  • net
  • node
  • struct
  • tmr
  • wifi

Printer

Any stock thermal printer should work here, like the ones sold by Adafruit. And as always they have great docs here: https://cdn-learn.adafruit.com/downloads/pdf/mini-thermal-receipt-printer.pdf

Sparkfun also has related docs, though don't rely on all the commands available in every printer: https://www.sparkfun.com/datasheets/Components/General/Driver%20board.pdf

Nice intro on the typical ESC codes supported: https://mike42.me/blog/what-is-escpos-and-how-do-i-use-it

Here is a link for a cheap 58mm one (turned out to be pretty narrow): https://aliexpress.com/item/JP-QR203-58mm-Mini-Embedded-Receipt-Thermal-Printer-Compatible-with-EML203/32653084570.html

Name on the front: GOOJPRT

TTL connector wires (from left to right when looking at the PCB so the reset button in the top right corner):

    BLACK  - GND
    RED    - VCC
    YELLOW - RX (i.e. the data coming from the controller to the printer here).
    GREEN  - not sure, perhaps TX but could not confirm.
    BLUE   - sort of a BUSY signal: LOW when the printer is ready to accept incoming data; HIGH otherwise.

See ./doc/escpos.pdf on some of the escape commands supported.

Enclosure

The enclosure consists of two pieces that can be printed without support. (Put the front part, "Box Front.stl" and the button, "Button.stl", on their faces). Use 2.5 by 9 mm screws directly into plastic to attach the boards and the back cover. See ./enclosure for STL and Fusion 360 sources. I used red PETG for the box (semi-transparent effect) and white PLA for the single button (for contrast) with 0.2 mm layers via 0.4 mm nozzle.