loading
Send a Tweet to @dangerousproto and watch it print live on the USTREAM feed. This project was inspired by the Make it Tweet Challenge.

Thermal Tweeter is hacked together from a SparkFun thermal printer and the web platform internet development board. No computers are used to query twitter or run the printer, this is a 100% stand-alone Twitter appliance.

Keep reading to find out how it works. Read the original version of this article at Dangerous Prototypes.

Overview 

You tweet, the web platform contacts Twitter and grabs the newest tweets, the tweets are formatted and output to the printer.

Is this wasteful? You bet. And the thermal chemicals on the paper may cause cancer - don't eat it! Thermal Tweeter is an homage to the waste generated by checkout receipts. Unlike a store checkout where you always get a receipt, you're in charge of the Twitter waste. Save the earth, don't Tweet. Or not.

Thermal Tweeter builds on our previous interactive internet projects like the @tweet_tree and internet graffiti wall.

Note: we noticed that Twitter sometimes excludes people from our feed. You can check here [JSON text] to see if your tweet was included. If not, just send it again, we've got tons of paper!

Step 1: Hardware

Setup is really simple. The thermal printer connects to the web platform with one data wire. A second wire connects the common ground between them. 

Printer Web platform
RX IO7
GND GND

A serial port assigned to pin IO7 on the web platform outputs serial data to the printer RX pin at 19200bps. See the web platform intro article for more about assigning hardware peripherals with peripheral pin select. See SparkFun's Arduino code and the printer datasheet for the simple control commands.

The printer requires a beefy 5volt power supply for the heating element (1.5A+). We used a 1.5A 5volt wall wort power adapter.

The web platform can be powered from USB or a wall wort. Our best wall wort is powering the printer, and we want to use the web platform USB connection for debugging info, so we used the USB supply. USB connection is only for power and debugging info, it doesn't contribute anything to the Twitter printer.

Step 2: Firmware

Firmware is built on the @tweet_tree source. It searches twitter for the latest tweets to @dangerousproto and prints them.
{"from_user_id_str":"207791348",
"profile_image_url":"http://a0.twimg.com/profile_images/1239094780/Photo_on_2011-02-08_at_19.45__2_normal.jpg",
"created_at":"Wed, 22 Jun 2011 16:19:17 +0000",
"from_user":"bertjwregeer",
"id_str":"83569757827248129",
"metadata":{"result_type":"recent"},
"to_user_id":37626644,
"text":"@dangerousproto Missed it =). Didn't know ustream doesn't work on the iPad.",
"id":83569757827248129, ...}
Tweets, user names, and IDs are extracted from a simple JSON search results feed, an example is shown above. JSON is a way to share data, like XML, but way more compact. The web platform stores tweet text in a giant array. After all new Tweets are processed, the text is sent to the printer.

The ID tag is especially important because it tells Twitter which tweets we already grabbed. The highest ID number is stored and appended to the next search URL. Twitter only sends tweets newer than the ID number so we only get fresh commentary.

The printer is controlled by 19200bps serial UART output from the web platform. Simple commands configure it. Using it is simple, send a line of ASCII text and print it with a line feed character (0x0a).

We used 32 characters per printed row. Row breaks are inserted into the tweet by the web platform without regard for the location of words, words will often be split on two lines. 

Server responses are dumped out the USB serial connection to help with debugging. The activity can be viewed on a PC with a serial terminal set to 115200bps. Even if you don't have a thermal printer, you can program the firmware into your web platform and watch the twitter queries.

Playing nice

Twitter doesn't like it when you hammer their server with requests. Thermal Tweeter waits at least 30 seconds between updates. This should be responsive, but stay within the 150 search/hour limit set by Twitter.

Don't kick Twitter when it's down. If Twitter doesn't reply or responds with an error, Thermal Tweeter retries twice and then waits a few minutes before trying again. It'll be easier for Twitter to get their act together if we don't flood them with search requests.

Compiling

The firmware uses Microchip's TCPIP stack, which is a separate (free but not open source) download. It is compiled with the free C30 compiler. Our source and HEX files are in SVN.

