The Rube Goldberg Approach to Home Cooling

June 25, 2008 20:47 by Jim

Air conditioning remote in project casingI live in an old fashioned NYC railroad apartment – long, skinny, and impossible to cool down with air conditioning in any reasonable amount of time. After returning from work, lugging my bicycle up the stairs, and flipping on the AC, I get the very special treat of sitting around for 45 minutes in molten-hot swamp air while waiting for my living room to cool down.

The bottom line: I can now turn my air conditioning off and on from my phone before I head home.

I took the DIY approach - X10 or a similar solution would have been too expensive and impractical, plus the AC is controlled by remote or a power button, so simply plugging the unit in isn’t enough to turn it on. My solution was to trigger the remote control in order to turn the unit off and on.

The project cost under $10 along with a spare USB keyboard that I already had. Why a keyboard, you ask? Well, the tricky part was figuring out how to trigger a relay from the computer. I found this instructable which suggests using the LEDs on the keyboard (I ended up using only scroll lock, the most useless of all locks) to trigger the relay. When the relay is triggered it closes the circuit where the power button used to be. I used a 5VDC/1A SPST Reed Relay from Radio Shack (suggested by the fine folks over at the Make Forums) which conveniently triggers at 5V, which is the same voltage as the output on the LED. The relay was then soldered directly to the innards of the remote (we had to sand away the protective coating and very delicately apply the solder). Once this was put together it was pretty convenient to test as all we had to do was press the scroll lock button on the computer and we’d know if things were working.

USB kayboard being used to trigger relayFrankie and I accomplished this on a late Friday evening (we really intended to go out in the Lower East Side, but sometimes soldering just gets out of control). Once everything was working, the project was put in a casing. I drilled some holes for cables and LEDs. The whole thing looks pretty smart, although inside all of the components are kind of jammed in there.

The application to control the AC runs on my laptop. Running in the system tray I have an application which allows me to control the AC when I’m home (of course I could use the phone as well). This application also exposes a .NET Remoting service over TCP on port 6567 (yep, that’s decimal ASCII code for ‘AC’) – it seems like in order to use the win32 call that emulates a keyboard press (in this case toggling scroll lock for 200ms) the process needs to run in the desktop session, although there might be a more low level way to do this. Unfortunately the Compact Framework doesn’t support Remoting, so I needed to write an additional web service to expose this functionality to the CF client on the PocketPC. This web service exposes the same methods and proxies them over, via Remoting, to the WinForms app that’s hosting the Remoting service. If you'd like a copy of the source code just send me an email at jim<at>s57.com

So, this is the basic flow of how things go down (perhaps also illustrating how appropriate the title of this post is):

The system tray application is loaded on the host machine (my laptop, which has the USB remote contraption attached). The application instantiates an ACService remotable class and marshals the object on port 6567. This was the ony approach that allowed this object to interact with the desktop.

CF app is loaded on the Windows Mobile 6 PocketPC .

Status is retrieved from the server (on or off). 

When the button is pressed (‘Turn AC On’ or ‘Turn AC Off’, depending) the web service is invoked.

The web service invokes the Remoting service on the local machine.

The Remoting service makes a win32 call to activate the scroll lock key and then sleeps for 200ms before deactivating it.

Where once stood a scroll lock LED now stands two wires leading to the relay. When the scroll lock is pressed the relay closes and allows current to pass between the two nodes for the remote control’s former power button.

The AC turns on / off!

This diagram shows how the circuit works.  


Now I just need to add some security to ensure that some intrepid port sniffing hacker doesn’t end up turning on my AC in January.


Currently rated 5.0 by 6 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Lisboa, obrigado!

May 19, 2008 17:16 by Jim

Ah, air travel. To book a transcontinental trip is to impose torture on oneself, yet we do it nevertheless for the promise of beautiful people and lands hitherto unseen. As I write this, I sit in the coach section of a severely aging Boeing 757-200 bound for the North American continent, and, ultimately, the site of Newark Liberty Airport. A placard by the window reads ‘recline on this seat is restricted due to federal safety regulations’ – an omen of discomfort to come as I unwittingly attempt to compress my 6’5” frame into a space meant for a much smaller stature. On my left, a sea of flat clouds conceals the vast Atlantic and our many fish friends beneath (allegedly the famed ‘vampire squid from hell’ lurks somewhere within that placid aquarium, plotting his next fiendish move). On my right sits Steve Geiger with a movie playing on his laptop, Bose earphones delivering crisp audio straight to his eardrums without chance of aural contamination, while he contemplates and, subsequently, makes the appropriate adjustments to a wayward cuticle bridging the cusp of the fingernail on his left ring finger. This, friends, this is the good life.

