Progress continues, now with a case!
First iteration is working! More info at Straight Apex: http://straightapex.com/first-alpha-unit/
Paula and I bought our first flat panel HDTV back in 2005. The 32″ Samsung was initially installed in our San Jose kitchen before making the trip to Dublin, Ireland and the finally to out home in Bellevue. Back in early 2011 we started noticing some weird artifacts on the screen, it looked like the TV was switching all the images to 8-bit color.
It’s not the biggest TV at 32″ and it’s only 720p, but it fits perfectly in our bookshelf so I decided I’d try to fix it. I’m no electrical engineer, but I have a screw driver and an inquisitive spirit. What else would I need… other than a night in a Holiday Inn Express?
I started trying to debug it and pretty quickly came to the conclusion it was a heat issue. My first guess was dust had built up on a heat sink somewhere inside the set. I couldn’t see anything obvious through the vents in the top or bottom, but I tried a few blasts of compressed air to see if it changed anything. It didn’t. If I couldn’t clean it from the outside I’d clean it from the inside, so I opened up the TV. I learned something that is probably obvious to most: opening up a television is a lot like popping the hood on a broken car… it’s satisfying but also pointless act for 99% of the population (and I’m certainly not in the 1%).
What did I find when I opened up the TV? What I didn’t find was dirt. Sure, it was a little dusty, but nothing that looked like it would be choking the life out of our TV. I was, however still convinced the issue was cooling I decided to try increasing the airflow. My plan was simple, slap some small PC case fans on the top of the TV and block off the rest of the top vents to make sure air was pulled from the bottom and not just flowing in from around the fans.
Armed with a sheet of black polypropylene from TAP Plastics and a set of four 50mm case fans I went to work on my TV. I carved up the plastic, screwed the fans in place then duct taped the whole thing to the top of the TV. My improvised fan and baffle worked (almost) perfectly, the TV can now run as long as we like without the picture going all wonky on us.
I say it was “almost” perfect because it was a prototype… the plastic was too thin and the duct tape wasn’t a great hold and had to be redone every couple months. It was, however, good enough that it was on the back of the TV keeping it going for the past three years.
The solution was great in concept but lacking in execution. It was high time to turn the prototype into a finished product so I headed back to TAP plastics and picked up a piece of scrap acrylic for the bargain price of $0. Because I already had a great template in the form of the prototype it was quick to transfer to the new plastic stock.
The finished product is solidly built and screwed directly to the TV (no more slipping!). It actually has way more attention to detail than a hidden hack has any right to be. I suppose I’ll just have to spend more time looking at the back of our TV.
My tweeting washer and dryer have been running great for a bit now and I’ve done some code cleanup to make it less embarrassing to share. The code attached to the post is designed to use an Arduino Ethernet shield, not the WiFly module from the original example. If you already changed your tweeting dryer to use an Ethernet shield you can probably just download this code and upload it with little-to-no modification.
Download the Arduino code, circuit diagram and PHP files from my Git repo: WasherDryerMessenger
I’ve added a number of things to my code which weren’t in the original. I have, however, put them behind configs so I believe you should be able to use the code without hardware changes.
Here are two relevant configs at the top of the code:
- #define WASHER 0: In the sample code I have tweeting for the washing machine turned off. If you add another current sensor to your hardware you can turn this on to get tweets from your washer too.
- #define WEBMSG 0: This setting enables pulling the pithy tweets from a database on the web. Before enabling this there is some setup required, see: Getting a random string from MySQL for Arduino
If you want to have a tweeting washer as well as dryer, the hardware change you’ll need to make is to duplicate the current sensing circuit already in place for the dryer and add a third LED. In the diagram below left I have recreated the original circuit from Thomas’s Dryer Messenger in breadboard format (click for full size). On the right I show the added washer circuit (note: Ethernet shield not shown for simplicity).
When you finish the modified circuit you can test it by plugging the dryer into the new transformer jack and updating the dryer pin setting in the code. Only after you’ve tested the hardware should you plug in both appliances and turn on the washer tweeting using the WASHER define (see the configuration notes earlier in this post). If you want the same account to tweet both washer and dryer status you can duplicate your dryer OAuth token for the washer on line 103. I elected to have separate handles for my washer and dryer and obtained a second OAuth token from Arduino-tweet.appspot.com.
At this point you should have a tweeting washer and dryer but you’ll notice the tweets are the same every time and rather boring. To add variety back to your tweets you should follow my instructions for enabling the WEBMSG for getting random tweets from a database on the web: Getting a random string from MySQL for Arduino.
Have you added a washer to your setup? Share your washer’s twitter handle in the comments below.
Hallelujah! Today I finally finished adding washer monitoring functionality to the tweeting dryer setup I built earlier (see: Getting started with Arduino). Say hello to Gus!
My implementation was built up from the excellent work by Thomas Taylor for his article in Make, The Dryer Messenger. It provided a great starting point for this project but I wanted a bit more… I wanted to have my washer tweet and I wanted the washer/dryer quotes to be pulled from the web. Should be simple enough, right? I was thinking that after I added an additional connection to the hardware configuration that it should be as easy as duplicating the dryer code and renaming some functions. However, nothing is never that easy. My optimistic guess was that I’d add 100 lines of code and in the end it was more like 300. It was a fantastic learning experience.
A quick overview of my upgrades:
- Added code to automatically pick a baseline for the current draw of each device.
The original example required you to play with the values a bit to define the “off” value for the dryer. I added a loop to take the state of both washer and dryer at startup and set the baseline values automatically.
- Made it so both devices would pull a random string from a MySQL database.
By moving the strings of the Arduino and onto the interwebs I made it so I can go to the web any time I feel like adding a new pithy quote. Before, if you wanted to add a new string you needed to change the code in a couple places, recompile and re-upload to the hardware.
- Various changes to make the code ready to monitor two devices.
There were some minor changes I needed to make to the main loop (move the status LEDs into washer or dryer specific functions) and fix the “takeCurrentMeasurement” function (it had the dryer pin hardcoded as A0).
I’ll share out my code, an updated circuit design as well as a quick write up on how I’m pulling random strings from the web. Right now, however, I need to go do a load of laundry.