One of the things I have been working on lately is trying to get TapChat to work on Raspberry Pi so I can use my Raspberry Pi as a IRC bouncer for my Galaxy Nexus.

The idea is I can then leave the low power Raspberry Pi turned on somewhere keeping me connected to #volt on irc.coldfront.net and it uses push notifications to send new messages to my phone so its battery drain is less of an issue and I can keep connected all the time.

I have got this working on Ubuntu in VirtualBox easy enough. Only took a few minutes to setup and there were no real issues. The problem is that its not exactly a long term solution as I would have to leave a PC running 24/7 with VirtualBox.

Please note: I am a Windows Admin not a Linux Admin! I have no idea what I am doing, but it worked in the end and that’s what counts. Guide posted to help others like me.

TapChat Install Process on Raspberry Pi

Download and install a fresh 2012-07-15-wheezy-raspbian image. Configure as needed on the initial config page when you boot off it. If you need to do additional configuration later…

sudo raspi-config

The instructions for tapchat start by asking you to add a repository, but this fails without python-software-properties, so I have found that you need to do the following to fix that issue.

sudo apt-get update
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:chris-lea/node.js

However this last command is not needed as it will generate the below error. Image shown from the Raspberry Pi QEMU Emulation for Windows tool as I was using this to test things before running through the process on my actual Raspberry Pi. I have been informed that this PPA only supports Ubuntu distribution, hence the error below. As a result, installing nodejs with the apt-get won’t work as it finds an old version. 0.6.x and we need 0.8.x for TapChat.

node_error

Side note about QEMU. You need to set up OpenVPN, bridge the TAP adapter with your Local Area Connection and run QEMU but add the below parameters on to the end of the run.bat file (second one in the folder).

-net tap,ifname=networkname

Where networkname is the name of the TAP adapter. This should then let you connect to the virtual machine with SSH or WinSCP. With a normal Raspberry Pi, you can just SSH straight off without issue. Guide here.

As we can not get an updated node via the instructions on the TapChat page, we have to get the official source and compile it, but on a Raspberry Pi with its slow processor, this takes hours. Thankfully someone on the Raspberry Pi forums shared a compiled version a few posts down as the first post has a broken link. Download this and copy it onto the Raspberry Pi via WinSCP. I dumped it into /home/pi/node hence the directory change below.

cd node
sudo make install

After doing this, I have found that for some reason permissions are not setup correctly and you encounter issues. So you need to correct them first to avoid errors later.

sudo chmod 755 /usr/local/bin/node
sudo chmod 755 /usr/local/bin/npm

Next up we need to install the other items. The package of npm is included in node we just installed. Packages libsqlite3-dev, build-essential.

cd ..
sudo apt-get install libsqlite3-dev
sudo apt-get install build-essential

Both will probably say that they are already the newest versions. So we should be fine at this point. However if you try to install TapChat now it shows the below issue. I found the following post online that seems similar to took the suggestion to install node-gyp first.

install_error

So the next command is to install node-gyp. Then you can run the final tapchat install command too. There are some odd warnings, but seems to work.

sudo npm install -g node-gyp
sudo npm install tapchat -g

Finally, you run the start command and very carefully type the port and password as I don’t know how you can easily change it afterwards.

tapchat start

tapchatstart

Now we setup port forwarding and load up the application on Android. We do all the configuration needed on the Android application and we are good to go. I did find that I had to restart my phone to get push notifications to work though. TapChat is great though, credit to the developer Eric Butler.

At this point, its probably good to configure the Raspberry Pi to automatically run “tapchat start” whenever its powered on. Not found a good way to do this yet as most things I have tried don’t work properly.

Another thought… It would be wise to make a backup of the Raspberry Pi image, so you don’t have to go through the hassle of the above again if something breaks. The easiest way is to take an image of the SD card that you can load onto a new SD card as needed in the same way you load the original image.

In Windows the tool Win32DiskImage has a read option which saves the SD card contents as a new image to the location you choose on your PC. If you need to restore, you use the write function in the same way as done initially when first setting up the Raspberry Pi.

I will finish this with an image of it working on my Nexus and images of my trusty Raspberry Pi! Click on the thumbnail for larger images.