But wait, how did we get here? What adventures preceded this epic return to New Jersey via Continental’s ‘economy’ class? The answer, dear reader, is that Steve and I crossed the Atlantic to visit none other than the home of both that delectable sweet-bread and the viciously deadly ‘man o war’: Portugal.

It all started by the water cooler (of all places) at our Fashion Avenue office. Steve and Ben were discussing an upcoming webcast in the aforementioned sweet-bread capitol when I smartly injected myself into the conversation, inquiring about the details of the event in an attempt to raise concerns over the technical acumen required to execute the event successfully. The Stream57 MVW (most valuable webcaster) would need to be sent. None other than yours truly would fit the bill.

Steve, who had been eyeballing the trip to the country of his ancestral roots, would have none of it, as he had already envisioned his glorious descent upon the warm coastal city of Lisbon (although I presume he also imagined that his descent would also include a chair with a ‘recline’ feature, but, alas). No, I surely would not take his place in Lisbon, but an alternative was proposed: we would both go: chums, pals, merry makers, co-vacationers, co-workers, and, most importantly, dear friends. The genius of the solution was striking. I was already mentally packing my bags.

Now is an important time to note that if you are a Stream57 client with an upcoming live webcast in an exotic and / or enticing location, Steve and I are accepting reservations and will gladly boot the normal webcast crew off of the job. The best approach is to call Ben Chodor directly and demand, in no uncertain terms, our presence (best not to make mention of this blog post). If you are not highly demanding we cannot guarantee much – for added effect it is best to call him on his mobile phone, late at night, and to make a little whimpering noise in between sentences, if possible. Before calling however, please note that both Steve and I are quite cosmopolitan and our definitions of ‘exotic’ and ‘enticing’ are probably more demanding than most, so feel free to give a ring to determine if your location meets the Phelan / Geiger litmus test for travel appeal and bragging rights. Generally if the land in question is home to any of the following it is permissible: marsupials (especially duck billed platypuses), camels, meerkats (wild), sloths, panda bears, Guinness, man o wars.

We arrived in Lisbon and headed for our destination of Caiscais, a stunning fishing town situated about 30km west of Lisbon. Here began our quarrels of currency: we had minimal American currency and a slew of debit and credit cards, yet for the next 24 hours we couldn’t get a single one to work. Our first day and a half in Lisbon was a complete comedy of errors – as Steve and I bumbled from bank to bank, currency exchange to currency exchange, and devised master plans for the extraction of funds from the banking institutions of Portugal, our time to investigate Lisbon slipped away. All said and done, the vast majority of one day was needlessly squandered on a trivial but necessary act – getting money to buy beer.

With the limited funds we had squirreled away in our luggage we managed to get out and have some rollicking times on our first night in Lisbon. Perhaps the pinnacle moment in that evening’s activities was a stop we made at a small bar where we met Rebecca, a young Norwegian woman who aspired to musical fame. Clearly inebriated, Becs managed to say every sentence almost completely backward; there wasn’t a chance that she was picking up on our cues to leave us and our frothy beverages in peace. At one point she quickly advanced towards Steve, who, thankfully, is agile and a lean thinker and quickly blocked the approach with the hand on which he wears his wedding ring. There was one moment, however, that could not be avoided: Rebecca leaned in to whisper an (incoherent) thought in Steve’s ear, but instead of pulling away, she gave him an extended, slobbery neck licking. Ewww.

The next day, after we finally caused a machine to dispense sweet, sweet Euros, we met our comrades and counterparts from In Situ Productions to test the site of the event and then enjoy some of the aforementioned beers. The sun had barely begun to spew photons at our delightful patio deck when we arose the next day for the early event. Some decadent room service and a coffee slurp or two later and we were off to broadcast Portugal to the world.

As for the webcast, Steve and the In Situ boys did most of the work while I wandered around with my hands clasped behind my back and tried to look austere. Success was the matter of celebration later in the evening – despite some challenges prior to the webcast (where’d the Internet connection go?) we made it happen.

Naturally, Steve and I booked a couple extra days in order to fulfill our ulterior mission – to track down the ubiquitous but often elusive ‘euromullet’ in the wild and dispel the mysteries surrounding it. We paraded around Lisbon with cameras in tow for two full days before we could gain enough proximity to an actual subject to photograph that wicked hairstyle in its natural environ. We were in Bairro Alto, an elevated part of Lisbon marked with windy stone roads and an abundance of drinking establishments, when we noticed a silver haired gentleman sporting the E.M. slip into a local watering hole.

I snapped a few photos of the mulleteer from outside the bar, but with the low light I wasn’t sure how well they’d come out. Soon, however, we saw mulletman hit the streets to enjoy an outdoor brew with his compatriots, and I knew what needed to be done. I quickly proposed pseudonyms and a back story – we were reporters for a New York newspaper, writing an article on nightlife and culture in Lisbon.

I boldly approached the group and explained our situation. Might we take their picture (I secretly composed in my mind a mullet solo shot while I awaited their response). It went down something like this:

Me: Hi, I’m a reporter from the US doing an article on Portuguese culture. My I snap  a photo of you handsome gents?

Them: (some grunting, nothing else for a minute).

Me: Guys?

Their spokesman (not mullet guy): No.

Me: Mind if I ask why?

Spokesman: Because we hate Americans. [Editorial note: seriously, that’s what he said]

Me: [slightly startled] I see. So you hate all Americans? Why, is it our president?

Spokesman: Yes.

Me: Ok, well we don’t even know each other. Do you hate me?

Spokesman: Are you American?

Me: Yes.

Spokesman: I hate you.

Mullet guy: [nods in agreement]

Me: Oh. [At this point I walked away, nearly unable to contain my laughter]

Moral of the story: People with euromullets hate freedom.

The rest of our trip contained some more sightseeing and beer imbibing. Although more detail is deserved, this has become a lengthy tome, perhaps too much so for a brog post, so I shall retire to viewing a censored version of Spiderman 3 on a four inch, 256 color LCD whilst masticating stale cocktail peanuts. I’ve never wanted so badly to see New Jersey.


Currently rated 5.0 by 5 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:
Categories:
Actions: E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed

LOLBENZ

May 13, 2008 15:37 by Jim

We received a contact request from our website today kindly suggesting to ‘tell Ben to swallow the gum he's chewing in his video clip’. Hmm, we’re not sure what video clip that is… wait, could it be this one?


If you don’t know him, Ben’s our president and an all around nice guy (clearly he’s got a sense of humor or we wouldn’t dare post an image so disparaging).

Note: this is not the first time that we’ve used Ben’s iconic figure in conjunction with well known Internet memes / war propaganda to elicit a warm and fuzzy feeling in those who apprehend it. This image, conspicuously posted in the developer ‘pen,’ reminds coders to do their civic duty and document their code.


Currently rated 5.0 by 4 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

ProgrammerTooLazyException

February 5, 2008 22:28 by Jim

We generally use an UnsupportedOperationException to denote a scenario which is...uh...unsupported. This might be in a 'fake' ActionScript abstract class (ActionScript doesn't have a special support for abstract classes) or in a specific case where it doesn't make sense to support the operation. Sometimes, however, you want to support a particular case - just not right now. That's where ProgrammerTooLazyException comes in - it clearly marks in code why you didn't support the operation and gives you the added benefit of making sure these cases get implemented before code goes into production. My one concern would be that perhaps we're encouraging folks to refer to themselves as lazy, but hey, lazy instantiation is lazy, and we like that.


Currently rated 5.0 by 5 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

The Poultry Imperative

February 5, 2008 21:48 by Jim
It's common knowledge that when a coworker demands that his or her birthday remain unobserved that action must be immediately taken to the opposite effect. Today marked Andy Parker's (Stream57's Marketing Director) birthday and we needed to come up with something groundbreaking to embarrass him. We scratched our heads, stroked our goatees, and ultimately decided that the only acceptable course of action was to bring in outside talent. We procured a very talented singing and dancing chicken from Big Apple Singing Telegrams and staged a companywide meeting. It was a hoot – in the end we had a whole line of folks doing the so-called ‘chicken dance’ and we followed the whole fiasco with an impromptu all-or-nothing Nerf gun war.  

Currently rated 5.0 by 5 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5