Burglars Caught with IP Cam Viewer for Android and iOS

October 2nd, 2011

Users of IP Cam Viewer often email me about how they use my app to monitor their baby, home, rental, pet or business.  Sometimes, users report their cameras catching thieves in the act or their cameras helping them solve problems.

Here are snippets of 2 emails I got recently.



Just wanted to drop you a quick note about my “interesting” day this past Friday…

I was sitting at my desk at work and glanced down at my iPod touch where I usually watch my four cameras at home (I use my Droid X when I’m away from my desk) when I noticed some unfamiliar people inside of my house and a strange car in my driveway. I quickly phoned my son to make sure it wasn’t him (it wasn’t, he was still asleep) and then called 911 to report that there were people in my house that weren’t supposed to be.

I watched as the burglars finally realized that I had cameras and saw them move them aside and unplug them (they missed the one pointing outside to the driveway, though). Anyway, within about a minute of calling 911, I saw a police cruiser pull-up to my house, quickly followed by a second.

Long story short: both burglar’s apprehended and pretty much everything recovered (although we’re still putting things back and dealing with the disarray and kicked-in front door).

Anyway, all of the police were very excited, to say the least, that they were able to catch the guys in the act and fleeing my premises. They all wanted to know how I had things setup, etc. and I told them about IP Cam Viewer, etc. I’m going to be writing-up setup instructions for them so they can install cameras in their houses as well.

One thing I wasn’t able to provide them was a video or recording–sadly, I wasn’t using this feature of your app at the time, but I’d like to have some DVR functionality just in case this ever happens again. I played around this morning with the recording and playback feature of IP Cam Viewer on my Xoom this morning, but I had a little trouble swiping on the screen to change cameras in the playback feature–changing which camera is selected and/or whatever swipe direction does not seem to advance me to the next camera (and I can see that there are indeed images recorded for the other cameras in the record folder for the selected timeframe).

Anyway, I’m probably going to start using my HTC Droid Eris (first, old Android device) as my DVR, but I was thinking of using my Xoom. Don’t know if you have any advice on what might be the best platform for this…

Thanks again for a great app, for keeping it updated so often and adding new features–I’m sure you’ll have a few new customers due to my recent incident ;).



“I absolutely LOVE the app, my landlord has been complaining about my dog barking and I suspected it was the neighbor’s.  Thanks to you and the Axis camera triggers, I now have evidence to support my belief.”

v4.1.5 has Recording Playback and Video Export!

September 20th, 2011

Finally, IP Cam Viewer v4.1.2 has a new Recording Playback screen to search and playback recordings made in Record Mode.

In addition, v4.1.5 has a new Convert to Video File screen to extract recorded data as a single video clip.

Use Windows Media Player or RockPlayer Lite for Android to playback recording.

As for a good android tablet for Record Mode, I use the Acer Iconia A500.  It’s cheap and has a full USB port.  I bought a 500GB 2.5 in laptop hd for $50, put it into a $10 enclosure, formatted it to FAT32 using “fat32format.exe“.  Connect it and change the record path in my app to “/mnt/usb_storage/IpCamViewer/Record”.  That should cover 6 cameras, at 24×7 recording, for ~30 days.


IP Cam Viewer Lite Wins Award

September 8th, 2011

IP Cam Viewer Lite, has received Best Software Award 2011 in Utilities category!


Also, here’s a video of another company, AirLinkWiFi, using my app:

Here’s another set of videos by Celius using IP Cam Viewer.

IP Cam Viewer Lite pulled from Android Market

August 24th, 2011

Argh… No specific reason given but my free version of IP Cam Viewer got pulled today from the Android Market by Google, after 1.3 million plus downloads and a 4+ start rating. I supported it day and night to get 9000+ reviews. All gone.

For existing and new users, the free version is available for download from here. Until Google replies with a reason, I can’t release another free version on the market.  It will always be available directly from me so this method is better anyway.

This version also let’s you upgrade through paypal (no market dependencies). Just send $3.99 to “robertchou@gmail.com” using paypal and I’ll send you an unlock code (the pulled free version used Google’s in-app purchase for upgrade).

Google, please email developers with an explanation prior to pulling apps. Good developers will fix whatever the issue may be. Your rules come from Dilbert land and are evil:

1) wait for developer to spend tons of time building apps for your market and answering user questions regarding the crappy market bugs/issues.

2) reject, up to 3 years later, without giving any explanation.

3) count as developer *guesses* wrong with new releases, and on count of 3, wipe out entire account removing ALL other apps.

Brilliant.  Brilliantly evil!

On a personal note, I’m sadden to see the lose of this app. I launched it back in late 2008, when the market first opened (since day one). Lots of users have helped me build it to this point and I cared for it almost like a child.

