Skip to content

Watchdog (MIDP)

Table of Contents


Abiro Watchdog and the accompanying WatchdogTrig enables you to use a secondary mobile phone as a camera surveillance device, either receiving photos when things happen or trigger photos yourself by sending the other phone an SMS.

Watchdog has two principal modes of operation:

  • Motion detection: Photos are taken automatically when a major change in what the camera sees is noticed. Watchdog checks for any changes at a set interval, and sends a photo only when there is a noticeable change. The method for detection compensates for sun light shifts and other slow changes, to avoid false triggering.
  • Manual Request: This works by using WatchdogTrig or Watchdog to send an SMS to the phone used for surveillance, that then takes a photo and sends it back via MMS to the same phone as sent the SMS. The MMS is received in the regular message inbox of the phone.

Main Screen

The main screen shows what the camera sees, and you can perform the actions described below from the main screen menu.


Verify is used to simulate motion detection, so you can try out the settings made in Setup. Use it also to get rid of initial permission warnings.


Performs the same function as the stand-alone application WatchdogTrig.

Triggers (via SMS) another phone running Watchdog to send back a photo as an MMS.

Preferably set Watchdog on the other phone to Auto-start.

Also make sure that permission warnings are not stopping the other phone from taking a photo and sending an MMS without user intervention.


Through Setup it’s possible to control where photos taken via motion detection (and Verify) are sent, what types of alerts should be activated locally, whether auto-start and motion detection should be activated, and what resolution to take the photos at.

Send method

Used for motion detection and Verify.

  • SMS: Sends a text message to a given destination (phone number only). Default: off.
  • MMS: Sends a text message and the taken photo to a given destination (phone number or e-mail address). Default: off.
  • HTTP: Sends the taken photo to a server via a given URL. Default: off.

These can be combined for greater effect, e.g. HTTP can be used for transferring the photo, and an SMS can be sent to notify the user that a photo has been taken, etc. You can also use SMS only for lower cost, and then request a photo on demand via WatchdogTrig.

The following three options set the actual destinations for the Send method selection.

Phone number (SMS, MMS)

Must be a valid phone number, that can be looked up in the phone book. Default: blank.

E-mail address (MMS)

Must be a valid e-mail address, that can be looked up in the phone book. Default: blank.

Script URL (HTTP)

Must be a valid URL, pointing to a receiving script. See under HTTP Transfer for how to interpret the data sent. Default: blank.


Used to alert the intruder that a photo has been taken. Due to the arguable value of that, they are de-activated by default for maximum stealth action.

  • Beep: A short audible beep. Default: off.
  • Light: The display blinks. Default: off.
  • Vibrate: The phone vibrates. Default: off.


Controls whether the application shall auto-start after a power cycle. This can be useful for autonomously activating Watchdog after a power failure. Default: off.

Motion detection

Activates the automatic motion detection. Note that this setting is not saved in persistent storage, to avoid false triggering while configuring Watchdog. Default: off.

Motion detection interval

Controls the time between motion detection snapshots. A shorter interval makes it more likely to catch the change, but could also lead to more false triggering if things change continuously. Default: 15 seconds.

Phone number for Trig

The phone number used for triggering a photo on another phone (see Trig above), making it easy to send repetitive triggers.


The pixel resolution of the taken photos. Higher resolution leads to more data, so try with the lowest resolution first, to see if that’s sufficient. Note that cameras have different resolution choices, so this is very much phone dependent. Default: the lowest available resolution.

HTTP Transfer

This is the information provided to the server script as URL-encoded arguments via HTTP POST:

  • text: An informative text, URL encoded using UTF-8; the same as sent via SMS or MMS
  • length: The byte length of the photo, URL encoded using UTF-8
  • photo: The Base64 encoded image file, URL encoded using UTF-8
Please note that some phones have problems submitting to Apache servers (especially version 1.x) due to a bug in Apache regarding chunking of data. This has (supposedly) been solved in all 2.x versions.


  • Use Verify to get rid of any permission warnings related to use of camera, SMS, MMS, HTTP, before activating motion detection etc.
  • For motion detection to work, the surveillance phone needs to be placed rigidly, so that it doesn’t false trigger due to changing view.
  • It’s always preferable that the surveillance phone is connected to a power supply.
  • The motion detection method is reliable yet intentionally rather conservative, and it detects only within the 20% middle part of the photo. The benefit is though that when the phone is mounted in a stable way, the likelihood of false triggering is very small.


Watchdog should be compatible with any phone supporting CLDC 1.0 and MIDP 2.0, that has a camera, and optionally SMS and MMS.