Touch enabled e-paper for Dell XT Tablet PC.

MS Smartphone C# Bluetooth device logger and auto-Bluejacker.

OBEX test
Test of sending files and contacts over bluetooth in C#

BT Timesheet
Automatic timesheets by monitoring the presence of your bluetooth device.

WSUS EULA Auto Approve
Script that auto approves EULAs for updates download by WSUS.

SUS Auto Approve
Script that auto approves updates download by SUS.



last updated 20/08/07



Smurf is a Bluetooth Logging program for MS Smartphone, it scans at a set interval and retrieves a list of all the bluetooth devices your device can see. It can also automatically BlueJack devices based on simple rules. It has been created because I wanted to see how many bluetooth devices there are out there and if any of them had interesting names, with the intention of sending a message to those with interesting names. Great for pubs, trains and other enclosed spaces. Why smurf? well, they are blue...


Current features
  • Automatically detecting Bluetooth devices in your vicinity
  • Logging who it has seen
  • Alerting to devices found by sound and/or vibrate
  • Identify the manufacturer that owns the Bluetooth MAC (from list of 15,000!)
  • BlueJack devices automatically
  • Screen rotation/auto resize for all screen form factors


Future enhancements
  • Add cell-id location to log
  • Add "times seen" to log
  • "Tagging" interesting device names for contacting next time
  • Retrieve list of services and more device info.
  • Use a flexible rulebase for alerting and jacking with multiple contacts to send
  • Upload logs to website
  • Consolidation of logs from multiple users
  • Chart of popular names/phones users have found
  • Add people profiles to bluetooth MAC addresses
  • Community for Smurfers, show devices common to multiple Smurfers.

Any other feature/UI change requests are welcome! email to



v0.41 20/08/07 - Cityware alpha - WM6, .NetCF2SP1, SqlCE - this version constantly feeds the list of in rage devices to the cityware servers for their facebook application.

v0.4 07/07/07 - WM6, .NetCF2SP1, SqlCE

v0.3 01/08/06 - Updated for QVGA on WM5 devices

v0.2 28/05/05 - Added BlueJacking, Mac address Info

v0.1 20/01/05 - Added Multithreading, saving as XML, Alerting

v0.0 15/10/04 - Initial Release

Sorry for slow pace of development, I only have a change to develop when I get some free time! I also try and test each build as much as possible.



On first running Smurf and pressing "Go" it will create a blank database to use and will by default scan every 2 minutes for new devices, saving the database if it finds new devices. Smurf is multi-threaded so the main application is usable while the scan takes place.

It can be left running in the background just by pressing home, back or locking the device, it will continue to scan and update the database.

It should also refuse to close with most task managers and windows mobile itself to ensure it always runs.


After you have scanned and found some devices, you can click on one to show the details of the device;

Device Name
Mac Address
First Seen time
Last Seen time
Manufacturer/Owner of the MAC address range from the IEEE's list.

From this screen you can manually bluejack that device with the contact details stored in BlueJack Options


Clicking Menu>Statistics shows you how many devices you have seen today and have in total in the database.

It only stores each one once and then updates the last seen time and name if it sees it again, it will also count blanks if those are recorded.


General Options

This allows you to set the interval at which Smurf searches for devices the shorter the interval the more devices you are likely to pick up, but the greater the drain on the battery. At 2 minutes my power meter usually goes down about 10% more than without smurf after a day's use to about 65%.

If devices are only just in range or moving quickly their names cannot always be resolved and so the device will have a blank name, selecting Ignore Blanks will not store these in the database (however the number of devices with or without names are shown on the counter of the status bar on the main screen)

If you place a shortcut to smurf in the startup folder the autostart option will make smurf start searching straight away.


Alert Options

You can be alerted when there are Any, Unseen (new) or devices that have names that contain the keyword you set here.

You can alert by Sound or vibrate or both. The sound used is "\windows\LB.wav" and cannot currently be changed.


BlueJack Options

You can Bluejack, Any, Unseen or devices that contain the keyword in the alert options.

Be careful with the Any option as devices that are always in range will receive a BlueJack every 2 minutes!

The keyword option can be useful with a tailored message, so if the keyword was "cutie" the Lastname could be ".Hey cutie fancy a chat?" etc.

The BlueJack that is sent will send a contact using the details here, it is recommended to use a "." before the lastname and/or firstname to make sure the contact will appear at the top of the BlueJackee's contact list. I would recommend that you use an email address rather than a phone number to stop crank callers, but not all devices may be able to use the email field so this could be put into the name.

On that note, I would say the best names I log are either topical, funny or web/email addresses that give more information about the user.

If you were to use this for Spamvertising you could set the name of your device and the name of the contact to the short message or web address you want to send.



This shows the version of smurf and your own Bluetooth MAC address.



There are a few bugs / features;

Much better stability and scability, only the occasional mysterious fatal exception.

v0.3 and below:
The most annoying is that when you have a large number of devices in the database (>800) the device will run very slowly until the database is saved, and if very large (>1500) it may crash as the next scan occurs before the last has completed.
Occasionally (usually in places with lots of fast moving bluetooth devices) the program may crash with a "Null Reference Exception", just restart Smurf to continue scanning. I haven't yet been able to find out what causes this!



Windows Mobile 6 Standard Cityware Alpha Version (HTC S710, etc)

Windows Installer, run from a PC:

v0.42SmurfSetup042.exe [564k]

CAB installer, download the cab file on your computer and copy to your device, then run from File Explorer or browse to this page on your device and click the link to run the setup. [520k]

This will also work on WM5 devices if the .NetCF2SP1 is installed and SQLCE is also installed.

Windows Mobile 6 Standard Beta Version (HTC S710, etc)

Windows Installer, run from a PC:

v0.4 SmurfSetup04.exe [498k]

CAB installer, download the cab file on your computer and copy to your device, then run from File Explorer or browse to this page on your device and click the link to run the setup.

V0.4 [447k]

This will also work on WM5 devices if the .NetCF2SP1 is installed and SQLCE is also installed.

Windows Mobile 5 QVGA Beta Version (SPV C600, etc)

Due to popular demand and me not having time to do much over the summer here is a rough beta QVGA version of Smurf that works on the SPV C600, and should work ok on all Windows Mobile 5 QVGA devices with the microsoft bluetooth stack.

- Download the following zip [350k]
- Extract the files, copy the cab file over to the device and install it using file explorer
- Explore your device and find "\program files\smurf\" create a directory called "icons" and copy the bmp files from the zip over into this directory.

Sorry for being complicated - I managed to loose this version of the source when upgrading to .NETCF2 so can't remake the cab file with the icons in it easily!

Windows Mobile 2003 Lo-res Beta Version (SPV E200, C500, etc)

Download the cab file on your computer and copy to your device, then run from File Explorer or browse to this page on your device and click the link to run the setup.

V0.2 [240k]

For Pocket PC devices (e.g. XDA II) and Windows use the zip file and install manually: (Note that errors occur in windows due to the way the registry is accessed, but if ignored most functions will work)


It should work on any device with the .NetCF1.1 and the Microsoft Bluetooth stack (Does NOT work with the BroadcomWIDDComm Stack)