Rob 8^(

ps. Still no response from Google. They talk good, but with a bad track record, I now see them as a heartless/sole-less data-mining machine. Oh well, there’s other markets and other opportunities to explore.

ps.ps. I’m guessing they pulled it because of the app description where I list the brands of devices that are supported. I worked hard over 3 years to build that support and it’s what people are searching for. For a search company, this is really a stupid reason.

iOS Launch URLs

July 26th, 2011

IP Camera Viewer for iOS version 1.3.5 or newer will support the following launch URLs for integration by other applications:

launch app in default matrix view:

launch app in default matrix view for group name (v2.1.8 or newer)
ipcamviewer://launch?groupName=[url encoded group name]

launch app in detail view for camera id
ipcamviewer://launch?id=[index of camera, 0..n]

launch app in detail view for camera name
ipcamviewer://launch?name=[url encoded name for camera]

See this post for similar launch methods for android.

IP Cam Viewer icons and TV

July 20th, 2011


The next version, 4.0.3, will use icons for all the custom buttons that vary based on camera model.  They will also toast their function when you press them.

More importantly, just before I was to start a 2 week road trip, I got a cool little device to test IP Cam Viewer on my TV.  Got it running in a few minutes but it’ll need some tweaking to work quicker without the mouse/touch gestures.

I plan to spend some time after I get back to play with it.  Pretty awesome to see the matrix mode on a large 40 inch TV.


ps. audio on iOS is progressing well. About 1/3 of the audio drivers have been ported. Will be porting Axis audio next…

Updated Online Help for IP Cam Viewer Android

June 9th, 2011

Just finished updating the online help to match version “3.9.7”.


Make a Honeycomb Tablet stand using Makerbot

June 9th, 2011

I made a tablet stand for my Acer Honeycomb tablet using a Makerbot, and make the design available under the Creative Commons license at http://www.thingiverse.com/thing:9163


Record Mode road map

May 30th, 2011


Now that recording is actually taking place in IP Cam Viewer for Android, here’s what I have planned for future releases regarding Record Mode:

– on/off schedules per camera
record mode icon in status bar
– embed web server for HTML5 playback interface so you can access it from anywhere, just like a networked dvr.
– provide live API for all cameras in record mode, turning app into a simple “universal” translator for all supported cameras into one interface for integration with websites or other systems.
– motion detection option on the record mode device to save space, also allowing for efficient alerting of the phone client (all the work is done on the record device at home, phone just gets alerts, saving power and network bandwidth).

It will take some time as I’m working on 4 different platforms now but it will be done. Thanks for your patience.


Use a foscam (or clone) to control liftmaster garage door

May 30th, 2011


This is how I use the “relay” function to open/close my chamberlain liftmaster garage door (through a foscam FI8908W camera) using my IP Cam Viewer app.

The garage door switch just shorts 2 wires when pressed (this causes the garage door to take action).

The foscam has a relay that shorts 2 wires (pins 1 and 2) when turned on.

Based on this, a simple solution is to:
1. connect pin 1 of foscam to left most pin on liftmaster.
2. connect pin 2 of foscam to 2nd left most pin on listmaster.

Now, when foscam relay is turned on, the garage will go into action. however, you’ll have to remember to turn the relay OFF to allow your garage door switch to work again.
A solution for this problem is to upgrade to the next release of IP Cam Viewer (3.7.9) and enable the “Pulse Relay On” option. With this option on, click on the relay ON button in my app will actually toggle on/off the camera’s relay so you don’t have to remember to turn relay off.

So far so good, everything works, but there is one more problem. The foscam, by default, does something unexpected. When the foscam first gains power, the relay is off (normally open). Within a few seconds (~10s), the camera always turns on the relay, by default!!! This means that when you lose power to the house and then get power back, the garage door will open because of the foscam relay turning on.

It think the reason the foscam does this is because the relay was designed for use with an alarm system. By default (after 10 seconds), the relay is ON to signal all ok to the alarm system. It turns the relay OFF to trigger an alarm to the alarm system. In this case, I’m not using it with an alarm system.

The work around for this solution was a little more work. Just a get a 8 pin microcontroller and program it to delay 30 seconds before copying the camera’s relay to another relay for the garage door. A little more money is to use an Arduino (very easy to program, code given below).

Basicallly, use digital io 2 to read camera relay and use digital io pin 3 to control a separate relay to trigger garage door. Here’s an example circuit for Arduino to control a relay:
http://www.ecs.umass.edu/ece/m5/tutoria … orial.html

here’s a cheap relay module on ebay (if you don’t want to wire one up):

Finally, don’t forget to enable the “Pulse relay ON signal” option in my app, found under Edit Camera -> More Options.

Here’s my arduino code:

// constants won't change. They're used here to
// set pin numbers:
const int buttonPin = 2; // ping which is HIGH when camera relay is shorted/closed, LOW when camera relay is open
const int relayPin = 3; // the number of the garage relay pin

// variables will change:
int bInitialized = false;
int buttonState = 0; // variable for reading the pushbutton status

void setup() {
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);

// initialize the relay pin as an output:
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, LOW);


void loop(){

if( bInitialized == false )
// it seems the camera bounces relay during startup so just delay 30 seconds on power up
delay( 30 * 1000 );

bInitialized = true;

// wait until camera relay goes low
while( true )
buttonState = digitalRead(buttonPin);
if( buttonState == LOW )

// wait until user clicks camera relay on
while( true )
buttonState = digitalRead(buttonPin);
if( buttonState == HIGH )

// pulse garage door
digitalWrite(relayPin, HIGH);
delay( 200 );
digitalWrite(relayPin, LOW);



// delay a bit before next action to let things settle down
delay( 250 );