Step 3: Taking It Further

Participate

This project isn't fun without you. Please send us a tweet @dangerousproto and watch it print a few seconds later on the USTREAM live feed.

Taking it further

Originally we planned to add a keyboard for two way communications. Type a message and it is pushed to Twitter on enter, or every 140 characters.

Microchip's non-open source TCPIP stack is a pain to work with because we can't share all our code. We'd prefer to use the FreeRTOS port for the web platform instead.

Unfortunately we didn't have enough time to include these ideas in the final design.

Build one

You can build this project with SparkFun's thermal printer ($50), the web platform ($40), and a good 5volt power supply.
<p>. I featured this Instructable in one of my collections:<a href="https://www.instructables.com/id/8-Twittering-Thingamajigs/" style="">https://www.instructables.com/id/8-Twittering-Thingamajigs/</a></p>
Very good idea. You can also use it to print notes, shopping list, reminders ...
Now, to connect Twitter to a teletype machine...
im game if you are... my dads an oldschool teletype man so maybe he can getter done :D
Idea: Have a set of printers in a 'tweetdeck' format, with an LCD and a small keyboard for tweeting!
Hi,<br><br>As your web server isn't available anywhere, if i make one following the hack a day write up with i need anything else? i.e programmer etc<br><br>Good luck in the contest<br><br>Thanks
The web platform and the HaD board are totally different. You can build your own web platform though, or it will be back in stock at Seeed Studio in a few days.
Oh OK thanks, if i were to but one from Seeed Studio would i need anything else?<br><br>I'm in the UK, if you no of anywhere else that will have these in stock?<br><br>Thanks
Maybe Watterott in Germany, but I think they are out too.
Would it be possible to out put the @ replies to another device? such as a LCD?<br><br>Also have you a link to a guide on how to modify the code for my twitter account?<br><br>Thanks<br><br>James
Sure, the output could be made to go just about anywhere. Coding would be needed.<br><br>There's no guide, but it's as easy as changing the web address on one line of code. However, the TCPIP internet driver is a pain to deal with, so if you want I will make you a custom compile with your address.
Yes they are :-(
Yay, paper waster. All hail deforestation.
The trees have already been cut down to make the paper. It would be wasting to not use it. <br>
Good point. Touche sir.
Neat!
AHHH... the perfect ink (money) waster... though it is int resting...
It's a thermal printer, no ink here. It only wastes paper, but luckily that stuff grows on trees! :)
oh ok... i didnt read the instructable, just glanced over it. it is still cool and this is why you cant erase stuff on the internet. it can be burned into paper as a hard copy i see use for it in the 1980s goverment
I love this Instructable and will without a doubt be voting for this, the only problem is the web platform is out of stock :(<br><br>Any chance this will change anytime soon, i would love one of my own :)<br><br>J
Great, now Twitter is not only inane, it's also environmentally destructive. And for only a few hundred dollars in materials...<br><br>Get an aggregator on your phone. It's free, and doesn't waste paper.
Yeah, I'm all for inanity, but I don't need it in hard copy, and certainly not at the expense of our environment.
Just what I was thinking...
Just seen it change now as four people tweeted :P That's eerie, and totally amazing!<br>I'm right in saying, aren't I? (five people now :P) that this will print off the tweets on your feed as they happen? So people you follow (ooh there's another!), it will print their tweets?
The way it's setup now it could be pointed at a keyword search, mentions, or your follows URL. If it was a long-term installation it would need a bit more finessing.
Sounds excellent :D And thanks for the timely reply ^_^<br>Could it be used to print out a facebook news feed of friends' status updates? Or would that need a host computer running a facebook API?
Awesome, ambitious, excellent project. Beautifully executed! The ustream channel was a fantastic addition!

About This Instructable

19,987views

83favorites

License:

More by ian:Thermal Tweeter networked Twitter printer @tweet_tree: Twitter controlled Christmas tree Hackable Christmas card & ornament 
Add instructable to: