Controlling My A/C With an Arduino

I have central air-conditioning in my apartment, and it’s controlled by a remote, employing IR signals to send commands to the A/C control unit.

As any decent geek would, I’d like to be able to control my A/C using other means (e.g., a smartphone).

In a previous post, I went into detail about reverse engineering the remote. Now it’s time to proceed to actually using these powers to replace the original A/C remote with my own Arduino-controlled thingie!

The gist: using an Arduino Uno board with a IR-LED circuit (see below), along with Ken Shirriff’s Arduino IRremote library (slightly modified), I was able to transmit the A/C commands that were analyzed in the previous post in lieu of the original remote.

Keep reading for a full drill down, or jump straight into my home-control-arduino GitHub project for the actual code and documentation.

Continue Reading…

Using an Arduino to Reverse Engineer My A/C Remote

I have central air-conditioning in my apartment, and it’s controlled by a remote, employing IR signals to send commands to the A/C control unit.

As any decent geek would, I’d like to be able to control my A/C using other means (e.g., a smartphone).

Towards that goal, I figured I should first reverse engineer the IR commands the remote sends to the A/C, so I could later send these commands using other methods.

The gist: using an Arduino Uno board with a Phototransistor circuit (see below), I was able to obtain the IR waveform using Ken Shirriff’s Arduino IRremote library (slightly modified), and even graph these waveforms with Python’s matplotlib, as shown below.

Keep reading for a full drill down, or jump straight into my home-control-arduino GitHub project for the actual code and documentation.

Continue Reading…

Launching the Command Prompt from Anywhere with AutoHotKey

When working on my Windows laptop, I often find myself needing to launch a new command prompt. The need usually arises in the active folder in Windows Explorer, or in Total Commander (my favorite file manager on Windows).

This happens pretty often, so I decided to create a keyboard shortcut to automate the process. To do this, I used AutoHotKey – the awesome Windows automation tool.

Properties and features of the AHK script I came up with:

  • Invoked with a keyboard shortcut Ctrl+Alt+T (so it’s consistent with launching the terminal in Linux).
  • If in Windows Explorer – start the command prompt in the current directory.
  • If in Total Commander – start the command prompt in the current directory of the active pane.
  • Otherwise, use a default directory (e.g., the home directory).

Continue Reading…

My Favorite Chrome Custom Searches

Custom search engines are an awesome feature in modern web browsers at large. This is especially true in Google Chrome (which is incidentally my favorite desktop browser for daily use).

In a nutshell, custom search engines power-charge the address bar (or omnibar), and allow the user to assign keywords for special operations. Custom operations include searching in a specific site (e.g. Wikipedia, or this blog 🙂 ), run some JavaScript, or invoke commands in various web-apps using crafted URL’s (e.g. creating a new calendar event).

See Google’s support for more details.

In this post I describe my favorite custom search engines, as I configured them in Chrome on my computers, including site-specific searches, time-constrained searches, etc.

It should be noted that other browsers have a similar feature with similar syntax, so the same definitions might apply as well. Note that I did not test them on browsers other than Chrome.

Continue Reading…

Enhancing Mordor unRAID With IBM ServerRAID M1015

When I set up unRAID as a VM on Mordor ESXi host, I reviewed the available solutions for configuring data drives for use in unRAID. I reached the conclusion that the optimal solution would be to use VMDirectPath I/O to passthrough the disks directly to unRAID, but I could not accomplish that successfully, and settled on using Raw Device Mapping. But now I got the IBM ServerRAID M1015 PCI-Express card I purchased on eBay (also available from Amazon), and I’m all set to install it and upgrade my setup!

The loot:

The package included one IBM RAID Card, already cross-flashed to LSI-9210-8i IT firmware, and two SFF-8087-to-4-SATA cables (refer to the unRAID forums for more on LSI firmware versions and unRAID).

Following is a step-by-step procedure of a successful install.

Below it I go over possible pitfalls that I actually encountered, as a useful reference of what to avoid.

Continue Reading…

Setting up unRAID as VM on Mordor

After installing VMware ESXi on Mordor, the next step in my Mordor 1.0 -> Mordor 2.0 project is to regain the basic Mordor 1.0 functionality based on a VM, AKA, set up an unRAID-powered-NAS.

In this post I document the details of my experience of setting up unRAID (version 5.0-beta12a) on my ESXi server (running version 5.1.0). I describe creating a VM on ESXi that boots from a physical USB flash drive (using Plop Boot Manager), my adventures with trying to passthrough the onboard SATA controller to the VM (spoiler: it failed), and other options for configuring the data drives for the VM (Raw Device Mapping, VMDirectPath I/O passthrough).

By far, the most useful resource that guided me in this process was the amazingly detailed documentation by the unRAID user Johnm in his ATLAS post in the Lime Tech forum. I have used guidance and tips from his post extensively, and will probably repeat some in this post.

Continue Reading…

Installing VMware ESXi on Mordor

The first step in my Mordor 1.0 –> Mordor 2.0 project is installing VMware ESXi on the server, which I describe in detail in this post.

As I mentioned in the project page, Mordor: My Home Server, after having a dedicated unRAID server up and running for the last year or so, I wanted to better utilize all this hardware by turning it into a mean-VM-machine.

The game plan:

  1. Upgrade Mordor CPU to something more VM-server-worthy.
  2. Install VMware ESXi Hypervisor 5.1.0 on a USB flash drive.

Sounds simple, but the devil lies in the details…

Of course, before diving into tweaking and messing around with Mordor, I made a backup of unRAID, removed the unRAID USB flash drive from Mordor, and disconnected all the NAS data HDs.

Continue Reading…

Mordor 1.0: My Dedicated unRAID Server

During October 2011 I built my first home server. It was purposed to be a dedicated NAS server, based on unRAID OS.

In this post I intend to try and recall considerations and decisions, and document the setup, to serve as reference for myself, and as background for the following posts dealing with the transition to Mordor 2.0. Since this is mostly a recall from memory, it is most likely inaccurate and incomplete, but it’s what I got…

Continue Reading…

Android Call Logs Backup

The call logs on Android devices are stored in a database on the device, holding your records of incoming and outgoing calls. At this time, Android has no built-in mechanism that synchronizes this database with some online cloud service (compared, for instance, to the contacts data, that can be synchronized to your Google Contacts account).

If you consider your call logs something of any value, you will probably want to make sure this data is covered by some backup scheme – and this is what I am going to deal with in this post.

I use the Call Logs Backup & Restore app, which is free on Google Play store.

This post is written using v3.02 of the app.

Continue Reading…

Android SMS Backup

On Android devices, SMS messages are stored in a database on the device, with no built-in way to sync them with some online cloud service (compared to the contacts for example, that may be synchronized to your Google Contacts account).

For this reason, it is worthwhile to put a little effort into setting up a backup scheme for SMS messages – which is the goal of this post.

I use the SMS Backup & Restore app, which is free on Google Play store, along with its free network add-on (which is required for the E-mail and Dropbox-upload features).

This post was written using v5.93 of the app.

Continue Reading…