TC Disrupt Hackathon part 2 - Miniprinter hack
Miniprinter is a little hardware hack to make legal contracts more portable and cute. I took a thermal printer (a tiny printing device normally incapsulated in cash registers to print receipts) and I “hacked” into it to make it print what I wanted.
To do this, I used an open source prototyping platform called Arduino. Arduino’s circuit board is connected to both the printer and by computer. Once the circuit is set up, Arduino does all the programming work. Relying on a couple of Adafruit’s Arduino libraries I was able to make a short sketch on Arduino and print this contract on a 2.25” roll of paper! Here’s a video of it (ignore the black screen and drama following the fall of the Miniprinter!)
This is only the first prototype: Miniprinter 2.0 will be portable, connected to the internet, and will play Game of Thrones theme in 8-bit while printing. It will become the ultimate accessory for the modern lawyer!
This is a cool yet simple hack: it was my first Arduino project and you just need a couple of wires to make it yourself. Just get a thermal printer and an Arduino starter kit, and plug in the code below!
// this sketch works with Arduino 1.0 only #include "SoftwareSerial.h" #include "Adafruit_Thermal.h" #include "qrcode.cpp" int printer_RX_Pin = 2; // this is the green wire int printer_TX_Pin = 3; // this is the yellow wire Adafruit_Thermal printer(printer_RX_Pin, printer_TX_Pin); void setup(){ Serial.begin(9600); printer.begin(); printer.doubleHeightOn(); printer.justify('C'); printer.println("Contract for hackers \nwho hate contracts"); printer.doubleHeightOff(); printer.println("This agreement is between Hacker01 and Hacker02. We agree as follows:\n1) Each of us, individually, is free to use any programming concept shared, discovered, or created during the TC Disrupt Hackathon 2012.\n2) Each of us hereby grants a full, non-exclusive, free license to the other to use any code or binaries from the above project. This means that each of us, individually, is free to use anything we create for the project above as part of a separate larger project with a significant amount of additional functionality.\n3) In the event that the project above is successful, we'll take reasonable efforts to come to a new agreement with the goal of creating a separate entity to manage and develop the project further");
printer.justify('L'); printer.println("Signatures:\n_______________\n_____________"); printer.inverseOn(); printer.println("This minicontract is legally binding, don't lose it! Execute it online for free by scanning the QR code below"); printer.inverseOff(); printer.printBitmap(135, 135, adaqr); printer.println("Docracy.com"); printer.feed(1); printer.sleep(); //Tell printer to sleep. MUST call wake before printing again, even if reset printer.wake(); //Wake printer. printer.setDefault(); //restore printer to defaults } void loop(){ }







